diff options
| author | Zhineng Li <im@zhineng.li> | 2026-07-12 17:11:17 +0800 |
|---|---|---|
| committer | Zhineng Li <im@zhineng.li> | 2026-07-12 17:11:17 +0800 |
| commit | 1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634 (patch) | |
| tree | 5f0857666365b7e40cdaa3733ebe1f3ba9e13c67 /data/zh_cn/dcdn/2018-01-15 | |
| parent | 7347bac4ab7e136157fc94777e6cf87ef9e08599 (diff) | |
| download | afterglow-metadata-full-1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634.tar.gz afterglow-metadata-full-1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634.zip | |
update APIs 20260712
Diffstat (limited to 'data/zh_cn/dcdn/2018-01-15')
| -rw-r--r-- | data/zh_cn/dcdn/2018-01-15/api-docs.php | 47284 |
1 files changed, 21224 insertions, 26060 deletions
diff --git a/data/zh_cn/dcdn/2018-01-15/api-docs.php b/data/zh_cn/dcdn/2018-01-15/api-docs.php index bf164e9..2c84335 100644 --- a/data/zh_cn/dcdn/2018-01-15/api-docs.php +++ b/data/zh_cn/dcdn/2018-01-15/api-docs.php @@ -1,530 +1,225 @@ <?php return [ 'version' => '1.0', - 'info' => [ - 'style' => 'RPC', - 'product' => 'dcdn', - 'version' => '2018-01-15', - ], + 'info' => ['style' => 'RPC', 'product' => 'dcdn', 'version' => '2018-01-15'], 'directories' => [ [ - 'id' => 392057, - 'title' => '服务管理', + 'children' => ['OpenDcdnService', 'DescribeUserDcdnStatus', 'DescribeDcdnService'], 'type' => 'directory', - 'children' => [ - 'OpenDcdnService', - 'DescribeUserDcdnStatus', - 'DescribeDcdnService', - ], + 'title' => '服务管理', + 'id' => 20579, ], [ - 'id' => 392061, - 'title' => '域名管理', - 'type' => 'directory', 'children' => [ [ - 'id' => 392062, - 'title' => '添加/删除域名', + 'children' => ['AddDcdnDomain', 'BatchAddDcdnDomain', 'DeleteDcdnDomain', 'DescribeDcdnDeletedDomains'], 'type' => 'directory', - 'children' => [ - 'AddDcdnDomain', - 'BatchAddDcdnDomain', - 'DeleteDcdnDomain', - 'DescribeDcdnDeletedDomains', - ], + 'title' => '添加/删除域名', + 'id' => 20587, ], [ - 'id' => 392067, - 'title' => '域名归属校验', + 'children' => ['VerifyDcdnDomainOwner', 'DescribeDcdnVerifyContent'], 'type' => 'directory', - 'children' => [ - 'VerifyDcdnDomainOwner', - 'DescribeDcdnVerifyContent', - ], + 'title' => '域名归属校验', + 'id' => 20584, ], [ - 'id' => 392070, - 'title' => '启用/停用域名', + 'children' => ['StartDcdnDomain', 'BatchStartDcdnDomain', 'StopDcdnDomain', 'BatchStopDcdnDomain'], 'type' => 'directory', - 'children' => [ - 'StartDcdnDomain', - 'BatchStartDcdnDomain', - 'StopDcdnDomain', - 'BatchStopDcdnDomain', - ], + 'title' => '启用/停用域名', + 'id' => 20592, ], [ - 'id' => 392075, - 'title' => '域名基础配置', + 'children' => ['DescribeDcdnUserDomains', 'DescribeDcdnDomainDetail', 'DescribeDcdnUserDomainsByFunc', 'DescribeDcdnDomainsBySource', 'UpdateDcdnDomain', 'DescribeDcdnDomainCname', 'ModifyDCdnDomainSchdmByProperty', 'SetDcdnUserConfig', 'BatchSetDcdnDomainConfigs', 'DescribeDcdnDomainConfigs', 'DeleteDcdnSpecificConfig', 'BatchDeleteDcdnDomainConfigs', 'DescribeRDDomainConfig'], 'type' => 'directory', - 'children' => [ - 'DescribeDcdnUserDomains', - 'DescribeDcdnDomainDetail', - 'DescribeDcdnUserDomainsByFunc', - 'DescribeDcdnDomainsBySource', - 'UpdateDcdnDomain', - 'DescribeDcdnDomainCname', - 'ModifyDCdnDomainSchdmByProperty', - 'SetDcdnUserConfig', - 'BatchSetDcdnDomainConfigs', - 'DescribeDcdnDomainConfigs', - 'DeleteDcdnSpecificConfig', - 'BatchDeleteDcdnDomainConfigs', - 'DescribeRDDomainConfig', - ], + 'title' => '域名基础配置', + 'id' => 20597, ], ], + 'type' => 'directory', + 'title' => '域名管理', + 'id' => 20583, ], [ - 'id' => 392089, - 'title' => '刷新预热', + 'children' => ['RefreshDcdnObjectCaches', 'PreloadDcdnObjectCaches', 'DescribeDcdnRefreshQuota', 'DescribeDcdnRefreshTasks', 'DescribeDcdnUserQuota', 'DescribeDcdnRefreshTaskById', 'RefreshDcdnObjectCacheByCacheTag', 'RefreshErObjectCachesByCacheTag'], 'type' => 'directory', - 'children' => [ - 'RefreshDcdnObjectCaches', - 'PreloadDcdnObjectCaches', - 'DescribeDcdnRefreshQuota', - 'DescribeDcdnRefreshTasks', - 'DescribeDcdnUserQuota', - 'DescribeDcdnRefreshTaskById', - 'RefreshDcdnObjectCacheByCacheTag', - 'RefreshErObjectCachesByCacheTag', - ], + 'title' => '刷新预热', + 'id' => 20611, ], [ - 'id' => 392098, - 'title' => '业务监控', - 'type' => 'directory', 'children' => [ [ - 'id' => 392099, - 'title' => '资源监控', - 'type' => 'directory', 'children' => [ [ - 'id' => 392100, - 'title' => '访问数据', + 'children' => ['DescribeDcdnDomainHttpCodeData', 'DescribeDcdnDomainHttpCodeDataByLayer', 'DescribeDcdnDomainRegionData', 'DescribeDcdnRegionAndIsp', 'DescribeDcdnDomainIspData', 'DescribeDcdnDomainHitRateData', 'DescribeDcdnDomainQpsData', 'DescribeDcdnDomainQpsDataByLayer', 'DescribeDcdnDomainBpsData', 'DescribeDcdnDomainBpsDataByLayer', 'DescribeDcdnDomainTrafficData'], 'type' => 'directory', - 'children' => [ - 'DescribeDcdnDomainHttpCodeData', - 'DescribeDcdnDomainHttpCodeDataByLayer', - 'DescribeDcdnDomainRegionData', - 'DescribeDcdnRegionAndIsp', - 'DescribeDcdnDomainIspData', - 'DescribeDcdnDomainHitRateData', - 'DescribeDcdnDomainQpsData', - 'DescribeDcdnDomainQpsDataByLayer', - 'DescribeDcdnDomainBpsData', - 'DescribeDcdnDomainBpsDataByLayer', - 'DescribeDcdnDomainTrafficData', - ], + 'title' => '访问数据', + 'id' => 20713, ], [ - 'id' => 392112, - 'title' => '回源数据', + 'children' => ['DescribeDcdnDomainOriginBpsData', 'DescribeDcdnDomainOriginTrafficData'], 'type' => 'directory', - 'children' => [ - 'DescribeDcdnDomainOriginBpsData', - 'DescribeDcdnDomainOriginTrafficData', - ], + 'title' => '回源数据', + 'id' => 20725, ], [ - 'id' => 392115, - 'title' => 'WebSocket数据', + 'children' => ['DescribeDcdnDomainWebsocketHttpCodeData', 'DescribeDcdnDomainWebsocketBpsData', 'DescribeDcdnDomainWebsocketTrafficData'], 'type' => 'directory', - 'children' => [ - 'DescribeDcdnDomainWebsocketHttpCodeData', - 'DescribeDcdnDomainWebsocketBpsData', - 'DescribeDcdnDomainWebsocketTrafficData', - ], + 'title' => 'WebSocket数据', + 'id' => 20728, ], ], + 'type' => 'directory', + 'title' => '资源监控', + 'id' => 20712, ], [ - 'id' => 392119, - 'title' => '实时监控', - 'type' => 'directory', 'children' => [ [ - 'id' => 392120, - 'title' => '访问数据', + 'children' => ['DescribeDcdnDomainRealTimeQpsData', 'DescribeDcdnDomainRealTimeTrafficData', 'DescribeDcdnDomainRealTimeBpsData', 'DescribeDcdnDomainRealTimeByteHitRateData', 'DescribeDcdnDomainRealTimeReqHitRateData', 'DescribeDcdnDomainRealTimeHttpCodeData', 'DescribeDcdnDomainRealTimeDetailData'], 'type' => 'directory', - 'children' => [ - 'DescribeDcdnDomainRealTimeQpsData', - 'DescribeDcdnDomainRealTimeTrafficData', - 'DescribeDcdnDomainRealTimeBpsData', - 'DescribeDcdnDomainRealTimeByteHitRateData', - 'DescribeDcdnDomainRealTimeReqHitRateData', - 'DescribeDcdnDomainRealTimeHttpCodeData', - 'DescribeDcdnDomainRealTimeDetailData', - ], + 'title' => '访问数据', + 'id' => 20733, ], [ - 'id' => 392128, - 'title' => '回源数据', + 'children' => ['DescribeDcdnDomainRealTimeSrcBpsData', 'DescribeDcdnDomainRealTimeSrcTrafficData', 'DescribeDcdnDomainRealTimeSrcHttpCodeData'], 'type' => 'directory', - 'children' => [ - 'DescribeDcdnDomainRealTimeSrcBpsData', - 'DescribeDcdnDomainRealTimeSrcTrafficData', - 'DescribeDcdnDomainRealTimeSrcHttpCodeData', - ], + 'title' => '回源数据', + 'id' => 20741, ], ], + 'type' => 'directory', + 'title' => '实时监控', + 'id' => 20732, ], ], + 'type' => 'directory', + 'title' => '业务监控', + 'id' => 20711, ], [ - 'id' => 392132, - 'title' => '数据中心', - 'type' => 'directory', 'children' => [ [ - 'id' => 392133, - 'title' => '运营报表', + 'children' => ['CreateDcdnSubTask', 'DescribeDcdnSubList', 'DescribeDcdnReport', 'DescribeDcdnReportList', 'UpdateDcdnSubTask', 'DeleteDcdnSubTask', 'CreateDcdnDeliverTask', 'DescribeDcdnDeliverList', 'UpdateDcdnDeliverTask', 'DeleteDcdnDeliverTask'], 'type' => 'directory', - 'children' => [ - 'CreateDcdnSubTask', - 'DescribeDcdnSubList', - 'DescribeDcdnReport', - 'DescribeDcdnReportList', - 'UpdateDcdnSubTask', - 'DeleteDcdnSubTask', - 'CreateDcdnDeliverTask', - 'DescribeDcdnDeliverList', - 'UpdateDcdnDeliverTask', - 'DeleteDcdnDeliverTask', - ], + 'title' => '运营报表', + 'id' => 20777, ], [ - 'id' => 392144, - 'title' => '日志管理', - 'type' => 'directory', 'children' => [ [ - 'id' => 392145, - 'title' => '离线日志', + 'children' => ['DescribeDcdnDomainLog', 'DescribeDcdnWafLogs'], 'type' => 'directory', - 'children' => [ - 'DescribeDcdnDomainLog', - 'DescribeDcdnWafLogs', - ], + 'title' => '离线日志', + 'id' => 20761, ], [ - 'id' => 392148, - 'title' => '实时日志', + 'children' => ['CreateDcdnSLSRealTimeLogDelivery', 'DescribeDcdnSLSRealtimeLogDelivery', 'UpdateDcdnSLSRealtimeLogDelivery', 'DeleteDcdnRealTimeLogProject', 'UpdateDcdnUserRealTimeDeliveryField', 'DescribeDcdnRealTimeDeliveryField', 'CheckDcdnProjectExist', 'DescribeDcdnSLSRealTimeLogType', 'ListDcdnRealTimeDeliveryProject', 'DescribeUserLogserviceStatus', 'CreateSlrAndSlsProject', 'DescribeDcdnUserRealTimeDeliveryField'], 'type' => 'directory', - 'children' => [ - 'CreateDcdnSLSRealTimeLogDelivery', - 'DescribeDcdnSLSRealtimeLogDelivery', - 'UpdateDcdnSLSRealtimeLogDelivery', - 'DeleteDcdnRealTimeLogProject', - 'UpdateDcdnUserRealTimeDeliveryField', - 'DescribeDcdnRealTimeDeliveryField', - 'CheckDcdnProjectExist', - 'DescribeDcdnSLSRealTimeLogType', - 'ListDcdnRealTimeDeliveryProject', - 'DescribeUserLogserviceStatus', - 'CreateSlrAndSlsProject', - 'DescribeDcdnUserRealTimeDeliveryField', - ], + 'title' => '实时日志', + 'id' => 20764, ], ], + 'type' => 'directory', + 'title' => '日志管理', + 'id' => 20760, ], [ - 'id' => 392161, - 'title' => '用量查询', + 'children' => ['DescribeDcdnUserBillHistory', 'DescribeDcdnUserBillType', 'DescribeDcdnUserResourcePackage', 'DescribeDcdnDomainUsageData', 'DescribeDcdnBgpBpsData', 'DescribeDcdnBgpTrafficData', 'DescribeDcdnDomainMultiUsageData', 'DescribeDcdnDomainPvData', 'DescribeDcdnDomainTopReferVisit', 'DescribeDcdnDomainTopUrlVisit', 'DescribeDcdnDomainUvData', 'DescribeDcdnTopDomainsByFlow', 'DescribeKvUsageData'], 'type' => 'directory', - 'children' => [ - 'DescribeDcdnUserBillHistory', - 'DescribeDcdnUserBillType', - 'DescribeDcdnUserResourcePackage', - 'DescribeDcdnDomainUsageData', - 'DescribeDcdnBgpBpsData', - 'DescribeDcdnBgpTrafficData', - 'DescribeDcdnDomainMultiUsageData', - 'DescribeDcdnDomainPvData', - 'DescribeDcdnDomainTopReferVisit', - 'DescribeDcdnDomainTopUrlVisit', - 'DescribeDcdnDomainUvData', - 'DescribeDcdnTopDomainsByFlow', - 'DescribeKvUsageData', - ], + 'title' => '用量查询', + 'id' => 20746, ], ], + 'type' => 'directory', + 'title' => '数据中心', + 'id' => 20745, ], [ - 'id' => 392175, - 'title' => '证书服务', + 'children' => ['CreateDcdnCertificateSigningRequest', 'SetDcdnDomainCSRCertificate', 'DescribeDcdnSSLCertificateList', 'SetDcdnDomainSSLCertificate', 'DescribeDcdnHttpsDomainList', 'DescribeDcdnCertificateList', 'DescribeDcdnDomainByCertificate', 'DescribeDcdnCertificateDetail', 'DescribeDcdnDomainCertificateInfo', 'SetDcdnDomainSMCertificate', 'DescribeDcdnSMCertificateDetail', 'DescribeDcdnSMCertificateList', 'DescribeDcdnUserCertificateExpireCount'], 'type' => 'directory', - 'children' => [ - 'CreateDcdnCertificateSigningRequest', - 'SetDcdnDomainCSRCertificate', - 'DescribeDcdnSSLCertificateList', - 'SetDcdnDomainSSLCertificate', - 'DescribeDcdnHttpsDomainList', - 'DescribeDcdnCertificateList', - 'DescribeDcdnDomainByCertificate', - 'DescribeDcdnCertificateDetail', - 'DescribeDcdnDomainCertificateInfo', - 'SetDcdnDomainSMCertificate', - 'DescribeDcdnSMCertificateDetail', - 'DescribeDcdnSMCertificateList', - 'DescribeDcdnUserCertificateExpireCount', - ], + 'title' => '证书服务', + 'id' => 20619, ], [ - 'id' => 392189, - 'title' => '标签管理', + 'children' => ['TagDcdnResources', 'DescribeDcdnTagResources', 'DescribeDcdnUserTags', 'UntagDcdnResources'], 'type' => 'directory', - 'children' => [ - 'TagDcdnResources', - 'DescribeDcdnTagResources', - 'DescribeDcdnUserTags', - 'UntagDcdnResources', - ], + 'title' => '标签管理', + 'id' => 20702, ], [ - 'id' => 392194, - 'title' => 'IP应用加速', + 'children' => ['DescribeDcdnIpaDomainConfigs', 'StopDcdnIpaDomain', 'DescribeUserDcdnIpaStatus', 'DescribeDcdnIpaService', 'UpdateDcdnIpaDomain', 'DeleteDcdnIpaDomain', 'StartDcdnIpaDomain', 'AddDcdnIpaDomain', 'BatchSetDcdnIpaDomainConfigs', 'DescribeDcdnIpaUserDomains', 'DescribeDcdnIpaDomainDetail', 'DeleteDcdnIpaSpecificConfig', 'DescribeDcdnDomainProperty', 'DescribeDcdnDomainIpaBpsData', 'DescribeDcdnDomainIpaTrafficData', 'DescribeDcdnDomainIpaConnData', 'DescribeDcdnIpaDomainCidr'], 'type' => 'directory', - 'children' => [ - 'DescribeDcdnIpaDomainConfigs', - 'StopDcdnIpaDomain', - 'DescribeUserDcdnIpaStatus', - 'DescribeDcdnIpaService', - 'UpdateDcdnIpaDomain', - 'DeleteDcdnIpaDomain', - 'StartDcdnIpaDomain', - 'AddDcdnIpaDomain', - 'BatchSetDcdnIpaDomainConfigs', - 'DescribeDcdnIpaUserDomains', - 'DescribeDcdnIpaDomainDetail', - 'DeleteDcdnIpaSpecificConfig', - 'DescribeDcdnDomainProperty', - 'DescribeDcdnDomainIpaBpsData', - 'DescribeDcdnDomainIpaTrafficData', - 'DescribeDcdnDomainIpaConnData', - 'DescribeDcdnIpaDomainCidr', - ], + 'title' => 'IP应用加速', + 'id' => 20632, ], [ - 'id' => 392212, - 'title' => '边缘计算服务', - 'type' => 'directory', 'children' => [ [ - 'id' => 392213, + 'children' => ['CreateRoutine', 'DeleteRoutine', 'DeleteRoutineCodeRevision', 'DeleteRoutineConfEnvs', 'DescribeRoutine', 'DescribeRoutineCanaryEnvs', 'DescribeRoutineCodeRevision', 'DescribeRoutineSpec', 'DescribeRoutineUserInfo', 'DescribeUserErStatus', 'EditRoutineConf', 'SetRoutineSubdomain', 'UploadRoutineCode', 'UploadStagingRoutineCode', 'PublishRoutineCodeRevision', 'CommitStagingRoutineCode', 'DescribeDcdnErUsageData', 'DescribeEncryptRoutineUid', 'DescribeRoutineRelatedDomains', 'RefreshErObjectCaches'], + 'type' => 'directory', 'title' => '边缘函数', + 'id' => 284465, + ], + [ + 'children' => ['SetDcdnDomainStagingConfig', 'DescribeDcdnDomainStagingConfig', 'DeleteDcdnSpecificStagingConfig', 'PublishDcdnStagingConfigToProduction', 'RollbackDcdnStagingConfig', 'DescribeDcdnStagingIp'], 'type' => 'directory', - 'children' => [ - 'CreateRoutine', - 'DeleteRoutine', - 'DeleteRoutineCodeRevision', - 'DeleteRoutineConfEnvs', - 'DescribeRoutine', - 'DescribeRoutineCanaryEnvs', - 'DescribeRoutineCodeRevision', - 'DescribeRoutineSpec', - 'DescribeRoutineUserInfo', - 'DescribeUserErStatus', - 'EditRoutineConf', - 'SetRoutineSubdomain', - 'UploadRoutineCode', - 'UploadStagingRoutineCode', - 'PublishRoutineCodeRevision', - 'CommitStagingRoutineCode', - 'DescribeDcdnErUsageData', - 'DescribeEncryptRoutineUid', - 'DescribeRoutineRelatedDomains', - 'RefreshErObjectCaches', - ], - ], - [ - 'id' => 392234, 'title' => '边缘脚本', - 'type' => 'directory', - 'children' => [ - 'SetDcdnDomainStagingConfig', - 'DescribeDcdnDomainStagingConfig', - 'DeleteDcdnSpecificStagingConfig', - 'PublishDcdnStagingConfigToProduction', - 'RollbackDcdnStagingConfig', - 'DescribeDcdnStagingIp', - ], + 'id' => 20810, ], [ - 'id' => 392241, - 'title' => '边缘存储', + 'children' => ['BatchDeleteDcdnKvWithHighCapacity', 'DescribeKvRealTimeQpsData', 'PutDcdnKvWithHighCapacity', 'BatchDeleteDcdnKv', 'BatchPutDcdnKvWithHighCapacity', 'GetDcdnKvDetail', 'BatchPutDcdnKv', 'DescribeDcdnKvNamespace', 'PutDcdnKvNamespace', 'DeleteDcdnKvNamespace', 'DescribeDcdnKvAccount', 'DescribeDcdnKvAccountStatus', 'GetDcdnKv', 'ListDcdnKv', 'PutDcdnKv', 'DeleteDcdnKv', 'GetDcdnKvStatus'], 'type' => 'directory', - 'children' => [ - 'BatchDeleteDcdnKvWithHighCapacity', - 'DescribeKvRealTimeQpsData', - 'PutDcdnKvWithHighCapacity', - 'BatchDeleteDcdnKv', - 'BatchPutDcdnKvWithHighCapacity', - 'GetDcdnKvDetail', - 'BatchPutDcdnKv', - 'DescribeDcdnKvNamespace', - 'PutDcdnKvNamespace', - 'DeleteDcdnKvNamespace', - 'DescribeDcdnKvAccount', - 'DescribeDcdnKvAccountStatus', - 'GetDcdnKv', - 'ListDcdnKv', - 'PutDcdnKv', - 'DeleteDcdnKv', - 'GetDcdnKvStatus', - ], + 'title' => '边缘存储', + 'id' => 284492, ], ], + 'type' => 'directory', + 'title' => '边缘计算服务', + 'id' => 20788, ], [ - 'id' => 392259, - 'title' => '边缘安全防护', - 'type' => 'directory', 'children' => [ [ - 'id' => 392260, + 'children' => ['DescribeDcdnUserSecDrop', 'DescribeDcdnSecFuncInfo', 'DescribeDcdnUserSecDropByMinute', 'DescribeDcdnBlockedRegions', 'DescribeDcdnsecService', 'DescribeDcdnUserConfigs', 'DescribeDcdnFullDomainsBlockIPConfig', 'DescribeDcdnFullDomainsBlockIPHistory', 'SetDcdnFullDomainsBlockIP', 'DescribeDcdnAclFields', 'DescribeDcdnDomainCcActivityLog', 'DescribeDcdnSecSpecInfo', 'DescribeHighlightInfo', 'DescribeDcdnWafBotAppKey', 'DescribeDdosAllEventList'], + 'type' => 'directory', 'title' => '安全监控', + 'id' => 20686, + ], + [ + 'children' => ['DescribeDcdnDdosService', 'DescribeDcdnDdosSpecInfo'], 'type' => 'directory', - 'children' => [ - 'DescribeDcdnUserSecDrop', - 'DescribeDcdnSecFuncInfo', - 'DescribeDcdnUserSecDropByMinute', - 'DescribeDcdnBlockedRegions', - 'DescribeDcdnsecService', - 'DescribeDcdnUserConfigs', - 'DescribeDcdnFullDomainsBlockIPConfig', - 'DescribeDcdnFullDomainsBlockIPHistory', - 'SetDcdnFullDomainsBlockIP', - 'DescribeDcdnAclFields', - 'DescribeDcdnDomainCcActivityLog', - 'DescribeDcdnSecSpecInfo', - 'DescribeHighlightInfo', - 'DescribeDcdnWafBotAppKey', - 'DescribeDdosAllEventList', - ], - ], - [ - 'id' => 392276, 'title' => 'DDos防护', - 'type' => 'directory', - 'children' => [ - 'DescribeDcdnDdosService', - 'DescribeDcdnDdosSpecInfo', - ], + 'id' => 20683, ], [ - 'id' => 392279, - 'title' => 'WAF防护', - 'type' => 'directory', 'children' => [ - 'DescribeDcdnWafDomain', - 'CreateDcdnWafPolicy', - 'BatchCreateDcdnWafRules', - 'ModifyDcdnWafRule', - 'BatchModifyDcdnWafRules', - 'BatchSetDcdnWafDomainConfigs', - 'ModifyDcdnWafPolicy', - 'ModifyDcdnWafPolicyDomains', - 'DeleteDcdnUserConfig', - 'DeleteDcdnWafPolicy', - 'BatchDeleteDcdnWafRules', - 'DescribeDcdnWafScenes', - 'DescribeDcdnWafDomains', - 'DescribeDcdnWafPolicyDomains', - 'DescribeDcdnWafPolicies', - 'DescribeDcdnWafPolicy', - 'DescribeDcdnWafDomainDetail', - 'DescribeDcdnWafRules', - 'ModifyDcdnWafGroup', - 'DescribeDcdnWafRule', - 'DescribeDcdnWafPolicyValidDomains', - 'DescribeDcdnWafFilterInfo', - 'DescribeDcdnWafSpecInfo', - 'DescribeDcdnWafService', - 'DescribeDcdnWafGeoInfo', - 'DescribeDcdnWafUsageData', - 'DescribeDcdnWafGroups', - 'DescribeDcdnWafGroup', - 'CreateDcdnWafGroup', - 'DeleteDcdnWafGroup', - 'DescribeDcdnWafDefaultRules', + 'DescribeDcdnWafDomain', 'CreateDcdnWafPolicy', 'BatchCreateDcdnWafRules', 'ModifyDcdnWafRule', 'BatchModifyDcdnWafRules', 'BatchSetDcdnWafDomainConfigs', 'ModifyDcdnWafPolicy', 'ModifyDcdnWafPolicyDomains', 'DeleteDcdnUserConfig', 'DeleteDcdnWafPolicy', 'BatchDeleteDcdnWafRules', 'DescribeDcdnWafScenes', 'DescribeDcdnWafDomains', 'DescribeDcdnWafPolicyDomains', 'DescribeDcdnWafPolicies', 'DescribeDcdnWafPolicy', 'DescribeDcdnWafDomainDetail', 'DescribeDcdnWafRules', 'ModifyDcdnWafGroup', 'DescribeDcdnWafRule', + 'DescribeDcdnWafPolicyValidDomains', 'DescribeDcdnWafFilterInfo', 'DescribeDcdnWafSpecInfo', 'DescribeDcdnWafService', 'DescribeDcdnWafGeoInfo', 'DescribeDcdnWafUsageData', 'DescribeDcdnWafGroups', 'DescribeDcdnWafGroup', 'CreateDcdnWafGroup', 'DeleteDcdnWafGroup', 'DescribeDcdnWafDefaultRules', ], + 'type' => 'directory', + 'title' => 'WAF防护', + 'id' => 20651, ], ], + 'type' => 'directory', + 'title' => '边缘安全防护', + 'id' => 20650, ], [ - 'id' => 392311, - 'title' => '工具管理', + 'children' => ['DescribeDcdnOriginSiteHealthStatus', 'DescribeDcdnUserVipsByDomain', 'DescribeDcdnIpInfo', 'DescribeDcdnL2Ips'], 'type' => 'directory', - 'children' => [ - 'DescribeDcdnOriginSiteHealthStatus', - 'DescribeDcdnUserVipsByDomain', - 'DescribeDcdnIpInfo', - 'DescribeDcdnL2Vips', - 'DescribeDcdnL2Ips', - ], + 'title' => '工具管理', + 'id' => 20707, ], ], 'components' => [ - 'schemas' => [ - 'WafQuotaBoolean' => [ - 'title' => 'a boolean', - 'type' => 'boolean', - ], - 'WafQuotaInteger' => [ - 'title' => 'a integer', - 'type' => 'object', - 'properties' => [ - 'Equal' => [ - 'title' => 'equal', - 'type' => 'integer', - 'format' => 'int32', - ], - 'GreaterThan' => [ - 'title' => 'greater than', - 'type' => 'integer', - 'format' => 'int32', - ], - 'GreaterThanOrEqual' => [ - 'title' => 'greater than or equal', - 'type' => 'integer', - 'format' => 'int32', - ], - 'LessThan' => [ - 'title' => 'less than', - 'type' => 'integer', - 'format' => 'int32', - ], - 'LessThanOrEqual' => [ - 'title' => 'less than or equal', - 'type' => 'integer', - 'format' => 'int32', - ], - ], - ], - 'WafQuotaString' => [ - 'title' => 'a string', - 'type' => 'object', - 'properties' => [ - 'Regexp' => [ - 'title' => 'regexp', - 'type' => 'string', - ], - ], - ], - ], + 'schemas' => [], ], 'apis' => [ - 'OpenDcdnService' => [ - 'summary' => '调用OpenDcdnService开通DCDN服务。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AddDcdnDomain' => [ + 'summary' => '调用AddDcdnDomain添加域名。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -532,303 +227,183 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111596', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZA9EPX', - ], + 'abilityTreeCode' => '111432', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'BillType', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '开通服务的计费类型。取值:'."\n" - ."\n" - .'- **PayByTraffic**:按流量计费'."\n" - .'- **PayByBandwidth**:按带宽峰值', - 'type' => 'string', - 'required' => true, - 'example' => 'PayByTraffic', - ], + 'schema' => ['description' => '待添加的加速域名,仅支持添加单个域名。'."\n" + ."\n" + .'支持添加泛域名,以点号(.)开头,例如.example.com。'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'WebsocketBillType', + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => '资源组ID。不传该参数时,系统自动补全默认资源组ID。'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-acfmyuji4b6r4**'], + ], + [ + 'name' => 'Sources', + 'in' => 'query', + 'schema' => ['description' => '回源地址列表。'."\n", 'type' => 'string', 'required' => false, 'example' => '[{"content":"10.10.10.10","type":"ipaddr","priority":"20","port":80}]'], + ], + [ + 'name' => 'CheckUrl', + 'in' => 'query', + 'schema' => ['description' => '健康检测URL。', 'type' => 'string', 'required' => false, 'example' => 'www.example.com/test.html'], + ], + [ + 'name' => 'Scope', + 'in' => 'query', + 'schema' => ['description' => '加速区域。取值:'."\n" + ."\n" + .'- **domestic**:仅中国内地。'."\n" + .'- **overseas**:全球(不包含中国内地)。'."\n" + .'- **global**:全球。'."\n" + ."\n" + .'默认取值为**domestic**。', 'type' => 'string', 'required' => false, 'example' => 'domestic'], + ], + [ + 'name' => 'TopLevelDomain', + 'in' => 'query', + 'schema' => ['description' => '顶级接入域。'."\n", 'type' => 'string', 'required' => false, 'example' => 'yourTopLevelDomain'], + ], + [ + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '开通服务的Websocket计费类型。取值:'."\n" - ."\n" - .'- **websockettraffic**:按流量计费'."\n" - .'- **websocketbps**:按带宽峰值', - 'type' => 'string', - 'required' => true, - 'example' => 'websockettraffic', - 'enum' => [ - 'websockettraffic', - 'websocketbps', + 'description' => '标签信息。最多20个标签。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签键。', 'type' => 'string', 'required' => false, 'example' => 'env'], + 'Value' => ['description' => '标签值。', 'type' => 'string', 'required' => false, 'example' => 'value'], + ], + 'required' => false, + 'description' => '', ], + 'required' => false, + 'maxItems' => 21, ], ], + [ + 'name' => 'FunctionType', + 'in' => 'query', + 'schema' => ['description' => '计算服务类型。取值:'."\n" + .'- **routine**:程序。'."\n" + .'- **image**:镜像。'."\n" + .'- **cloudFunction**:函数。', 'type' => 'string', 'required' => false, 'example' => 'routine'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '97C68796-EB7F-4D41-9D5B-12B909D76503', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '15C66C7B-671A-4297-9187-2C4477247A74'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'DcdnService.HasOpened', - 'errorMessage' => 'Your DCDN service has been activated.', - ], - [ - 'errorCode' => 'InvalidComponent', - 'errorMessage' => 'The specified value of parameter BillType is not valid.', - ], - [ - 'errorCode' => 'NoRealNameAuthentication', - 'errorMessage' => 'Real name authentication is needed.', - ], - [ - 'errorCode' => 'IncompleteInformation', - 'errorMessage' => 'Your information is incomplete. Complete your information before the operation.', - ], + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => '域名格式错误。'], + ['errorCode' => 'InvalidSource.Content.Malformed', 'errorMessage' => 'The specified Source Content is invalid.', 'description' => '源站信息错误,请重新填写。'], + ['errorCode' => 'MissingSource.Content', 'errorMessage' => 'The Source Content must be specified.', 'description' => 'Source Content必填,请填写后重试。'], + ['errorCode' => 'MissingSource.Type', 'errorMessage' => 'The Source Type must be specified.', 'description' => 'Source Type必填,请填写后重试。'], + ['errorCode' => 'InvalidSource.Type.Malformed', 'errorMessage' => 'The specified Source Type is invalid.', 'description' => 'Source Type格式错误,请重新填写。'], + ['errorCode' => 'InvalidSource.Priority.Malformed', 'errorMessage' => 'The specified Source Priority is invalid.', 'description' => 'Source Priority格式错误,请填写正确的格式。'], + ['errorCode' => 'InvalidScope.Malformed', 'errorMessage' => 'The specified Scope is invalid.', 'description' => 'Scope错误,请填写正确的Scope后重新请求。'], + ['errorCode' => 'SourceIp.Exceed', 'errorMessage' => 'The maximum number of back-to-origin IP addresses is exceeded.', 'description' => '回源IP个数超过限额。'], + ['errorCode' => 'InvalidCertificate', 'errorMessage' => 'The specified certificate format is invalid.', 'description' => 'Certificate格式错误,请填写正确的Certificate后重试。'], + ['errorCode' => 'InvalidCertificate.TooLong', 'errorMessage' => 'The maximum length of the certificate is exceeded.', 'description' => 'Certificate长度超过限制。'], + ['errorCode' => 'CheckSourceHealthFailed', 'errorMessage' => 'Error checking the security. Provide the valid origin site information.', 'description' => '源站检查失败,请提供正确的源站信息。'], + ['errorCode' => 'ExtensiveAndAllBothExist', 'errorMessage' => 'A wildcard domain name and a domain name with an all. prefix cannot be both specified.', 'description' => '泛域名与all.开头域名不能同时存在。'], + ['errorCode' => 'CdnTypeNotSupportExtensiveDomain', 'errorMessage' => 'Wildcard domain names are not supported.', 'description' => '不支持泛域名。'], + ['errorCode' => 'ExtensiveAndSpecificDomainConflict', 'errorMessage' => 'The wildcard domain name overlaps a domain name at the same level.', 'description' => '泛域名和同级精确域名互斥,请重新添加。'], + ['errorCode' => 'InvalidResourceGroupId.Malformed', 'errorMessage' => 'The specified ResourceGroupId is invalid.', 'description' => 'ResourceGroupId错误,请填写正确的ResourceGroupId。'], + ['errorCode' => 'DomainReserved', 'errorMessage' => 'The root domain of your domain is reserved by another account. Submit a ticket to contact customer support.', 'description' => '该域名的根域已经被其他账号占用,若需要新增提交工单处理。'], + ['errorCode' => 'InvalidDomainNameLevel', 'errorMessage' => 'The alicdn.com domain supports a maximum of three levels of domain.', 'description' => 'alicdn.com(针对泛域名)最多支持三级域名。'], + ['errorCode' => 'EntityNotExists.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => '该资源组不存在。'], + ['errorCode' => 'InvalidStatus.ResourceGroup', 'errorMessage' => 'The current status of the resource group does not support this operation.', 'description' => '资源组当前状态不允许进行此操作。'], + ['errorCode' => 'NotInternationRealIdentity', 'errorMessage' => 'Real-name registration is required for services offered in Mainland China.', 'description' => '根据中华人民共和国法律规定,在中国境内购买使用信息服务的用户需要进行实名登记。'], + ['errorCode' => 'TopLevelDomain.NotFound', 'errorMessage' => 'The specified TopLevelDomain does not exist.', 'description' => '顶级接入域不存在。'], + ['errorCode' => 'RecordCheckNotAvailable', 'errorMessage' => 'The ICP filing interface is unavailable. Please try again later.', 'description' => '备案接口不可用,请稍后重试。'], + ['errorCode' => 'IcpBlack', 'errorMessage' => 'The domain is on the ICP blacklist.', 'description' => '域名在工信部黑名单。'], + ['errorCode' => 'IspBlack', 'errorMessage' => 'The domain is on the ISP blacklist.', 'description' => '域名在阿里云黑名单。'], + ['errorCode' => 'InvalidCheckUrl.Malformed', 'errorMessage' => 'The specified CheckUrl is invalid.', 'description' => 'CheckUrl参数非法。'], + ['errorCode' => 'DomainOwnerVerifyFail', 'errorMessage' => 'Owner verification of the root domain failed.', 'description' => '当您首次将新域名添加至阿里云DCDN时,需按要求做域名归属权验证,当您按要求配置DNS解析或文件验证后,才能正常成功添加域名。'], + ['errorCode' => 'TopLevelDomain.Mismatch', 'errorMessage' => 'The specified TopLevelDomain does not match webSiteType.', 'description' => '顶级接入域和域名类型不匹配。'], + ['errorCode' => 'DomainInBlacklist', 'errorMessage' => 'The domain is in the blacklist.', 'description' => '该域名在黑名单中。'], + ['errorCode' => 'DomainOverLimit', 'errorMessage' => 'The maximum number of domains is exceeded.', 'description' => '域名已达上限。'], + ['errorCode' => 'SourceInBlacklist', 'errorMessage' => 'Source is in the blacklist.', 'description' => '源站在黑名单中。'], + ['errorCode' => 'InvalidTagKey', 'errorMessage' => 'The key should not be null, start with "acs:" or "aliyun", contain "http://" or "https://" or have special symbols:.!@#$%?/^&*)(+={}[]",\'<>~·`?;.', 'description' => ''], + ['errorCode' => 'InvalidTagValue', 'errorMessage' => 'The tag value cannot contain these special symbols:http://, https://', 'description' => ''], + ['errorCode' => 'ReservedTagKey', 'errorMessage' => 'The tag key is used internally as a reserved field and is not allowed to be used.', 'description' => ''], + ['errorCode' => 'InvalidFunctionType.Malformed', 'errorMessage' => 'The specified FunctionType is invalid.', 'description' => ''], + ['errorCode' => 'InvalidfunctionType.Malformed', 'errorMessage' => 'FunctionType is malformed.', 'description' => ''], + ['errorCode' => 'DomainInRiskList', 'errorMessage' => 'The domain you added may be at risk. If you have any questions, please submit a ticket.', 'description' => '您所添加的域名可能存在风险,如有任何疑问,请提交工单。'], + ['errorCode' => 'RegionNoResource', 'errorMessage' => 'Resource allocation failed. Please submit a work order to contact customer service.', 'description' => '资源分配失败,请提交工单联系客服。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"97C68796-EB7F-4D41-9D5B-12B909D76503\\"\\n}","errorExample":""},{"type":"xml","example":"<OpenDcdnServiceResponse>\\r\\n<RequestId>97C68796-EB7F-4D41-9D5B-12B909D76503</RequestId>\\r\\n</OpenDcdnServiceResponse>","errorExample":""}]', - 'title' => '开通DCDN服务', - 'description' => '>- 一个用户只能开通一次,且要求阿里云账号已通过实名认证。'."\n" - .'>- 单用户调用频率:5次/秒。', - 'requestParamsDescription' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A74\\"\\n}","errorExample":""},{"type":"xml","example":"<AddDcdnDomainResponse>\\r\\n\\t<RequestId>15C66C7B-671A-4297-9187-2C4477247A74</RequestId>\\r\\n</AddDcdnDomainResponse>","errorExample":""}]', + 'title' => '添加域名', + 'description' => '- 创建域名之前,您必须先开通DCDN服务。具体操作,请参见[OpenDcdnService](~~OpenDcdnService~~)。'."\n" + .'- 如果加速区域选择的是仅中国内地或者全球,则加速域名必须已完成备案。'."\n" + .'- 当您首次将新域名添加至阿里云DCDN时,需按要求做域名归属权验证。具体操作,请参见[VerifyDcdnDomainOwner](~~VerifyDcdnDomainOwner~~)。'."\n" + .'- 每次只能添加一个加速域名,每个用户默认最多可以添加50个域名,如果需要添加更多域名,您可以通过配额中心申请。'."\n" + .'- 每个用户每小时最多调用100次。', + 'requestParamsDescription' => 'Sources各字段含义如下所示。'."\n" + ."\n" + .'| 参数 | 类型 | 是否必选 | 描述 |'."\n" + .'|---------|-------|---------|--------|'."\n" + .'| type | String | 是 | 源站类型。ipaddr:IP源站;domain:域名源站;oss:OSS Bucket为源站。 |'."\n" + .'| content | String | 是 | 回源地址,可以是IP或域名。 |'."\n" + .'| port| Integer| 否 | 可以指定443、80端口,也可以自定义端口,默认值80。443是HTTPS协议回源。 |'."\n" + .'| priority | String | 否 | 源站地址对应的优先级,支持20和30,默认20。20是主源,30是备源。|'."\n" + .'| weight | String | 否 | 回源权重,100以内,默认10。|', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeUserDcdnStatus' => [ - 'summary' => '调用DescribeUserDcdnStatus查询全站加速是否欠费、是否可用。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2024-11-26T03:12:49.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2024-09-03T06:20:47.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2023-12-13T05:58:54.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2023-12-12T02:21:54.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2023-08-29T08:40:33.000Z', 'description' => '错误码发生变更、请求参数发生变更'], + ['createdAt' => '2023-01-04T01:50:23.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2022-11-24T06:47:17.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2022-10-27T06:04:10.000Z', 'description' => '错误码发生变更'], ], - 'security' => [ - [ - 'AK' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddDcdnDomain'], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '111578', - 'abilityTreeNodes' => [ - 'FEATUREdcdnTP4C37', - ], - 'tenantRelevance' => 'publicInformation', - ], - 'parameters' => [], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'InDebt' => [ - 'description' => '是否欠费。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'OnService' => [ - 'description' => '服务是否可用。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4F51E9C3-728F-4E35-952D-0ED87A06A8A1', - ], - 'InDebtOverdue' => [ - 'description' => '是否欠费超期。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Enabled' => [ - 'description' => '是否已开通全站加速服务。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"InDebt\\": false,\\n \\"OnService\\": true,\\n \\"RequestId\\": \\"4F51E9C3-728F-4E35-952D-0ED87A06A8A1\\",\\n \\"InDebtOverdue\\": false,\\n \\"Enabled\\": true\\n}","errorExample":""},{"type":"xml","example":"<DescribeUserDcdnStatusResponse>\\r\\n\\t<Enabled>true</Enabled>\\r\\n\\t<InDebtOverdue>false</InDebtOverdue>\\r\\n\\t<InDebt>false</InDebt>\\r\\n\\t<OnService>true</OnService>\\r\\n\\t<RequestId>4F51E9C3-728F-4E35-952D-0ED87A06A8A1</RequestId>\\r\\n</DescribeUserDcdnStatusResponse>\\r\\n\\t\\r\\n","errorExample":""}]', - 'title' => '查询DCDN服务是否可用', - 'description' => '> 单用户调用频率:30次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnService' => [ - 'summary' => '调用DescribeDcdnService查询DCDN服务状态。包括:当前计费类型、服务开通时间、下次生效的计费类型、当前业务状态等。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ + 'ramActions' => [ [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '111546', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZA9EPX', - ], - 'tenantRelevance' => 'publicInformation', - ], - 'parameters' => [], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'WebsocketChangingTime' => [ - 'description' => '与ChangingAffectTime值一样,Websocket变配生效时间,需要与当前时间比较,晚于当前时间才在前端显示。', - 'type' => 'string', - 'example' => '2018-03-19T11:16:11Z', - ], - 'WebsocketChangingType' => [ - 'description' => 'Websocket下次生效的计费类型,包括**websockettraffic**(流量)和**websocketbps**(带宽)。', - 'type' => 'string', - 'example' => 'websocketbps', - ], - 'ChangingAffectTime' => [ - 'description' => '下次生效时间,GMT时间。'."\n", - 'type' => 'string', - 'example' => '2018-03-31T16:00:00Z', - ], - 'ChangingChargeType' => [ - 'description' => '下次生效的计费类型。'."\n" - ."\n" - .'- **PayByTraffic**:流量。'."\n" - ."\n" - .'- **PayByBandwidth**:带宽。'."\n" - ."\n" - .'- **PayByBandwidth95**:月95。'."\n" - ."\n" - .'- **PayByBandwidth_monthavg**:月平均带宽。'."\n" - ."\n" - .'- **PayByBandwidth_month4th**:月第四峰值。'."\n" - ."\n" - .'- **PayByBandwidth_monthday95avg**:月平均95。'."\n" - ."\n" - .'- **PayByBandwidth_nighthalf95**:月95夜间减半。', - 'type' => 'string', - 'example' => 'PayByBandwidth', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'EF2AEBC2-EDBD-41CF-BF64-7E095D42D6EF', - ], - 'OpeningTime' => [ - 'description' => '开通服务时间,ISO 8601时间格式。', - 'type' => 'string', - 'example' => '2018-03-19T11:16:11Z', - ], - 'InternetChargeType' => [ - 'description' => '当前计费类型。'."\n" - ."\n" - .'- **PayByTraffic**:流量。'."\n" - ."\n" - .'- **PayByBandwidth**:带宽。'."\n" - ."\n" - .'- **PayByBandwidth95**:月95。'."\n" - ."\n" - .'- **PayByBandwidth_monthavg**:月平均带宽。'."\n" - ."\n" - .'- **PayByBandwidth_month4th**:月第四峰值。'."\n" - ."\n" - .'- **PayByBandwidth_monthday95avg**:月平均95。'."\n" - ."\n" - .'- **PayByBandwidth_nighthalf95**:月95夜间减半。', - 'type' => 'string', - 'example' => 'PayByTraffic', - ], - 'WebsocketType' => [ - 'description' => 'Websocket当前计费类型,包括**websockettraffic**(流量)和**websocketbps**(带宽)。', - 'type' => 'string', - 'example' => 'websocketbps', - ], - 'InstanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'FP-mkqgwxxxx', - ], - 'OperationLocks' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LockReason' => [ - 'description' => '业务锁定状态。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'LockReason' => [ - 'description' => '锁定原因。例如:financial(欠费)。', - 'type' => 'string', - 'example' => 'financial', - ], - ], - ], - ], - ], - ], + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:AddDcdnDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"WebsocketChangingTime\\": \\"2018-03-19T11:16:11Z\\",\\n \\"WebsocketChangingType\\": \\"websocketbps\\",\\n \\"ChangingAffectTime\\": \\"2018-03-31T16:00:00Z\\",\\n \\"ChangingChargeType\\": \\"PayByBandwidth\\",\\n \\"RequestId\\": \\"EF2AEBC2-EDBD-41CF-BF64-7E095D42D6EF\\",\\n \\"OpeningTime\\": \\"2018-03-19T11:16:11Z\\",\\n \\"InternetChargeType\\": \\"PayByTraffic\\",\\n \\"WebsocketType\\": \\"websocketbps\\",\\n \\"InstanceId\\": \\"FP-mkqgwxxxx\\",\\n \\"OperationLocks\\": {\\n \\"LockReason\\": [\\n {\\n \\"LockReason\\": \\"financial\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnServiceResponse>\\r\\n\\t<ChangingChargeType>PayByBandwidth</ChangingChargeType>\\r\\n\\t<OpeningTime>2018-03-19T11:16:11Z</OpeningTime>\\r\\n\\t<InstanceId>FP-mkqgwxxxx</InstanceId>\\r\\n\\t<RequestId>EF2AEBC2-EDBD-41CF-BF64-7E095D42D6EF</RequestId>\\r\\n\\t<ChangingAffectTime>2018-03-31T16:00:00Z</ChangingAffectTime>\\r\\n\\t<OperationLocks>\\r\\n\\t\\t<LockReason>\\r\\n\\t\\t\\t<LockReason>financial</LockReason>\\r\\n\\t\\t</LockReason>\\r\\n\\t</OperationLocks>\\r\\n\\t<InternetChargeType>PayByTraffic</InternetChargeType>\\r\\n</DescribeDcdnServiceResponse>\\r\\n\\t\\r\\n","errorExample":""}]', - 'title' => '获取DCDN服务状态', - 'description' => '> 单用户调用频率:30次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'AddDcdnDomain' => [ - 'summary' => '调用AddDcdnDomain添加域名。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AddDcdnIpaDomain' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -839,122 +414,58 @@ 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111432', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeCode' => '111433', + 'abilityTreeNodes' => ['FEATUREdcdn2E10XY'], 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '待添加的加速域名,仅支持添加单个域名。'."\n" - ."\n" - .'支持添加泛域名,以点号(.)开头,例如.example.com。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '需要接入全站加速IPA的域名。'."\n" + ."\n" + .'支持泛域名,以英文句号(.)开头,例如:.example.com。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。不传该参数时,系统自动补全默认资源组ID。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmyuji4b6r4**', - ], + 'schema' => ['description' => '资源组ID。不传该参数时,系统自动补全默认资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'rg'], ], [ 'name' => 'Sources', 'in' => 'query', - 'schema' => [ - 'description' => '回源地址列表。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '[{"content":"10.10.10.10","type":"ipaddr","priority":"20","port":80}]', - ], + 'schema' => ['description' => '回源地址列表。', 'type' => 'string', 'required' => true, 'example' => '[{"content":"10.10.10.10","type":"ipaddr","priority":"20","port":80,"weight":"15"}]'], ], [ 'name' => 'CheckUrl', 'in' => 'query', - 'schema' => [ - 'description' => '健康检测URL。', - 'type' => 'string', - 'required' => false, - 'example' => 'www.example.com/test.html', - ], + 'schema' => ['description' => '检测URL。', 'type' => 'string', 'required' => false, 'example' => 'example.com/image_01.png'], ], [ 'name' => 'Scope', 'in' => 'query', - 'schema' => [ - 'description' => '加速区域。取值:'."\n" - ."\n" - .'- **domestic**:仅中国内地。'."\n" - .'- **overseas**:全球(不包含中国内地)。'."\n" - .'- **global**:全球。'."\n" - ."\n" - .'默认取值为**domestic**。', - 'type' => 'string', - 'required' => false, - 'example' => 'domestic', - ], + 'schema' => ['description' => '加速区域。取值:'."\n" + ."\n" + .'- **domestic**:仅中国内地。'."\n" + ."\n" + .'- **overseas**:全球(不包含中国内地)。'."\n" + ."\n" + .'- **global**:全球。', 'type' => 'string', 'required' => false, 'example' => 'domestic'], ], [ 'name' => 'TopLevelDomain', 'in' => 'query', - 'schema' => [ - 'description' => '顶级接入域。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'yourTopLevelDomain', - ], - ], - [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '标签信息。最多20个标签。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键。', - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'Value' => [ - 'description' => '标签值。', - 'type' => 'string', - 'required' => false, - 'example' => 'value', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 21, - ], + 'schema' => ['description' => '顶级接入域。'."\n", 'type' => 'string', 'required' => false, 'example' => '*.com'], ], [ - 'name' => 'FunctionType', + 'name' => 'Protocol', 'in' => 'query', - 'schema' => [ - 'description' => '计算服务类型。取值:'."\n" - .'- **routine**:程序。'."\n" - .'- **image**:镜像。'."\n" - .'- **cloudFunction**:函数。', - 'type' => 'string', - 'required' => false, - 'example' => 'routine', - ], + 'schema' => ['description' => '协议名称。取值:'."\n" + ."\n" + .'- **udp**:UDP协议。'."\n" + .'- **tcp**:TCP协议。'."\n" + ."\n\n" + .'> 例如:`{"protocol":"udp"}`。', 'type' => 'string', 'required' => false, 'example' => '{"protocol":"udp"}'], ], ], 'responses' => [ @@ -962,197 +473,97 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '15C66C7B-671A-4297-9187-2C4477247A74', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidDomainName.Malformed', - 'errorMessage' => 'The specified DomainName is invalid.', - ], - [ - 'errorCode' => 'InvalidSource.Content.Malformed', - 'errorMessage' => 'The specified Source Content is invalid.', - ], - [ - 'errorCode' => 'MissingSource.Content', - 'errorMessage' => 'The Source Content must be specified.', - ], - [ - 'errorCode' => 'MissingSource.Type', - 'errorMessage' => 'The Source Type must be specified.', - ], - [ - 'errorCode' => 'InvalidSource.Type.Malformed', - 'errorMessage' => 'The specified Source Type is invalid.', - ], - [ - 'errorCode' => 'InvalidSource.Priority.Malformed', - 'errorMessage' => 'The specified Source Priority is invalid.', - ], - [ - 'errorCode' => 'InvalidScope.Malformed', - 'errorMessage' => 'The specified Scope is invalid.', - ], - [ - 'errorCode' => 'SourceIp.Exceed', - 'errorMessage' => 'The maximum number of back-to-origin IP addresses is exceeded.', - ], - [ - 'errorCode' => 'InvalidCertificate', - 'errorMessage' => 'The specified certificate format is invalid.', - ], - [ - 'errorCode' => 'InvalidCertificate.TooLong', - 'errorMessage' => 'The maximum length of the certificate is exceeded.', - ], - [ - 'errorCode' => 'CheckSourceHealthFailed', - 'errorMessage' => 'Error checking the security. Provide the valid origin site information.', - ], - [ - 'errorCode' => 'ExtensiveAndAllBothExist', - 'errorMessage' => 'A wildcard domain name and a domain name with an all. prefix cannot be both specified.', - ], - [ - 'errorCode' => 'CdnTypeNotSupportExtensiveDomain', - 'errorMessage' => 'Wildcard domain names are not supported.', - ], - [ - 'errorCode' => 'ExtensiveAndSpecificDomainConflict', - 'errorMessage' => 'The wildcard domain name overlaps a domain name at the same level.', - ], - [ - 'errorCode' => 'InvalidResourceGroupId.Malformed', - 'errorMessage' => 'The specified ResourceGroupId is invalid.', - ], - [ - 'errorCode' => 'DomainReserved', - 'errorMessage' => 'The root domain of your domain is reserved by another account. Submit a ticket to contact customer support.', - ], - [ - 'errorCode' => 'InvalidDomainNameLevel', - 'errorMessage' => 'The alicdn.com domain supports a maximum of three levels of domain.', - ], - [ - 'errorCode' => 'EntityNotExists.ResourceGroup', - 'errorMessage' => 'The resource group does not exist.', - ], - [ - 'errorCode' => 'InvalidStatus.ResourceGroup', - 'errorMessage' => 'The current status of the resource group does not support this operation.', - ], - [ - 'errorCode' => 'NotInternationRealIdentity', - 'errorMessage' => 'Real-name registration is required for services offered in Mainland China.', - ], - [ - 'errorCode' => 'TopLevelDomain.NotFound', - 'errorMessage' => 'The specified TopLevelDomain does not exist.', - ], - [ - 'errorCode' => 'RecordCheckNotAvailable', - 'errorMessage' => 'The ICP filing interface is unavailable. Please try again later.', - ], - [ - 'errorCode' => 'IcpBlack', - 'errorMessage' => 'The domain is on the ICP blacklist.', - ], - [ - 'errorCode' => 'IspBlack', - 'errorMessage' => 'The domain is on the ISP blacklist.', - ], - [ - 'errorCode' => 'InvalidCheckUrl.Malformed', - 'errorMessage' => 'The specified CheckUrl is invalid.', - ], - [ - 'errorCode' => 'DomainOwnerVerifyFail', - 'errorMessage' => 'Owner verification of the root domain failed.', - ], - [ - 'errorCode' => 'TopLevelDomain.Mismatch', - 'errorMessage' => 'The specified TopLevelDomain does not match webSiteType.', - ], - [ - 'errorCode' => 'DomainInBlacklist', - 'errorMessage' => 'The domain is in the blacklist.', - ], - [ - 'errorCode' => 'DomainOverLimit', - 'errorMessage' => 'The maximum number of domains is exceeded.', - ], - [ - 'errorCode' => 'SourceInBlacklist', - 'errorMessage' => 'Source is in the blacklist.', - ], - [ - 'errorCode' => 'InvalidTagKey', - 'errorMessage' => 'The key should not be null, start with "acs:" or "aliyun", contain "http://" or "https://" or have special symbols:.!@#$%?/^&*)(+={}[]",\'<>~·`?;.', - ], - [ - 'errorCode' => 'InvalidTagValue', - 'errorMessage' => 'The tag value cannot contain these special symbols:http://, https://', - ], - [ - 'errorCode' => 'ReservedTagKey', - 'errorMessage' => 'The tag key is used internally as a reserved field and is not allowed to be used.', - ], - [ - 'errorCode' => 'InvalidFunctionType.Malformed', - 'errorMessage' => 'The specified FunctionType is invalid.', - ], - [ - 'errorCode' => 'InvalidfunctionType.Malformed', - 'errorMessage' => 'FunctionType is malformed.', - ], - [ - 'errorCode' => 'DomainInRiskList', - 'errorMessage' => 'The domain you added may be at risk. If you have any questions, please submit a ticket.', - ], - [ - 'errorCode' => 'RegionNoResource', - 'errorMessage' => 'Resource allocation failed. Please submit a work order to contact customer service.', - ], + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => '域名格式错误。'], + ['errorCode' => 'InvalidSource.Content.Malformed', 'errorMessage' => 'The specified Source Content is invalid.', 'description' => '源站信息错误,请重新填写。'], + ['errorCode' => 'MissingSource.Content', 'errorMessage' => 'The Source Content must be specified.', 'description' => 'Source Content必填,请填写后重试。'], + ['errorCode' => 'MissingSource.Type', 'errorMessage' => 'The Source Type must be specified.', 'description' => 'Source Type必填,请填写后重试。'], + ['errorCode' => 'InvalidSource.Type.Malformed', 'errorMessage' => 'The specified Source Type is invalid.', 'description' => 'Source Type格式错误,请重新填写。'], + ['errorCode' => 'InvalidSource.Priority.Malformed', 'errorMessage' => 'The specified Source Priority is invalid.', 'description' => 'Source Priority格式错误,请填写正确的格式。'], + ['errorCode' => 'InvalidScope.Malformed', 'errorMessage' => 'The specified Scope is invalid.', 'description' => 'Scope错误,请填写正确的Scope后重新请求。'], + ['errorCode' => 'SourceIp.Exceed', 'errorMessage' => 'The maximum number of back-to-origin IP addresses is exceeded.', 'description' => '回源IP个数超过限额。'], + ['errorCode' => 'InvalidCertificate', 'errorMessage' => 'The specified certificate format is invalid.', 'description' => 'Certificate格式错误,请填写正确的Certificate后重试。'], + ['errorCode' => 'InvalidCertificate.TooLong', 'errorMessage' => 'The maximum length of the certificate is exceeded.', 'description' => 'Certificate长度超过限制。'], + ['errorCode' => 'CheckSourceHealthFailed', 'errorMessage' => 'Error checking the security. Provide the valid origin site information.', 'description' => '源站检查失败,请提供正确的源站信息。'], + ['errorCode' => 'ExtensiveAndAllBothExist', 'errorMessage' => 'A wildcard domain name and a domain name with an all. prefix cannot be both specified.', 'description' => '泛域名与all.开头域名不能同时存在。'], + ['errorCode' => 'CdnTypeNotSupportExtensiveDomain', 'errorMessage' => 'Wildcard domain names are not supported.', 'description' => '不支持泛域名。'], + ['errorCode' => 'ExtensiveAndSpecificDomainConflict', 'errorMessage' => 'The wildcard domain name overlaps a domain name at the same level.', 'description' => '泛域名和同级精确域名互斥,请重新添加。'], + ['errorCode' => 'InvalidResourceGroupId.Malformed', 'errorMessage' => 'The specified ResourceGroupId is invalid.', 'description' => 'ResourceGroupId错误,请填写正确的ResourceGroupId。'], + ['errorCode' => 'DomainReserved', 'errorMessage' => 'The root domain of your domain is reserved by another account. Submit a ticket to contact customer support.', 'description' => '该域名的根域已经被其他账号占用,若需要新增提交工单处理。'], + ['errorCode' => 'InvalidDomainNameLevel', 'errorMessage' => 'The alicdn.com domain supports a maximum of three levels of domain.', 'description' => 'alicdn.com(针对泛域名)最多支持三级域名。'], + ['errorCode' => 'TopLevelDomain.NotFound', 'errorMessage' => 'The specified TopLevelDomain does not exist.', 'description' => '顶级接入域不存在。'], + ['errorCode' => 'EntityNotExists.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => '该资源组不存在。'], + ['errorCode' => 'EntityNotExist.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => '该资源组不存在。'], + ['errorCode' => 'InvalidStatus.ResourceGroup', 'errorMessage' => 'The current status of the resource group does not support this operation.', 'description' => '资源组当前状态不允许进行此操作。'], + ['errorCode' => 'NotInternationRealIdentity', 'errorMessage' => 'Real-name registration is required for services offered in Mainland China.', 'description' => '根据中华人民共和国法律规定,在中国境内购买使用信息服务的用户需要进行实名登记。'], + ['errorCode' => 'InvalidSource.Port.Malformed', 'errorMessage' => 'The source port is empty, or it is outside the range 0-65535.', 'description' => '源站端口号为空,或者不在0-65535范围内。'], + ['errorCode' => 'RecordCheckNotAvailable', 'errorMessage' => 'The ICP filing interface is unavailable. Please try again later.', 'description' => '备案接口不可用,请稍后重试。'], + ['errorCode' => 'IcpBlack', 'errorMessage' => 'The domain is on the ICP blacklist.', 'description' => '域名在工信部黑名单。'], + ['errorCode' => 'IspBlack', 'errorMessage' => 'The domain is on the ISP blacklist.', 'description' => '域名在阿里云黑名单。'], + ['errorCode' => 'TopLevelDomain.Mismatch', 'errorMessage' => 'The specified TopLevelDomain does not match webSiteType.', 'description' => '顶级接入域和域名类型不匹配。'], + ['errorCode' => 'DomainOverLimit', 'errorMessage' => 'The maximum number of domains is exceeded.', 'description' => '域名已达上限。'], + ['errorCode' => 'DomainInRiskList', 'errorMessage' => 'The domain you added may be at risk. If you have any questions, please submit a ticket.', 'description' => '您所添加的域名可能存在风险,如有任何疑问,请提交工单。'], + ], + 403 => [ + ['errorCode' => 'DcdnIpaServiceNotFound', 'errorMessage' => 'The DCDN IPA service has not been activated.', 'description' => '没有开通DCDN IPA服务。'], + ], + [ + ['errorCode' => 'NoResource', 'errorMessage' => 'The required port has no resources, please submit a ticket.', 'description' => '所需端口没有资源,请提交工单。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A74\\"\\n}","errorExample":""},{"type":"xml","example":"<AddDcdnDomainResponse>\\r\\n\\t<RequestId>15C66C7B-671A-4297-9187-2C4477247A74</RequestId>\\r\\n</AddDcdnDomainResponse>","errorExample":""}]', - 'title' => '添加域名', - 'description' => '- 创建域名之前,您必须先开通DCDN服务。具体操作,请参见[OpenDcdnService](~~OpenDcdnService~~)。'."\n" - .'- 域名必须已成功备案。'."\n" - .'- 当您首次将新域名添加至阿里云DCDN时,需按要求做域名归属权验证。具体操作,请参见[VerifyDcdnDomainOwner](~~VerifyDcdnDomainOwner~~)。'."\n" - .'- 每次只能添加一个加速域名,每个用户最多可以添加50个域名。'."\n" - .'- 如果源站内容不在阿里云平台上,阿里云平台需要对内容进行审核,审核工作会在下一个工作日前完成。'."\n" - .'- 单用户调用频率:30次/秒。', - 'requestParamsDescription' => 'Sources各字段含义如下所示。'."\n" + 'title' => '添加IPA层应用加速域名', + 'summary' => '调用AddDcdnIpaDomain添加IPA层应用加速域名,一次只能提交一个加速域名。', + 'description' => '> '."\n" + .'> - 创建加速域名之前,必须先开通全站加速的IPA服务。'."\n" + .'> - 加速域名必须已经备案成功。'."\n" + .'> - 如果源站内容不在阿里云平台上,则需要审核,审核工作会在下一工作日前完成。'."\n" + .'> - 单用户调用频率:10次/秒。', + 'requestParamsDescription' => 'Sources各字段含义'."\n" ."\n" - .'| 参数 | 类型 | 是否必选 | 描述 |'."\n" - .'|---------|-------|---------|--------|'."\n" - .'| type | String | 是 | 源站类型。ipaddr:IP源站;domain:域名源站;oss:OSS Bucket为源站。 |'."\n" - .'| content | String | 是 | 回源地址,可以是IP或域名。 |'."\n" - .'| port| Integer| 否 | 可以指定443、80端口,也可以自定义端口,默认值80。443是HTTPS协议回源。 |'."\n" - .'| priority | String | 否 | 源站地址对应的优先级,支持20和30,默认20。20是主源,30是备源。|'."\n" - .'| weight | String | 否 | 回源权重,100以内,默认10。|', + .' | 参数 | 类型 | 是否必选 | 描述 |'."\n" + .'| -------- | ------- | ----- | ----------------------------------------------------------------- |'."\n" + .'| type | String | 是 | 源站类型。ipaddr:IP源站;domain:域名源站;oss:不支持oss。 |'."\n" + .'| content | String | 是 | 回源地址,可以是IP或域名。 |'."\n" + .'| port | Integer | 是 | 自定义端口,范围:0~65535。 |'."\n" + .'| priority | String | 否 | 源站地址对应的优先级,支持20和30,默认20。20是主源,30是备源。 |'."\n" + .'| weight | String | 否 | 回源权重,100以内,默认10。 |', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-09-03T06:20:47.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2024-04-09T01:37:08.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2022-10-26T21:53:07.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddDcdnIpaDomain'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:AddDcdnIpaDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","errorExample":""},{"type":"xml","example":"<AddDcdnIpaDomainResponse>\\n <RequestId>0AEDAF20-4DDF-4165-8750-47FF9C1929C9</RequestId>\\n</AddDcdnIpaDomainResponse>","errorExample":""}]', ], 'BatchAddDcdnDomain' => [ 'summary' => '调用BatchAddDcdnDomain批量添加域名。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1164,74 +575,42 @@ 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeCode' => '111435', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'DCDN加速域名,一个用户最多添加20个域名。多个域名使用半角逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com,example.org', - ], + 'schema' => ['description' => 'DCDN加速域名,一个用户最多添加20个域名。多个域名使用半角逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'example.com,example.org'], ], [ 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID,不传时,自动补全默认资源组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'testID', - ], + 'schema' => ['description' => '资源组ID,不传时,自动补全默认资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'testID'], ], [ 'name' => 'Sources', 'in' => 'query', - 'schema' => [ - 'description' => '回源地址列表。', - 'type' => 'string', - 'required' => true, - 'example' => '[{"content":"10.10.10.10","type":"ipaddr","priority":"20","port":80,"weight":"15"}]', - ], + 'schema' => ['description' => '回源地址列表。', 'type' => 'string', 'required' => true, 'example' => '[{"content":"10.10.10.10","type":"ipaddr","priority":"20","port":80,"weight":"15"}]'], ], [ 'name' => 'CheckUrl', 'in' => 'query', - 'schema' => [ - 'description' => '健康检测URL。', - 'type' => 'string', - 'required' => false, - 'example' => 'www.example.com/test.html', - ], + 'schema' => ['description' => '健康检测URL。', 'type' => 'string', 'required' => false, 'example' => 'www.example.com/test.html'], ], [ 'name' => 'Scope', 'in' => 'query', - 'schema' => [ - 'description' => '加速区域。取值:'."\n" - .'- domestic(默认值):仅中国内地。'."\n" - .'- overseas:全球(不包含中国内地)。'."\n" - .'- global:全球。', - 'type' => 'string', - 'required' => false, - 'example' => 'domestic', - ], + 'schema' => ['description' => '加速区域。取值:'."\n" + .'- domestic(默认值):仅中国内地。'."\n" + .'- overseas:全球(不包含中国内地)。'."\n" + .'- global:全球。', 'type' => 'string', 'required' => false, 'example' => 'domestic'], ], [ 'name' => 'TopLevelDomain', 'in' => 'query', - 'schema' => [ - 'description' => '顶级接入域。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '顶级接入域。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], ], 'responses' => [ @@ -1239,132 +618,50 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '15C66C7B-671A-4297-9187-2C4477247A74', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '15C66C7B-671A-4297-9187-2C4477247A74'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidDomainName.Malformed', - 'errorMessage' => 'The specified DomainName is invalid.', - ], - [ - 'errorCode' => 'InvalidSources.Malformed', - 'errorMessage' => 'The specified Sources is invalid.', - ], - [ - 'errorCode' => 'InvalidScope.Malformed', - 'errorMessage' => 'The specified Scope is invalid.', - ], - [ - 'errorCode' => 'InvalidSource.Priority.Malformed', - 'errorMessage' => 'The specified Source Priority is invalid.', - ], - [ - 'errorCode' => 'SourceIp.Exceed', - 'errorMessage' => 'The maximum number of back-to-origin IP addresses is exceeded.', - ], - [ - 'errorCode' => 'InvalidCertificate', - 'errorMessage' => 'The specified certificate format is invalid.', - ], - [ - 'errorCode' => 'InvalidCertificate.TooLong', - 'errorMessage' => 'The maximum length of the certificate is exceeded.', - ], - [ - 'errorCode' => 'CheckSourceHealthFailed', - 'errorMessage' => 'Error checking the security. Provide the valid origin site information.', - ], - [ - 'errorCode' => 'ExtensiveAndAllBothExist', - 'errorMessage' => 'A wildcard domain name and a domain name with an all. prefix cannot be both specified.', - ], - [ - 'errorCode' => 'CdnTypeNotSupportExtensiveDomain', - 'errorMessage' => 'Wildcard domain names are not supported.', - ], - [ - 'errorCode' => 'ExtensiveAndSpecificDomainConflict', - 'errorMessage' => 'The wildcard domain name overlaps a domain name at the same level.', - ], - [ - 'errorCode' => 'InvalidResourceGroupId.Malformed', - 'errorMessage' => 'The specified ResourceGroupId is invalid.', - ], - [ - 'errorCode' => 'DomainReserved', - 'errorMessage' => 'The root domain of your domain is reserved by another account. Submit a ticket to contact customer support.', - ], - [ - 'errorCode' => 'InvalidDomainNameLevel', - 'errorMessage' => 'The alicdn.com domain supports a maximum of three levels of domain.', - ], - [ - 'errorCode' => 'TopLevelDomain.NotFound', - 'errorMessage' => 'The specified TopLevelDomain does not exist.', - ], - [ - 'errorCode' => 'EntityNotExists.ResourceGroup', - 'errorMessage' => 'The resource group does not exist.', - ], - [ - 'errorCode' => 'EntityNotExist.ResourceGroup', - 'errorMessage' => 'The resource group does not exist.', - ], - [ - 'errorCode' => 'InvalidStatus.ResourceGroup', - 'errorMessage' => 'The current status of the resource group does not support this operation.', - ], - [ - 'errorCode' => 'NotInternationRealIdentity', - 'errorMessage' => 'Real-name registration is required for services offered in Mainland China.', - ], - [ - 'errorCode' => 'RecordCheckNotAvailable', - 'errorMessage' => 'The ICP filing interface is unavailable. Please try again later.', - ], - [ - 'errorCode' => 'IcpBlack', - 'errorMessage' => 'The domain is on the ICP blacklist.', - ], - [ - 'errorCode' => 'IspBlack', - 'errorMessage' => 'The domain is on the ISP blacklist.', - ], - [ - 'errorCode' => 'DomainOwnerVerifyFail', - 'errorMessage' => 'Owner verification of the root domain failed.', - ], - [ - 'errorCode' => 'TopLevelDomain.Mismatch', - 'errorMessage' => 'The specified TopLevelDomain does not match webSiteType.', - ], - [ - 'errorCode' => 'DomainOverLimit', - 'errorMessage' => 'The maximum number of domains is exceeded.', - ], - [ - 'errorCode' => 'DomainInRiskList', - 'errorMessage' => 'The domain you added may be at risk. If you have any questions, please submit a ticket.', - ], + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => '域名格式错误。'], + ['errorCode' => 'InvalidSources.Malformed', 'errorMessage' => 'The specified Sources is invalid.', 'description' => '参数Sources格式错误。可以是IP或域名;IP支持最多20个,以逗号区分,域名只能输入一个。IP与域名不能同时输入。'], + ['errorCode' => 'InvalidScope.Malformed', 'errorMessage' => 'The specified Scope is invalid.', 'description' => 'Scope错误,请填写正确的Scope后重新请求。'], + ['errorCode' => 'InvalidSource.Priority.Malformed', 'errorMessage' => 'The specified Source Priority is invalid.', 'description' => 'Source Priority格式错误,请填写正确的格式。'], + ['errorCode' => 'SourceIp.Exceed', 'errorMessage' => 'The maximum number of back-to-origin IP addresses is exceeded.', 'description' => '回源IP个数超过限额。'], + ['errorCode' => 'InvalidCertificate', 'errorMessage' => 'The specified certificate format is invalid.', 'description' => 'Certificate格式错误,请填写正确的Certificate后重试。'], + ['errorCode' => 'InvalidCertificate.TooLong', 'errorMessage' => 'The maximum length of the certificate is exceeded.', 'description' => 'Certificate长度超过限制。'], + ['errorCode' => 'CheckSourceHealthFailed', 'errorMessage' => 'Error checking the security. Provide the valid origin site information.', 'description' => '源站检查失败,请提供正确的源站信息。'], + ['errorCode' => 'ExtensiveAndAllBothExist', 'errorMessage' => 'A wildcard domain name and a domain name with an all. prefix cannot be both specified.', 'description' => '泛域名与all.开头域名不能同时存在。'], + ['errorCode' => 'CdnTypeNotSupportExtensiveDomain', 'errorMessage' => 'Wildcard domain names are not supported.', 'description' => '不支持泛域名。'], + ['errorCode' => 'ExtensiveAndSpecificDomainConflict', 'errorMessage' => 'The wildcard domain name overlaps a domain name at the same level.', 'description' => '泛域名和同级精确域名互斥,请重新添加。'], + ['errorCode' => 'InvalidResourceGroupId.Malformed', 'errorMessage' => 'The specified ResourceGroupId is invalid.', 'description' => 'ResourceGroupId错误,请填写正确的ResourceGroupId。'], + ['errorCode' => 'DomainReserved', 'errorMessage' => 'The root domain of your domain is reserved by another account. Submit a ticket to contact customer support.', 'description' => '该域名的根域已经被其他账号占用,若需要新增提交工单处理。'], + ['errorCode' => 'InvalidDomainNameLevel', 'errorMessage' => 'The alicdn.com domain supports a maximum of three levels of domain.', 'description' => 'alicdn.com(针对泛域名)最多支持三级域名。'], + ['errorCode' => 'TopLevelDomain.NotFound', 'errorMessage' => 'The specified TopLevelDomain does not exist.', 'description' => '顶级接入域不存在。'], + ['errorCode' => 'EntityNotExists.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => '该资源组不存在。'], + ['errorCode' => 'EntityNotExist.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => '该资源组不存在。'], + ['errorCode' => 'InvalidStatus.ResourceGroup', 'errorMessage' => 'The current status of the resource group does not support this operation.', 'description' => '资源组当前状态不允许进行此操作。'], + ['errorCode' => 'NotInternationRealIdentity', 'errorMessage' => 'Real-name registration is required for services offered in Mainland China.', 'description' => '根据中华人民共和国法律规定,在中国境内购买使用信息服务的用户需要进行实名登记。'], + ['errorCode' => 'RecordCheckNotAvailable', 'errorMessage' => 'The ICP filing interface is unavailable. Please try again later.', 'description' => '备案接口不可用,请稍后重试。'], + ['errorCode' => 'IcpBlack', 'errorMessage' => 'The domain is on the ICP blacklist.', 'description' => '域名在工信部黑名单。'], + ['errorCode' => 'IspBlack', 'errorMessage' => 'The domain is on the ISP blacklist.', 'description' => '域名在阿里云黑名单。'], + ['errorCode' => 'DomainOwnerVerifyFail', 'errorMessage' => 'Owner verification of the root domain failed.', 'description' => '当您首次将新域名添加至阿里云DCDN时,需按要求做域名归属权验证,当您按要求配置DNS解析或文件验证后,才能正常成功添加域名。'], + ['errorCode' => 'TopLevelDomain.Mismatch', 'errorMessage' => 'The specified TopLevelDomain does not match webSiteType.', 'description' => '顶级接入域和域名类型不匹配。'], + ['errorCode' => 'DomainOverLimit', 'errorMessage' => 'The maximum number of domains is exceeded.', 'description' => '域名已达上限。'], + ['errorCode' => 'DomainInRiskList', 'errorMessage' => 'The domain you added may be at risk. If you have any questions, please submit a ticket.', 'description' => '您所添加的域名可能存在风险,如有任何疑问,请提交工单。'], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A74\\"\\n}","errorExample":""},{"type":"xml","example":"<BatchAddDcdnDomainResponse>\\r\\n<RequestId>15C66C7B-671A-4297-9187-2C4477247A74</RequestId>\\r\\n</BatchAddDcdnDomainResponse>","errorExample":""}]', 'title' => '批量添加域名', 'description' => '**前提条件**:'."\n" .'- 创建加速域名之前,必须先[开通DCDN服务](~~64926~~)。'."\n" - .'- 加速域名已完成备案。'."\n" + .'- 如果加速区域选择的是仅中国内地或者全球,则加速域名必须已完成备案。'."\n" .'- 当您首次将新域名添加至阿里云DCDN时,需按要求做域名归属权验证。具体操作,请参见[VerifyDcdnDomainOwner](~~VerifyDcdnDomainOwner~~)。'."\n" - .'> - 源站内容,如果不在阿里云平台上,需要审核,审核工作会在下一工作日前完成。'."\n" - .'> - 单次配置的域名数量不超过50个。'."\n" - .'> - 单用户调用频率:30次/秒。', + .' - 每次只能添加一个加速域名,每个用户默认最多可以添加50个域名,如果需要添加更多域名,您可以通过配额中心申请。'."\n" + .' - 每个用户每小时最多调用100次。', 'requestParamsDescription' => ' Sources各字段含义如下所示:'."\n" ."\n" .'| 参数 | 类型 | 是否必选 | 描述 |'."\n" @@ -1376,17 +673,33 @@ .'| weight | String | 否 | 回源权重,100以内,默认值为10。|', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteDcdnDomain' => [ - 'summary' => '调用DeleteDcdnDomain删除已添加的加速域名。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2024-09-03T06:20:47.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2022-10-27T07:31:22.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchAddDcdnDomain'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:BatchAddDcdnDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + ], + 'BatchCreateDcdnWafRules' => [ + 'summary' => '调用BatchCreateDcdnWafRules设置WAF防护规则。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1394,23 +707,21 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeNodes' => ['FEATUREdcdnV3YEJ8'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '待删除的加速域名,仅支持删除单个域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'name' => 'PolicyId', + 'in' => 'formData', + 'schema' => ['description' => '防护策略ID。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1000001'], + ], + [ + 'name' => 'RuleConfigs', + 'in' => 'formData', + 'schema' => ['description' => '防护规则配置。', 'type' => 'string', 'required' => true, 'example' => '[{"name":"example","action":"monitor","conditions":[{"key":"URL","opValue":"match-one","values":"1,2,3,4,5"},{"key":"Header","opValue":"contain-one","subKey":"example_subkey","values":"6,7,8,9,10"}],"ratelimit":{"target":"header","interval":10,"threshold":5,"ttl":1800,"subKey":"example_subkey","status":{"code":"502","count":5}},"ccStatus":"on","effect":"rule","status":"on"}]'], ], ], 'responses' => [ @@ -1418,10 +729,16 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CB1A380B-09F0-41BB-280B-72F8FD6DA2FE'], + 'RuleIds' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RuleId' => [ + 'type' => 'array', + 'items' => ['description' => '创建的规则ID列表。', 'type' => 'string', 'example' => '100001,200002'], + ], + ], ], ], ], @@ -1429,132 +746,1496 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidDomainName.Malformed', - 'errorMessage' => 'The specified DomainName is invalid.', + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ['errorCode' => 'Policy.NotExist', 'errorMessage' => 'The specified policy does not exist.', 'description' => '指定的防护策略不存在。'], + ['errorCode' => 'RuleConfigs.Malformed', 'errorMessage' => 'The specified RuleConfigs format is invalid.', 'description' => '指定的参数RuleConfigs格式错误。'], + ['errorCode' => 'RuleName.AlreadyExists', 'errorMessage' => 'Rule name already exists in specified policy.', 'description' => '规则名称在指定的策略中已存在。'], + ['errorCode' => 'Rule.QuantityOverflow', 'errorMessage' => 'Rules are overflowed quantity in specified policy.', 'description' => '规则在指定的策略中超出配额。'], + ], + 403 => [ + ['errorCode' => '%s.NotSupport', 'errorMessage' => 'The specified resource type %s is not supported.', 'description' => '不支持指定的资源类型。如需使用该类型资源,请与我们联系。'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => '该资源的数量超出了配额所规定的范围,如需申请更多的额度,请与我们联系。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => '内部错误,请重试,如果多次重试报错请提交工单。'], + ], + ], + 'title' => '配置防护规则', + 'description' => '> 单用户调用频率:20次/秒。', + 'requestParamsDescription' => '## RuleConfigs取值说明'."\n" + ."\n" + .'- RuleConfigs为列表切片,其中每个结构体代表一条规则。'."\n" + .'- 根据PolicyId对应的防护策略类型不同,RuleConfigs的格式也不同。'."\n" + ."\n" + .'### 防护场景1:Web正则防护(waf_group)'."\n" + ."\n" + .'| 参数 | 类型 | 必要 | 示例值 | 描述 |'."\n" + .'| ------ | ------ | ---- | ------|-------------------- |'."\n" + .'| status | String | 否 | on|防护规则开关,取值:on(开启),off(关闭)。默认为on。 |'."\n" + .'| action | String | 是 | block|规则动作,取值:block(拦截),monitor(观察)。 |'."\n" + .'| wafGroupIds | String | 否 | 1012| WAF规则组ID,默认为"1012",多个ID使用半角逗号(,)分隔。 |'."\n" + ."\n" + .'waf_group配置示例:'."\n" + .'```'."\n" + .'// Web正则防护目前仅支持一条策略下配置一条规则。'."\n" + .'['."\n" + .' {'."\n" + .' "status": "on",'."\n" + .' "action": "block"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + ."\n" + .'### 防护场景2:自定义规则(custom_acl)'."\n" + ."\n" + .'| 名称 | 类型|是否必选| 示例值| 描述|'."\n" + .'|------|-----|--------|-------|-----|'."\n" + .'| name| string|是| acl_1| 防护规则名称,支持输入英文字符(大小写)、数字(0~9)及下划线(_),最大输入64个字符。|'."\n" + .'| status| string|否| on| 取值:on(开启),off(关闭)。默认为on。|'."\n" + .'| conditions|Condition|是| [ {"key": "URI", "subKey": "","opValue": "contain", "values": "/login.php" }]| 触发规则条件,具体参数请参考**表1 Condition参数说明**。|'."\n" + .'| ccStatus| string|是| off| 频次控制开关,on(开启),off(关闭)。|'."\n" + .'| rateLimit| RateLimit|否| { "target": "Header", "subKey": "User-Agent", "interval": 5, "threshold": 2, "ttl": 1800}| 具体的频次控制规则,当ccStatus为on时必填。具体参数请参考**表2 RateLimit参数说明**。|'."\n" + .'| effect| string|否| service| 频次控制黑名单的生效范围,当ccStatus为on时必填,取值:rule(当前规则生效),service(全局生效)。|'."\n" + .'| action| string|是| deny| 规则动作,取值:deny(拦截)、js(JS验证)、monitor(观察)。|'."\n" + ."\n" + .'表1 Condition参数说明'."\n" + ."\n" + .'| 名称 | 类型|是否必选| 示例值| 描述|'."\n" + .'|------|-----|--------|--------|-----|'."\n" + .'| Key| string|是| Query String Parameter| 匹配字段,具体请参考[DescribeDcdnWafFilterInfo](~~423285~~)。|'."\n" + .'| subKey| string|否| action| 匹配子字段,具体请参考[DescribeDcdnWafFilterInfo](~~423285~~)。|'."\n" + .'| opValue|String|是| eq| 逻辑符,具体请参考[DescribeDcdnWafFilterInfo](~~423285~~)。|'."\n" + .'| values|String|否| js| 匹配内容,多值使用英文逗号(,)分隔,具体值参考[DescribeDcdnWafFilterInfo](~~423285~~)。|'."\n" + ."\n" + .'表2 RateLimit参数说明'."\n" + ."\n" + .'| 名称 | 类型|是否必选| 示例值| 描述|'."\n" + .'|------|-----|---------|--------|-----|'."\n" + .'| target| string|是| Header|频次控制的统计字段,取值:IP:表示统计同一个IP发起请求的频率。Header:表示统计包含指定Header的请求的频率。Query String Parameter:表示统计包含指定参数的请求的频率。Cookie Name:表示统计包含指定Cookie的请求的频率。Session:表示统计来自同一个会话发起请求的频率。|'."\n" + .'| subKey| string|否| User-Agent|统一字段的子字段,当target为Header、Query String Parameter或Cookie Name时必填。|'."\n" + .'| Interval|Integer|是| 5| 统计时长。取值范围:5~1800。单位:秒。|'."\n" + .'| threshold|Integer|是| 2| 统计阈值。取值范围:2~500000。单位:次。|'."\n" + .'| ttl|Integer|是| 1800| 黑名单超时时间。取值范围:60~86400。单位:秒。|'."\n" + .'| status|RateLimitStatus|否| {"code": "404", "ratio": 10} | 响应码统计。具体参数请参考**表3 RateLimitStatus参数说明**。|'."\n" + ."\n" + .'表3 RateLimitStatus参数说明'."\n" + ."\n" + .'| 名称 | 类型|是否必选| 示例值| 描述|'."\n" + .'|------|-----|--------|-------|-----|'."\n" + .'| codet| string|是| 404|HTTP状态码。|'."\n" + .'|ratio| Integer|否| 10|按比例(%)统计。取值:1~100,与count字段二选一。|'."\n" + .'|count| Integer|否| 10|按数量统计。取值:2~50000,与ratio字段二选一。|'."\n" + ."\n" + .'custom_acl配置示例:'."\n" + .'```'."\n" + .'['."\n" + .' // 访问控制'."\n" + .' {'."\n" + .' "name": "acl_1",'."\n" + .' "status": "off",'."\n" + .' "conditions":'."\n" + .' ['."\n" + .' {'."\n" + .' "key": "Query String Parameter",'."\n" + .' "subKey": "action",'."\n" + .' "opValue": "eq",'."\n" + .' "values": "js"'."\n" + .' }'."\n" + .' ],'."\n" + .' "ccStatus": "off",'."\n" + .' "action": "js"'."\n" + .' },'."\n" + .' // 频次控制'."\n" + .' {'."\n" + .' "name": "cc_1",'."\n" + .' "status": "on",'."\n" + .' "conditions": '."\n" + .' ['."\n" + .' {'."\n" + .' "key": "URI",'."\n" + .' "subKey": "",'."\n" + .' "opValue": "contain",'."\n" + .' "values": "/login.php"'."\n" + .' },'."\n" + .' {'."\n" + .' "key": "IP",'."\n" + .' "subKey": "",'."\n" + .' "opValue": "ip-contain",'."\n" + .' "values": "192.168.0.1/24"'."\n" + .' }'."\n" + .' ],'."\n" + .' "ccStatus": "on",'."\n" + .' "ratelimit":'."\n" + .' {'."\n" + .' "target": "Header",'."\n" + .' "subKey": "User-Agent",'."\n" + .' "interval": 5,'."\n" + .' "threshold": 2,'."\n" + .' "ttl": 1800,'."\n" + .' "status":'."\n" + .' {'."\n" + .' "code": "404",'."\n" + .' "ratio": 10'."\n" + .' }'."\n" + .' },'."\n" + .' "effect": "service",'."\n" + .' "action": "deny"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + ."\n\n" + .'### 防护场景3:白名单(whitelist)'."\n" + ."\n" + .'| 名称 | 类型|是否必选| 示例值| 描述|'."\n" + .'|------|-----|---------|-------|----|'."\n" + .'| name| string|是| on| 防护规则名称,支持输入英文字符(大小写)、数字(0~9)及下划线(_),最大输入64个字符。|'."\n" + .'| status| string|否| on| 防护规则开关,取值:on(默认):开启。off:关闭。|'."\n" + .'| conditions| Condition|是| [{ "key": "Http-Method","subKey": "","opValue": "match-one", "values": "GET,POST,DELETE" }]| 触发规则的条件。具体参数请参考**表1 Condition参数说明**。|'."\n" + .'| tags| String|是| [ "waf\\_group", "custom\\_acl"]| 防护策略类型列表。|'."\n" + .'| regularTypes| String|否| [ [ "sqli", "xss","code_exec", "crlf", "lfilei", "rfilei", "webshell","vvip", "other"]| 正则规则类型,当tags中出现waf\\_group时,此值可填,可选值:["sqli", "xss", "code_exec", "crlf", "lfilei", "rfilei", "webshell", "vvip", "other"]。|'."\n" + .'| regularRules| String|否| [ "100001", "100002", "100003"]| 正则规则,当tags中出现waf\\_group时,此值可填,且与regularTypes只能出现一个,值为字符串格式的六位数字组成的列表。|'."\n" + ."\n" + .'whitelist配置示例:'."\n" + ."\n" + .'```'."\n" + .'['."\n" + .' // 跳过全部场景'."\n" + .' {'."\n" + .' "name": "wl_all",'."\n" + .' "status": "on",'."\n" + .' "conditions":'."\n" + .' ['."\n" + .' {'."\n" + .' "key": "Http-Method",'."\n" + .' "subKey": "",'."\n" + .' "opValue": "match-one",'."\n" + .' "values": "GET,POST,DELETE"'."\n" + .' }'."\n" + .' ],'."\n" + .' "tags":'."\n" + .' ['."\n" + .' "waf_group",'."\n" + .' "custom_acl",'."\n" + .' "ip_blacklist",'."\n" + .' "region_block"'."\n" + .' ]'."\n" + .' },'."\n" + .' // 跳过waf_group的指定规则id'."\n" + .' {'."\n" + .' "name": "wl_waf_id",'."\n" + .' "status": "off",'."\n" + .' "conditions":'."\n" + .' ['."\n" + .' {'."\n" + .' "key": "Cookie Name",'."\n" + .' "subKey": "cdn-sec",'."\n" + .' "opValue": "prefix-match",'."\n" + .' "values": "a7sdsa9dsa8d8sa"'."\n" + .' },'."\n" + .' {'."\n" + .' "key": "Referer",'."\n" + .' "subKey": "",'."\n" + .' "opValue": "none",'."\n" + .' "values": ""'."\n" + .' }'."\n" + .' ],'."\n" + .' "tags":'."\n" + .' ['."\n" + .' "waf_group"'."\n" + .' ],'."\n" + .' "regularRules":'."\n" + .' ['."\n" + .' "100001",'."\n" + .' "100002",'."\n" + .' "100003"'."\n" + .' ]'."\n" + .' },'."\n" + .' {'."\n" + .' // 跳过waf_group的指定规则类型'."\n" + .' "name": "wl_waf_type",'."\n" + .' "status": "on",'."\n" + .' "conditions":'."\n" + .' ['."\n" + .' {'."\n" + .' "key": "Query String",'."\n" + .' "subKey": "",'."\n" + .' "opValue": "exists",'."\n" + .' "values": ""'."\n" + .' }'."\n" + .' ],'."\n" + .' "tags":'."\n" + .' ['."\n" + .' "waf_group"'."\n" + .' ],'."\n" + .' "regularTypes":'."\n" + .' ['."\n" + .' "sqli",'."\n" + .' "xss",'."\n" + .' "code_exec",'."\n" + .' "crlf",'."\n" + .' "lfilei",'."\n" + .' "rfilei",'."\n" + .' "webshell",'."\n" + .' "vvip",'."\n" + .' "other"'."\n" + .' ]'."\n" + .' },'."\n" + .' // 跳过自定义规则'."\n" + .' {'."\n" + .' "name": "wl_custom_acl",'."\n" + .' "status": "on",'."\n" + .' "conditions":'."\n" + .' ['."\n" + .' {'."\n" + .' "key": "Http-Method",'."\n" + .' "subKey": "",'."\n" + .' "opValue": "match-one",'."\n" + .' "values": "GET,POST,DELETE"'."\n" + .' }'."\n" + .' ],'."\n" + .' "tags":'."\n" + .' ['."\n" + .' "custom_acl"'."\n" + .' ]'."\n" + .' },'."\n" + .' // 跳过IP黑名单'."\n" + .' {'."\n" + .' "name": "wl_ip_blacklist",'."\n" + .' "status": "on",'."\n" + .' "conditions":'."\n" + .' ['."\n" + .' {'."\n" + .' "key": "Http-Method",'."\n" + .' "subKey": "",'."\n" + .' "opValue": "match-one",'."\n" + .' "values": "GET,POST,DELETE"'."\n" + .' }'."\n" + .' ],'."\n" + .' "tags":'."\n" + .' ['."\n" + .' "ip_blacklist"'."\n" + .' ]'."\n" + .' },'."\n" + .' // 跳过区域封禁'."\n" + .' {'."\n" + .' "name": "wl_region_block",'."\n" + .' "status": "on",'."\n" + .' "conditions":'."\n" + .' ['."\n" + .' {'."\n" + .' "key": "Http-Method",'."\n" + .' "subKey": "",'."\n" + .' "opValue": "match-one",'."\n" + .' "values": "GET,POST,DELETE"'."\n" + .' }'."\n" + .' ],'."\n" + .' "tags":'."\n" + .' ['."\n" + .' "region_block"'."\n" + .' ]'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + .'### 防护场景4:IP黑名单(ip_blacklist)'."\n" + .'| 名称 | 类型|是否必选| 示例值| 描述|'."\n" + .'|------|-----|--------|-------|------|'."\n" + .'| name| string|是| ipblacklist|防护规则名称,支持输入英文字符(大小写)、数字(0~9)及下划线(_),最大输入64个字符。|'."\n" + .'|status|string|否| on|防护规则开关,取值:取值:on(开启),off(关闭)。默认为on。|'."\n" + .'|remoteAddr| []String|是| ["192.168.0.1","10.10.10.10/24","::1","abcd::abcd","BCDE::BCDE"]|按IP地址过滤,具体请参见[DescribeDcdnWafFilterInfo](~~423285~~)。|'."\n" + .'|action|string|是| deny|规则动作,取值:deny(拦截),monitor(观察)。|'."\n" + ."\n\n" + .'ipblacklist配置示例:'."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "name": "ipblacklist",'."\n" + .' "status": "on",'."\n" + .' "remoteAddr": ["192.168.0.1","10.10.10.10/24","::1","abcd::abcd","BCDE::BCDE"],'."\n" + .' "action": "deny"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + ."\n" + .'### 防护场景5:区域封禁(region_block)'."\n" + .'| 名称 | 类型|是否必选| 示例值| 描述|'."\n" + .'|------|-----|--------|-------|-----|'."\n" + .'| status| string|否| on|防护规则开关,取值:on(开启),off(关闭)。默认为on。|'."\n" + .'|cnRegionList|string| 否|110000,TW,MO|中国境内封禁区域,逗号分隔。支持封禁的地区请参见[DescribeDcdnWafGeoInfo](~~433207~~)。|'."\n" + .'|otherRegionList|string|否| JP,GB|中国境外封禁区域,逗号分隔。支持封禁的地区请参见[DescribeDcdnWafGeoInfo](~~433207~~)。|'."\n" + .'|action|string|是| deny|规则动作,取值:deny(拦截),monitor(观察)。|'."\n" + ."\n" + .'> cnRegionList和otherRegionList至少填写其中一个。'."\n" + ."\n" + .'region_block配置示例:'."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "status": "on",'."\n" + .' "cnRegionList": "110000,TW,MO",'."\n" + .' "otherRegionList": "JP,GB",'."\n" + .' "action": "deny"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + .'### 防护场景6:Bot管理(bot)'."\n" + .'**规则模板**'."\n" + ."\n" + .'所有的规则参数都是以下四个,具体值参见具体规则分类。'."\n" + .'| 参数 | 类型 | 必要 | 描述 |'."\n" + .'| ------ | ---------- | ---- | ---------------------------- |'."\n" + .'| type | String | 是 | 规则类型,参见具体规则分类。 |'."\n" + .'| status | String | 是 |规则状态,取值:on(开启),off(关闭)。|'."\n" + .'| config | TargetType | 否 | 规则配置,参见具体规则分类。 |'."\n" + .'| action | String | 否 |规则动作,参见具体规则分类。 |'."\n" + ."\n" + .'**规则分类一:防护目标类型**'."\n" + ."\n" + .'| 参数 | 类型 | 必要 | 示例值|描述 |'."\n" + .'| ------ | ---------- | ---- | ------|---------------------- |'."\n" + .'| type | String | 是 | target_type |规则类型,取值:target_type。 |'."\n" + .'| status | String | 是 |on| 规则开关,取值:on(开启)。|'."\n" + .'| config | TargetType | 否 | {"target":"app"}|规则配置。格式如下:<br>target:防护目标类型,必填。取值范围包含web(网页/浏览器)和app(APP)。 |'."\n" + .'| action | String | 否 |置空| 规则动作,此处不涉及,置为空值。 |'."\n" + ."\n" + .'防护目标类型配置示例:'."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type":"target_type",'."\n" + .' "status":"on",'."\n" + .' "config":{"target":"app"},'."\n" + .' "action":""'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + .'**规则分类二:Web SDK集成**'."\n" + ."\n" + .'| 参数 | 类型 | 必要 | 示例值 | 描述 |'."\n" + .'| ------ | ------ | ---- | ------|---------------------- |'."\n" + .'| type | String | 是 | web_sdk|规则类型,取值:web_sdk。 |'."\n" + .'| status | String | 是 | on|规则开关,取值:on(开启)。 |'."\n" + .'| config | WebSdk | 否 | {"mode":"automatic","crossDomain":"example.com"}|规则配置。格式如下:<br>mode :Web SDK集成方式,必填。取值范围包含automatic(自动集成)和manual(手动集成)。<br>crossDomain:跨域的域名调用,选填,仅当mode取值为automatic时生效。 |'."\n" + .'| action | String | 否 | 置空|规则动作,此处不涉及,置为空值。 |'."\n" + ."\n" + .'Web SDK集成配置示例:'."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type":"web_sdk",'."\n" + .' "status":"on",'."\n" + .' "config":{"mode":"automatic","crossDomain":"example.com"},'."\n" + .' "action":""'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + .'**规则分类三:防护目标特征**'."\n" + ."\n" + .'| 参数 | 类型 | 必要 | 示例值 | 描述 |'."\n" + .'| ------ | ---------- | ---- | -------|--------------------- |'."\n" + .'| type | String | 是 | traffic_feature|规则类型,取值:traffic_feature。 |'."\n" + .'| status | String | 是 | on|规则开关,取值:on(开启)。 |'."\n" + .'| config | TrafficFeature | 是 | {"conditions":[{"key":"Header","subKey":"User-Agent","opValue":"contain","values":"Chrome"},{"key":"IP","subKey":"","opValue":"ip-contain","values":"192.168.0.1/24"}]}|规则配置。具体请参见**condition**。 |'."\n" + .'| action | String | 否 |置空| 规则动作,此处不涉及,置为空值。 |'."\n" + ."\n" + .'**condition**(匹配条件)'."\n" + .'| 参数 | 类型 | 必要 | 示例值|描述 |'."\n" + .'| ------- | ------ | ---- | ------|----------------------- |'."\n" + .'| key | String | 是 | Header|匹配字段,具体值请参见[DescribeDcdnWafFilterInfo](~~423285~~)。 |'."\n" + .'| subKey | String | 否 | User-Agent|匹配子字段,具体值请参见[DescribeDcdnWafFilterInfo](~~423285~~)。 |'."\n" + .'| opValue | String | 是 | contain|操作符,具体值请参见[DescribeDcdnWafFilterInfo](~~423285~~)。 |'."\n" + .'| values | String | 否 | Chrome|匹配内容,多值使用英文逗号分隔,具体值请参见[DescribeDcdnWafFilterInfo](~~423285~~)。 |'."\n" + ."\n" + .'防护目标特征配置示例:'."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type":"traffic_feature",'."\n" + .' "status":"on",'."\n" + .' "config":{"conditions":[{"key":"Header","subKey":"User-Agent","opValue":"contain","values":"Chrome"},{"key":"IP","subKey":"","opValue":"ip-contain","values":"192.168.0.1/24"}]},'."\n" + .' "action":""'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + .'**规则分类四:合法Bot管理**'."\n" + ."\n" + .'| 参数 | 类型 | 必要 | 示例值|描述 |'."\n" + .'| ------ | -------------|------ | ---- | ------------------------------ |'."\n" + .'| type | String | 是 | intelligence_crawler|规则类型,取值:intelligence_crawler。|'."\n" + .'| status | String | 是 | on|规则开关,取值:on(开启)。 |'."\n" + .'| config | IntelligenceCrawler | 否 | {"name":"intelligence_crawler_baidu"}|规则配置。取值请参见**name(搜索引擎蜘蛛白名单)**。 |'."\n" + .'| action | String | 是 | bypass|规则动作,取值:bypass(放行)。 |'."\n" + ."\n" + .'**name(搜索引擎蜘蛛白名单)**'."\n" + .'| 参数值 | 含义 |'."\n" + .'| ----------------- | ------------------------ |'."\n" + .'| intelligence_crawler_all | 合法搜索引擎白名单(Google、Bing、百度、搜狗、360、Yandex) |'."\n" + .'| intelligence_crawler_baidu | 百度蜘蛛白名单 |'."\n" + .'| intelligence_crawler_sogou | 搜狗蜘蛛白名单 |'."\n" + .'| intelligence_crawler_360 |360蜘蛛白名单 |'."\n" + .'| intelligence_crawler_google |Google蜘蛛白名单 |'."\n" + .'| intelligence_crawler_bing |Bing蜘蛛白名单 |'."\n" + .'| intelligence_crawler_yandex |andex蜘蛛白名单 |'."\n" + ."\n" + .'合法Bot管理配置示例:'."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type":"intelligence_crawler",'."\n" + .' "status":"on",'."\n" + .' "config":{"name":"intelligence_crawler_baidu"},'."\n" + .' "action":"bypass"'."\n" + .' },'."\n" + .' {'."\n" + .' "type":"intelligence_crawler",'."\n" + .' "status":"on",'."\n" + .' "config":{"name":"intelligence_crawler_google"},'."\n" + .' "action":"bypass"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + .'**规则分类五:简单脚本过滤(JavaScript挑战)**'."\n" + ."\n" + .'| 参数 | 类型 | 必要 | 示例值|描述 |'."\n" + .'| ------ | ------ | ---- | ------|------------ |'."\n" + .'| type | String | 是 | js|规则类型,取值:js。 |'."\n" + .'| status | String | 是 | on|规则开关,取值:on(开启),off(关闭)。 |'."\n" + .'| config | Js | 否 |置空| 规则配置,此处不涉及,置为空值。 |'."\n" + .'| action | String | 是 | js|规则动作,取值:js(JS校验)。 |'."\n" + ."\n" + .'简单脚本过滤(JavaScript挑战)配置示例:'."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type":"js",'."\n" + .' "status":"on",'."\n" + .' "config":{},'."\n" + .' "action":"js"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + .'**规则分类六:高级Bot防御(动态令牌挑战)**'."\n" + ."\n" + .'| 参数 | 类型 | 必要 | 示例值|描述 |'."\n" + .'| ------ | ------ | ---- | -------|--------------------- |'."\n" + .'| type | String | 是 | sigchl|规则类型,取值:sigchl。 |'."\n" + .'| status | String | 是 | on|规则开关,取值:on(开启),off(关闭)。 |'."\n" + .'| config | Sigchl | 否 | {"sigchl":["sig","replay","driver"]}|规则配置,格式如下:<br>sigchl :请求数据签名验证,必填。取值范围包含sig(签名验证异常),replay(签名时间戳异常),driver(WebDriver攻击)。 |'."\n" + .'| action | String | 是 | sigchl|规则动作,取值:sigchl(拦截)。 |'."\n" + ."\n" + .'高级Bot防御(动态令牌挑战)配置示例:'."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type":"sigchl",'."\n" + .' "status":"on",'."\n" + .' "config":{"sigchl":["sig","replay","driver"]},'."\n" + .' "action":"sigchl"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + .'**规则分类七:AI智能防护**'."\n" + ."\n" + .'| 参数 | 类型 | 必要 | 示例值|描述 |'."\n" + .'| ------ | --------- | ---- | ------|----------------------------------- |'."\n" + .'| type | String | 是 | algorithm|规则类型,取值:algorithm。 |'."\n" + .'| status | String | 是 | on|规则开关,取值:on(开启),off(关闭)。 |'."\n" + .'| config | Algorithm | 否 | 置空|规则配置,此处不涉及,置为空值。 |'."\n" + .'| action | String | 是 |captcha| 规则动作,取值:monitor(观察),captcha(滑块校验)。 |'."\n" + ."\n" + .'AI智能防护配置示例:'."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type":"algorithm",'."\n" + .' "status":"on",'."\n" + .' "config":{},'."\n" + .' "action":"captcha"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + .' **规则分类八:IP限速**'."\n" + ."\n" + .'| 参数 | 类型 | 必要 | 示例值|描述 |'."\n" + .'| ------ | ---------- | ---- | ---------------|-------------- |'."\n" + .'| type | String | 是 | custom_cc_ip|规则类型,取值:custom_cc_ip。 |'."\n" + .'| status | String | 是 | on|规则开关,取值:on(开启),off(关闭)。 |'."\n" + .'| config | CustomCcIp | 是 | {"interval":20,"target":"IP","threshold":50,"ttl":2800}|规则配置,具体请参见**IP限速config参数说明** 。 |'."\n" + .'| action | String | 是 | monitor|规则动作,deny(拦截),monitor(观察),captcha(滑块,仅涉及Web) 。|'."\n" + ."\n" + .'**IP限速config参数说明**'."\n" + ."\n" + .'| 参数 | 类型 | 必要 |示例值| 描述 |'."\n" + .'| --------- | ------- | ---- | -----|------------------------ |'."\n" + .'| target | String | 是 | IP|频次控制的统计字段,取值:IP。 |'."\n" + .'| subKey | String | 否 | 置空|统一字段的子字段,此处不涉及,置为空值。 |'."\n" + .'| Interval | Integer | 是 | 20|统计时长,取值:5~1800,单位:秒。 |'."\n" + .'| threshold | Integer | 是 | 50|统计阈值,取值:2~50000,单位:次。 |'."\n" + .'| ttl | Integer | 是 | 2800|黑名单超时时间,取值:60~86400,单位:秒。 |'."\n" + ."\n" + .'IP限速配置示例:'."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type":"custom_cc_ip",'."\n" + .' "status":"on",'."\n" + .' "config":{"interval":20,"target":"IP","threshold":50,"ttl":2800},'."\n" + .' "action":"monitor"'."\n" + .' },'."\n" + .' {'."\n" + .' "type":"custom_cc_ip",'."\n" + .' "status":"on",'."\n" + .' "config":{"interval":10,"target":"IP","threshold":30,"ttl":1800},'."\n" + .' "action":"monitor"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + .'**规则分类九:设备限速**'."\n" + ."\n" + .'| 参数 | 类型 | 必要 | 示例值|描述 |'."\n" + .'| ------ | ----------- | ---- | ----|------------------------------ |'."\n" + .'| type | String | 是 | custom_cc_dev|规则类型,取值:custom_cc_dev。 |'."\n" + .'| status | String | 是 | on|规则开关,取值:on(开启),off(关闭)。 |'."\n" + .'| config | CustomCcDev | 是 |{"interval":20,"target":"Header","subKey":"aliwaf_wxbb_umid","threshold":50,"ttl":2800}| 配置规则,具体请参见**设备限速config参数说明** 。 |'."\n" + .'| action | String | 是 |monitor| 规则动作,deny(拦截),monitor(观察)。 |'."\n" + ."\n" + .'**设备限速config参数说明**'."\n" + ."\n" + .'| 参数 | 类型 | 必要 |示例值| 描述 |'."\n" + .'| --------- | ------- | ---- | ----|------------------------- |'."\n" + .'| target | String | 是 | Header|频次控制的统计字段,取值:Header。 |'."\n" + .'| subKey | String | 否 | aliwaf_wxbb_umid|统一字段的子字段,取值:aliwaf_wxbb_umid。 |'."\n" + .'| Interval | Integer | 是 | 20|统计时长,取值:5~1800,单位:秒。 |'."\n" + .'| threshold | Integer | 是 | 50|统计阈值,取值:2~50000,单位:次。 |'."\n" + .'| ttl | Integer | 是 | 2800|黑名单超时时间,取值:60~86400,单位:秒。 |'."\n" + ."\n" + .'设备限速配置示例:'."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type":"custom_cc_dev",'."\n" + .' "status":"on",'."\n" + .' "config":{"interval":20,"target":"Header","subKey":"aliwaf_wxbb_umid","threshold":50,"ttl":2800},'."\n" + .' "action":"monitor"'."\n" + .' },'."\n" + .' {'."\n" + .' "type":"custom_cc_dev",'."\n" + .' "status":"on",'."\n" + .' "config":{"interval":20,"target":"Header","subKey":"aliwaf_wxbb_umid","threshold":50,"ttl":2800},'."\n" + .' "action":"deny"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + .'**规则分类十:自定义会话限速**'."\n" + ."\n" + .'| 参数 | 类型 | 必要 | 示例值|描述 |'."\n" + .'| ------ | ---------- | ---- | ----|----------------- |'."\n" + .'| type | String | 是 | custom_cc|规则类型,取值:custom_cc。 |'."\n" + .'| status | String | 是 | on|规则开关,取值:on(开启),off(关闭)。 |'."\n" + .'| config | CustomCcIp | 是 | {"interval":10,"target":"Query String Parameter","subKey":"arg","threshold":30,"ttl":1800}|规则配置,具体请参见**自定义会话限速config参数说明** 。 |'."\n" + .'| action | String | 是 | monitor|规则动作,deny(拦截),monitor(观察),captcha(滑块,仅涉及Web) 。|'."\n" + ."\n" + .'**自定义会话限速config参数说明**'."\n" + .'| 参数 | 类型 | 必要 |示例值| 描述 |'."\n" + .'| --------- | ------- | ---- | ---|-------------------------- |'."\n" + .'| target | String | 是 | Query String Parameter|频次控制的统计字段,取值:Header(表示统计包含指定Header的请求的频率),Query String Parameter(表示统计包含指定参数的请求的频率),Cookie Name(表示统计包含指定Cookie的请求的频率)和Session(表示统计来自同一个会话发起请求的频率)。 |'."\n" + .'| subKey | String | 否 | arg|统一字段的子字段,用户自定义。 |'."\n" + .'| Interval | Integer | 是 | 10|统计时长,取值:5~1800,单位:秒。 |'."\n" + .'| threshold | Integer | 是 | 30|统计阈值,取值:2~50000,单位:次。 |'."\n" + .'| ttl | Integer | 是 | 2800|黑名单超时时间,取值:60~86400,单位:秒。 |'."\n" + ."\n" + .'自定义会话限速配置示例:'."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type":"custom_cc",'."\n" + .' "status":"on",'."\n" + .' "config":{"interval":10,"target":"Query String Parameter","subKey":"arg","threshold":30,"ttl":1800},'."\n" + .' "action":"deny"'."\n" + .' },'."\n" + .' {'."\n" + .' "type":"custom_cc",'."\n" + .' "status":"on",'."\n" + .' "config":{"interval":10,"target":"Query String Parameter","subKey":"arg","threshold":30,"ttl":1800},'."\n" + .' "action":"captcha"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + .'**规则分类十一:爬虫威胁情报库**'."\n" + ."\n" + .'| 参数 | 类型 | 必要 | 示例值|描述 |'."\n" + .'| ------ | ------------ | ---- | -----|------------------------------------ |'."\n" + .'| type | String | 是 | intelligence|规则类型,取值:intelligence。 |'."\n" + .'| status | String | 是 | on|规则开关,取值:on(开启),off(关闭)。 |'."\n" + .'| config | Intelligence | 否 |置空| 规则配置,此处不涉及,置为空值。 |'."\n" + .'| action | String | 是 |captcha| 规则动作,取值:monitor(观察),captcha(滑块校验)。 |'."\n" + ."\n" + .'爬虫威胁情报库配置示例:'."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type":"intelligence",'."\n" + .' "status":"on",'."\n" + .' "config":{},'."\n" + .' "action":"captcha"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + ."\n" + .'**规则分类十二:IDC黑名单封禁**'."\n" + ."\n" + .'| 参数 | 类型 | 必要 | 示例值|描述 |'."\n" + .'| ------ | ----------- | ---- | -------|------------------------------ |'."\n" + .'| type | String | 是 |intelligence_idc |规则类型,取值:intelligence_idc。 |'."\n" + .'| status | String | 是 |on| 规则开关,取值:on(开启),off(关闭)。 |'."\n" + .'| config | IntelligenceIdc | 是 |{"name":"intelligence_idc_alibaba"}| 规则配置,取值请参见**name参数说明**。 |'."\n" + .'| action | String | 是 |captcha| 规则动作,取值:deny(拦截),monitor(观察),captcha(滑块校验)。 |'."\n" + ."\n" + .'**name参数说明**'."\n" + ."\n" + .'| 参数值 | 含义 |'."\n" + .'| ----------------- | ------------------------ |'."\n" + .'| intelligence_idc_alibaba | IDC IP库-阿里云 |'."\n" + .'| intelligence_idc_tencent | IDC IP库-腾讯云 |'."\n" + .'| intelligence_idc_mtyun | IDC IP库-美团云 |'."\n" + .'| intelligence_idc_vnet |IDC IP库-世纪互联 |'."\n" + .'| intelligence_idc_other |IDC IP库-其他 |'."\n" + ."\n" + .'IDC黑名单封禁配置示例:'."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type":"intelligence_idc",'."\n" + .' "status":"on",'."\n" + .' "config":{"name":"intelligence_idc_alibaba"},'."\n" + .' "action":"captcha"'."\n" + .' },'."\n" + .' {'."\n" + .' "type":"intelligence_idc",'."\n" + .' "status":"on",'."\n" + .' "config":{"name":"intelligence_idc_tencent"},'."\n" + .' "action":"captcha"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + .'**规则分类十三:伪造蜘蛛拦截**'."\n" + ."\n" + .'| 参数 | 类型 | 必要 |示例值| 描述 |'."\n" + .'| ------ | ---------------|-------- | ---- | --------- |'."\n" + .'| type | String | 是 |intelligence_fake_crawler| 规则类型,取值:intelligence_fake_crawler。 |'."\n" + .'| status | String | 是 |on| 规则开关,取值:on(开启),off(关闭)。 |'."\n" + .'| config | IntelligenceFakeCrawler | 否 |置空| 规则配置,此处不涉及,置为空值。 |'."\n" + .'| action | String | 是 |deny| 规则动作,取值:deny(拦截)。 |'."\n" + ."\n" + .'伪造蜘蛛拦截配置示例:'."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type": "intelligence_fake_crawler",'."\n" + .' "status": "on",'."\n" + .' "config":{},'."\n" + .' "action": "deny"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + .'**规则分类十四:Bot特征识别**'."\n" + ."\n" + .'| 参数 | 类型 | 必要 |示例值| 描述 |'."\n" + .'| ------ | ------ | ---- | -----|----------------------------- |'."\n" + .'| type | String | 是 |app_sdk| 规则类型,取值:app_sdk。 |'."\n" + .'| status | String | 是 |on| 规则开关,取值:on(开启)。 |'."\n" + .'| config | AppSdk | 是 |{"featureAbnormal":["simulator","proxy","root","debugged","hook","virtual","antiReplay","signInvalid"],"customSignStatus":"on","customSign":{"key":"header","value":"ua"}}| 规则配置,具体请参见**Bot特征识别config参数说明** 。 |'."\n" + .'| action | String | 是 |monitor| 规则动作,取值:deny(拦截),monitor(观察)。 |'."\n" + ."\n" + .'**Bot特征识别config参数说明**'."\n" + .'| 参数 | 类型 | 必要|示例值 | 描述 |'."\n" + .'| ------------ | ------- | ---- | -------|---------------------------------- |'."\n" + .'| featureAbnormal | []String | 是 | simulator|signInvalid:APP签名异常。<br>antiReplay:签名过期。<br>simulator:使用模拟器<br>proxy:使用代理<br>root:Root设备<br>debugged:调试模式。<br>hook:APP被hook。<br>virtual :APP多开。 |'."\n" + .'| customSignStatus | String | 否 |on| 自定义加签字段开关,取值:on(开启),off(关闭)。 |'."\n" + .'| customSign | CustomSign | 否 |{"key":"header","value":"ua"}| 自定义加签字段,格式如下: <br> key :字段名,必填。取值为header、arg、cookie。 <br> value:字段值,必填。 |'."\n" + ."\n" + .'Bot特征识别配置示例:'."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type": "app_sdk",'."\n" + .' "status": "on",'."\n" + .' "config": {"featureAbnormal":["simulator","proxy","root","debugged","hook","virtual","antiReplay","signInvalid"],"customSignStatus":"on","customSign":{"key":"header","value":"ua"}},'."\n" + .' "action": "monitor"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + .'**规则分类十五:高级防护(二次打包检测)**'."\n" + ."\n" + .'| 参数 | 类型 | 必要 |示例值| 描述 |'."\n" + .'| ------ | ---------- | ---- | ----|------------------------------ |'."\n" + .'| type | String | 是 |app_package| 规则类型,取值:app_package。 |'."\n" + .'| status | String | 是 |on| 规则开关,取值:on(开启)。 |'."\n" + .'| config | AppPackage | 否 |{"packageSigns":[{"name":"aaaaa","sign":"bbbb"},{"name":"cccc","sign":"dddd"}]}| 规则配置,具体请参见**packageSigns参数说明**。|'."\n" + .'| action | String | 是 | monitor| 规则动作,取值:deny(拦截),monitor(观察)。|'."\n" + ."\n" + .'**packageSigns参数说明**'."\n" + .'| 参数 | 类型 | 必要 |示例值| 描述 |'."\n" + .'| ---- | ------ | ---- | ------|------ |'."\n" + .'| name | String | 是 |aaaaa| 指定合法包名。 |'."\n" + .'| sign | String | 否 |bbbb| 包签名。 |'."\n" + ."\n" + .'高级防护(二次打包检测)配置示例:'."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type": "app_package",'."\n" + .' "status": "on",'."\n" + .' "config": {"packageSigns":[{"name":"aaaaa","sign":"bbbb"},{"name":"cccc","sign":"dddd"}]},'."\n" + .' "action": "deny"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + .'**Bot管理网页/浏览器防护组合参数配置示例**'."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type": "target_type",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {'."\n" + .' "target": "web"'."\n" + .' },'."\n" + .' "action": ""'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "web_sdk",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {'."\n" + .' "mode": "automatic",'."\n" + .' "crossDomain": "example.com"'."\n" + .' },'."\n" + .' "action": ""'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "traffic_feature",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {'."\n" + .' "conditions":'."\n" + .' ['."\n" + .' {'."\n" + .' "key": "Header",'."\n" + .' "subKey": "User-Agent",'."\n" + .' "opValue": "contain",'."\n" + .' "values": "Chrome"'."\n" + .' },'."\n" + .' {'."\n" + .' "key": "IP",'."\n" + .' "subKey": "",'."\n" + .' "opValue": "ip-contain",'."\n" + .' "values": "192.168.0.1/24"'."\n" + .' }'."\n" + .' ]'."\n" + .' },'."\n" + .' "action": ""'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "intelligence_crawler",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {'."\n" + .' "name": "intelligence_crawler_baidu"'."\n" + .' },'."\n" + .' "action": "bypass"'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "intelligence_crawler",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {'."\n" + .' "name": "intelligence_crawler_google"'."\n" + .' },'."\n" + .' "action": "bypass"'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "js",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {},'."\n" + .' "action": "js"'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "sigchl",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {'."\n" + .' "sigchl":'."\n" + .' ['."\n" + .' "sig",'."\n" + .' "replay",'."\n" + .' "driver"'."\n" + .' ]'."\n" + .' },'."\n" + .' "action": "sigchl"'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "algorithm",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {},'."\n" + .' "action": "captcha"'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "custom_cc_ip",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {'."\n" + .' "interval": 20,'."\n" + .' "target": "IP",'."\n" + .' "threshold": 50,'."\n" + .' "ttl": 2800'."\n" + .' },'."\n" + .' "action": "monitor"'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "custom_cc_ip",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {'."\n" + .' "interval": 10,'."\n" + .' "target": "IP",'."\n" + .' "threshold": 30,'."\n" + .' "ttl": 1800'."\n" + .' },'."\n" + .' "action": "monitor"'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "custom_cc",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {'."\n" + .' "interval": 10,'."\n" + .' "target": "Query String Parameter",'."\n" + .' "subKey": "arg",'."\n" + .' "threshold": 30,'."\n" + .' "ttl": 1800'."\n" + .' },'."\n" + .' "action": "deny"'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "custom_cc",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {'."\n" + .' "interval": 10,'."\n" + .' "target": "Query String Parameter",'."\n" + .' "subKey": "arg",'."\n" + .' "threshold": 30,'."\n" + .' "ttl": 1800'."\n" + .' },'."\n" + .' "action": "captcha"'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "intelligence",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {},'."\n" + .' "action": "captcha"'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "intelligence_idc",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {'."\n" + .' "name": "intelligence_idc_alibaba"'."\n" + .' },'."\n" + .' "action": "captcha"'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "intelligence_idc",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {'."\n" + .' "name": "intelligence_idc_tencent"'."\n" + .' },'."\n" + .' "action": "captcha"'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "intelligence_fake_crawler",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {},'."\n" + .' "action": "deny"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + .'**Bot管理APP防护组合参数配置示例**'."\n" + .'```json'."\n" + .'['."\n" + .' {'."\n" + .' "type": "target_type",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {'."\n" + .' "target": "app"'."\n" + .' },'."\n" + .' "action": ""'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "traffic_feature",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {'."\n" + .' "conditions":'."\n" + .' ['."\n" + .' {'."\n" + .' "key": "Header",'."\n" + .' "subKey": "User-Agent",'."\n" + .' "opValue": "contain",'."\n" + .' "values": "Chrome"'."\n" + .' },'."\n" + .' {'."\n" + .' "key": "IP",'."\n" + .' "subKey": "",'."\n" + .' "opValue": "ip-contain",'."\n" + .' "values": "192.168.0.1/24"'."\n" + .' }'."\n" + .' ]'."\n" + .' },'."\n" + .' "action": ""'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "custom_cc_ip",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {'."\n" + .' "interval": 20,'."\n" + .' "target": "IP",'."\n" + .' "threshold": 50,'."\n" + .' "ttl": 2800'."\n" + .' },'."\n" + .' "action": "monitor"'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "custom_cc_ip",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {'."\n" + .' "interval": 10,'."\n" + .' "target": "IP",'."\n" + .' "threshold": 30,'."\n" + .' "ttl": 1800'."\n" + .' },'."\n" + .' "action": "monitor"'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "custom_cc_dev",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {'."\n" + .' "interval": 20,'."\n" + .' "target": "Header",'."\n" + .' "subKey": "aliwaf_wxbb_umid",'."\n" + .' "threshold": 50,'."\n" + .' "ttl": 2800'."\n" + .' },'."\n" + .' "action": "monitor"'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "custom_cc_dev",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {'."\n" + .' "interval": 20,'."\n" + .' "target": "Header",'."\n" + .' "subKey": "aliwaf_wxbb_umid",'."\n" + .' "threshold": 50,'."\n" + .' "ttl": 2800'."\n" + .' },'."\n" + .' "action": "deny"'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "custom_cc",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {'."\n" + .' "interval": 10,'."\n" + .' "target": "Query String Parameter",'."\n" + .' "subKey": "arg",'."\n" + .' "threshold": 30,'."\n" + .' "ttl": 1800'."\n" + .' },'."\n" + .' "action": "monitor"'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "custom_cc",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {'."\n" + .' "interval": 10,'."\n" + .' "target": "Query String Parameter",'."\n" + .' "subKey": "arg",'."\n" + .' "threshold": 30,'."\n" + .' "ttl": 1800'."\n" + .' },'."\n" + .' "action": "deny"'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "app_sdk",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {'."\n" + .' "featureAbnormal":'."\n" + .' ['."\n" + .' "simulator",'."\n" + .' "proxy",'."\n" + .' "root",'."\n" + .' "debugged",'."\n" + .' "hook",'."\n" + .' "virtual",'."\n" + .' "antiReplay",'."\n" + .' "signInvalid"'."\n" + .' ],'."\n" + .' "customSignStatus": "on",'."\n" + .' "customSign":'."\n" + .' {'."\n" + .' "key": "header",'."\n" + .' "value": "ua"'."\n" + .' }'."\n" + .' },'."\n" + .' "action": "monitor"'."\n" + .' },'."\n" + .' {'."\n" + .' "type": "app_package",'."\n" + .' "status": "on",'."\n" + .' "config":'."\n" + .' {'."\n" + .' "packageSigns":'."\n" + .' ['."\n" + .' {'."\n" + .' "name": "aaaaa",'."\n" + .' "sign": "bbbb"'."\n" + .' },'."\n" + .' {'."\n" + .' "name": "cccc",'."\n" + .' "sign": "dddd"'."\n" + .' }'."\n" + .' ]'."\n" + .' },'."\n" + .' "action": "deny"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + ."\n" + .'### 防护场景7:扫描防护(anti_scan)'."\n" + ."\n" + .'**规则模板**'."\n" + ."\n" + .'所有的规则参数都是以下四个,具体值请参见对应规则分类。'."\n" + ."\n" + .'| 参数 | 类型 | 是否必选 | 描述 |'."\n" + .'| ------ | ------ | ---- | -------------------- |'."\n" + .'| type | String | 是 | 规则类型:参见对应规则分类。 |'."\n" + .'| status | String | 否 | 规则状态,取值:on(开启),off(关闭)。 |'."\n" + .'| config | Type | 否 | 规则配置:参见对应规则分类。 |'."\n" + .'| action | String | 否 | 规则动作:参见对应规则分类。 |'."\n" + ."\n" + .'**规则分类一:高频扫描封禁**'."\n" + ."\n" + .'| 参数 | 类型 | 是否必选 | 示例值| 描述 |'."\n" + .'| ------ | ------------- | ---- | ----------|------------------------ |'."\n" + .'| type | String | 是 | high_frequency| 规则类型,取值:high_frequency 。 |'."\n" + .'| status | String | 是 | on| 规则开关,取值:on(开启),off(关闭)。默认为on。 |'."\n" + .'| config | HighFrequency | 否 | {"target":"IP","interval":20,"wafBlockThreshold":20,"ttl":1800,"distinctWafRuleThreshold":2}| 规则配置,具体请参见下方结构体字符串。 |'."\n" + .'| action | String | 否 | deny| 规则动作,取值:deny(拦截),moniter(观察)。 |'."\n" + ."\n" + .'* HighFrequency说明'."\n" + ."\n" + .'| 参数 | 类型 | 是否必选 | 示例值| 描述 |'."\n" + .'| ----------------- | ------| -------- | -------|----------------- |'."\n" + .'| target | String | 是 | IP| 频次控制的统计字段,取值:IP(IP地址),Session(会话),Header(自定义Header),Query String Parameter(自定义参数),Cookie Name(自定义Cookie)。 |'."\n" + .'| subKey | String | 否 | yoursubKey| 统计字段的子字段,选择自定义时有效。例如:如果target是自定义Header时,这个subKey就是Header的key。 |'."\n" + .'| interval | Integer | 是 | 20| 检测时间范围,取值:5~1800,单位:秒。 |'."\n" + .'| wafBlockThreshold | Integer | 是 | 20| 基础防护规则触发次数,取值:3~50000。 |'."\n" + .'| ttl | Integer | 是 | 1800| 封禁时间,取值:60~86400,单位:秒。 |'."\n" + .'| distinctWafRuleThreshold | Integer | 是 | 2| 触发规则数大于,取值:1~50。 |'."\n" + ."\n" + .'```json'."\n" + .'['."\n" + .' {'."\n" + .' "type":"high_frequency",'."\n" + .' "status":"on",'."\n" + .' "config":{"target":"IP","interval":20,"wafBlockThreshold":20,"ttl":1800,"distinctWafRuleThreshold":2},'."\n" + .' "action":"deny"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + ."\n" + .'**规则分类二:目录遍历封禁**'."\n" + ."\n" + .'| 参数 | 类型 | 是否必选 | 示例值| 描述 |'."\n" + .'| ------ | ------------- | -------- | ------|----------------------- |'."\n" + .'| type | String | 是 | directory_traversal| 规则类型,取值:directory_traversal。 |'."\n" + .'| status | String | 是 | on| 规则开关,取值:on(开启),off(关闭)。默认为on。 |'."\n" + .'| config | DirectoryTraversal | 否 | {"target":"IP","interval":10,"threshold":50,"status":{"code":"404","ratio":70,"count":50},"ttl":1800}| 规则配置,具体请参见下方结构体字符串。 |'."\n" + .'| action | String | 否 | deny| 规则动作,取值:deny(拦截),moniter(观察)。 |'."\n" + ."\n" + .'* DirectoryTraversal说明'."\n" + ."\n" + .'| 参数 | 类型 | 是否必选 | 示例值| 描述 |'."\n" + .'| --------| ---------- | ---- | -------|------------------------- |'."\n" + .'| target | String | 是 | IP| 频次控制的统计字段,取值:IP(IP地址),Session(会话),Header(自定义Header),Query String Parameter(自定义参数),Cookie Name(自定义Cookie)。 |'."\n" + .'| subKey | String | 否 | yoursubKey| 统计字段的子字段,选择自定义时有效。例如:如果target是自定义Header时,这个subKey就是Header的key。 |'."\n" + .'| interval | Integer | 是 | 10| 检测时间范围,取值:5~1800,单位:秒。 |'."\n" + .'| threshold | Integer | 是 | 50| 针对当前防护对象请求次数超过,取值:2~50000。 |'."\n" + .'| status | RateLimitStatus | 是 | {"code":"404","ratio":70,"count":50}| 响应码。 |'."\n" + .'| ttl | Integer | 是 | 1800| 封禁时间,取值:60~86400,单位:秒。 |'."\n" + ."\n" + .'* RateLimitStatus说明'."\n" + ."\n" + .'| 参数 | 类型 | 是否必选 | 示例值| 描述 |'."\n" + .'| ----- | ------- | ---- | -----------|-------------------- |'."\n" + .'| code | String | 是 | 示例值| HTTP状态码,取值:404。 |'."\n" + .'| ratio | Integer | 是 | 示例值| 404响应码占比,取值:1~100。 |'."\n" + .'| count | Integer | 是 | 示例值| 不存在的目录数量,取值:2~50000。 |'."\n" + ."\n" + .'```json'."\n" + .'['."\n" + .' {'."\n" + .' "type":"directory_traversal",'."\n" + .' "status":"on",'."\n" + .' "config":{"target":"IP","interval":10,"threshold":50,"status":{"code":"404","ratio":70,"count":50},"ttl":1800},'."\n" + .' "action":"deny"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + ."\n" + .'**规则分类三:扫描工具封禁**'."\n" + ."\n" + .'| 参数 | 类型 | 是否必选 | 示例值| 描述 |'."\n" + .'| ------ | --------- | ---- | ----------|------------------------ |'."\n" + .'| type | String | 是 | scan_tools| 规则类型,取值:scan_tools。 |'."\n" + .'| status | String | 是 | on| 规则开关,取值:on(开启),off(关闭)。默认为on。 |'."\n" + .'| config | ScanTools | 否 | 空| 规则配置,这里不填。 |'."\n" + .'| action | String | 否 | deny| 规则动作,取值:deny(拦截),moniter(观察)。 |'."\n" + ."\n" + .'```json'."\n" + .'['."\n" + .' {'."\n" + .' "type":"scan_tools",'."\n" + .' "status":"on",'."\n" + .' "config":{},'."\n" + .' "action":"deny"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + ."\n" + .'**最终组合参数**'."\n" + ."\n" + .'```json'."\n" + .'['."\n" + .' {'."\n" + .' "type":"high_frequency",'."\n" + .' "status":"on",'."\n" + .' "config":{"target":"IP","interval":20,"wafBlockThreshold":20,"ttl":1800,"distinctWafRuleThreshold":2},'."\n" + .' "action":"deny"'."\n" + .' },'."\n" + .' {'."\n" + .' "type":"directory_traversal",'."\n" + .' "status":"on",'."\n" + .' "config":{"target":"IP","interval":10,"threshold":50,"status":{"code":"404","ratio":70,"count":50},"ttl":1800},'."\n" + .' "action":"deny"'."\n" + .' },'."\n" + .' {'."\n" + .' "type":"scan_tools",'."\n" + .' "status":"on",'."\n" + .' "config":{},'."\n" + .' "action":"deny"'."\n" + .' }'."\n" + .']'."\n" + .'```', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:15.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchCreateDcdnWafRules'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:BatchCreateDcdnWafRules', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], - [ - 'errorCode' => 'DomainActiveInConfigGroup', - 'errorMessage' => 'The domain has been activated in config group, it cannot be deleted.', + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-280B-72F8FD6DA2FE\\",\\n \\"RuleIds\\": {\\n \\"RuleId\\": [\\n \\"100001,200002\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<BatchCreateDcdnWafRulesResponse>\\n <RequestId>CB1A380B-09F0-41BB-280B-72F8FD6DA2FE</RequestId>\\n <RuleIds>100001,200002</RuleIds>\\n</BatchCreateDcdnWafRulesResponse>","errorExample":""}]', + ], + 'BatchDeleteDcdnDomainConfigs' => [ + 'summary' => '调用BatchDeleteDcdnDomainConfigs批量删除域名配置。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREdcdn2JMMUY'], + ], + 'parameters' => [ + [ + 'name' => 'DomainNames', + 'in' => 'query', + 'schema' => ['description' => '需要删除配置的加速域名,多个用半角逗号(,)分隔,注意以下配置限制:'."\n" + ."\n" + .'- 一次最多传20个域名。'."\n" + .'- 域名个数乘以 FunctionNames个数,小于等于50。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'FunctionNames', + 'in' => 'query', + 'schema' => ['description' => '需要删除的功能函数名称,多个用半角逗号(,)分隔,一次传入最多50个。更多功能名称,请参见[域名配置功能参数](~~410622~~)。', 'type' => 'string', 'required' => true, 'example' => 'referer_white_list_set,https_force'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], + ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDcdnDomainResponse>\\r\\n\\t<RequestId>0AEDAF20-4DDF-4165-8750-47FF9C1929C9</RequestId>\\r\\n</DeleteDcdnDomainResponse>","errorExample":""}]', - 'title' => '删除域名', - 'description' => '> - 删除域名前您需前往域名解析服务商恢复域名A记录,否则域名被删除后可能导致该域名不可访问。'."\n" - .'> - **DeleteDcdnDomain**调用成功后将删除对应加速域名的全部相关记录,如果您想暂停使用该加速域名,您可以调用[StopDcdnDomain](~~130622~~)接口。'."\n" - .'> - 单用户调用频率:10次/秒。', - 'requestParamsDescription' => ' ', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => 'FunctionName [%s] is not supported.', 'description' => '不支持该配置,请重新查询。'], + ['errorCode' => 'DeleteFunctionFailed', 'errorMessage' => 'Batch delete functions failed.', 'description' => '批量删除配置失败。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<BatchDeleteDcdnDomainConfigsResponse>\\r\\n\\t<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</BatchDeleteDcdnDomainConfigsResponse>","errorExample":""}]', + 'title' => '批量删除域名配置', + 'description' => '> - 单用户调用频率:30次/秒。', + 'requestParamsDescription' => '功能列表如下表所示。'."\n" + ."\n" + .'| 名称 | 参数 |'."\n" + .'|---------------|--------|'."\n" + .'| referer_white_list_set:Referer防盗链白名单| refer_domain_allow_list:白名单列表,多个用英文逗号(,)分隔。<br>allow_empty:是否允许空Referer字段访问DCDN资源,取值:on或off。|'."\n" + .'| referer_black_list_set:Referer防盗链黑名单| refer_domain_deny_list:黑名单列表,多个用英文逗号(,)分隔。<br>allow_empty:是否允许空Referer字段访问DCDN资源,取值:on或off。|'."\n" + .'| filetype_based_ttl_set:文件类型缓存过期时间设置| ttl:缓存时间,单位为秒。<br>file_type:文件类型。多个文件类型用英文逗号(,)分隔,例如TXT,JPG。<br>weight:权重。|'."\n" + .'| path_based_ttl_set:目录类型缓存过期时间设置| ttl:缓存时间,单位为秒。<br>path:目录,必须以正斜线(/)开头。<br>weight:权重。|'."\n" + .'| oss_auth:OSS鉴权Bucket| oss_bucket_id:您的Bucket地址。|'."\n" + .'| ip_black_list_set:IP黑名单| ip_list:IP列表,多个用英文逗号(,)分隔。|'."\n" + .'| ip_allow_list_set:IP白名单| ip_list:IP列表,多个用英文逗号(,)分隔。|'."\n" + .'| error_page:错误页面重定向| error_code:错误码。<br>rewrite_page:重定向页面。|'."\n" + .'| set_req_host_header:修改回源自定义头| domain_name:回源HOST头内容。|'."\n" + .'| set_hashkey_args:忽略URL参数| hashkey_args:保留参数列表,多个用英文逗号(,)分隔,最多支持填写10个。<br>disable:等于on表示忽略所有参数,off表示不忽略(缓存hashkey忽略所有参数,优先级低于保留缓存参数列表)。<br>keep_oss_args:等于on表示回源保留所有参数,off表示与缓存hashkey的参数一致。|'."\n" + .'| aliauth:阿里鉴权| auth_type:鉴权类型。no_auth:无鉴权;type_a:鉴权方式A;type_b:鉴权方式B;type_c:鉴权方式C。<br>auth_key1:鉴权key1;auth_key2:鉴权key2。<br>ali_auth_delta:自定义鉴权缓冲时间。|'."\n" + .'| set_resp_header:设置HTTP响应头(浏览器端可见)| key(必填):响应头。<br>value(必填):响应头内容,删除填写null。<br>header_operation_type:请求头操作,支持add、delete、modify、rewrite,添加add、删除delete、变更modify、替换rewrite。<br>duplicate:是否允许重复,支持on或off。<br>header_source:查找。<br>header_destination:替换为。<br>match_all:匹配所有,支持on或off。|'."\n" + .'| https_force:强制HTTPS跳转| enable:功能开关,取值:on或off。|'."\n" + .'| http_force:强制HTTP跳转| enable:功能开关,取值:on或off。|'."\n" + .'| https_option:HTTPS基础参数| http2:HTTP2开关,取值:on或off。<br>ocsp_stapling:OCSP Stapling开关,取值:on或off。|'."\n" + .'| forward_scheme:静态协议跟随回源| enable:开关,取值:on或off。<br> scheme_origin:回源协议类型,支持http、https和follow(跟随)。|'."\n" + .'| dynamic:全站加速相关配置|enable(必填):开关,支持on或off。<br>static_route_type:静态加速文件后缀。<br> static_route_url:静态加速URI。<br>static_route_path:静态加速PATH。<br>dynamic_route_origin:回源路由scheme,支持http、https、follow和follow-port。<br>dynamic_route_round_robin:开启负载均衡开关,支持on或off。<br>dynamic_route_adapt_cache:开启自适应缓存开关,支持on或off。|'."\n" + .'| set_req_header:自定义回源HTTP头| key:回源头。<br>value:回源头内容。|'."\n" + .'| l2_oss_key:阿里云OSS私有Bucket回源| private_oss_auth:私有Bucket回源开关,支持on或off。|'."\n" + .'| range:range回源| enable:开关,支持on、off。|'."\n" + .'| video_seek:视频拖拽播放|enable(必填):开关,支持on或off。<br> flv_seek_by_time:开启FLV按时间拖拽,支持on或off。<br> mp4_seek_start:自定义MP4开始参数。 <br> mp4_seek_end:自定义MP4结束参数。 <br> flv_seek_start:自定义FLV开始参数。 <br> flv_seek_end:自定义FLV结束参数。|'."\n" + .'| websocket:Websocket| enabled(必填):是否开启,取值:on或off。<br>origin_scheme:回源scheme,支持http、https和follow。<br>heartbeat:心跳时间,默认为60秒,支持1~300秒。|'."\n" + .'| ali_remove_args:忽略URL参数(删除)|ali_remove_args(必填):删除指定的参数,多个参数之间用空格隔开,剩余参数将作为hashkey中URL args部分。<br>keep_oss_args:回源保留参数。支持on或off,on表示回源保留所有参数,off表示与缓存hashkey的参数一致。|'."\n" + .'| https_tls_version:TLS协议版本| tls10:开启TLSv1.0,默认为on,支持on或off。<br>tls11:开启TLSv1.1,默认为on,支持on或off。<br> tls12:开启TLSv1.2,默认为on,支持on或off。<br>tls13:开启TLSv1.3,默认为off,支持on或off。|'."\n" + .'| HSTS:HSTS|enabled(必填):开关,默认为off,支持on或off。<br>https_hsts_max_age(必填):过期时间,单位:ms,建议填写5184000000ms(60天)。<br> https_hsts_include_subdomains:HSTS头包含includeSubDomains参数,支持on或off。请谨慎开启,开启前请确保该加速域名的所有子域名都已开启HTTPS,否则会导致子域名自动跳转到HTTPS后无法访问。|'."\n" + .'| filetype_force_ttl_code:文件状态码过期时间设置|file_type(必填):文件类型,多个用英文逗号(,)分隔,例如:TXT,JPG。<br>code_string(必填):状态码,多个用英文逗号(,)分隔。例如:302=0,301=0,4xx=2。|'."\n" + .'| path_force_ttl_code:路径状态码过期时间设置|path(必填):必须以正斜线(/)开头,例如:/image。<br>code_string(必填):状态码,多个用英文逗号(,)分隔。例如:302=0,301=0,4xx=2。|'."\n" + .'| gzip:智能压缩|enable(必填):功能开关,支持on或off。|'."\n" + .'| tesla:页面优化|enable(必填):功能开关,支持on或off。<br>trim_js:支持on或off,开启该功能,优化html中内嵌的js代码。<br>trim_css:支持on或off,开启该功能,优化html中内嵌的css代码。|'."\n" + .'| https_origin_sni:回源SNI|enabled:功能开关,支持on或off。<br>https_origin_sni(必填):回源SNI。|'."\n" + .'| protogw:IP应用加速|realip(必填):源站IP透传方式,支持off、toa、pp。<br>port(必填):服务端口。<br>patten:模式字符串。|'."\n" + .'| host_redirect:重写功能| regex:需要重写的URL,例如:^/$。<br>replacement:目标URL,例如: /go/act/sale/tbzlsy.php。<br>flag:仅支持redirect、break。'."\n" + .'| forward_timeout:回源请求超时时间| forward_timeout:单位为秒,配置时建议不要大于100秒。|'."\n" + .'|ipv6:IPv6配置|switch(必填):开关,支持on或off,on表示开启,off表示关闭。<br>region:开启IPv6功能的地区,支持星号(*)。|'."\n" + .'| edge_function:边缘函数|<br>rule(必填):DSL规则。<br>pri(必填):优先级。<br>enable(必填):本条规则是否生效,取值:on或off。<br>name:规则名称。<br>pos:规则执行位置。全站加速域名仅支持head,不支持foot。<br>brk:命中本条规则后,当前执行位置剩余规则均跳过。<br>option:option管控。<br> grammar:grammar管控,可选值:空、es2、js。<br> jsmode:js域名白单管控,可选值:redirect、bypass。|'."\n" + .'| brotli:Brotli压缩|enable(必填):功能开关,支持on或off。<br>brotli_level:压缩等级,取值范围[1,11]。|'."\n" + .'| ali_ua:User-Agent黑/白名单| ua:User-Agent。<br>type:名单类型,black或white。|'."\n", 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDeletedDomains' => [ - 'summary' => '调用DescribeDcdnDeletedDomains查询您名下已删除的域名。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchDeleteDcdnDomainConfigs'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:BatchDeleteDcdnDomainConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + ], + 'BatchDeleteDcdnKv' => [ + 'summary' => '根据指定的键名列表来批量删除指定KV存储空间的键值对。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeCode' => '213944', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'PageNumber', + 'name' => 'Namespace', 'in' => 'query', - 'schema' => [ - 'description' => '当前页码,默认值**1**,取值范围:**1**~**100000**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100000', - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['title' => '', 'description' => '调用[PutDcdnKvNamespace](~~PutDcdnKvNamespace~~)时指定的名称。', 'type' => 'string', 'required' => true, 'example' => 'test_namespace'], ], [ - 'name' => 'PageSize', - 'in' => 'query', + 'name' => 'Keys', + 'in' => 'formData', + 'style' => 'json', 'schema' => [ - 'description' => '每页显示的域名个数,默认值**20**,取值范围:**1**~**500**之前的任意整数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'minimum' => '1', - 'example' => '5', - 'default' => '20', + 'description' => '要批量删除的键名称列表, 最多删除10000个键。', + 'type' => 'array', + 'items' => ['description' => '要删除的键名。', 'type' => 'string', 'required' => false, 'example' => 'test_key1'], + 'required' => true, ], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'AA75AADB-5E25-4970-B480-EAA1F5658483', - ], - 'PageNumber' => [ - 'description' => '当前页码,同请求参数的**PageNumber**。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'EEEBE525-F576-1196-8DAF-2D70CA3F4D2F'."\n"], + 'FailKeys' => [ + 'description' => '删除失败的键列表。', + 'type' => 'array', + 'items' => ['description' => '删除失败的键名。', 'type' => 'string', 'example' => 'test_key1'], ], - 'PageSize' => [ - 'description' => '每页显示的域名个数,同请求参数的**PageSize**。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '5', + 'SuccessKeys' => [ + 'description' => '删除成功的键列表。', + 'type' => 'array', + 'items' => ['description' => '删除成功的键名。', 'type' => 'string', 'example' => 'test_key2'], ], - 'TotalCount' => [ - 'description' => '查询到的域名总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '16', + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '输入参数无效'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'namespace输入不对,比如输入为空'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => '账号输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'key输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'key长度不能超过512B'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'value长度不能越过2000000B'], + ['errorCode' => 'InvalidKey.TooManyKeys', 'errorMessage' => 'request contains too many keys.', 'description' => '单次请求包含过多数量的key'], + ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'namespace容量超过限制,单个namespace最大容量为1G'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => '鉴权参数输入错误'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => '您输入的鉴权时间参数无效,请检查参数值后重试。'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => '您输入的token无效,请检查并输入正确的token后进行重试。'], + ], + [ + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'namespace不存在'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '批量删除KV存储空间的键值对', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchDeleteDcdnKv'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:BatchDeleteDcdnKv', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EEEBE525-F576-1196-8DAF-2D70CA3F4D2F\\\\n\\",\\n \\"FailKeys\\": [\\n \\"test_key1\\"\\n ],\\n \\"SuccessKeys\\": [\\n \\"test_key2\\"\\n ]\\n}","type":"json"}]', + ], + 'BatchDeleteDcdnKvWithHighCapacity' => [ + 'summary' => '根据指定的键名列表批量删除指定KV存储空间下的键值对,最大允许上传100M的请求体。', + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '213943', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'Namespace', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => '调用[PutDcdnKvNamespace](~~PutDcdnKvNamespace~~)时指定的名称。', 'type' => 'string', 'required' => true, 'example' => 'test_namespace'."\n"], + ], + [ + 'name' => 'Url', + 'in' => 'query', + 'schema' => ['description' => '存储有需要批量删除键值对的下载链接,此参数由调用SDK时自动生成,请使用SDK进行调用。', 'type' => 'string', 'required' => true, 'example' => 'https://xxxobject.oss-cn-reginon.aliyuncs.com/9d91_xxxxxxxxxxx_158bb6e0f97c477791209bb46bd599f7', 'isFileTransferUrl' => true], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'EEEBE525-F576-1196-8DAF-2D70CA3F4D2F'], + 'FailKeys' => [ + 'description' => '删除失败的键列表。', + 'type' => 'array', + 'items' => ['description' => '删除失败的键名。', 'type' => 'string', 'example' => 'test_key1'], ], - 'Domains' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'PageData' => [ - 'description' => '加速域名的状态信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'GmtModified' => [ - 'description' => '加速域名修改时间。日期格式按照ISO 8601表示法,并使用UTC+0时间,格式为yyyy-MM-DDThh:mm:ssZ。', - 'type' => 'string', - 'example' => '2015-10-28T11:05:52Z', - ], - 'DomainName' => [ - 'description' => '加速域名名称。', - 'type' => 'string', - 'example' => 'example.com', - ], - ], - ], - ], - ], + 'SuccessKeys' => [ + 'description' => '删除成功的键列表。', + 'type' => 'array', + 'items' => ['description' => '删除成功的键名。', 'type' => 'string', 'example' => 'test_key1'], ], ], ], @@ -1562,88 +2243,322 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidPageNumber.ValueNotSupported', - 'errorMessage' => 'The specified value of PageNumber is not supported.', + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '输入参数无效'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'namespace输入不对,比如输入为空'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => '账号输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'key输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'key长度不能超过512B'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'value长度不能越过2000000B'], + ['errorCode' => 'InvalidKey.TooManyKeys', 'errorMessage' => 'request contains too many keys.', 'description' => '单次请求包含过多数量的key'], + ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'namespace容量超过限制,单个namespace最大容量为1G'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => '鉴权参数输入错误'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => '您输入的鉴权时间参数无效,请检查参数值后重试。'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => '您输入的token无效,请检查并输入正确的token后进行重试。'], + ], + [ + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'namespace不存在'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '批量删除KV存储空间的大容量的键值对', + 'description' => '本接口与[BatchDeleteDcdnKv](~~BatchDeleteDcdnKv~~)的功能一样,只是允许上传更大请求体。当请求体较小时推荐直接使用[BatchDeleteDcdnKv](~~BatchDeleteDcdnKv~~)接口,从而减少服务端处理时间。本接口需要使用SDK进行调用。以golang SDK为例,需要使用BatchDeleteDcdnKvWithHighCapacityAdvance函数进行调用。'."\n" + .'```'."\n" + .'func TestBatchDeleteWithHighCapacity() error {'."\n" + .' // 配置初始化'."\n" + .' cfg := new(openapi.Config)'."\n" + .' cfg.SetAccessKeyId("xxxxxxxxx")'."\n" + .' cfg.SetAccessKeySecret("xxxxxxxxxx")'."\n" + .' cli, err := NewClient(cfg)'."\n" + .' if err != nil {'."\n" + .' return err'."\n" + .' }'."\n" + .' runtime := &util.RuntimeOptions{}'."\n" + ."\n" + .' // 构造待批量删除的键值对请求'."\n" + .' namespace := "test_batch_put"'."\n" + .' rawReq := BatchDeleteDcdnKvRequest{'."\n" + .' Namespace: &namespace,'."\n" + .' }'."\n" + .' for i := 0; i < 10000; i++ {'."\n" + .' key := fmt.Sprintf("test_key_%d", i)'."\n" + .' rawReq.Keys = append(rawReq.Keys, &key)'."\n" + .' }'."\n" + .' payload, err := json.Marshal(rawReq)'."\n" + .' if err != nil {'."\n" + .' return err'."\n" + .' }'."\n" + ."\n" + .' // 如果payload大于2M,则调用大容量接口进行删除'."\n" + .' reqHighCapacity := BatchDeleteDcdnKvWithHighCapacityAdvanceRequest{'."\n" + .' Namespace: &namespace,'."\n" + .' UrlObject: bytes.NewReader(payload),'."\n" + .' }'."\n" + .' resp, err := cli.BatchDeleteDcdnKvWithHighCapacityAdvance(&reqHighCapacity, runtime)'."\n" + .' if err != nil {'."\n" + .' return err'."\n" + .' }'."\n" + .' return nil'."\n" + .'}', + 'changeSet' => [ + ['createdAt' => '2024-06-13T06:35:32.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchDeleteDcdnKvWithHighCapacity'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:BatchDeleteDcdnKvWithHighCapacity', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], - [ - 'errorCode' => 'InvalidPageSize.ValueNotSupported', - 'errorMessage' => 'The specified value of PageSize is invalid.', + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EEEBE525-F576-1196-8DAF-2D70CA3F4D2F\\",\\n \\"FailKeys\\": [\\n \\"test_key1\\"\\n ],\\n \\"SuccessKeys\\": [\\n \\"test_key1\\"\\n ]\\n}","type":"json"}]', + ], + 'BatchDeleteDcdnWafRules' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREdcdnV3YEJ8'], + ], + 'parameters' => [ + [ + 'name' => 'RuleIds', + 'in' => 'formData', + 'schema' => ['description' => '需要删除的防护规则ID列表,多个ID用英文逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => '20000001,20000002'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CB1A380B-09F0-41BB-802B-72F8FD6DA2FE'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"AA75AADB-5E25-4970-B480-EAA1F5658483\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 5,\\n \\"TotalCount\\": 16,\\n \\"Domains\\": {\\n \\"PageData\\": [\\n {\\n \\"GmtModified\\": \\"2015-10-28T11:05:52Z\\",\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDeletedDomainsResponse>\\n<PageNumber>1</PageNumber>\\n<TotalCount>16</TotalCount>\\n<PageSize>5</PageSize>\\n<RequestId>AA75AADB-5E25-4970-B480-EAA1F5658483</RequestId>\\n<Domains>\\n <PageData>\\n <DomainName>example.com</DomainName>\\n <GmtModified>2015-10-28T11:05:52Z</GmtModified>\\n </PageData>\\n <PageData>\\n <DomainName>example.org</DomainName>\\n <GmtModified>2015-10-28T11:05:50Z</GmtModified>\\n </PageData>\\n <PageData>\\n <DomainName>example.net</DomainName>\\n <GmtModified>2015-10-27T06:26:34Z</GmtModified>\\n </PageData>\\n <PageData>\\n <DomainName>example.edu</DomainName>\\n <GmtModified>2015-10-23T09:23:29Z</GmtModified>\\n </PageData>\\n <PageData>\\n <DomainName>aliyundoc.com</DomainName>\\n <GmtModified>2015-10-23T09:02:11Z</GmtModified>\\n </PageData>\\n</Domains>\\n</DescribeDcdnDeletedDomainsResponse>","errorExample":""}]', - 'title' => '查询已删除域名', - 'description' => '> 单用户调用频率:10次/秒。 ', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ], + 403 => [ + ['errorCode' => '%s.NotSupport', 'errorMessage' => 'The specified resource type %s is not supported.', 'description' => '不支持指定的资源类型。如需使用该类型资源,请与我们联系。'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => '该资源的数量超出了配额所规定的范围,如需申请更多的额度,请与我们联系。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => '内部错误,请重试,如果多次重试报错请提交工单。'], + ], + ], + 'title' => '批量删除防护规则', + 'summary' => '调用BatchDeleteDcdnWafRules批量删除WAF防护规则。', + 'description' => '> '."\n" + .'> - 单用户调用频率:20次/秒。'."\n" + .'> - 请求方式:支持POST请求。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'VerifyDcdnDomainOwner' => [ - 'summary' => '调用VerifyDcdnDomainOwner校验域名的归属权。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:15.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchDeleteDcdnWafRules'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:BatchDeleteDcdnWafRules', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-802B-72F8FD6DA2FE\\"\\n}","errorExample":""},{"type":"xml","example":"<BatchDeleteDcdnWafRulesResponse>\\n <RequestId>CB1A380B-09F0-41BB-802B-72F8FD6DA2FE</RequestId>\\n</BatchDeleteDcdnWafRulesResponse>","errorExample":""}]', + ], + 'BatchModifyDcdnWafRules' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111626', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeNodes' => ['FEATUREdcdnV3YEJ8'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', + 'name' => 'PolicyId', + 'in' => 'formData', + 'schema' => ['description' => '防护策略ID。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '10000001'], + ], + [ + 'name' => 'RuleConfigs', + 'in' => 'formData', + 'schema' => ['description' => '防护规则配置。', 'type' => 'string', 'required' => true, 'example' => '[{"id":135,"type":"web_sdk","status":"on","config":{"mode":"automatic","crossDomain":"example.com"},"action":""},{"id":149,"type":"intelligence_fake_crawler","status":"on","config":{},"action":"deny"}]'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '待校验的域名,只支持传入单个域名。', - 'type' => 'string', - 'required' => true, - 'example' => '**example**.com', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CB1A380B-09F0-41BB-XXXX-72F8FD6DA2FE'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ['errorCode' => 'Policy.NotExist', 'errorMessage' => 'The specified policy does not exist.', 'description' => '指定的防护策略不存在。'], + ['errorCode' => 'Rule.NotExist', 'errorMessage' => 'The specified rule does not exist.', 'description' => '指定的规则在当前上下文或系统配置中不存在。请确认规则标识符的存在,并确保它已被正确定义或实现。'], + ['errorCode' => 'RuleConfigs.Malformed', 'errorMessage' => 'The specified RuleConfigs format is invalid.', 'description' => '指定的参数RuleConfigs格式错误。'], + ['errorCode' => 'RuleName.AlreadyExists', 'errorMessage' => 'Rule name already exists in specified policy.', 'description' => '规则名称在指定的策略中已存在。'], + ['errorCode' => 'Rule.QuantityOverflow', 'errorMessage' => 'Rules are overflowed quantity in specified policy.', 'description' => '规则在指定的策略中超出配额。'], + ], + 403 => [ + ['errorCode' => '%s.NotSupport', 'errorMessage' => 'The specified resource type %s is not supported.', 'description' => '不支持指定的资源类型。如需使用该类型资源,请与我们联系。'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => '该资源的数量超出了配额所规定的范围,如需申请更多的额度,请与我们联系。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => '内部错误,请重试,如果多次重试报错请提交工单。'], + ], + ], + 'title' => '批量修改防护规则', + 'summary' => '调用BatchModifyDcdnWafRules批量修改WAF防护规则,目前仅支持修改配置Bot管理防护场景。', + 'description' => '> 单用户调用频率:20次/秒。', + 'requestParamsDescription' => '### RuleConfigs说明'."\n" + .'RuleConfigs为列表切片,其中每个结构体代表一条规则:'."\n" + ."\n" + .'- 结构体中规则内容,请参见[BatchCreateDcdnWafRules](~~423350~~)。'."\n" + .'- 需要传入当前策略下所有规则。'."\n" + .'- 每个结构体中添加如下防护规则ID字段,指定需要修改的规则。'."\n" + ."\n" + .'| 参数 | 类型 | 必要 |示例值| 描述 |'."\n" + .'| ---- | ---- | ---- | -------|----- |'."\n" + .'| id | Long | 否 |134| 防护规则ID。|'."\n" + ."\n\n" + .'Bot管理场景中:'."\n" + ."\n" + .'- 新增规则:id不传或为0。'."\n" + .'- 修改规则:需携带修改的规则ID且status="on"。'."\n" + .'- 删除规则:构体中参数status="off"表示删除该条规则。或者同一策略中未传入某条规则ID,表示删除该条规则。', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:14.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2022-09-27T08:42:38.000Z', 'description' => 'OpenAPI 下线'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchModifyDcdnWafRules'], + ], + ], + 'ramActions' => [ [ - 'name' => 'VerifyType', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:BatchModifyDcdnWafRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-XXXX-72F8FD6DA2FE\\"\\n}","errorExample":""},{"type":"xml","example":"<BatchModifyDcdnWafRulesResponse>\\n <RequestId>CB1A380B-09F0-41BB-XXXX-72F8FD6DA2FE</RequestId>\\n</BatchModifyDcdnWafRulesResponse>","errorExample":""}]', + ], + 'BatchPutDcdnKv' => [ + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '189479', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + ], + 'parameters' => [ + [ + 'name' => 'Namespace', 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'Namespace名称。', 'type' => 'string', 'required' => true, 'example' => 'ns1'], + ], + [ + 'name' => 'KvList', + 'in' => 'formData', + 'style' => 'json', 'schema' => [ - 'description' => '校验方式,取值:'."\n" - ."\n" - .'- **dnsCheck**:DNS验证。'."\n" - .'- **fileCheck**:文件验证。', - 'type' => 'string', + 'description' => '需要批量设置的键值对列表,总大小最大2 M(2*1000*1000)。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '需要设置的键名称,最长不超过512个字符,不能包含空格、反斜杠(/)。', 'type' => 'string', 'required' => true, 'example' => 'test_key'], + 'Value' => ['description' => '键的内容。', 'type' => 'string', 'required' => true, 'example' => 'test_value'], + 'Expiration' => ['description' => '过期时间(秒级时间戳,不能小于当前时间),同时设置Expiration和ExpirationTtl时,以ExpirationTtl为准。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1690081381'], + 'ExpirationTtl' => ['description' => '过期时间(相对时间,单位:秒),同时设置Expiration和ExpirationTtl时,以ExpirationTtl为准。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '3600'], + ], + 'required' => true, + ], 'required' => true, - 'example' => 'dnsCheck', + 'maxItems' => 5000, ], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response。', 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => '校验内容。', - 'type' => 'string', - 'example' => 'verify_dffeb6610035dcb77b413a59c32cd9**', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '156A6B-677B1A-4297B7-9187B7-2B44792'], + 'FailKeys' => [ + 'description' => '写失败的key列表。', + 'type' => 'array', + 'items' => ['description' => '写失败的key。', 'type' => 'string', 'example' => 'testKey1'], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB', + 'SuccessKeys' => [ + 'description' => '写成功的key列表。', + 'type' => 'array', + 'items' => ['description' => '写成功的key。', 'type' => 'string', 'example' => 'testKey2'], ], ], ], @@ -1651,91 +2566,200 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'DomainOwnerVerifyFail', - 'errorMessage' => 'Owner verification of the root domain failed.', - ], + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '输入参数无效'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'namespace输入不对,比如输入为空'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => '账号输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'key输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'key长度不能超过512B'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'value长度不能越过2000000B'], + ['errorCode' => 'InvalidKey.TooManyKeys', 'errorMessage' => 'request contains too many keys.', 'description' => '单次请求包含过多数量的key'], + ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'namespace容量超过限制,单个namespace最大容量为1G'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => '鉴权参数输入错误'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => '您输入的鉴权时间参数无效,请检查参数值后重试。'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => '您输入的token无效,请检查并输入正确的token后进行重试。'], + ], + [ + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'namespace不存在'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": \\"verify_dffeb6610035dcb77b413a59c32cd9**\\",\\n \\"RequestId\\": \\"34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\"\\n}","errorExample":""},{"type":"xml","example":"<VerifyDcdnDomainOwnerResponse>\\n<Content>verify_dffeb6610035dcb77b413a59c32cd91f</Content>\\n<RequestId>34AB41F1-04A5-496F-8C8D-634BDBE6A9FB</RequestId>\\n</VerifyDcdnDomainOwnerResponse>","errorExample":""}]', - 'title' => '校验域名归属权', - 'description' => '> 单用户调用频率:100次/秒。 ', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnVerifyContent' => [ - 'summary' => '调用DescribeDcdnVerifyContent获取域名的归属校验内容。', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '批量设置Namespace的key-value对', + 'summary' => '调用BatchPutDcdnKv批量设置指定Namespace的Key-Value(KV)对。', + 'changeSet' => [ + ['createdAt' => '2024-04-29T15:00:33.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-03-27T02:23:15.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchPutDcdnKv'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:BatchPutDcdnKv', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"156A6B-677B1A-4297B7-9187B7-2B44792\\",\\n \\"FailKeys\\": [\\n \\"testKey1\\"\\n ],\\n \\"SuccessKeys\\": [\\n \\"testKey2\\"\\n ]\\n}","type":"json"}]', + ], + 'BatchPutDcdnKvWithHighCapacity' => [ + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '213941', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'Namespace', 'in' => 'query', - 'schema' => [ - 'description' => '待获取归属校验内容的域名,只支持传入单个域名。', - 'type' => 'string', - 'required' => true, - 'example' => '**example**.com', - ], + 'schema' => ['title' => '', 'description' => '调用[PutDcdnKvNamespace](~~PutDcdnKvNamespace~~)时指定的名称。', 'type' => 'string', 'required' => true, 'example' => 'test_namespace'], + ], + [ + 'name' => 'Url', + 'in' => 'query', + 'schema' => ['description' => '存储有需要批量设置的键值对的下载链接,此参数由调用SDK时自动生成,请使用SDK进行调用。', 'type' => 'string', 'required' => true, 'example' => 'https://xxxobject.oss-cn-reginon.aliyuncs.com/9d91_xxxxxxxxxxx_158bb6e0f97c477791209bb46bd599f7', 'isFileTransferUrl' => true], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => '校验内容。', - 'type' => 'string', - 'example' => 'verify_dffeb6610035dcb78b413a59c31cd9**', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'EEEBE525-F576-1196-8DAF-2D70CA3F4D2F'."\n"], + 'FailKeys' => [ + 'description' => '写失败的键列表。', + 'type' => 'array', + 'items' => ['description' => '写失败的键名。', 'type' => 'string', 'example' => 'test_key1'], ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB', + 'SuccessKeys' => [ + 'description' => '写成功的键列表。', + 'type' => 'array', + 'items' => ['description' => '写成功的键名。', 'type' => 'string', 'example' => 'test_key2'], ], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": \\"verify_dffeb6610035dcb78b413a59c31cd9**\\",\\n \\"RequestId\\": \\"34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnVerifyContentResponse>\\n<Content>verify_dffeb6610035dcb78b413a59c31cd91f</Content>\\n<RequestId>34AB41F1-04A5-496F-8C8D-634BDBE6A9FB</RequestId>\\n</DescribeDcdnVerifyContentResponse>","errorExample":""}]', - 'title' => '获取归属校验内容', - 'description' => '> 单用户调用频率:100次/秒。 ', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'StartDcdnDomain' => [ - 'summary' => '调用StartDcdnDomain启用状态为停用的加速域名,将DomainStatus变更为online。', - 'methods' => [ - 'get', - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '输入参数无效'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'namespace输入不对,比如输入为空'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => '账号输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'key输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'key长度不能超过512B'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'value长度不能越过2000000B'], + ['errorCode' => 'InvalidKey.TooManyKeys', 'errorMessage' => 'request contains too many keys.', 'description' => '单次请求包含过多数量的key'], + ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'namespace容量超过限制,单个namespace最大容量为1G'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => '鉴权参数输入错误'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => '您输入的鉴权时间参数无效,请检查参数值后重试。'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => '您输入的token无效,请检查并输入正确的token后进行重试。'], + ], + [ + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'namespace不存在'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '批量设置KV存储空间的大容量键值对', + 'summary' => '根据指定的键名列表来批量设置指定KV存储空间的键值对,请求体最大支持100M。', + 'description' => '本接口与[BatchPutDcdnKv](~~BatchPutDcdnKv~~)的功能一样,只是允许上传更大请求体。当请求体较小时推荐直接使用[BatchPutDcdnKv](~~BatchPutDcdnKv~~)接口,从而减少服务端处理时间。本接口需要使用SDK进行调用。以golang SDK为例,需要使用BatchPutDcdnKvWithHighCapacityAdvance函数进行调用。'."\n" + .'```'."\n" + .'func TestBatchPutDcdnKvWithHighCapacity() error {'."\n" + .' // 配置初始化'."\n" + .' cfg := new(openapi.Config)'."\n" + .' cfg.SetAccessKeyId("xxxxxxxxx")'."\n" + .' cfg.SetAccessKeySecret("xxxxxxxxxx")'."\n" + .' cli, err := NewClient(cfg)'."\n" + .' if err != nil {'."\n" + .' return err'."\n" + .' }'."\n" + .' runtime := &util.RuntimeOptions{}'."\n" + ."\n" + .' // 构造待批量上传的键值对请求'."\n" + .' namespace := "test_batch_put"'."\n" + .' numKv := 10000'."\n" + .' kvList := make([]*BatchPutDcdnKvRequestKvList, numKv)'."\n" + .' test_value := strings.Repeat("a", 10*1024)'."\n" + .' for i := 0; i < numKv; i++ {'."\n" + .' key := fmt.Sprintf("test_key_%d", i)'."\n" + .' value := test_value'."\n" + .' kvList[i] = &BatchPutDcdnKvRequestKvList{'."\n" + .' Key: &key,'."\n" + .' Value: &value,'."\n" + .' }'."\n" + .' }'."\n" + .' rawReq := BatchPutDcdnKvRequest{'."\n" + .' Namespace: &namespace,'."\n" + .' KvList: kvList,'."\n" + .' }'."\n" + ."\n" + .' payload, err := json.Marshal(rawReq)'."\n" + .' if err != nil {'."\n" + .' return err'."\n" + .' }'."\n" + ."\n" + .' // 如果payload大于2M,则调用大容量接口进行上传'."\n" + .' reqHighCapacity := BatchPutDcdnKvWithHighCapacityAdvanceRequest{'."\n" + .' Namespace: &namespace,'."\n" + .' UrlObject: bytes.NewReader(payload),'."\n" + .' }'."\n" + .' resp, err := cli.BatchPutDcdnKvWithHighCapacityAdvance(&reqHighCapacity, runtime)'."\n" + .' if err != nil {'."\n" + .' return err'."\n" + .' }'."\n" + .' return nil'."\n" + .'}', + 'changeSet' => [ + ['createdAt' => '2024-06-13T06:35:32.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '1', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchPutDcdnKvWithHighCapacity'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:BatchPutDcdnKvWithHighCapacity', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EEEBE525-F576-1196-8DAF-2D70CA3F4D2F\\\\n\\",\\n \\"FailKeys\\": [\\n \\"test_key1\\"\\n ],\\n \\"SuccessKeys\\": [\\n \\"test_key2\\"\\n ]\\n}","type":"json"}]', + ], + 'BatchSetDcdnDomainConfigs' => [ + 'summary' => '调用BatchSetDcdnDomainConfigs实现域名批量配置功能。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1746,20 +2770,43 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeNodes' => ['FEATUREdcdn2JMMUY'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'DomainNames', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,仅支持启用单个。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '加速域名,多个域名用半角逗号(,)分隔,注意以下配置限制:'."\n" + ."\n" + .'- 一次最多传20个域名。'."\n" + .'- 域名个数乘以 Functions个数,小于等于50。', 'type' => 'string', 'required' => true, 'example' => 'example.com,example.org'], + ], + [ + 'name' => 'Functions', + 'in' => 'query', + 'schema' => ['description' => '功能列表,一次传入最多50条,格式如下:'."\n" + .' - **functionName**(功能名称):可配置功能请参见[功能列表](~~410622~~),多个参数之间用半角逗号(,)分隔。'."\n" + .'- **argName**:**functionName**的配置项(可配置多个配置项)。'."\n" + .'- **argValue**:**functionName**的配置项的取值。'."\n" + .'- **parentid**(规则条件ID,非必填):通过配置[域名配置功能参数](~~410622~~)中的功能函数**condition**(规则引擎),可以创建出规则条件(规则条件可以通过识别用户请求中携带的各种参数来匹配和过滤用户请求),每一个规则条件被创建以后都会生成一个对应的[configid](~~388994~~),configid可以被当作ParentId参数被其他功能函数引用,这样规则条件就可以与功能配置一起组合形成更灵活的配置。'."\n" + ."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "functionArgs": ['."\n" + .' {'."\n" + .' "argName": "功能参数A", '."\n" + .' "argValue": "功能参数A对应的值"'."\n" + .' }, '."\n" + .' {'."\n" + .' "argName": "功能参数B", '."\n" + .' "argValue": "功能参数B对应的值"'."\n" + .' }'."\n" + .' ], '."\n" + .' "functionName": "功能名称"'."\n" + .' }'."\n" + .']'."\n" + .'```', 'type' => 'string', 'required' => true, 'example' => '[{"functionArgs":[{"argName":"switch","argValue":"on"},{"argName":"region","argValue":"*"}],"functionName":"ipv6"}]'], ], ], 'responses' => [ @@ -1767,49 +2814,98 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], + 'DomainConfigList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DomainConfigModel' => [ + 'description' => '域名配置清单。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ConfigId' => ['description' => '配置ID,如果返回为0,则表示该条配置未配置成功,需要重新配置。', 'type' => 'integer', 'format' => 'int64', 'example' => '123456'], + 'DomainName' => ['description' => '域名。', 'type' => 'string', 'example' => 'www.example.com'], + 'FunctionName' => ['description' => '功能名称。', 'type' => 'string', 'example' => 'set_resp_header'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'RecordCheckNotAvailable', - 'errorMessage' => 'The ICP filing interface is unavailable. Please try again later.', - ], - [ - 'errorCode' => 'IcpBlack', - 'errorMessage' => 'The domain is on the ICP blacklist.', - ], - [ - 'errorCode' => 'IspBlack', - 'errorMessage' => 'The domain is on the ISP blacklist.', - ], + ['errorCode' => 'InvalidFunctions.Malformed', 'errorMessage' => 'The specified Functions is invalid.', 'description' => '不支持该配置,请重新填写。'], + ['errorCode' => 'InvalidArgValue.Malformed', 'errorMessage' => 'The specified ArgValue is invalid.', 'description' => 'ArgValue错误,请重新填写。'], + ['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => '[%s] is not supported.', 'description' => '不支持该设置。'], + ['errorCode' => 'Invalid%s.Malformed', 'errorMessage' => 'The specified ArgValue [%s] is invalid.', 'description' => '不支持该ArgValue,请填写正确的ArgValue。'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'You must specify ArgValue.', 'description' => '缺少参数。'], + ['errorCode' => 'InvalidRule.Malformed', 'errorMessage' => '%s', 'description' => '%s'], + ['errorCode' => 'InvalidHeaderKey.ValueNotSupported', 'errorMessage' => 'The specified value of parameter HeaderKey is not supported.', 'description' => 'HeaderKey的值不合法。'], + ['errorCode' => 'MissingParameter%s', 'errorMessage' => 'The specified value of ArgName %s is missing.', 'description' => '缺少参数。'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'Domain already exists in high ddos.', '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' => ''], + ['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' => '未开放JS规则,如有疑问,请提交工单咨询'], + ['errorCode' => 'ServiceInvokeFailed', 'errorMessage' => 'Failed to invoke service.', 'description' => '调用内部服务失败。'], + ['errorCode' => 'ConfigParentExceedLimit', 'errorMessage' => 'Config Parent exceed limit.', 'description' => '已引用的高级条件规则超过5条'], + ['errorCode' => 'BatchSetBusinessError', 'errorMessage' => 'some configs error:%s', 'description' => '发生配置错误:%s'], + ['errorCode' => 'Function.InvalidParentId', 'errorMessage' => 'The specified parentId does not exist.', 'description' => '指定的规则条件不存在'], + ['errorCode' => 'Domain.DDosQuotaFull', 'errorMessage' => 'The user’s domain quota for DDos is full.', 'description' => '防护域名数量已达上限,请变配加购域名数量'], + ['errorCode' => 'AccountArrears', 'errorMessage' => 'The user‘s account is in arrears.', 'description' => '您的账号已欠费,无法操作'], + ['errorCode' => 'DDosExpired', 'errorMessage' => 'The user‘s DDoS protection has expired.', 'description' => '您的DDoS防护已过期,无法操作'], + ['errorCode' => 'Domain.DDosAlreadyExists', 'errorMessage' => 'This specified domain has been in DDoS.', 'description' => '该域名已接入阿里云高防产品,请删除后再接入DCDN DDoS防护'], + ['errorCode' => 'Domain.PortConfiguring', 'errorMessage' => 'This specified domain\'s special ports are configuring.', 'description' => '域名的特殊端口配置中,请稍后'], + ['errorCode' => 'Domain.PortAllocateError', 'errorMessage' => 'Your port resource allocation failed, please try again in 30 minutes.', 'description' => '您本次提交的自定义端口资源分配失败,请30分钟后重试。多次重试失败可提交工单处理'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","errorExample":""},{"type":"xml","example":"<StartDcdnDomainResponse>\\r\\n\\t<RequestId>0AEDAF20-4DDF-4165-8750-47FF9C1929C9</RequestId>\\r\\n</StartDcdnDomainResponse>","errorExample":""}]', - 'title' => '启用域名', - 'description' => '- 如果您的域名处于非法状态或域名对应账户欠费,您将无法正常调用该接口启用加速域名。'."\n" - .'- 单用户调用频率:30次/秒。', - 'requestParamsDescription' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\",\\n \\"DomainConfigList\\": {\\n \\"DomainConfigModel\\": [\\n {\\n \\"ConfigId\\": 123456,\\n \\"DomainName\\": \\"www.example.com\\",\\n \\"FunctionName\\": \\"set_resp_header\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<BatchSetDcdnDomainConfigsResponse>\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\n<DomainConfigModel>\\n <DomainName>example.com</DomainName>\\n <ConfigId>1234567</ConfigId>\\n <FunctionName>set_req_host_header</FunctionName>\\n</DomainConfigModel>\\n</BatchSetDcdnDomainConfigsResponse>","errorExample":""}]', + 'title' => '批量配置域名', + 'description' => '- 单用户调用频率:30次/秒。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchStartDcdnDomain' => [ - 'summary' => '批量启用状态为停用的加速域名,将DomainStatus变更为online。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2023-10-10T02:13:33.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2023-08-17T03:49:12.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2023-07-26T09:39:05.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2023-06-13T04:55:51.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2023-06-13T02:28:13.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2023-05-23T03:11:42.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2023-03-15T07:31:17.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2022-11-24T06:47:17.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchSetDcdnDomainConfigs'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:BatchSetDcdnDomainConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + ], + ], + 'BatchSetDcdnIpaDomainConfigs' => [ + 'summary' => '调用BatchSetDcdnIpaDomainConfigs批量配置IPA层应用加速域名。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1820,20 +2916,19 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeNodes' => ['FEATUREdcdn2JMMUY'], ], 'parameters' => [ [ 'name' => 'DomainNames', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,多个域名用半角逗号(,)分隔。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'IPA层应用加速域名,多个域名用英文逗号(,)分隔。'."\n" + .'- 一次最多传20个域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'Functions', + 'in' => 'query', + 'schema' => ['description' => '功能列表。```[{"functionArgs":[{"argName":"配置名称","argValue":"配置值"}],"functionName":"功能名称"}]```', 'type' => 'string', 'required' => true, 'example' => '[{"functionArgs":[{"argName":"domain_name","argValue":"api.*com"}],"functionName":"protogw"}]'], ], ], 'responses' => [ @@ -1841,50 +2936,144 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'RecordCheckNotAvailable', - 'errorMessage' => 'The ICP filing interface is unavailable. Please try again later.', - ], - [ - 'errorCode' => 'IcpBlack', - 'errorMessage' => 'The domain is on the ICP blacklist.', - ], - [ - 'errorCode' => 'IspBlack', - 'errorMessage' => 'The domain is on the ISP blacklist.', - ], + ['errorCode' => 'InvalidFunctions.Malformed', 'errorMessage' => 'The specified Functions is invalid.', 'description' => '不支持该配置,请重新填写。'], + ['errorCode' => 'InvalidArgValue.Malformed', 'errorMessage' => 'The specified ArgValue is invalid.', 'description' => 'ArgValue错误,请重新填写。'], + ['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => '[%s] is not supported.', 'description' => '不支持该设置。'], + ['errorCode' => 'Invalid%s.Malformed', 'errorMessage' => 'The specified ArgValue [%s] is invalid.', 'description' => '不支持该ArgValue,请填写正确的ArgValue。'], + ], + 403 => [ + ['errorCode' => 'DcdnIpaServiceNotFound', 'errorMessage' => 'The DCDN IPA service has not been activated.', 'description' => '没有开通DCDN IPA服务。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","errorExample":""},{"type":"xml","example":"<BatchStartDcdnDomainResponse>\\r\\n\\t<RequestId>0AEDAF20-4DDF-4165-8750-47FF9C1929C9</RequestId>\\r\\n</BatchStartDcdnDomainResponse>\\r\\n\\t\\r\\n","errorExample":""}]', - 'title' => '批量启用域名', - 'description' => '> - 如果您的域名处于非法状态或域名对应账户欠费,您将无法正常调用该接口启用加速域名。'."\n" - .'>- 单次配置的域名数量不超过50个。'."\n" - .'>- 单用户调用频率:30次/秒。', - 'requestParamsDescription' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","errorExample":""},{"type":"xml","example":"<BatchSetDcdnIpaDomainConfigsResponse>\\r\\n\\t<RequestId>0AEDAF20-4DDF-4165-8750-47FF9C1929C9</RequestId>\\r\\n</BatchSetDcdnIpaDomainConfigsResponse>","errorExample":""}]', + 'title' => '批量配置IPA层应用加速域名', + 'description' => '> 单用户调用频率:20次/秒。', + 'requestParamsDescription' => '**功能说明**'."\n" + ."\n" + .'| 名称 | 参数 |'."\n" + .'|---------------|--------|'."\n" + .'| protogw:IP应用加速| realip(必填):源站IP透传方式,支持三种方式。off:关闭;toa:该方式将携带客户端真实IP,需要源站安装TOA内核模块,服务程序无需改造;pp:该方式将携带客户端真实IP,Nginx开源版本默认支持,其他源站服务软件需自行兼容。<br>port(必填):服务端口。|'."\n", 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchSetDcdnIpaDomainConfigs'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:BatchSetDcdnIpaDomainConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + ], ], - 'StopDcdnDomain' => [ - 'summary' => '调用StopDcdnDomain停用某个加速域名,将DomainStatus变更为offline。', - 'methods' => [ - 'get', - 'post', + 'BatchSetDcdnWafDomainConfigs' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], ], - 'schemes' => [ - 'http', - 'https', + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], + 'parameters' => [ + [ + 'name' => 'DomainNames', + 'in' => 'formData', + 'schema' => ['description' => '需修改防护状态域名,最多输入50个,多个域名用英文逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'example.com,example2.com'], + ], + [ + 'name' => 'DefenseStatus', + 'in' => 'formData', + 'schema' => ['description' => '防护域名状态,取值:on、off、和空值。'."\n" + ."\n" + .'- 接入域名时为**on**,此时ClientIpTag的值生效(选默认时为空;选自定义Header时为对应的值)。'."\n" + .'- 删除域名时为**off**,此时ClientIpTag不生效。'."\n" + .'- 只修改ClientIpTag时,DefenseStatus为空。', 'type' => 'string', 'required' => false, 'example' => 'on'], + ], + [ + 'name' => 'ClientIpTag', + 'in' => 'formData', + 'schema' => ['description' => '指定的获取IP的Header值,当选择默认Header时,该值为空;选择自定义Header时,该值为用户输入的值。传多个值时需要使用逗号分隔,最多5个。', 'type' => 'string', 'required' => false, 'example' => 'X-Forwarded-For'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CB1A380B-09F0-41BB-3C82-72F8FD6DA2FE'], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ], + 403 => [ + ['errorCode' => 'DomainInProtectedMode', 'errorMessage' => 'The domain is in protection mode. To request permission, contact Customer Service.', 'description' => '此域名处于被保护模式。如果您想做这个操作,请联系我们。'], + ['errorCode' => '%s.NotSupport', 'errorMessage' => 'The specified resource type %s is not supported.', 'description' => '不支持指定的资源类型。如需使用该类型资源,请与我们联系。'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => '该资源的数量超出了配额所规定的范围,如需申请更多的额度,请与我们联系。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => '内部错误,请重试,如果多次重试报错请提交工单。'], + ], + ], + 'title' => '批量设置域名防护状态', + 'summary' => '调用BatchSetDcdnWafDomainConfigs批量设置域名防护状态。', + 'description' => '> '."\n" + .'> - 单用户调用频率:20次/秒。'."\n" + .'> - 请求方式:支持POST请求。', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:15.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchSetDcdnWafDomainConfigs'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'dcdn:BatchSetDcdnWafDomainConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-3C82-72F8FD6DA2FE\\"\\n}","errorExample":""},{"type":"xml","example":"<BatchSetDcdnWafDomainConfigsResponse>\\n <RequestId>CB1A380B-09F0-41BB-3C82-72F8FD6DA2FE</RequestId>\\n</BatchSetDcdnWafDomainConfigsResponse>","errorExample":""}]', + ], + 'BatchStartDcdnDomain' => [ + 'summary' => '批量启用状态为停用的加速域名,将DomainStatus变更为online。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1895,20 +3084,13 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'DomainNames', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,仅支持停用单个。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '加速域名,多个域名用半角逗号(,)分隔。'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ @@ -1916,33 +3098,50 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","errorExample":""},{"type":"xml","example":"<StopDcdnDomainResponse>\\r\\n\\t<RequestId>0AEDAF20-4DDF-4165-8750-47FF9C1929C9</RequestId>\\r\\n</StopDcdnDomainResponse>","errorExample":""}]', - 'title' => '停用域名', - 'description' => '> - 停用加速域名后,加速域名的配置信息仍然会保留,但是阿里云DCDN将停止为该域名提供加速服务,且该域名会被解析到无效地址“offline.***.com”,无法被继续访问。'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'RecordCheckNotAvailable', 'errorMessage' => 'The ICP filing interface is unavailable. Please try again later.', 'description' => '备案接口不可用,请稍后重试。'], + ['errorCode' => 'IcpBlack', 'errorMessage' => 'The domain is on the ICP blacklist.', 'description' => '域名在工信部黑名单。'], + ['errorCode' => 'IspBlack', 'errorMessage' => 'The domain is on the ISP blacklist.', 'description' => '域名在阿里云黑名单。'], + ], + ], + 'title' => '批量启用域名', + 'description' => '> - 如果您的域名处于非法状态或域名对应账户欠费,您将无法正常调用该接口启用加速域名。'."\n" + .'>- 单次配置的域名数量不超过50个。'."\n" .'>- 单用户调用频率:30次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchStartDcdnDomain'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:BatchStartDcdnDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","errorExample":""},{"type":"xml","example":"<BatchStartDcdnDomainResponse>\\r\\n\\t<RequestId>0AEDAF20-4DDF-4165-8750-47FF9C1929C9</RequestId>\\r\\n</BatchStartDcdnDomainResponse>\\r\\n\\t\\r\\n","errorExample":""}]', ], 'BatchStopDcdnDomain' => [ 'summary' => '停用加速域名,将DomainStatus变更为offline。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1953,20 +3152,13 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ 'name' => 'DomainNames', 'in' => 'query', - 'schema' => [ - 'description' => '需要接入全站加速的域名,多个用半角逗号(,)分隔。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '需要接入全站加速的域名,多个用半角逗号(,)分隔。'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ @@ -1974,24 +3166,16 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'DomainNameOverLimit', - 'errorMessage' => 'A maximum of 50 domains is supported for each request.', - ], + ['errorCode' => 'DomainNameOverLimit', 'errorMessage' => 'A maximum of 50 domains is supported for each request.', 'description' => '一次最多只支持50个域名,请减少域名重新请求。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","errorExample":""},{"type":"xml","example":"<BatchStopDcdnDomainResponse>\\r\\n\\t<RequestId>0AEDAF20-4DDF-4165-8750-47FF9C1929C9</RequestId>\\r\\n</BatchStopDcdnDomainResponse>\\r\\n\\t","errorExample":""}]', 'title' => '批量停用域名', 'description' => '> - 停用加速域名后,加速域名的配置信息仍然会保留,但是阿里云DCDN将停止为该域名提供加速服务,且该域名会被解析到无效地址“offline.***.com”,无法被继续访问。'."\n" .'> - 单次配置的域名数量不超过50个。'."\n" @@ -1999,17 +3183,31 @@ 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnUserDomains' => [ - 'summary' => '调用DescribeDcdnUserDomains查询用户名下所有的DCDN域名,支持域名模糊匹配过滤和域名状态过滤。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchStopDcdnDomain'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:BatchStopDcdnDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","errorExample":""},{"type":"xml","example":"<BatchStopDcdnDomainResponse>\\r\\n\\t<RequestId>0AEDAF20-4DDF-4165-8750-47FF9C1929C9</RequestId>\\r\\n</BatchStopDcdnDomainResponse>\\r\\n\\t","errorExample":""}]', + ], + 'CheckDcdnProjectExist' => [ + 'summary' => '调用CheckDcdnProjectExist检查实时日志项目是否存在。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2017,427 +3215,294 @@ ], 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111558', - 'abilityTreeNodes' => [ - 'FEATUREdcdnWQK30N', - ], + 'abilityTreeCode' => '111444', + 'abilityTreeNodes' => ['FEATUREdcdn9K10I1'], ], 'parameters' => [ [ - 'name' => 'PageSize', + 'name' => 'ProjectName', 'in' => 'query', + 'schema' => ['description' => '实时日志项目名称。', 'type' => 'string', 'required' => true, 'example' => 'example'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '分页大小。默认**20**,取值:**1**~**500**。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'example' => '20', - 'default' => '20', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'b021e538-9dde-46ed-a1f2-9469da8f3e77'], + 'Content' => [ + 'description' => '返回结果内容。', + 'type' => 'object', + 'properties' => [ + 'Exist' => ['description' => '是否存在,取值:'."\n" + .'- **false**:不存在。'."\n" + .'- **true**:存在。', 'type' => 'string', 'example' => 'false'], + ], + ], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 500 => [ + ['errorCode' => 'Internal Exception', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => '内部错误,请稍后重试或联系我们。'], + ], + ], + 'title' => '检查实时日志项目是否存在', + 'description' => '> 单用户调用频率:100次/秒。', + 'changeSet' => [ + ['createdAt' => '2024-12-18T07:22:52.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CheckDcdnProjectExist'], + ], + ], + 'ramActions' => [ [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => '页数。取值范围:**1**~**100000**。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:CheckDcdnProjectExist', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"b021e538-9dde-46ed-a1f2-9469da8f3e77\\",\\n \\"Content\\": {\\n \\"Exist\\": \\"false\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<CheckDcdnProjectExistResponse>\\n <RequestId>b021e538-9dde-46ed-a1f2-9469da8f3e77</RequestId>\\n <Content>\\n <Exist>false</Exist>\\n </Content>\\n</CheckDcdnProjectExistResponse>","errorExample":""}]', + ], + 'CommitStagingRoutineCode' => [ + 'summary' => '调用CommitStagingRoutineCode把测试版本unstable的JS代码生成供线上Env环境使用的正式版本。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'DomainName', - 'in' => 'query', + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '111446', + 'abilityTreeNodes' => ['FEATUREdcdn75UYDO'], + ], + 'parameters' => [ + [ + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => 'Routine函数名,在同一个账号下唯一。', 'type' => 'string', 'required' => true, 'example' => 'test'], + ], + [ + 'name' => 'CodeDescription', + 'in' => 'formData', + 'schema' => ['description' => '代码版本描述。', 'type' => 'string', 'required' => true, 'example' => 'Hello World'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '加速域名。如果不传该参数,默认不做域名匹配搜索,返回所有符合条件的域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - 'maxLength' => 6800, + 'type' => 'object', + 'properties' => [ + 'Content' => ['description' => '代码版本号。', 'type' => 'object', 'example' => '1620876959997924701'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5CC228B4-7A67-4016-9C9F-4A4133494A91'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => '后端服务器发生错误:%s 。如果重试多次依然报错,请提交工单。'], + ], + ], + 'title' => '生成供线上Env环境使用的正式版本', + 'description' => '> API调用频率:100次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CommitStagingRoutineCode'], + ], + ], + 'ramActions' => [ [ - 'name' => 'DomainStatus', - 'in' => 'query', - 'schema' => [ - 'description' => '域名状态过滤。'."\n" - .' - **online**:启用。'."\n" - .' - **offline**:停用。'."\n" - .' - **configuring**:配置中。'."\n" - .'- **configure_failed**:配置失败。'."\n" - .'- **checking**:正在审核。'."\n" - .'- **check_failed**:审核失败。', - 'type' => 'string', - 'required' => false, - 'example' => 'online', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:CommitStagingRoutineCode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": 1620876959997924600,\\n \\"RequestId\\": \\"5CC228B4-7A67-4016-9C9F-4A4133494A91\\"\\n}","errorExample":""},{"type":"xml","example":"<CommitStagingRoutineCodeResponse>\\n<RequestId>A513734D-D17B-411E-864D-XXXX</RequestId>\\n<Content>\\n <CodeRevision>1620876959997924701</CodeRevision>\\n</Content>\\n</CommitStagingRoutineCodeResponse>","errorExample":""}]', + ], + 'CreateDcdnCertificateSigningRequest' => [ + 'summary' => '调用CreateDcdnCertificateSigningRequest创建 CSR(证书签名请求)文件。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'DomainSearchType', + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '204191', + 'abilityTreeNodes' => ['FEATUREdcdnX7NWEB'], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'CommonName', 'in' => 'query', - 'schema' => [ - 'description' => '域名查询类型。'."\n" - ."\n" - .'- **fuzzy_match**:模糊匹配。'."\n" - ."\n" - .'- **pre_match**:前匹配。'."\n" - ."\n" - .'- **suf_match**:后匹配。'."\n" - ."\n" - .'- **full_match**(默认值):完全匹配。'."\n" - ."\n" - .'> 传递了域名参数的情况下,不传DomainSearchType参数,则默认采用完全匹配模式。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'fuzzy_match', - ], + 'schema' => ['description' => '证书通用名称。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'CheckDomainShow', + 'name' => 'SANs', 'in' => 'query', - 'schema' => [ - 'description' => '是否展示审核中、审核失败、配置失败的域名。取值:'."\n" - ."\n" - .'- true:展示。'."\n" - .'- false:不展示。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '证书扩展字段,绑定的域名,多个域名用逗号(,)分隔。', 'type' => 'string', 'required' => false, 'example' => 'example.com,example.org'], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'Organization', 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmv6jutt**', - ], + 'schema' => ['description' => '机构名称,默认:Alibaba Inc。', 'type' => 'string', 'required' => false, 'example' => 'Alibaba Inc', 'default' => 'Alibaba Inc.'], ], [ - 'name' => 'ChangeStartTime', + 'name' => 'OrganizationUnit', 'in' => 'query', - 'schema' => [ - 'description' => '更新开始时间,日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-05-10T12:00:00Z', - ], + 'schema' => ['description' => '部门名称,默认:Aliyun CDN。', 'type' => 'string', 'required' => false, 'example' => 'Aliyun CDN', 'default' => 'Aliyun CDN'], ], [ - 'name' => 'ChangeEndTime', + 'name' => 'Country', 'in' => 'query', - 'schema' => [ - 'description' => '更新结束时间,日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-05-10T14:00:00Z', - ], + 'schema' => ['description' => '所属国家,默认:CN。', 'type' => 'string', 'required' => false, 'example' => 'CN', 'default' => 'CN'], ], [ - 'name' => 'Coverage', + 'name' => 'State', 'in' => 'query', - 'schema' => [ - 'description' => '加速区域:默认为全部。'."\n" - ."\n" - .'- **domestic**:仅中国内地。'."\n" - .'- **overseas**:全球(不包含中国内地)。'."\n" - .'- **global**:全球。', - 'type' => 'string', - 'required' => false, - 'example' => 'domestic', - ], + 'schema' => ['description' => '省级地区,默认:Zhejiang。', 'type' => 'string', 'required' => false, 'example' => 'Zhejiang', 'default' => 'Zhejiang'], ], [ - 'name' => 'Tag', + 'name' => 'City', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '标签列表。', - 'type' => 'array', - 'items' => [ - 'description' => '标签解释。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键,N的取值范围**1**~**20**。通过TagDcdnResources接口可以给域名设置Tag。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], - 'Value' => [ - 'description' => '标签值,N的取值范围**1**~**20**。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 20, - ], + 'schema' => ['description' => '市级地区,默认:Hangzhou。', 'type' => 'string', 'required' => false, 'example' => 'Hangzhou', 'default' => 'Hangzhou'], ], [ - 'name' => 'WebSiteType', + 'name' => 'Email', 'in' => 'query', - 'schema' => [ - 'description' => '业务类型,多个用逗号隔开,默认值为**dynamic**,查询普通dcdn域名。查询计算服务类型域名时,传 **computing_routine**,**computing_image**。', - 'type' => 'string', - 'required' => false, - 'example' => 'computing_routine', - 'default' => 'dynamic', - ], + 'schema' => ['description' => '邮箱', 'type' => 'string', 'required' => false, 'example' => 'username@example.com'], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'AA75AADB-5E25-4970-B480-EAA1F5658483', - ], - 'PageNumber' => [ - 'description' => '返回数据的页码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '整页大小。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '12', - ], - 'TotalCount' => [ - 'description' => '总条数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '12', - ], - 'Domains' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'PageData' => [ - 'description' => '由PageData组成的数组格式,返回加速域名的状态信息。'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'GmtCreated' => [ - 'description' => '加速域名创建时间。', - 'type' => 'string', - 'example' => '2015-10-28T11:05:50Z', - ], - 'Description' => [ - 'description' => '审核失败原因。', - 'type' => 'string', - 'example' => 'audit failed', - ], - 'SSLProtocol' => [ - 'description' => 'HTTPS开关。'."\n" - ."\n" - .'- **on**:已开启。'."\n" - ."\n" - .'- **off**:未开启。', - 'type' => 'string', - 'example' => 'on', - ], - 'ResourceGroupId' => [ - 'description' => '资源组ID。', - 'type' => 'string', - 'example' => 'rg-acfmv6jutt**', - ], - 'Sandbox' => [ - 'description' => '沙箱。', - 'type' => 'string', - 'example' => 'normal', - ], - 'DomainStatus' => [ - 'description' => '加速域名状态。'."\n" - .' - **online**:启用。'."\n" - .' - **offline**:停用。'."\n" - .' - **configuring**:配置中。'."\n" - .'- **configure_failed**:配置失败。'."\n" - .'- **checking**:正在审核。'."\n" - .'- **check_failed**:审核失败。', - 'type' => 'string', - 'example' => 'online', - ], - 'Cname' => [ - 'description' => '加速域名对应的CNAME域名。'."\n", - 'type' => 'string', - 'example' => 'test.aliyun.com.w.alikunlun.com', - ], - 'GmtModified' => [ - 'description' => '加速域名修改时间。', - 'type' => 'string', - 'example' => '2015-10-28T09:31:59Z', - ], - 'DomainName' => [ - 'description' => '域名信息。', - 'type' => 'string', - 'example' => 'www.example.com', - ], - 'DomainId' => [ - 'description' => '加速域名ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '11223344', - ], - 'Sources' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Source' => [ - 'description' => '源站信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => '源站类型。', - 'type' => 'string', - 'example' => 'oss', - ], - 'Weight' => [ - 'description' => '权重。', - 'type' => 'string', - 'example' => '20', - ], - 'Priority' => [ - 'description' => '优先级。', - 'type' => 'string', - 'example' => '20', - ], - 'Port' => [ - 'description' => '源站端口。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'Content' => [ - 'description' => '源站地址。', - 'type' => 'string', - 'example' => 'example.com', - ], - ], - ], - ], - ], - ], - 'Scene' => [ - 'description' => '场景。支持:'."\n" - .'- **apiscene**:API加速。'."\n" - .'- **webservicescene**:网站业务加速。'."\n" - .'- **staticscene**:视频、图文类加速。'."\n" - .'- **(空)**:没有场景。', - 'type' => 'string', - 'example' => 'apiscene', - ], - 'FunctionType' => [ - 'description' => '计算服务类型。取值:'."\n" - .'- **routine**:程序。'."\n" - .'- **image**:镜像。'."\n" - .'- **cloudFunction**:函数。', - 'type' => 'string', - 'example' => 'routine', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], + 'PubMd5' => ['description' => '证书公钥信息Md5值。', 'type' => 'string', 'example' => '629bf4fd8104eda171135bcb0f77a10b'], + 'Csr' => ['description' => '证书签名请求文件内容。', 'type' => 'string', 'example' => '-----BEGIN CERTIFICATE REQUEST-----\\nMIIC/zCCAecCAQAwZTELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAlpKMQswCQYDVQQH'], + 'CommonName' => ['description' => '证书通用名称。', 'type' => 'string', 'example' => 'example.com'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidPageNumber.ValueNotSupported', - 'errorMessage' => 'The specified value of PageNumber is not supported.', - ], - [ - 'errorCode' => 'InvalidPageSize.ValueNotSupported', - 'errorMessage' => 'The specified value of PageSize is invalid.', - ], - [ - 'errorCode' => 'InvalidDomainStatus.ValueNotSupported', - 'errorMessage' => 'The specified value of DomainStatus is invalid.', - ], - [ - 'errorCode' => 'InvalidDomainName.Malformed', - 'errorMessage' => 'The specified DomainName is invalid.', - ], - [ - 'errorCode' => 'InvalidDomainSearchType.ValueNotSupported', - 'errorMessage' => 'The specified value of DomainSearchType is invalid.', - ], - [ - 'errorCode' => 'InvalidChangeStartTime.Malformed', - 'errorMessage' => 'The specified ChangeStartTime is invalid.', - ], - [ - 'errorCode' => 'InvalidChangeEndTime.Malformed', - 'errorMessage' => 'The specified ChangeEndTime is invalid.', - ], + ['errorCode' => 'InvalidValue.Malformed', 'errorMessage' => 'Country must be 2 characters.', 'description' => ''], + ], + 500 => [ + ['errorCode' => 'Internal.KeyError', 'errorMessage' => 'Failed to generate rsa key.', 'description' => ''], + ['errorCode' => 'Internal.CreateCSRError', 'errorMessage' => 'Failed to create CSR.', 'description' => ''], + ['errorCode' => 'Internal.EncodeCSRError', 'errorMessage' => 'Failed to encode CSR.', 'description' => ''], + ['errorCode' => 'Internal.EncodeKeyError', 'errorMessage' => 'Failed to encode private key.', 'description' => ''], + ['errorCode' => 'Internal.Error', 'errorMessage' => 'The request processing has failed due to backend service exception.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"AA75AADB-5E25-4970-B480-EAA1F5658483\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 12,\\n \\"TotalCount\\": 12,\\n \\"Domains\\": {\\n \\"PageData\\": [\\n {\\n \\"GmtCreated\\": \\"2015-10-28T11:05:50Z\\",\\n \\"Description\\": \\"audit failed\\",\\n \\"SSLProtocol\\": \\"on\\",\\n \\"ResourceGroupId\\": \\"rg-acfmv6jutt**\\",\\n \\"Sandbox\\": \\"normal\\",\\n \\"DomainStatus\\": \\"online\\",\\n \\"Cname\\": \\"test.aliyun.com.w.alikunlun.com\\",\\n \\"GmtModified\\": \\"2015-10-28T09:31:59Z\\",\\n \\"DomainName\\": \\"www.example.com\\",\\n \\"DomainId\\": 11223344,\\n \\"Sources\\": {\\n \\"Source\\": [\\n {\\n \\"Type\\": \\"oss\\",\\n \\"Weight\\": \\"20\\",\\n \\"Priority\\": \\"20\\",\\n \\"Port\\": 80,\\n \\"Content\\": \\"example.com\\"\\n }\\n ]\\n },\\n \\"Scene\\": \\"apiscene\\",\\n \\"FunctionType\\": \\"routine\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnUserDomainsResponse>\\n <RequestId>AA75AADB-5E25-4970-B480-EAA1F5658483</RequestId>\\n <PageNumber>1</PageNumber>\\n <PageSize>12</PageSize>\\n <TotalCount>12</TotalCount>\\n <Domains>\\n <GmtCreated>2015-10-28T11:05:50Z</GmtCreated>\\n <Description>audit failed</Description>\\n <SSLProtocol>on</SSLProtocol>\\n <ResourceGroupId>rg-acfmv6jutt**</ResourceGroupId>\\n <Sandbox>normal</Sandbox>\\n <DomainStatus>online</DomainStatus>\\n <Cname>test.aliyun.com.w.alikunlun.com</Cname>\\n <GmtModified>2015-10-28T09:31:59Z</GmtModified>\\n <DomainName>www.example.com</DomainName>\\n <DomainId>11223344</DomainId>\\n <Sources>\\n <Type>oss</Type>\\n <Weight>20</Weight>\\n <Priority>20</Priority>\\n <Port>80</Port>\\n <Content>example.com</Content>\\n </Sources>\\n </Domains>\\n</DescribeDcdnUserDomainsResponse>","errorExample":""}]', - 'title' => '查询用户域名', - 'description' => '> 单用户调用频率:80次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainDetail' => [ - 'summary' => '调用DescribeDcdnDomainDetail获取指定加速域名配置的基本信息。', - 'methods' => [ - 'get', - 'post', + 'title' => '创建证书签名请求文件', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDcdnCertificateSigningRequest'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:CreateDcdnCertificateSigningRequest', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\",\\n \\"PubMd5\\": \\"629bf4fd8104eda171135bcb0f77a10b\\",\\n \\"Csr\\": \\"-----BEGIN CERTIFICATE REQUEST-----\\\\\\\\nMIIC/zCCAecCAQAwZTELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAlpKMQswCQYDVQQH\\",\\n \\"CommonName\\": \\"example.com\\"\\n}","type":"json"}]', + ], + 'CreateDcdnDeliverTask' => [ + 'summary' => '调用CreateDcdnDeliverTask创建报表订阅任务,订阅成功后系统会周期性地以邮件方式向您发送报表统计数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnZZCERX'], ], 'parameters' => [ [ + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => '订阅任务名称。', 'type' => 'string', 'required' => true, 'example' => 'Domain subscription'], + ], + [ + 'name' => 'Reports', + 'in' => 'formData', + 'schema' => ['description' => '待订阅的报表列表,需进行JSON转义。', 'type' => 'string', 'required' => true, 'example' => '[{\\"reportId\\":2,\\"conditions\\":[{\\"field\\":\\"prov\\",\\"op\\":\\"in\\",\\"value\\":[\\" Heilongjiang\\",\\" Beijing\\"]}]}]'], + ], + [ 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,仅支持单个域名查询。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'in' => 'formData', + 'schema' => ['description' => '<props="china">待订阅的域名列表,多个域名用半角逗号(,)分隔,订阅域名数量上限为500个,超过500个请[填写信息](https://page.aliyun.com/form/act2017566026/index.htm)申请。</props>'."\n" + ."\n" + .'<props="intl">待订阅的域名列表,多个域名用半角逗号(,)分隔,订阅域名数量上限为500个,超过500个请[提交工单](https://workorder-intl.console.aliyun.com/?spm=5176.2020520001.aliyun_topbar.18.dbd44bd3e4f845#/ticket/createIndex)申请。</props>'."\n" + .'> 不传该参数,默认为账号下的所有域名订阅报表交付任务。', 'type' => 'string', 'required' => false, 'example' => 'example.com,example.org'], + ], + [ + 'name' => 'Deliver', + 'in' => 'formData', + 'schema' => ['description' => '报表发送方式,仅支持邮件发送,需进行JSON转义。', 'type' => 'string', 'required' => true, 'example' => '{"email":{"subject":"Topic name","to":["username@example.com","username@example.org"]}}'], + ], + [ + 'name' => 'Schedule', + 'in' => 'formData', + 'schema' => ['description' => '订阅周期相关参数,需进行JSON转义。', 'type' => 'string', 'required' => true, 'example' => '{"schedName":" subscription task name","description":" description","crontab":"000**?","frequency":"d","status":"enable","effectiveFrom":"2020-09-17T00:00:00Z","effectiveEnd":"2020-11-17T00:00:00Z"}'], ], ], 'responses' => [ @@ -2445,282 +3510,142 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '09ABE829-6CD3-4FE0-AFEE-556113E29727', - ], - 'DomainDetail' => [ - 'description' => '域名信息列表。', - 'type' => 'object', - 'properties' => [ - 'GmtCreated' => [ - 'description' => '创建时间。'."\n", - 'type' => 'string', - 'example' => '2017-11-27T06:51:26Z', - ], - 'SSLPub' => [ - 'description' => '如果开启HTTPS,此处为证书公钥。'."\n", - 'type' => 'string', - 'example' => 'xxx', - ], - 'Description' => [ - 'description' => '域名备案信息。', - 'type' => 'string', - 'example' => '京ICP备1703xxxx号', - ], - 'SSLProtocol' => [ - 'description' => '是否开启SSL证书。取值:'."\n" - ."\n" - .'- **on**:**开启**。'."\n" - ."\n" - .'- **off**:**关闭**。', - 'type' => 'string', - 'example' => 'on', - ], - 'ResourceGroupId' => [ - 'description' => '资源组ID。'."\n", - 'type' => 'string', - 'example' => 'rg-acfmyuji4b6r4**', - ], - 'Scope' => [ - 'description' => '加速区域。'."\n" - .'- **domestic**(默认值):仅中国内地。'."\n" - .'- **overseas**:全球(不包含中国内地)。'."\n" - .'- **global**:全球。', - 'type' => 'string', - 'example' => 'overseas', - ], - 'Cname' => [ - 'description' => '为加速域名生成的一个CNAME域名,您需要在域名解析服务商处为加速域名配置CNAME解析。', - 'type' => 'string', - 'example' => 'example.aliyundoc.com', - ], - 'DomainStatus' => [ - 'description' => '加速域名运行状态。取值:'."\n" - ."\n" - .'- **online**:启用。'."\n" - ."\n" - .'- **offline**:停用。'."\n" - ."\n" - .'- **configuring**:配置中。'."\n" - ."\n" - .'- **configure_failed**:配置失败。'."\n" - ."\n" - .'- **checking**:正在审核。'."\n" - ."\n" - .'- **check_failed**:审核失败。', - 'type' => 'string', - 'example' => 'online', - ], - 'GmtModified' => [ - 'description' => '最近修改时间。'."\n", - 'type' => 'string', - 'example' => '2017-11-27T06:51:25Z', - ], - 'DomainName' => [ - 'description' => '加速的域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'Sources' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Source' => [ - 'description' => '源站信息。'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => '源站类型。取值:'."\n" - ."\n" - .'- **ipaddr**:IP源站。'."\n" - ."\n" - .'- **domain**:域名源站。'."\n" - ."\n" - .'- **oss**:OSS Bucket为源站。', - 'type' => 'string', - 'example' => 'oss', - ], - 'Weight' => [ - 'description' => '回源权重。', - 'type' => 'string', - 'example' => '20', - ], - 'Enabled' => [ - 'description' => '状态。'."\n", - 'type' => 'string', - 'example' => 'online', - ], - 'Priority' => [ - 'description' => '优先级。'."\n", - 'type' => 'string', - 'example' => '50', - ], - 'Port' => [ - 'description' => '端口,支持443和80。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'Content' => [ - 'description' => '回源地址。', - 'type' => 'string', - 'example' => 'example.org', - ], - ], - ], - ], - ], - ], - 'Scene' => [ - 'description' => '加速场景。支持:'."\n" - .'- **apiscene**:API加速。'."\n" - .'- **webservicescene**:网站业务加速。'."\n" - .'- **staticscene**:视频、图文类加速。'."\n" - .'- **(空)**:没有场景。', - 'type' => 'string', - 'example' => 'apiscene', - ], - 'FunctionType' => [ - 'description' => '计算服务类型。取值:'."\n" - .'- **routine**:程序。'."\n" - .'- **image**:镜像。'."\n" - .'- **cloudFunction**:函数。', - 'type' => 'string', - 'example' => 'routine', - ], - ], - ], + 'DeliverId' => ['description' => '订阅任务ID。', 'type' => 'string', 'example' => '92'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"09ABE829-6CD3-4FE0-AFEE-556113E29727\\",\\n \\"DomainDetail\\": {\\n \\"GmtCreated\\": \\"2017-11-27T06:51:26Z\\",\\n \\"SSLPub\\": \\"xxx\\",\\n \\"Description\\": \\"京ICP备1703xxxx号\\",\\n \\"SSLProtocol\\": \\"on\\",\\n \\"ResourceGroupId\\": \\"rg-acfmyuji4b6r4**\\",\\n \\"Scope\\": \\"overseas\\",\\n \\"Cname\\": \\"example.aliyundoc.com\\",\\n \\"DomainStatus\\": \\"online\\",\\n \\"GmtModified\\": \\"2017-11-27T06:51:25Z\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Sources\\": {\\n \\"Source\\": [\\n {\\n \\"Type\\": \\"oss\\",\\n \\"Weight\\": \\"20\\",\\n \\"Enabled\\": \\"online\\",\\n \\"Priority\\": \\"50\\",\\n \\"Port\\": 80,\\n \\"Content\\": \\"example.org\\"\\n }\\n ]\\n },\\n \\"Scene\\": \\"apiscene\\",\\n \\"FunctionType\\": \\"routine\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainDetailResponse>\\n <RequestId>09ABE829-6CD3-4FE0-AFEE-556113E29727</RequestId>\\n <DomainDetail>\\n <GmtCreated>2017-11-27T06:51:26Z</GmtCreated>\\n <SSLPub>xxx</SSLPub>\\n <Description>京ICP备1703xxxx号</Description>\\n <SSLProtocol>on</SSLProtocol>\\n <ResourceGroupId>rg-acfmyuji4b6r4**</ResourceGroupId>\\n <Scope>overseas</Scope>\\n <Cname>example.aliyundoc.com</Cname>\\n <DomainStatus>online</DomainStatus>\\n <GmtModified>2017-11-27T06:51:25Z</GmtModified>\\n <DomainName>example.com</DomainName>\\n <Sources>\\n <Type>oss</Type>\\n <Weight>20</Weight>\\n <Enabled>online</Enabled>\\n <Priority>50</Priority>\\n <Port>80</Port>\\n <Content>example.org</Content>\\n </Sources>\\n </DomainDetail>\\n</DescribeDcdnDomainDetailResponse>","errorExample":""}]', - 'title' => '查询域名详情', - 'description' => '> 单用户调用频率:30次/秒。', - 'requestParamsDescription' => ' ', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ['errorCode' => 'TimeParseFailed', 'errorMessage' => 'Failed to parse the time parameter.', 'description' => '解析时间参数失败'], + ['errorCode' => 'SubscriptionNotFound', 'errorMessage' => 'The subscription is not found.', 'description' => '未开通定制服务'], + ['errorCode' => 'NameAlreadyExists', 'errorMessage' => 'The name already exists.', 'description' => '名称已存在'], + ['errorCode' => 'DeliverExceedLimit', 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', 'description' => '订阅任务个数已达上限'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DeliverId\\": \\"92\\",\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateDcdnDeliverTaskResponse>\\r\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</CreateDcdnDeliverTaskResponse>","errorExample":""}]', + 'title' => '创建报表订阅任务', + 'description' => '> 单用户调用频率:3次/秒。 '."\n", + 'requestParamsDescription' => '**Reports数据说明**'."\n" + .'|参数|类型|是否必须|描述'."\n" + .'|--------|------------------|---|---|'."\n" + .'|reportId|String|是|报表ID。|'."\n" + .'|conditions|ConDatas[]|否|报表过滤条件。|'."\n" + ."\n" + .'**conditions数据说明**'."\n" + .'|参数|类型|是否必须|描述'."\n" + .'|--------|------------------|---|---|'."\n" + .'|field|String|否|过滤字段。|'."\n" + .'|op|String|否|过滤操作,目前只支持**in**。|'."\n" + .'|value|String[]|否|字段值数组。|'."\n" + ."\n" + .'**Deliver数据说明**'."\n" + .'|参数|类型|是否必须|描述|'."\n" + .'|--------|------------------|---|---|'."\n" + .'|subject|String|否|订阅主题。|'."\n" + .'|to|String[]|是|收件邮箱列表数组。|'."\n" + ."\n" + .'**Schedule数据说明**'."\n" + .'|参数|类型|是否必须|描述|'."\n" + .'|--------|------------------|---|---|'."\n" + .'|schedName|String|否|订阅任务名称。|'."\n" + .'|description|String|否|订阅任务描述。|'."\n" + .'|crontab|String|是|订阅任务执行周期。|'."\n" + .'|frequency|String|是|执行频率。取值:<br>h:小时<br>d:天<br>w:周|'."\n" + .'|status|String|否|订阅任务状态。取值:<br>enable:启用。<br>disable:关闭。|'."\n" + .'|effectiveFrom|String|否|订阅交付任务开始时间。|'."\n" + .'|effectiveEnd|String|否|订阅交付任务结束时间。|'."\n", 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnUserDomainsByFunc' => [ - 'summary' => '调用DescribeDcdnUserDomainsByFunc通过FuncId查询用户名下所有配置了指定功能的DCDN域名。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDcdnDeliverTask'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:CreateDcdnDeliverTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'DeliverTask', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + ], + 'CreateDcdnSLSRealTimeLogDelivery' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeCode' => '111450', + 'abilityTreeNodes' => ['FEATUREdcdn9K10I1'], ], 'parameters' => [ [ - 'name' => 'FuncId', - 'in' => 'query', - 'schema' => [ - 'description' => '功能ID,您可在[域名配置功能参数](~~410622~~)文档,根据功能名称搜索查询。'."\n" - .'例如:配置回源HOST(set_req_host_header)功能ID为18。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '7', - ], + 'name' => 'ProjectName', + 'in' => 'formData', + 'schema' => ['description' => '实时日志项目名称。', 'type' => 'string', 'required' => true, 'example' => 'example'], ], [ - 'name' => 'FuncFilter', - 'in' => 'query', - 'schema' => [ - 'description' => '是否开通funcid功能。'."\n" - ."\n" - .'- **config**:开通。'."\n" - .'- **unconfig**:未开通。', - 'type' => 'string', - 'required' => false, - 'example' => 'config', - ], + 'name' => 'DomainName', + 'in' => 'formData', + 'schema' => ['description' => '域名列表,多个域名用半角逗号(,)隔开。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '加速域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'name' => 'SamplingRate', + 'in' => 'formData', + 'schema' => ['description' => '采样率。', 'type' => 'string', 'required' => false, 'example' => '1.0'], ], [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => '页码,默认值:**1**。'."\n" - .'取值范围:**1~100000**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100000', - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'name' => 'SLSRegion', + 'in' => 'formData', + 'schema' => ['description' => 'SLS实时日志区域名称。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '单页显示域名的数量,默认值:**20**。'."\n" - .'取值范围:**1~500**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'minimum' => '1', - 'example' => '20', - 'default' => '20', - ], + 'name' => 'SLSProject', + 'in' => 'formData', + 'schema' => ['description' => 'SLS实时日志名称。', 'type' => 'string', 'required' => true, 'example' => 'aliyundoc'], ], [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmyuji4b6r4**', - ], + 'name' => 'SLSLogStore', + 'in' => 'formData', + 'schema' => ['description' => 'SLS实时日志库名称。', 'type' => 'string', 'required' => true, 'example' => 'demo'], ], [ - 'name' => 'MatchType', - 'in' => 'query', - 'schema' => [ - 'description' => '查询类型,支持以下2种类型,默认为精确查询。'."\n" - ."\n" - .'- fuzzy_match:模糊查询。'."\n" - .'- exact_match:精确查询。', - 'type' => 'string', - 'required' => false, - 'example' => 'exact_match', - 'enum' => [ - 'fuzzy_match', - 'exact_match', - ], - ], + 'name' => 'DataCenter', + 'in' => 'formData', + 'schema' => ['description' => '数据中心。取值:'."\n" + ."\n" + .'- cn:中国'."\n" + .'- sg:新加坡'."\n" + .'- eu:欧洲'."\n" + .'- us:美国', 'type' => 'string', 'required' => true, 'example' => 'cn'], + ], + [ + 'name' => 'BusinessType', + 'in' => 'formData', + 'schema' => ['description' => '业务类型,取值:'."\n" + ."\n" + .'- **cdn_log_access_l1**(默认值):用户访问日志。'."\n" + .'- **cdn_log_er**:边缘程序日志。'."\n" + .'- **cdn_log_waf**:WAF拦截日志。', 'type' => 'string', 'required' => false, 'example' => 'cdn_log_access_l1', 'default' => 'dcdn_log_access_l1'], ], ], 'responses' => [ @@ -2728,320 +3653,264 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'AA75AADB-5E25-4970-B480-EAA1F5658483', - ], - 'PageNumber' => [ - 'description' => '页码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '单页显示域名的数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '5', - ], - 'TotalCount' => [ - 'description' => '域名总个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '16', - ], - 'Domains' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'F32C57AA-7BF8-49AE-A2CC-9F42390F5A19'], + 'Content' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'PageData' => [ - 'description' => '由PageData组成的数组格式,返回加速域名的状态信息。', + 'Domains' => [ + 'description' => '域名配置结果信息。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'GmtCreated' => [ - 'description' => '加速域名创建时间。', - 'type' => 'string', - 'example' => '2015-10-28T09:32:51Z', - ], - 'SslProtocol' => [ - 'description' => 'HTTPS开关。取值:'."\n" - ."\n" - .'- **on**:已开启。'."\n" - .'- **off**:未开启。', - 'type' => 'string', - 'example' => 'on', - ], - 'Description' => [ - 'description' => '审核失败原因。', - 'type' => 'string', - 'example' => 'audit failed', - ], - 'ResourceGroupId' => [ - 'description' => '资源组ID。', - 'type' => 'string', - 'example' => 'rg-acfmyuji4b6r4**', - ], - 'Sandbox' => [ - 'description' => '沙箱。', - 'type' => 'string', - 'example' => 'normal', - ], - 'DomainStatus' => [ - 'description' => '加速域名状态。取值:'."\n" - ."\n" - .'- **online**:启用。'."\n" - .'- **offline**:停用。'."\n" - .'- **configuring**:配置中。'."\n" - .'- **configure_failed**:配置失败。'."\n" - .'- **checking**:正在审核。'."\n" - .'- **check_failed**:审核失败。', - 'type' => 'string', - 'example' => 'configure_failed', - ], - 'Cname' => [ - 'description' => '加速域名对应的CNAME域名。', - 'type' => 'string', - 'example' => 'example.com.w.alikunlun.net', - ], - 'GmtModified' => [ - 'description' => '加速域名修改时间。', - 'type' => 'string', - 'example' => '2015-10-28T11:05:50Z', - ], - 'DomainName' => [ - 'description' => '加速域名名称。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'Sources' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Source' => [ - 'description' => '源站信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => '源站类型。', - 'type' => 'string', - 'example' => 'oss', - ], - 'Weight' => [ - 'description' => '回源权重。', - 'type' => 'string', - 'example' => '20', - ], - 'Priority' => [ - 'description' => '优先级。', - 'type' => 'string', - 'example' => '20', - ], - 'Port' => [ - 'description' => '源站端口。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'Content' => [ - 'description' => '源站地址。', - 'type' => 'string', - 'example' => 'image.developer.aliyundoc.com', - ], - ], - ], - ], - ], - ], + 'Status' => ['description' => 'SLS实时日志状态。', 'type' => 'string', 'example' => 'success'], + 'DomainName' => ['description' => 'SLS实时日志域名。', 'type' => 'string', 'example' => 'example.com'], + 'Region' => ['description' => 'SLS实时日志区域。', 'type' => 'string', 'example' => 'cn'], + 'Desc' => ['description' => 'SLS实时日志描述。', 'type' => 'string', 'example' => 'ok'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidPageNumber.ValueNotSupported', - 'errorMessage' => 'The specified value of PageNumber is not supported.', - ], - [ - 'errorCode' => 'InvalidPageSize.ValueNotSupported', - 'errorMessage' => 'The specified value of PageSize is invalid.', - ], - [ - 'errorCode' => 'InvalidDomainStatus.ValueNotSupported', - 'errorMessage' => 'The specified value of DomainStatus is invalid.', - ], - [ - 'errorCode' => 'InvalidDomainName.Malformed', - 'errorMessage' => 'The specified DomainName is invalid.', - ], - [ - 'errorCode' => 'InvalidDomainSearchType.ValueNotSupported', - 'errorMessage' => 'The specified value of DomainSearchType is invalid.', - ], - [ - 'errorCode' => 'InvalidChangeStartTime.Malformed', - 'errorMessage' => 'The specified ChangeStartTime is invalid.', + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '输入参数无效'], + ], + 500 => [ + ['errorCode' => 'Internal Exception', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => '内部错误,请稍后重试或联系我们。'], + ], + ], + 'title' => '创建实时日志项目', + 'summary' => '调用CreateDcdnSLSRealTimeLogDelivery创建实时日志项目。', + 'description' => '> 单用户调用频率:100次/秒。', + 'changeSet' => [ + ['createdAt' => '2024-12-18T07:22:51.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2024-12-04T08:12:41.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDcdnSLSRealTimeLogDelivery'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:CreateDcdnSLSRealTimeLogDelivery', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], ], - [ - 'errorCode' => 'InvalidChangeEndTime.Malformed', - 'errorMessage' => 'The specified ChangeEndTime is invalid.', + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F32C57AA-7BF8-49AE-A2CC-9F42390F5A19\\",\\n \\"Content\\": {\\n \\"Domains\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Region\\": \\"cn\\",\\n \\"Desc\\": \\"ok\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<CreateDcdnSLSRealTimeLogDeliveryResponse>\\n<RequestId>F32C57AA-7BF8-49AE-A2CC-9F42390F5A19</RequestId>\\n<Content>\\n <Domains>\\n <DomainName>example.com</DomainName>\\n <Region>cn</Region>\\n <Status>success</Status>\\n <Desc>ok</Desc>\\n </Domains>\\n <Domains>\\n <DomainName>example.org</DomainName>\\n <Region>sg</Region>\\n <Status>success</Status>\\n <Desc>ok</Desc>\\n </Domains>\\n</Content>\\n</CreateDcdnSLSRealTimeLogDeliveryResponse>","errorExample":""}]', + ], + 'CreateDcdnSubTask' => [ + 'summary' => '调用CreateDcdnSubTask定制运营报表。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREdcdnZZCERX'], + ], + 'parameters' => [ + [ + 'name' => 'ReportIds', + 'in' => 'formData', + 'schema' => ['description' => '支持定制的报表ID列表,多个用英文逗号(,)分隔。取值:'."\n" + .'- **2**:热门URL(按请求数排序)。'."\n" + .'- **4**:热门URL(按流量排序)。'."\n" + .'- **6**:热门Referer(按请求数排序)。 '."\n" + .'- **8**:热门Referer(按流量排序)。'."\n" + .'- **10**:回源热门URL(按请求数排序)。'."\n" + .'- **12**:回源热门URL(按流量排序)。'."\n" + .'- **14**:Top客户端IP(按请求数排序)。'."\n" + .'- **16**:Top客户端IP(按流量排序)。'."\n" + .'- **18**:域名排行(按流量排序)。'."\n" + .'- **20**:PV和UV。'."\n" + .'- **22**:访问区域分布。'."\n" + .'- **24**:运营商分布。'."\n" + .'- **26**:IPv4/IPv6峰值带宽。'."\n" + .'- **27**:回源带宽。'."\n", 'type' => 'string', 'required' => true, 'example' => '2,4,6'], + ], + [ + 'name' => 'DomainName', + 'in' => 'formData', + 'schema' => ['description' => '<props="china">待订阅的域名列表,多个域名用半角逗号(,)分隔,订阅域名数量上限为500个,超过500个请[填写信息](https://page.aliyun.com/form/act2017566026/index.htm)申请。</props>'."\n" + ."\n" + .'<props="intl">待订阅的域名列表,多个域名用半角逗号(,)分隔,订阅域名数量上限为500个,超过500个请[提交工单](https://workorder-intl.console.aliyun.com/?spm=5176.2020520001.aliyun_topbar.18.dbd44bd3e4f845#/ticket/createIndex)申请。</props>'."\n" + .'> 不传该参数,默认为账号下的所有域名订阅报表交付任务。', 'type' => 'string', 'required' => false, 'example' => 'example.com,example.org'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"AA75AADB-5E25-4970-B480-EAA1F5658483\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 5,\\n \\"TotalCount\\": 16,\\n \\"Domains\\": {\\n \\"PageData\\": [\\n {\\n \\"GmtCreated\\": \\"2015-10-28T09:32:51Z\\",\\n \\"SslProtocol\\": \\"on\\",\\n \\"Description\\": \\"audit failed\\",\\n \\"ResourceGroupId\\": \\"rg-acfmyuji4b6r4**\\",\\n \\"Sandbox\\": \\"normal\\",\\n \\"DomainStatus\\": \\"configure_failed\\",\\n \\"Cname\\": \\"example.com.w.alikunlun.net\\",\\n \\"GmtModified\\": \\"2015-10-28T11:05:50Z\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Sources\\": {\\n \\"Source\\": [\\n {\\n \\"Type\\": \\"oss\\",\\n \\"Weight\\": \\"20\\",\\n \\"Priority\\": \\"20\\",\\n \\"Port\\": 80,\\n \\"Content\\": \\"image.developer.aliyundoc.com\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnUserDomainsByFuncResponse>\\n<PageNumber>1</PageNumber>\\n<TotalCount>16</TotalCount>\\n<PageSize>5</PageSize>\\n<RequestId>AA75AADB-5E25-4970-B480-EAA1F5658483</RequestId>\\n<Domains>\\n <PageData>\\n <DomainStatus>configure_failed</DomainStatus>\\n <DomainName>example.com</DomainName>\\n <GmtModified>2015-10-28T11:05:52Z</GmtModified>\\n <GmtCreated>2015-10-28T09:32:51Z</GmtCreated>\\n <Description>audit failed</Description>\\n <ResourceGroupId>rg-xxxxx</ResourceGroupId>\\n </PageData>\\n <PageData>\\n <DomainStatus>configure_failed</DomainStatus>\\n <DomainName>example.org</DomainName>\\n <GmtModified>2015-10-28T11:05:50Z</GmtModified>\\n <GmtCreated>2015-10-28T09:31:59Z</GmtCreated>\\n <ResourceGroupId>rg-xxxxx</ResourceGroupId>\\n </PageData>\\n <PageData>\\n <Cname>example.net.w.alikunlun.net</Cname>\\n <DomainStatus>online</DomainStatus>\\n <DomainName>example.net</DomainName>\\n <GmtModified>2015-10-27T06:26:34Z</GmtModified>\\n <GmtCreated>2015-10-23T09:30:00Z</GmtCreated>\\n <ResourceGroupId>rg-xxxxx</ResourceGroupId>\\n </PageData>\\n <PageData>\\n <Cname>example.edu.w.kunlunAr.com</Cname>\\n <DomainStatus>online</DomainStatus>\\n <DomainName>example.edu</DomainName>\\n <GmtModified>2015-10-23T09:23:29Z</GmtModified>\\n <GmtCreated>2015-10-23T09:23:20Z</GmtCreated>\\n <ResourceGroupId>rg-xxxxx</ResourceGroupId>\\n </PageData>\\n <PageData>\\n <Cname>aliyundoc.com.w.alikunlun.com</Cname>\\n <DomainStatus>online</DomainStatus>\\n <DomainName>aliyundoc.com</DomainName>\\n <GmtModified>2015-10-23T09:02:11Z</GmtModified>\\n <GmtCreated>2015-10-23T09:01:57Z</GmtCreated>\\n <ResourceGroupId>rg-xxxxx</ResourceGroupId>\\n </PageData>\\n</Domains>\\n</DescribeDcdnUserDomainsByFuncResponse>","errorExample":""}]', - 'title' => '查询域名-按功能', - 'description' => '> 单用户调用频率:100次/秒。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ['errorCode' => 'TimeParseFailed', 'errorMessage' => 'Failed to parse the time parameter.', 'description' => '解析时间参数失败'], + ['errorCode' => 'SubscriptionAlreadyExists', 'errorMessage' => 'The subscription already exists.', 'description' => '定制服务已开通'], + ['errorCode' => 'SubscriptionNotFound', 'errorMessage' => 'The subscription is not found.', 'description' => '未开通定制服务'], + ['errorCode' => 'NameAlreadyExists', 'errorMessage' => 'The name already exists.', 'description' => '名称已存在'], + ['errorCode' => 'DeliverExceedLimit', 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', 'description' => '订阅任务个数已达上限'], + ], + ], + 'title' => '定制运营报表', + 'description' => '> - 定制可精确到报表和域名粒度,定制成功后可供您日常查看定制的报表数据。'."\n" + .'>- 单用户调用频率:3次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainsBySource' => [ - 'summary' => '调用DescribeDcdnDomainsBySource按源站查询DCDN加速域名。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2023-05-18T11:11:03.000Z', 'description' => '请求参数发生变更'], ], - 'schemes' => [ - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDcdnSubTask'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:CreateDcdnSubTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateDcdnSubTaskResponse>\\r\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</CreateDcdnSubTaskResponse>","errorExample":""}]', + ], + 'CreateDcdnWafGroup' => [ + 'summary' => '调用CreateDcdnWafGroup创建自定义WAF规则组。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '196998', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], - 'autoTest' => true, - 'tenantRelevance' => 'publicInformation', + 'abilityTreeNodes' => ['FEATUREdcdnSU2QP6'], ], 'parameters' => [ [ - 'name' => 'Sources', - 'in' => 'query', + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => 'WAF规则组名称,最大128字符。新建自定义WAF规则组时必填。', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + [ + 'name' => 'TemplateId', + 'in' => 'formData', + 'schema' => ['description' => '待复制规则组ID。'."\n" + .'复制自定义WAF规则组时必填。'."\n" + .'您可以通过[DescribeDcdnWafGroups](~~DescribeDcdnWafGroups~~)接口查询对应的规则组ID。无模板传0或不传。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '0'], + ], + [ + 'name' => 'Subscribe', + 'in' => 'formData', 'schema' => [ - 'title' => '源站列表,可支持多个(用,分割,最多20个)', - 'description' => '源站列表,多个用半角逗号(,)分隔,最多20个,不支持模糊匹配。', + 'description' => '是否订阅:取值:'."\n" + .'- **on**:开启'."\n" + .'- **off**:关闭'."\n" + ."\n" + .'复制其他自定义规则组时不传。', 'type' => 'string', - 'required' => true, - 'example' => 'example.org', + 'required' => false, + 'example' => 'on', + 'enum' => [], ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'F61CDR30-E83C-4FDA-BF73-9A94CDD44229', - ], - 'DomainInfo' => [ - 'description' => '各个源站及对应域名列表信息。', - 'type' => 'array', - 'items' => [ - 'description' => '单个源站及对应域名列表信息。', - 'type' => 'object', - 'properties' => [ - 'DomainList' => [ - 'description' => '域名信息列表。', - 'type' => 'array', - 'items' => [ - 'description' => '域名信息。', - 'type' => 'object', - 'properties' => [ - 'CreateTime' => [ - 'description' => '创建时间。', - 'type' => 'string', - 'example' => '2021-08-21T03:05:20+08:00', - ], - 'DomainCname' => [ - 'description' => 'CNAME。', - 'type' => 'string', - 'example' => 'example.org.alikunlun.com', - ], - 'Status' => [ - 'description' => '域名状态。取值:'."\n" - ."\n" - .'- **applying**:审核中'."\n" - .'- **configuring**:配置中'."\n" - .'- **online**:正常运行'."\n" - .'- **stopping**:停止中'."\n" - .'- **offline**:停止'."\n" - .'- **disabling**:删除中', - 'type' => 'string', - 'example' => 'online', - ], - 'DomainName' => [ - 'description' => '加速域名名称。', - 'type' => 'string', - 'example' => 'example.org', - ], - 'UpdateTime' => [ - 'description' => '更新时间。', - 'type' => 'string', - 'example' => '2022-12-01T03:26:55+08:00', - ], - 'DomainType' => [ - 'description' => '加速域名的业务类型。取值:'."\n" - ."\n" - .'- **ipa**:四层加速'."\n" - .'- **dynamic**:七层加速', - 'type' => 'string', - 'example' => 'dynamic', - ], - ], - ], - ], - 'Source' => [ - 'description' => '请求的一个源站。', - 'type' => 'string', - 'example' => 'example.com', - ], - ], - ], - 'required' => true, - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '675F4820-400E-5929-8B03-2C031A5D5391'], + 'Id' => ['description' => '创建的WAF规则组ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '30000166'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'WafGroup.Quantity.Overflow', 'errorMessage' => 'WAF groups are overflowed quantity.', 'description' => 'WAF规则组数量超出配额。'], + ['errorCode' => 'WafGroup.NotExist', 'errorMessage' => 'The specified WAF group does not exist.', 'description' => '指定的WAF规则组不存在。'], + ['errorCode' => 'WafGroup.Name.Malformed', 'errorMessage' => 'The specified parameter Name is invalid.', 'description' => '指定的参数Name格式错误。'], + ], + 403 => [ + ['errorCode' => '%s.NotSupport', 'errorMessage' => 'The specified resource type %s is not supported.', 'description' => '不支持指定的资源类型。如需使用该类型资源,请与我们联系。'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => '该资源的数量超出了配额所规定的范围,如需申请更多的额度,请与我们联系。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => '内部错误,请重试,如果多次重试报错请提交工单。'], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F61CDR30-E83C-4FDA-BF73-9A94CDD44229\\",\\n \\"DomainInfo\\": [\\n {\\n \\"DomainList\\": [\\n {\\n \\"CreateTime\\": \\"2021-08-21T03:05:20+08:00\\",\\n \\"DomainCname\\": \\"example.org.alikunlun.com\\",\\n \\"Status\\": \\"online\\",\\n \\"DomainName\\": \\"example.org\\",\\n \\"UpdateTime\\": \\"2022-12-01T03:26:55+08:00\\",\\n \\"DomainType\\": \\"dynamic\\"\\n }\\n ],\\n \\"Source\\": \\"example.com\\"\\n }\\n ]\\n}","type":"json"}]', - 'title' => '查询域名-按源站', - ], - 'UpdateDcdnDomain' => [ - 'summary' => '调用UpdateDcdnDomain修改加速域名。', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '创建自定义WAF规则组', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:15.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDcdnWafGroup'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:CreateDcdnWafGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"675F4820-400E-5929-8B03-2C031A5D5391\\",\\n \\"Id\\": 30000166\\n}","type":"json"}]', + ], + 'CreateDcdnWafPolicy' => [ + 'summary' => '调用CreateDcdnWafPolicy设置WAF防护策略。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3049,185 +3918,321 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeNodes' => ['FEATUREdcdnV3G3FZ', 'FEATUREdcdnSU2QP6'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', + 'name' => 'PolicyName', + 'in' => 'formData', + 'schema' => ['description' => '防护策略名称。支持输入中文字符、英文字符(大小写)、数字(0~9)及下划线(_),最大输入64个字符。', 'type' => 'string', 'required' => true, 'example' => 'policy_test'], + ], + [ + 'name' => 'PolicyType', + 'in' => 'formData', + 'schema' => ['description' => '设置当前策略是否为默认策略,取值:'."\n" + ."\n" + .'- default:默认策略。'."\n" + ."\n" + .'- custom:非默认策略。', 'type' => 'string', 'required' => true, 'example' => 'default'], + ], + [ + 'name' => 'PolicyStatus', + 'in' => 'formData', + 'schema' => ['description' => '防护策略状态,取值:'."\n" + ."\n" + .'- on:开启。'."\n" + ."\n" + .'- off:关闭。', 'type' => 'string', 'required' => true, 'example' => 'on'], + ], + [ + 'name' => 'DefenseScene', + 'in' => 'formData', + 'schema' => ['description' => 'WAF防护策略类型,取值:'."\n" + ."\n" + .'- waf_group:Web基础防护。'."\n" + ."\n" + .'- custom_acl:自定义防护策略。'."\n" + ."\n" + .'- whitelist:白名单。'."\n" + ."\n" + .'- ip_blacklist:IP黑名单。'."\n" + ."\n" + .'- region_block:区域封禁。'."\n" + ."\n" + .'- bot:Bot管理。', 'type' => 'string', 'required' => true, 'example' => 'waf_group'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '加速域名,仅支持修改单个域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', + 'type' => 'object', + 'properties' => [ + 'PolicyId' => ['description' => '创建的防护策略ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '10000001'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CB1A380B-09F0-41BB-A198-72F8FD6DA2FE'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ['errorCode' => 'Policy.DefaultExisted', 'errorMessage' => 'The default policy is existed in specified defense scene.', 'description' => '指定的防护场景已经存在默认策略。'], + ['errorCode' => 'PolicyName.AlreadyExists', 'errorMessage' => 'The specified policy name already exists.', 'description' => '指定的策略名称已存在。'], + ], + 403 => [ + ['errorCode' => '%s.NotSupport', 'errorMessage' => 'The specified resource type %s is not supported.', 'description' => '不支持指定的资源类型。如需使用该类型资源,请与我们联系。'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => '该资源的数量超出了配额所规定的范围,如需申请更多的额度,请与我们联系。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => '内部错误,请重试,如果多次重试报错请提交工单。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PolicyId\\": 10000001,\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-A198-72F8FD6DA2FE\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateDcdnWafPolicyResponse>\\n <PolicyId>10000001</PolicyId>\\n <RequestId>CB1A380B-09F0-41BB-A198-72F8FD6DA2FE</RequestId>\\n</CreateDcdnWafPolicyResponse>","errorExample":""}]', + 'title' => '设置防护策略', + 'description' => '> '."\n" + .'> - 单用户调用频率:20次/秒。'."\n" + .'> - 请求方式:支持POST请求。'."\n" + .'> - 边缘WAF防护会在客户端请求的Cookie、Query String、Header中添加参数以实现JS/滑块验证,请确保您的源站可接受新增的参数,详见:[参数注入的详细说明](https://help.aliyun.com/zh/edge-security-acceleration/dcdn/user-guide/overview-of-waf#section-edge-waf-param-inject)', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:15.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDcdnWafPolicy'], + ], + ], + 'ramActions' => [ [ - 'name' => 'Sources', - 'in' => 'query', - 'schema' => [ - 'description' => '回源地址列表。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '[{"content":"10.10.10.10","type":"ipaddr","priority":"20","port":80}]', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:CreateDcdnWafPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'CreateRoutine' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'ResourceGroupId', - 'in' => 'query', + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '111452', + 'abilityTreeNodes' => ['FEATUREdcdn75UYDO'], + ], + 'parameters' => [ + [ + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => 'Routine函数名, 同一个账号下命名唯一。', 'type' => 'string', 'required' => true, 'example' => 'test'], + ], + [ + 'name' => 'Description', + 'in' => 'formData', + 'schema' => ['description' => 'Routine描述。', 'type' => 'string', 'required' => false, 'example' => 'the description of this routine'], + ], + [ + 'name' => 'EnvConf', + 'in' => 'formData', + 'style' => 'json', + 'schema' => ['description' => 'Env环境配置。', 'type' => 'object', 'required' => false, 'example' => '{"staging":{"SpecName":"50ms"},"production":{"SpecName":"50ms"}}'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '资源组ID。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-xxxxx', + 'type' => 'object', + 'properties' => [ + 'Content' => ['description' => '返回“"Status": "OK"”。', 'type' => 'object', 'example' => '{"Status": "OK"}'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => '后端服务器发生错误:%s 。如果重试多次依然报错,请提交工单。'], + ], + ], + 'title' => '创建边缘函数', + 'summary' => '调用CreateRoutine创建一个边缘函数(Routine)。', + 'description' => '> - 入参必须符合EnvConf的各项值规范。函数的描述,长度不允许超过50个字符。'."\n" + .'> - 该接口仅能指定Production和Staging环境。'."\n" + .'> - API调用频率:100次/秒。', + 'requestParamsDescription' => '### EnvConf参数格式'."\n" + .'```'."\n" + .'"EnvConf": { // 每个环境的配置。'."\n" + .' "staging": { //模拟环境的配置。'."\n" + .' "SpecName": "50ms"// 规格名字,从DescribeRoutineSpec接口查询有哪些规格可选,例如5ms、50ms、100ms。'."\n" + .' }'."\n" + .' "production": { //生产环境的配置。'."\n" + .' "SpecName": "50ms"'."\n" + .' }'."\n" + .'}'."\n" + .'```', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateRoutine'], + ], + ], + 'ramActions' => [ [ - 'name' => 'TopLevelDomain', - 'in' => 'query', - 'schema' => [ - 'description' => '顶级接入域。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'yourTopLevelDomain ', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:CreateRoutine', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"Status\\": \\"OK\\"\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateRoutineResponse>\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\n<Content>\\n <Status>OK</Status>\\n</Content>\\n</CreateRoutineResponse>","errorExample":""}]', + ], + 'CreateSlrAndSlsProject' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '111453', + 'abilityTreeNodes' => ['FEATUREdcdn9K10I1'], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'Region', + 'in' => 'formData', + 'schema' => ['description' => '日志服务所在区域,取值范围:'."\n" + ."\n" + .'- **cn-hangzhou**'."\n" + .'- **cn-shanghai**'."\n" + .'- **cn-qingdao**'."\n" + .'- **cn-beijing**'."\n" + .'- **cn-zhangjiakou**'."\n" + .'- **cn-shenzhen**'."\n" + .'- **eu-central-1**'."\n" + .'- **us-west-1**'."\n" + .'- **ap-south-1**'."\n" + .'- **ap-southeast-1**', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai'], + ], + [ + 'name' => 'BusinessType', + 'in' => 'formData', + 'schema' => ['description' => '业务类型,取值:'."\n" + ."\n" + .'- **cdn_log_access_l1**(默认值):用户访问日志。'."\n" + .'- **cdn_log_er**:边缘程序日志。'."\n" + .'- **cdn_log_waf**:WAF拦截日志。', 'type' => 'string', 'required' => false, 'example' => 'cdn_log_access_l1', 'default' => 'dcdn_log_access_l1'], + ], + ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'fe33a379-5053-4f22-a73c-826e2b44355d'], + 'SlsInfo' => [ + 'description' => '创建的日志服务(SLS)信息。', + 'type' => 'object', + 'properties' => [ + 'Project' => ['description' => '日志服务(SLS)项目。', 'type' => 'string', 'example' => 'dcdn-edge-rtlog-cn-cfc7****'], + 'LogStore' => ['description' => '日志服务(SLS)日志库。', 'type' => 'string', 'example' => 'dcdn-edge-trlog'], + 'EndPoint' => ['description' => '日志服务(SLS)接入点。', 'type' => 'string', 'example' => 'cn-shanghai.log.*.com'], + 'Region' => ['description' => '日志服务(SLS)区域。', 'type' => 'string', 'example' => 'cn-shanghai'], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingDomainName', - 'errorMessage' => 'The domainName parameter is required.', - ], - [ - 'errorCode' => 'InvalidDomainName.Malformed', - 'errorMessage' => 'The specified DomainName is invalid.', - ], - [ - 'errorCode' => 'InvalidSource.Content.Malformed', - 'errorMessage' => 'The specified Source Content is invalid.', - ], - [ - 'errorCode' => 'InvalidTypeContent.Mismatch', - 'errorMessage' => 'The specified source type does not match the specified source content.', - ], - [ - 'errorCode' => 'MissingSource.Content', - 'errorMessage' => 'The Source Content must be specified.', - ], - [ - 'errorCode' => 'MissingSource.Type', - 'errorMessage' => 'The Source Type must be specified.', - ], - [ - 'errorCode' => 'InvalidSource.Type.Malformed', - 'errorMessage' => 'The specified Source Type is invalid.', - ], - [ - 'errorCode' => 'InvalidSource.Priority.Malformed', - 'errorMessage' => 'The specified Source Priority is invalid.', - ], - [ - 'errorCode' => 'InvalidResourceGroupId.Malformed', - 'errorMessage' => 'The specified ResourceGroupId is invalid.', - ], - [ - 'errorCode' => 'EntityNotExists.ResourceGroup', - 'errorMessage' => 'The resource group does not exist.', - ], - [ - 'errorCode' => 'EntityNotExist.ResourceGroup', - 'errorMessage' => 'The resource group does not exist.', - ], - [ - 'errorCode' => 'InvalidStatus.ResourceGroup', - 'errorMessage' => 'The current status of the resource group does not support this operation.', - ], - [ - 'errorCode' => 'TopLevelDomain.NotFound', - 'errorMessage' => 'The specified TopLevelDomain does not exist.', - ], - [ - 'errorCode' => 'TopLevelDomain.Mismatch', - 'errorMessage' => 'The specified TopLevelDomain does not match webSiteType.', - ], + ['errorCode' => 'CreateSlr.PermissionDenied', 'errorMessage' => 'You are not authorized to create service-linked roles. Contact your Alibaba Cloud account or an administrator to grant you the AliyunDCDNFullAccess policy or the custom policy used to create service-linked roles. Service name: realtimelogdelivery.dcdn.aliyuncs.com. Action: ram:CreateServiceLinkedRole.', 'description' => '用户没有创建服务关联角色的权限,请联系主账号或权限管理员授权当前用户AliyunDCDNFullAccess或创建服务关联角色的自定义权限和策略。自定义权限策略的相关信息如下:Service Name:realtimelogdelivery.dcdn.aliyuncs.com,服务关联角色名称:AliyunServiceRoleForDCDNRealTimeLogDelivery, 执行该操作所需的用户权限:ram:CreateServiceLinkedRole '], + ['errorCode' => 'CreateSlsProjectError', 'errorMessage' => 'Failed to create a Log Service project. Make sure that you have activated Log Service and the service is in the available state.', 'description' => '创建日志服务(SLS) Project失败,请确保您已经正确开通了SLS,且SLS处于可用状态。'], + ['errorCode' => 'InvaildParameter', 'errorMessage' => 'The specified parameters are invalid.', 'description' => '您提供的参数无效,请检查参数后重试。'], ], - 403 => [ - [ - 'errorCode' => 'DomainInProtectedMode', - 'errorMessage' => 'The domain is in protection mode. To request permission, contact Customer Service.', - ], + 500 => [ + ['errorCode' => 'Internal Exception', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => '内部错误,请稍后重试或联系我们。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateDcdnDomainResponse>\\r\\n\\t<RequestId>0AEDAF20-4DDF-4165-8750-47FF9C1929C9</RequestId>\\r\\n</UpdateDcdnDomainResponse>","errorExample":""}]', - 'title' => '修改域名基本信息', - 'description' => '> 单用户调用频率:30次/秒。', - 'requestParamsDescription' => 'Sources各字段含义如下所示。'."\n" - ."\n" - .'| 参数 | 类型 | 是否必选 | 描述 |'."\n" - .'|------------|--------|-------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|'."\n" - .'| type | String | 是 | 源站类型,取值如下:<br>**ipaddr**:IP源站。<br>**domain**:域名源站。<br>**oss**:OSS Bucket为源站。<br>**fc_domain**:函数计算源站。 |'."\n" - .'| content | String | 是 | 回源地址,可以是IP或域名。 |'."\n" - .'| port| Integer| 否 | 可以指定**443**和**80**端口,也可以自定义端口,默认值**80**,**443**是HTTPS协议回源。 |'."\n" - .'| priority | String | 否 | 源站地址对应的优先级,支持**20**和**30**,默认**20**。**20**是主,**30**是备。|'."\n" - .'| weight | String | 否 | 回源权重,**100**以内,默认**10**。|', + 'title' => '创建服务关联角色以及日志服务项目', + 'summary' => '调用CreateSlrAndSlsProject创建服务关联角色(SLR)以及日志服务(SLS)项目。', + 'description' => '> 单用户调用频率:100次/秒。', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainCname' => [ - 'summary' => '调用DescribeDcdnDomainCname对加速域名CNAME进行解析检测,查看解析结果判断是否完成CNAME配置。', - 'methods' => [ - 'get', + 'changeSet' => [ + ['createdAt' => '2024-12-18T07:22:52.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateSlrAndSlsProject'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:CreateSlrAndSlsProject', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"fe33a379-5053-4f22-a73c-826e2b44355d\\",\\n \\"SlsInfo\\": {\\n \\"Project\\": \\"dcdn-edge-rtlog-cn-cfc7****\\",\\n \\"LogStore\\": \\"dcdn-edge-trlog\\",\\n \\"EndPoint\\": \\"cn-shanghai.log.*.com\\",\\n \\"Region\\": \\"cn-shanghai\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<CreateSlrAndSlsProjectResponse>\\n<SlsInfo>\\n <Project>dcdn-edge-rtlog-cn-cfc7****</Project>\\n <LogStore>dcdn-edge-trlog</LogStore>\\n <EndPoint>cn-shanghai.log.*.com</EndPoint>\\n <Region>cn-shanghai</Region>\\n</SlsInfo>\\n<RequestId>fe33a379-5053-4f22-a73c-826e2b44355d</RequestId>\\n</CreateSlrAndSlsProjectResponse>","errorExample":""}]', + ], + 'DeleteDcdnDeliverTask' => [ + 'summary' => '调用DeleteDcdnDeliverTask根据任务ID删除已订阅的报表任务。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111490', - 'abilityTreeNodes' => [ - 'FEATUREdcdnWQK30N', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM', 'FEATUREdcdn2Z4HOI'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'DeliverId', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,多个以逗号(,)分隔。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com,example.org', - ], + 'schema' => ['description' => '待删除的订阅任务ID。您可以调用[DescribeDcdnDeliverList](~~270043~~)接口查询订阅任务ID。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '92'], ], ], 'responses' => [ @@ -3235,83 +4240,50 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '15C66C7B-671A-4297-9187-2C4477247A74', - ], - 'CnameDatas' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Data' => [ - 'description' => 'CNAME信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'CNAME配置状态,返回0表示成功,返回其他数字表示配置错误。'."\n" - ."\n" - .'- 0:表示通过域名解析检测到分配给域名的CNAME。'."\n" - .'- 1:表示通过域名解析暂未监测到分配给域名的CNAME。'."\n" - .'- -1:表示通过域名解析暂未监测到分配给域名的CNAME 超时。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Domain' => [ - 'description' => '加速域名。', - 'type' => 'string', - 'example' => '.example.com', - ], - 'Cname' => [ - 'description' => '阿里云DCDN分配给域名的CNAME。', - 'type' => 'string', - 'example' => 'a.com.w.alikunlun.net', - ], - 'Passed' => [ - 'description' => '通过域名解析检测到分配给域名的cname是否通过,取值:'."\n" - .'- true: 通过'."\n" - .'- false: 不通过'."\n" - .'- timeout: 超时', - 'type' => 'string', - 'example' => 'true', - ], - 'ErrMsg' => [ - 'description' => '通过域名解析检测到分配给域名的cname不通过或超时的错误信息。', - 'type' => 'string', - 'example' => 'timeout', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ['errorCode' => 'TimeParseFailed', 'errorMessage' => 'Failed to parse the time parameter.', 'description' => '解析时间参数失败'], + ['errorCode' => 'SubscriptionAlreadyExists', 'errorMessage' => 'The subscription already exists.', 'description' => '定制服务已开通'], + ['errorCode' => 'SubscriptionNotFound', 'errorMessage' => 'The subscription is not found.', 'description' => '未开通定制服务'], + ['errorCode' => 'NameAlreadyExists', 'errorMessage' => 'The name already exists.', 'description' => '名称已存在'], + ['errorCode' => 'DeliverExceedLimit', 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', 'description' => '订阅任务个数已达上限'], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A74\\",\\n \\"CnameDatas\\": {\\n \\"Data\\": [\\n {\\n \\"Status\\": 0,\\n \\"Domain\\": \\".example.com\\",\\n \\"Cname\\": \\"a.com.w.alikunlun.net\\",\\n \\"Passed\\": \\"true\\",\\n \\"ErrMsg\\": \\"timeout\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainCnameResponse>\\n<RequestId>D27C81EF-90CA-4897-94AC-B73ADBFE4781</RequestId>\\n<CnameDatas>\\n <Data>\\n <Cname>*.com</Cname>\\n <Status>0</Status>\\n <Domain>.example.com</Domain>\\n </Data>\\n</CnameDatas>\\n</DescribeDcdnDomainCnameResponse>\\n","errorExample":""}]', - 'title' => '检测域名的CNAME是否完成配置', - 'description' => '> 单用户调用频率:80次/秒。', + 'title' => '删除已订阅的报表任务', + 'description' => '> 单用户调用频率:3次/秒。 ', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ModifyDCdnDomainSchdmByProperty' => [ - 'summary' => '调用ModifyDCdnDomainSchdmByProperty通过配置组修改域名的加速区域。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnDeliverTask'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnDeliverTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDcdnDeliverTaskResponse>\\r\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</DeleteDcdnDeliverTaskResponse>","errorExample":""}]', + ], + 'DeleteDcdnDomain' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3319,94 +4291,138 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111594', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', + 'schema' => ['description' => '待删除的加速域名,仅支持删除单个域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '需修改加速区域的域名,仅支持单个修改。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => '域名格式错误。'], + ['errorCode' => 'DomainActiveInConfigGroup', 'errorMessage' => 'The domain has been activated in config group, it cannot be deleted.', 'description' => '该域名已经在配置组中激活,不可被删除。'], + ], + ], + 'title' => '删除域名', + 'summary' => '调用DeleteDcdnDomain删除已添加的加速域名。', + 'description' => '> - 删除域名前您需前往域名解析服务商恢复域名A记录,否则域名被删除后可能导致该域名不可访问。'."\n" + .'> - **DeleteDcdnDomain**调用成功后将删除对应加速域名的全部相关记录,如果您想暂停使用该加速域名,您可以调用[StopDcdnDomain](~~130622~~)接口。'."\n" + .'> - 单用户调用频率:10次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-06-21T02:52:04.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnDomain'], + ], + ], + 'ramActions' => [ [ - 'name' => 'Property', - 'in' => 'query', - 'schema' => [ - 'description' => '加速区域属性,{"coverage":"overseas"}。'."\n" - .'其中coverage参数的取值如下:'."\n" - ."\n" - .'- **domestic**:仅中国内地。'."\n" - ."\n" - .'- **overseas**:全球(不包含中国内地)。'."\n" - ."\n" - .'- **global**:全球。', - 'type' => 'string', - 'required' => true, - 'example' => '{"coverage":"overseas"}', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], ], ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDcdnDomainResponse>\\r\\n\\t<RequestId>0AEDAF20-4DDF-4165-8750-47FF9C1929C9</RequestId>\\r\\n</DeleteDcdnDomainResponse>","errorExample":""}]', + ], + 'DeleteDcdnIpaDomain' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], + ], + 'parameters' => [ + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '要删除的域名,仅支持删除单个域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '15C66C7B-671A-4297-9187-2C4477247A74', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '94E3559F-7B6A-4A5E-AFFD-44E2A208A249'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Schedule.NotFound', - 'errorMessage' => 'This domain does not have any available CDN resources in the accelerated area.', - ], - [ - 'errorCode' => 'DomainTraffic.ExceedThreshold', - 'errorMessage' => 'You are not allowed to perform this operation because the traffic peak of the last day exceeds the threshold.', - ], - [ - 'errorCode' => 'Domain.BeianInvalid', - 'errorMessage' => 'You are not allowed to perform this operation because the ICP license of your domain is invalid in Chinese Mainland.', - ], - [ - 'errorCode' => 'Schedule.ChangeFail', - 'errorMessage' => 'Failed to change the accelerated area for the domain.', - ], + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => '域名格式错误。'], + ], + 403 => [ + ['errorCode' => 'DcdnIpaServiceNotFound', 'errorMessage' => 'The DCDN IPA service has not been activated.', 'description' => '没有开通DCDN IPA服务。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A74\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyDCdnDomainSchdmByPropertyResponse>\\r\\n\\t<RequestId>15C66C7B-671A-4297-9187-2C4477247A74</RequestId>\\r\\n</ModifyDCdnDomainSchdmByPropertyResponse>\\r\\n\\t\\r\\n","errorExample":""}]', - 'title' => '修改域名的加速区域', - 'description' => '> 单用户调用频率:100次/秒。', + 'title' => '删除已添加的IPA层加速域名', + 'summary' => '调用DeleteDcdnIpaDomain删除已添加的IPA层加速域名。', + 'description' => '> - 删除域名前建议您前往域名解析服务商处恢复域名A记录,以免域名被删除后导致该域名不可访问。'."\n" + .'> - **DeleteDcdnIpaDomain**接口调用成功后将删除本条加速域名的全部相关记录,如果您仅需要暂停该加速域名的使用,您可以调用**StopDcdnIpaDomain**接口。'."\n" + .'> - 单用户调用频率:10次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'SetDcdnUserConfig' => [ - 'summary' => '调用SetDcdnUserConfig设置用户的配置信息。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnIpaDomain'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnIpaDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"94E3559F-7B6A-4A5E-AFFD-44E2A208A249\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDcdnIpaDomainResponse>\\r\\n\\t<RequestId>94E3559F-7B6A-4A5E-AFFD-44E2A208A249</RequestId>\\r\\n</DeleteDcdnIpaDomainResponse>\\r\\n","errorExample":""}]', + ], + 'DeleteDcdnIpaSpecificConfig' => [ + 'summary' => '调用DeleteDcdnIpaSpecificConfig删除指定域名的IPA层配置。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3414,36 +4430,21 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111610', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeNodes' => ['FEATUREdcdn2JMMUY'], ], 'parameters' => [ [ - 'name' => 'FunctionId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '功能ID。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '6', - ], + 'schema' => ['description' => '您的加速域名,仅支持单个域名设置。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'Configs', + 'name' => 'ConfigId', 'in' => 'query', - 'schema' => [ - 'description' => '功能参数。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '\\"argId\\":12,\\"argValue\\":\\"on\\"', - ], + 'schema' => ['description' => '配置ID,您可以调用[DescribeDcdnDomainConfigs](~~130625~~)查询配置ID。', 'type' => 'string', 'required' => true, 'example' => '50035**'], ], ], 'responses' => [ @@ -3451,58 +4452,49 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidFunctions.Malformed', - 'errorMessage' => 'The specified Functions is invalid.', - ], - [ - 'errorCode' => 'InvalidArgValue.Malformed', - 'errorMessage' => 'The specified ArgValue is invalid.', - ], - [ - 'errorCode' => 'Invalid%s.ValueNotSupported', - 'errorMessage' => '[%s] is not supported.', - ], - [ - 'errorCode' => 'Invalid%s.Malformed', - 'errorMessage' => 'The specified ArgValue [%s] is invalid.', - ], + ['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => 'FunctionName [%s] is not supported.', 'description' => '不支持该配置,请重新查询。'], + ], + 403 => [ + ['errorCode' => 'DcdnIpaServiceNotFound', 'errorMessage' => 'The DCDN IPA service has not been activated.', 'description' => '没有开通DCDN IPA服务。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED\\"\\n}","errorExample":""},{"type":"xml","example":"<SetDcdnUserConfigResponse>\\r\\n<RequestId>F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED</RequestId>\\r\\n</SetDcdnUserConfigResponse>","errorExample":""}]', - 'title' => '设置用户配置信息', - 'description' => '>单用户调用频率:30次/秒。', - 'requestParamsDescription' => '功能ID和功能参数取值如下表所示:'."\n" - ."\n" - .'|FunctionID | 名称 | Configs|'."\n" - .'|-----------|------|--------|'."\n" - .'|6|websocket:Websocket| enabled(12):是否开启,取值:on或off。|'."\n" - .'|16| domain_business_control:域名功能配置| allow_function(22):频次控制、区域封禁、精准访问控制等功能是否向用户开放,取值:on或off。|'."\n" - .'|23| ddos:DDoS| rdomestic(42):中国内地DDoS实例是否开启,取值:on或off。<br>overseas(43):中国香港、中国澳门、中国台湾以及其他国家和地区的DDoS实例是否开启,取值:on或off。|', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '删除加速域名的IPA层配置', + 'description' => '> 单用户调用频率:10次/秒。', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchSetDcdnDomainConfigs' => [ - 'summary' => '调用BatchSetDcdnDomainConfigs实现域名批量配置功能。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnIpaSpecificConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnIpaSpecificConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDcdnIpaSpecificConfigResponse>\\r\\n <RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</DeleteDcdnIpaSpecificConfigResponse>","errorExample":""}]', + ], + 'DeleteDcdnKv' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3510,58 +4502,22 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn2JMMUY', - ], + 'abilityTreeCode' => '121108', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'DomainNames', + 'name' => 'Namespace', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,多个域名用半角逗号(,)分隔,注意以下配置限制:'."\n" - ."\n" - .'- 一次最多传50个域名。'."\n" - .'- 域名个数乘以 Functions个数,小于等于50。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com,example.org', - ], + 'schema' => ['description' => '调用[PutDcdnKvNamespace](~~PutDcdnKvNamespace~~)时指定的名称。', 'type' => 'string', 'required' => true, 'example' => 'ns1'], ], [ - 'name' => 'Functions', + 'name' => 'Key', 'in' => 'query', - 'schema' => [ - 'description' => '功能列表,一次传入最多50条,格式如下:'."\n" - .' - **functionName**(功能名称):可配置功能请参见[功能列表](~~410622~~),多个参数之间用半角逗号(,)分隔。'."\n" - .'- **argName**:**functionName**的配置项(可配置多个配置项)。'."\n" - .'- **argValue**:**functionName**的配置项的取值。'."\n" - .'- **parentid**(规则条件ID,非必填):通过配置[域名配置功能参数](~~410622~~)中的功能函数**condition**(规则引擎),可以创建出规则条件(规则条件可以通过识别用户请求中携带的各种参数来匹配和过滤用户请求),每一个规则条件被创建以后都会生成一个对应的[configid](~~388994~~),configid可以被当作ParentId参数被其他功能函数引用,这样规则条件就可以与功能配置一起组合形成更灵活的配置。'."\n" - ."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "functionArgs": ['."\n" - .' {'."\n" - .' "argName": "功能参数A", '."\n" - .' "argValue": "功能参数A对应的值"'."\n" - .' }, '."\n" - .' {'."\n" - .' "argName": "功能参数B", '."\n" - .' "argValue": "功能参数B对应的值"'."\n" - .' }'."\n" - .' ], '."\n" - .' "functionName": "功能名称"'."\n" - .' }'."\n" - .']'."\n" - .'```', - 'type' => 'string', - 'required' => true, - 'example' => '[{"functionArgs":[{"argName":"switch","argValue":"on"},{"argName":"region","argValue":"*"}],"functionName":"ipv6"}]', - ], + 'schema' => ['description' => '要删除的Key名称。', 'type' => 'string', 'required' => true, 'example' => 'test_key_1'], ], ], 'responses' => [ @@ -3569,209 +4525,178 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], - 'DomainConfigList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'DomainConfigModel' => [ - 'description' => '域名配置清单。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ConfigId' => [ - 'description' => '配置ID,如果返回为0,则表示该条配置未配置成功,需要重新配置。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '123456', - ], - 'DomainName' => [ - 'description' => '域名。', - 'type' => 'string', - 'example' => 'www.example.com', - ], - 'FunctionName' => [ - 'description' => '功能名称。', - 'type' => 'string', - 'example' => 'set_resp_header', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidFunctions.Malformed', - 'errorMessage' => 'The specified Functions is invalid.', - ], - [ - 'errorCode' => 'InvalidArgValue.Malformed', - 'errorMessage' => 'The specified ArgValue is invalid.', - ], - [ - 'errorCode' => 'Invalid%s.ValueNotSupported', - 'errorMessage' => '[%s] is not supported.', - ], - [ - 'errorCode' => 'Invalid%s.Malformed', - 'errorMessage' => 'The specified ArgValue [%s] is invalid.', - ], - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => 'You must specify ArgValue.', - ], - [ - 'errorCode' => 'InvalidRule.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidHeaderKey.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter HeaderKey is not supported.', - ], - [ - 'errorCode' => 'MissingParameter%s', - 'errorMessage' => 'The specified value of ArgName %s is missing.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'Domain already exists in high ddos.', - ], - [ - 'errorCode' => 'ConfigExceedLimit', - 'errorMessage' => 'Count of config entries exceeds the limit.', - ], - [ - 'errorCode' => 'EdgeScriptCountExceedLimit', - 'errorMessage' => 'The number of rules exceeds the default limit (1). 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.', - ], - [ - 'errorCode' => 'EdgeScriptGrammarNotSupport', - 'errorMessage' => 'A background customization rule exists or a parameter of this configuration is invalid. For more information, submit a ticket.', - ], - [ - 'errorCode' => 'EdgeScriptNotSupportJs', - 'errorMessage' => 'JavaScript rules are not supported. For more information, submit a ticket.', - ], - [ - 'errorCode' => 'ServiceInvokeFailed', - 'errorMessage' => 'Failed to invoke service.', - ], - [ - 'errorCode' => 'ConfigParentExceedLimit', - 'errorMessage' => 'Config Parent exceed limit.', - ], - [ - 'errorCode' => 'BatchSetBusinessError', - 'errorMessage' => 'some configs error:%s', - ], - [ - 'errorCode' => 'Function.InvalidParentId', - 'errorMessage' => 'The specified parentId does not exist.', - ], - [ - 'errorCode' => 'Domain.DDosQuotaFull', - 'errorMessage' => 'The user’s domain quota for DDos is full.', - ], - [ - 'errorCode' => 'AccountArrears', - 'errorMessage' => 'The user‘s account is in arrears.', - ], - [ - 'errorCode' => 'DDosExpired', - 'errorMessage' => 'The user‘s DDoS protection has expired.', - ], - [ - 'errorCode' => 'Domain.DDosAlreadyExists', - 'errorMessage' => 'This specified domain has been in DDoS.', - ], - [ - 'errorCode' => 'Domain.PortConfiguring', - 'errorMessage' => 'This specified domain\'s special ports are configuring.', - ], - [ - 'errorCode' => 'Domain.PortAllocateError', - 'errorMessage' => 'Your port resource allocation failed, please try again in 30 minutes.', - ], + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '输入参数无效'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => '账号输入不对,比如输入为空'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'namespace输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'key输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'key长度不能超过512B'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'value长度不能越过2000000B'], + ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'namespace容量超过限制,单个namespace最大容量为1G'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => '鉴权参数输入错误'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => '您输入的鉴权时间参数无效,请检查参数值后重试。'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => '您输入的token无效,请检查并输入正确的token后进行重试。'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => '资源校验失败'], + ], + [ + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account does not exist.', 'description' => '账号不存在,未创建'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'namespace不存在'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => '请求的key不存在'], + ], + 406 => [ + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'namespace已存在'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'namespace个数超过quota限制'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'key个数超过quota限制'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests are submitted.', 'description' => '请求速率过快'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'key put/delete操作太频繁'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\",\\n \\"DomainConfigList\\": {\\n \\"DomainConfigModel\\": [\\n {\\n \\"ConfigId\\": 123456,\\n \\"DomainName\\": \\"www.example.com\\",\\n \\"FunctionName\\": \\"set_resp_header\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<BatchSetDcdnDomainConfigsResponse>\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\n<DomainConfigModel>\\n <DomainName>example.com</DomainName>\\n <ConfigId>1234567</ConfigId>\\n <FunctionName>set_req_host_header</FunctionName>\\n</DomainConfigModel>\\n</BatchSetDcdnDomainConfigsResponse>","errorExample":""}]', - 'title' => '批量配置域名', - 'description' => '- 单次配置的域名数量不超过50个。'."\n" - .'- 单用户调用频率:30次/秒。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainConfigs' => [ - 'summary' => '调用DescribeDcdnDomainConfigs获取加速域名的配置信息。', - 'methods' => [ - 'get', - 'post', + 'title' => '删除Namespace的Key-Value对', + 'summary' => 'EdgeKv产品在全站加速边缘节点提供一个全球通用的KV(Key-Value)数据库,调用DeleteDcdnKv删除Namespace的Key-Value(KV)对。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnKv'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnKv', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C\\"\\n}","type":"json"}]', + ], + 'DeleteDcdnKvNamespace' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111491', - 'abilityTreeNodes' => [ - 'FEATUREdcdnWQK30N', - ], + 'abilityTreeCode' => '121113', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'Namespace', 'in' => 'query', + 'schema' => ['description' => 'Namespace名称。可通过调用[PutDcdnKvNamespace](~~PutDcdnKvNamespace~~)查询名称。', 'type' => 'string', 'required' => true, 'example' => 'ns1', 'maxLength' => 64, 'pattern' => '^[0-9a-zA-Z_-]+$'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '加速域名,仅支持查询单个域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID', 'type' => 'string', 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C。'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '输入参数无效'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => '账号输入不对,比如输入为空'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'namespace输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'key输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'key长度不能超过512B'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'value长度不能越过2000000B'], + ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'namespace容量超过限制,单个namespace最大容量为1G'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => '鉴权参数输入错误'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => '您输入的鉴权时间参数无效,请检查参数值后重试。'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => '您输入的token无效,请检查并输入正确的token后进行重试。'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => '资源校验失败'], + ], [ - 'name' => 'FunctionNames', - 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => '功能列表名称,多个用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => false, - 'example' => 'filetype_based_ttl_set,set_req_host_header', + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account does not exist.', 'description' => '账号不存在,未创建'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'namespace不存在'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => '请求的key不存在'], + ], + 406 => [ + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'namespace已存在'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'namespace个数超过quota限制'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'key个数超过quota限制'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests are submitted.', 'description' => '请求速率过快'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'key put/delete操作太频繁'], + ], + ], + 'title' => '删除Namespace', + 'summary' => '删除账号下某个Namespace。', + 'changeSet' => [ + ['createdAt' => '2025-04-02T06:58:00.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnKvNamespace'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnKvNamespace', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C。\\"\\n}","type":"json"}]', + ], + 'DeleteDcdnRealTimeLogProject' => [ + 'summary' => '调用DeleteDcdnRealTimeLogProject删除整个项目的实时日志。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'ConfigId', + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '111462', + 'abilityTreeNodes' => ['FEATUREdcdn9K10I1'], + ], + 'parameters' => [ + [ + 'name' => 'ProjectName', 'in' => 'query', - 'schema' => [ - 'description' => '配置ID。', - 'type' => 'string', - 'required' => false, - 'example' => '5003576', - ], + 'schema' => ['description' => '实时投递的日志项目名称。', 'type' => 'string', 'required' => true, 'example' => 'example'], ], ], 'responses' => [ @@ -3779,149 +4704,50 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED', - ], - 'DomainConfigs' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'DomainConfig' => [ - 'description' => '域名配置。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '状态。取值:'."\n" - ."\n" - .'- **success**:成功。'."\n" - ."\n" - .'- **testing**:测试中。'."\n" - ."\n" - .'- **failed**:失败。'."\n" - ."\n" - .'- **configuring**:配置中。', - 'type' => 'string', - 'example' => 'success', - ], - 'ParentId' => [ - 'description' => '高级条件配置ID。', - 'type' => 'string', - 'example' => '1234567', - ], - 'ConfigId' => [ - 'description' => '配置ID。', - 'type' => 'string', - 'example' => '5068995', - ], - 'FunctionName' => [ - 'description' => '功能名称。', - 'type' => 'string', - 'example' => 'set_req_host_header', - ], - 'FunctionArgs' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'FunctionArg' => [ - 'description' => '功能配置。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ArgName' => [ - 'description' => '配置名称。', - 'type' => 'string', - 'example' => 'ttl', - ], - 'ArgValue' => [ - 'description' => '配置值。', - 'type' => 'string', - 'example' => '13', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid%s.ValueNotSupported', - 'errorMessage' => 'FunctionName [%s] is not supported.', - ], + ['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery service is not authorized.', 'description' => '实时日志投递没有授权。'], + ['errorCode' => 'ProjectNotFound', 'errorMessage' => 'The project provided does not belong to you.', 'description' => '项目不存在或不属于当前用户'], + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal exception occurred, please try again later.', 'description' => '触发内部异常,请稍后再试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED\\",\\n \\"DomainConfigs\\": {\\n \\"DomainConfig\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"ParentId\\": \\"1234567\\",\\n \\"ConfigId\\": \\"5068995\\",\\n \\"FunctionName\\": \\"set_req_host_header\\",\\n \\"FunctionArgs\\": {\\n \\"FunctionArg\\": [\\n {\\n \\"ArgName\\": \\"ttl\\",\\n \\"ArgValue\\": \\"13\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainConfigsResponse>\\n <RequestId>F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED</RequestId>\\n <DomainConfigs>\\n <DomainConfig>\\n <FunctionArgs>\\n <FunctionArg>\\n <ArgName>domain_name</ArgName>\\n <ArgValue>testdcdn3.cdnpe.com</ArgValue>\\n </FunctionArg>\\n </FunctionArgs>\\n <ConfigId>5003576</ConfigId>\\n <FunctionName>set_req_host_header</FunctionName>\\n </DomainConfig>\\n <DomainConfig>\\n <FunctionArgs>\\n <FunctionArg>\\n <ArgName>file_type</ArgName>\\n <ArgValue>txt</ArgValue>\\n </FunctionArg>\\n <FunctionArg>\\n <ArgName>ttl</ArgName>\\n <ArgValue>13</ArgValue>\\n </FunctionArg>\\n </FunctionArgs>\\n <ConfigId>5068995</ConfigId>\\n <ParentId>1234567</ParentId>\\n <FunctionName>filetype_based_ttl_set</FunctionName>\\n </DomainConfig>\\n </DomainConfigs>\\n</DescribeDcdnDomainConfigsResponse>","errorExample":""}]', - 'title' => '查询域名配置信息', - 'description' => '> - 一次可查询多个功能配置信息。'."\n" - .'> - 单用户调用频率:30次/秒。', - 'requestParamsDescription' => '功能列表如下表所示。'."\n" - ."\n" - .'| 名称 | 参数 |'."\n" - .'|---------------|--------|'."\n" - .'| referer_white_list_set:Referer防盗链白名单| refer_domain_allow_list:白名单列表,多个用英文逗号(,)分隔。<br>allow_empty:是否允许空Referer字段访问DCDN资源,取值:on或off。|'."\n" - .'| referer_black_list_set:Referer防盗链黑名单| refer_domain_deny_list:黑名单列表,多个用英文逗号(,)分隔。<br>allow_empty:是否允许空Referer字段访问DCDN资源,取值:on或off。|'."\n" - .'| filetype_based_ttl_set:文件类型缓存过期时间设置| ttl:缓存时间,单位为秒。<br>file_type:文件类型。多个文件类型用英文逗号(,)分隔,例如TXT,JPG。<br>weight:权重。|'."\n" - .'| path_based_ttl_set:目录类型缓存过期时间设置| ttl:缓存时间,单位为秒。<br>path:目录,必须以正斜线(/)开头。<br>weight:权重。|'."\n" - .'| oss_auth:OSS鉴权Bucket| oss_bucket_id:您的Bucket地址。|'."\n" - .'| ip_black_list_set:IP黑名单| ip_list:IP列表,多个用英文逗号(,)分隔。|'."\n" - .'| ip_allow_list_set:IP白名单| ip_list:IP列表,多个用英文逗号(,)分隔。|'."\n" - .'| error_page:错误页面重定向| error_code:错误码。<br>rewrite_page:重定向页面。|'."\n" - .'| set_req_host_header:修改回源自定义头| domain_name:回源HOST头内容。|'."\n" - .'| set_hashkey_args:忽略URL参数| hashkey_args:保留参数列表,多个用英文逗号(,)分隔,最多支持填写10个。<br>disable:等于on表示忽略所有参数,off表示不忽略(缓存hashkey忽略所有参数,优先级低于保留缓存参数列表)。<br>keep_oss_args:等于on表示回源保留所有参数,off表示与缓存hashkey的参数一致。|'."\n" - .'| aliauth:阿里鉴权| auth_type:鉴权类型。no_auth:无鉴权;type_a:鉴权方式A;type_b:鉴权方式B;type_c:鉴权方式C。<br>auth_key1:鉴权key1;auth_key2:鉴权key2。<br>ali_auth_delta:自定义鉴权缓冲时间。|'."\n" - .'| set_resp_header:设置HTTP响应头(浏览器端可见)| key(必填):响应头。<br>value(必填):响应头内容,删除填写null。<br>header_operation_type:请求头操作,支持add、delete、modify、rewrite,添加add、删除delete、变更modify、替换rewrite。<br>duplicate:是否允许重复,支持on或off。<br>header_source:查找。<br>header_destination:替换为。<br>match_all:匹配所有,支持on或off。|'."\n" - .'| https_force:强制HTTPS跳转| enable:功能开关,取值:on或off。|'."\n" - .'| http_force:强制HTTP跳转| enable:功能开关,取值:on或off。|'."\n" - .'| https_option:HTTPS基础参数| http2:HTTP2开关,取值:on或off。<br>ocsp_stapling:OCSP Stapling开关,取值:on或off。|'."\n" - .'| forward_scheme:静态协议跟随回源| enable:开关,取值:on或off。<br> scheme_origin:回源协议类型,支持http、https和follow(跟随)。|'."\n" - .'| dynamic:全站加速相关配置|enable(必填):开关,支持on或off。<br>static_route_type:静态加速文件后缀。<br> static_route_url:静态加速URI。<br>static_route_path:静态加速PATH。<br>dynamic_route_origin:回源路由scheme,支持http、https、follow和follow-port。<br>dynamic_route_round_robin:开启负载均衡开关,支持on或off。<br>dynamic_route_adapt_cache:开启自适应缓存开关,支持on或off。|'."\n" - .'| set_req_header:自定义回源HTTP头| key:回源头。<br>value:回源头内容。|'."\n" - .'| l2_oss_key:阿里云OSS私有Bucket回源| private_oss_auth:私有Bucket回源开关,支持on或off。|'."\n" - .'| range:range回源| enable:开关,支持on、off。|'."\n" - .'| video_seek:视频拖拽播放|enable(必填):开关,支持on或off。<br> flv_seek_by_time:开启FLV按时间拖拽,支持on或off。<br> mp4_seek_start:自定义MP4开始参数。 <br> mp4_seek_end:自定义MP4结束参数。 <br> flv_seek_start:自定义FLV开始参数。 <br> flv_seek_end:自定义FLV结束参数。|'."\n" - .'| websocket:Websocket| enabled(必填):是否开启,取值:on或off。<br>origin_scheme:回源scheme,支持http、https和follow。<br>heartbeat:心跳时间,默认为60秒,支持1~300秒。|'."\n" - .'| ali_remove_args:忽略URL参数(删除)|ali_remove_args(必填):删除指定的参数,多个参数之间用空格隔开,剩余参数将作为hashkey中URL args部分。<br>keep_oss_args:回源保留参数。支持on或off,on表示回源保留所有参数,off表示与缓存hashkey的参数一致。|'."\n" - .'| https_tls_version:TLS协议版本| tls10:开启TLSv1.0,默认为on,支持on或off。<br>tls11:开启TLSv1.1,默认为on,支持on或off。<br> tls12:开启TLSv1.2,默认为on,支持on或off。<br>tls13:开启TLSv1.3,默认为off,支持on或off。|'."\n" - .'| HSTS:HSTS|enabled(必填):开关,默认为off,支持on或off。<br>https_hsts_max_age(必填):过期时间,单位:ms,建议填写5184000000ms(60天)。<br> https_hsts_include_subdomains:HSTS头包含includeSubDomains参数,支持on或off。请谨慎开启,开启前请确保该加速域名的所有子域名都已开启HTTPS,否则会导致子域名自动跳转到HTTPS后无法访问。|'."\n" - .'| filetype_force_ttl_code:文件状态码过期时间设置|file_type(必填):文件类型,多个用英文逗号(,)分隔,例如:TXT,JPG。<br>code_string(必填):状态码,多个用英文逗号(,)分隔。例如:302=0,301=0,4xx=2。|'."\n" - .'| path_force_ttl_code:路径状态码过期时间设置|path(必填):必须以正斜线(/)开头,例如:/image。<br>code_string(必填):状态码,多个用英文逗号(,)分隔。例如:302=0,301=0,4xx=2。|'."\n" - .'| gzip:智能压缩|enable(必填):功能开关,支持on或off。|'."\n" - .'| tesla:页面优化|enable(必填):功能开关,支持on或off。<br>trim_js:支持on或off,开启该功能,优化html中内嵌的js代码。<br>trim_css:支持on或off,开启该功能,优化html中内嵌的css代码。|'."\n" - .'| https_origin_sni:回源SNI|enabled:功能开关,支持on或off。<br>https_origin_sni(必填):回源SNI。|'."\n" - .'| protogw:IP应用加速|realip(必填):源站IP透传方式,支持off、toa、pp。<br>port(必填):服务端口。<br>patten:模式字符串。|'."\n" - .'| host_redirect:重写功能| regex:需要重写的URL,例如:^/$。<br>replacement:目标URL,例如: /go/act/sale/tbzlsy.php。<br>flag:仅支持redirect、break。'."\n" - .'| forward_timeout:回源请求超时时间| forward_timeout:单位为秒,配置时建议不要大于100秒。|'."\n" - .'|ipv6:IPv6配置|switch(必填):开关,支持on或off,on表示开启,off表示关闭。<br>region:开启IPv6功能的地区,支持星号(*)。|'."\n" - .'| edge_function:边缘脚本|<br>rule(必填):DSL规则。<br>pri(必填):优先级。<br>enable(必填):本条规则是否生效,取值:on或off。<br>name:规则名称。<br>pos:规则执行位置。全站加速域名仅支持head,不支持foot。<br>brk:命中本条规则后,当前执行位置剩余规则均跳过。<br>option:option管控。<br> grammar:grammar管控,可选值:空、es2、js。<br> jsmode:js域名白单管控,可选值:redirect、bypass。|'."\n" - .'| brotli:Brotli压缩|enable(必填):功能开关,支持on或off。<br>brotli_level:压缩等级,取值范围[1,11]。|'."\n" - .'| ali_ua:User-Agent黑/白名单| ua:User-Agent。<br>type:名单类型,black或white。|', + 'title' => '删除实时日志项目', + 'description' => '> 单用户调用频率:100次/秒。', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteDcdnSpecificConfig' => [ - 'summary' => '调用DeleteDcdnSpecificConfig删除域名的指定配置。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2024-12-04T08:12:40.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnRealTimeLogProject'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnRealTimeLogProject', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB87556CA7\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDcdnRealTimeLogProjectResponse>\\r\\n<RequestId>9732E117-8A37-49FD-A36F-ABBB87556CA7</RequestId>\\r\\n</DeleteDcdnRealTimeLogProjectResponse>","errorExample":""}]', + ], + 'DeleteDcdnSpecificConfig' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3932,30 +4758,18 @@ 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn2JMMUY', - ], + 'abilityTreeNodes' => ['FEATUREdcdn2JMMUY'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '您的加速域名,仅支持单个删除。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '您的加速域名,仅支持单个删除。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'ConfigId', 'in' => 'query', - 'schema' => [ - 'description' => '功能配置ID,多个用半角逗号(,)分隔。ConfigId查询和使用,请参见[ConfigId使用说明](~~410558~~)。', - 'type' => 'string', - 'required' => true, - 'example' => '2117', - ], + 'schema' => ['description' => '功能配置ID,多个用半角逗号(,)分隔。ConfigId查询和使用,请参见[ConfigId使用说明](~~410558~~)。', 'type' => 'string', 'required' => true, 'example' => '2117'], ], ], 'responses' => [ @@ -3963,43 +4777,48 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid%s.ValueNotSupported', - 'errorMessage' => 'FunctionName [%s] is not supported.', - ], - [ - 'errorCode' => 'InvalidDomain.BelongToConfigGroup', - 'errorMessage' => 'The domain is bound to a configuration group. Modify the domain in the configuration group.', - ], + ['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => 'FunctionName [%s] is not supported.', 'description' => '不支持该配置,请重新查询。'], + ['errorCode' => 'InvalidDomain.BelongToConfigGroup', 'errorMessage' => 'The domain is bound to a configuration group. Modify the domain in the configuration group.', 'description' => '这个域名绑定了一个配置组,需要通过修改配置组的配置来修改。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDcdnSpecificConfigResponse>\\r\\n\\t<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</DeleteDcdnSpecificConfigResponse>","errorExample":""}]', 'title' => '删除域名的指定配置', + 'summary' => '调用DeleteDcdnSpecificConfig删除域名的指定配置。', 'description' => '> 单用户调用频率:30次/秒。 ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchDeleteDcdnDomainConfigs' => [ - 'summary' => '调用BatchDeleteDcdnDomainConfigs批量删除域名配置。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnSpecificConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnSpecificConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDcdnSpecificConfigResponse>\\r\\n\\t<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</DeleteDcdnSpecificConfigResponse>","errorExample":""}]', + ], + 'DeleteDcdnSpecificStagingConfig' => [ + 'summary' => '调用DeleteDcdnSpecificStagingConfig删除加速域名的配置(灰度)。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4007,36 +4826,23 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn2JMMUY', - ], + 'abilityTreeNodes' => ['FEATUREdcdn2JMMUY'], ], 'parameters' => [ [ - 'name' => 'DomainNames', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '需要删除配置的加速域名,多个用半角逗号(,)分隔,注意以下配置限制:'."\n" - ."\n" - .'- 一次最多传50个域名。'."\n" - .'- 域名个数乘以 FunctionNames个数,小于等于50。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '加速域名,仅支持传单个域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'FunctionNames', + 'name' => 'ConfigId', 'in' => 'query', - 'schema' => [ - 'description' => '需要删除的功能函数名称,多个用半角逗号(,)分隔,一次传入最多50个。更多功能名称,请参见[域名配置功能参数](~~410622~~)。', - 'type' => 'string', - 'required' => true, - 'example' => 'referer_white_list_set,https_force', - ], + 'schema' => ['description' => '配置ID,多个用逗号(,)分隔。'."\n" + ."\n" + .'您可以调用[DescribeDcdnDomainStagingConfig](~~DescribeDcdnDomainStagingConfig~~)查询配置ID。', 'type' => 'string', 'required' => true, 'example' => '2317'], ], ], 'responses' => [ @@ -4044,267 +4850,267 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid%s.ValueNotSupported', - 'errorMessage' => 'FunctionName [%s] is not supported.', - ], - [ - 'errorCode' => 'DeleteFunctionFailed', - 'errorMessage' => 'Batch delete functions failed.', - ], + ['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => 'FunctionName [%s] is not supported.', 'description' => '不支持该配置,请重新查询。'], + ['errorCode' => 'GrayConfigIsNull', 'errorMessage' => 'You cannot delete all gary configurations. You can clear them by rolling back the simulation environment.', 'description' => '删空模拟环境下的规则并不能清空CDN节点上的配置,您可以通过回滚模拟环境来清空模拟环境下的配置。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<BatchDeleteDcdnDomainConfigsResponse>\\r\\n\\t<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</BatchDeleteDcdnDomainConfigsResponse>","errorExample":""}]', - 'title' => '批量删除域名配置', - 'description' => '> - 单次配置的域名数量不超过50个。'."\n" - .'> - 单用户调用频率:30次/秒。', - 'requestParamsDescription' => '功能列表如下表所示。'."\n" - ."\n" - .'| 名称 | 参数 |'."\n" - .'|---------------|--------|'."\n" - .'| referer_white_list_set:Referer防盗链白名单| refer_domain_allow_list:白名单列表,多个用英文逗号(,)分隔。<br>allow_empty:是否允许空Referer字段访问DCDN资源,取值:on或off。|'."\n" - .'| referer_black_list_set:Referer防盗链黑名单| refer_domain_deny_list:黑名单列表,多个用英文逗号(,)分隔。<br>allow_empty:是否允许空Referer字段访问DCDN资源,取值:on或off。|'."\n" - .'| filetype_based_ttl_set:文件类型缓存过期时间设置| ttl:缓存时间,单位为秒。<br>file_type:文件类型。多个文件类型用英文逗号(,)分隔,例如TXT,JPG。<br>weight:权重。|'."\n" - .'| path_based_ttl_set:目录类型缓存过期时间设置| ttl:缓存时间,单位为秒。<br>path:目录,必须以正斜线(/)开头。<br>weight:权重。|'."\n" - .'| oss_auth:OSS鉴权Bucket| oss_bucket_id:您的Bucket地址。|'."\n" - .'| ip_black_list_set:IP黑名单| ip_list:IP列表,多个用英文逗号(,)分隔。|'."\n" - .'| ip_allow_list_set:IP白名单| ip_list:IP列表,多个用英文逗号(,)分隔。|'."\n" - .'| error_page:错误页面重定向| error_code:错误码。<br>rewrite_page:重定向页面。|'."\n" - .'| set_req_host_header:修改回源自定义头| domain_name:回源HOST头内容。|'."\n" - .'| set_hashkey_args:忽略URL参数| hashkey_args:保留参数列表,多个用英文逗号(,)分隔,最多支持填写10个。<br>disable:等于on表示忽略所有参数,off表示不忽略(缓存hashkey忽略所有参数,优先级低于保留缓存参数列表)。<br>keep_oss_args:等于on表示回源保留所有参数,off表示与缓存hashkey的参数一致。|'."\n" - .'| aliauth:阿里鉴权| auth_type:鉴权类型。no_auth:无鉴权;type_a:鉴权方式A;type_b:鉴权方式B;type_c:鉴权方式C。<br>auth_key1:鉴权key1;auth_key2:鉴权key2。<br>ali_auth_delta:自定义鉴权缓冲时间。|'."\n" - .'| set_resp_header:设置HTTP响应头(浏览器端可见)| key(必填):响应头。<br>value(必填):响应头内容,删除填写null。<br>header_operation_type:请求头操作,支持add、delete、modify、rewrite,添加add、删除delete、变更modify、替换rewrite。<br>duplicate:是否允许重复,支持on或off。<br>header_source:查找。<br>header_destination:替换为。<br>match_all:匹配所有,支持on或off。|'."\n" - .'| https_force:强制HTTPS跳转| enable:功能开关,取值:on或off。|'."\n" - .'| http_force:强制HTTP跳转| enable:功能开关,取值:on或off。|'."\n" - .'| https_option:HTTPS基础参数| http2:HTTP2开关,取值:on或off。<br>ocsp_stapling:OCSP Stapling开关,取值:on或off。|'."\n" - .'| forward_scheme:静态协议跟随回源| enable:开关,取值:on或off。<br> scheme_origin:回源协议类型,支持http、https和follow(跟随)。|'."\n" - .'| dynamic:全站加速相关配置|enable(必填):开关,支持on或off。<br>static_route_type:静态加速文件后缀。<br> static_route_url:静态加速URI。<br>static_route_path:静态加速PATH。<br>dynamic_route_origin:回源路由scheme,支持http、https、follow和follow-port。<br>dynamic_route_round_robin:开启负载均衡开关,支持on或off。<br>dynamic_route_adapt_cache:开启自适应缓存开关,支持on或off。|'."\n" - .'| set_req_header:自定义回源HTTP头| key:回源头。<br>value:回源头内容。|'."\n" - .'| l2_oss_key:阿里云OSS私有Bucket回源| private_oss_auth:私有Bucket回源开关,支持on或off。|'."\n" - .'| range:range回源| enable:开关,支持on、off。|'."\n" - .'| video_seek:视频拖拽播放|enable(必填):开关,支持on或off。<br> flv_seek_by_time:开启FLV按时间拖拽,支持on或off。<br> mp4_seek_start:自定义MP4开始参数。 <br> mp4_seek_end:自定义MP4结束参数。 <br> flv_seek_start:自定义FLV开始参数。 <br> flv_seek_end:自定义FLV结束参数。|'."\n" - .'| websocket:Websocket| enabled(必填):是否开启,取值:on或off。<br>origin_scheme:回源scheme,支持http、https和follow。<br>heartbeat:心跳时间,默认为60秒,支持1~300秒。|'."\n" - .'| ali_remove_args:忽略URL参数(删除)|ali_remove_args(必填):删除指定的参数,多个参数之间用空格隔开,剩余参数将作为hashkey中URL args部分。<br>keep_oss_args:回源保留参数。支持on或off,on表示回源保留所有参数,off表示与缓存hashkey的参数一致。|'."\n" - .'| https_tls_version:TLS协议版本| tls10:开启TLSv1.0,默认为on,支持on或off。<br>tls11:开启TLSv1.1,默认为on,支持on或off。<br> tls12:开启TLSv1.2,默认为on,支持on或off。<br>tls13:开启TLSv1.3,默认为off,支持on或off。|'."\n" - .'| HSTS:HSTS|enabled(必填):开关,默认为off,支持on或off。<br>https_hsts_max_age(必填):过期时间,单位:ms,建议填写5184000000ms(60天)。<br> https_hsts_include_subdomains:HSTS头包含includeSubDomains参数,支持on或off。请谨慎开启,开启前请确保该加速域名的所有子域名都已开启HTTPS,否则会导致子域名自动跳转到HTTPS后无法访问。|'."\n" - .'| filetype_force_ttl_code:文件状态码过期时间设置|file_type(必填):文件类型,多个用英文逗号(,)分隔,例如:TXT,JPG。<br>code_string(必填):状态码,多个用英文逗号(,)分隔。例如:302=0,301=0,4xx=2。|'."\n" - .'| path_force_ttl_code:路径状态码过期时间设置|path(必填):必须以正斜线(/)开头,例如:/image。<br>code_string(必填):状态码,多个用英文逗号(,)分隔。例如:302=0,301=0,4xx=2。|'."\n" - .'| gzip:智能压缩|enable(必填):功能开关,支持on或off。|'."\n" - .'| tesla:页面优化|enable(必填):功能开关,支持on或off。<br>trim_js:支持on或off,开启该功能,优化html中内嵌的js代码。<br>trim_css:支持on或off,开启该功能,优化html中内嵌的css代码。|'."\n" - .'| https_origin_sni:回源SNI|enabled:功能开关,支持on或off。<br>https_origin_sni(必填):回源SNI。|'."\n" - .'| protogw:IP应用加速|realip(必填):源站IP透传方式,支持off、toa、pp。<br>port(必填):服务端口。<br>patten:模式字符串。|'."\n" - .'| host_redirect:重写功能| regex:需要重写的URL,例如:^/$。<br>replacement:目标URL,例如: /go/act/sale/tbzlsy.php。<br>flag:仅支持redirect、break。'."\n" - .'| forward_timeout:回源请求超时时间| forward_timeout:单位为秒,配置时建议不要大于100秒。|'."\n" - .'|ipv6:IPv6配置|switch(必填):开关,支持on或off,on表示开启,off表示关闭。<br>region:开启IPv6功能的地区,支持星号(*)。|'."\n" - .'| edge_function:边缘函数|<br>rule(必填):DSL规则。<br>pri(必填):优先级。<br>enable(必填):本条规则是否生效,取值:on或off。<br>name:规则名称。<br>pos:规则执行位置。全站加速域名仅支持head,不支持foot。<br>brk:命中本条规则后,当前执行位置剩余规则均跳过。<br>option:option管控。<br> grammar:grammar管控,可选值:空、es2、js。<br> jsmode:js域名白单管控,可选值:redirect、bypass。|'."\n" - .'| brotli:Brotli压缩|enable(必填):功能开关,支持on或off。<br>brotli_level:压缩等级,取值范围[1,11]。|'."\n" - .'| ali_ua:User-Agent黑/白名单| ua:User-Agent。<br>type:名单类型,black或white。|'."\n", + 'title' => '删除加速域名的配置(灰度)', + 'description' => '> 单用户调用频率:20次/秒。', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeRDDomainConfig' => [ - 'summary' => '调用DescribeRDDomainConfig查询用户RD下的域名功能配置。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2023-06-08T02:49:29.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnSpecificStagingConfig'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnSpecificStagingConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDcdnSpecificStagingConfigResponse>\\r\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</DeleteDcdnSpecificStagingConfigResponse>\\r\\n","errorExample":""}]', + ], + 'DeleteDcdnSubTask' => [ + 'summary' => '调用DeleteDcdnSubTask删除所有已定制的运营报表。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + ], + 'parameters' => [], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], + ], + ], ], ], - 'parameters' => [ + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ['errorCode' => 'TimeParseFailed', 'errorMessage' => 'Failed to parse the time parameter.', 'description' => '解析时间参数失败'], + ['errorCode' => 'SubscriptionAlreadyExists', 'errorMessage' => 'The subscription already exists.', 'description' => '定制服务已开通'], + ['errorCode' => 'SubscriptionNotFound', 'errorMessage' => 'The subscription is not found.', 'description' => '未开通定制服务'], + ['errorCode' => 'NameAlreadyExists', 'errorMessage' => 'The name already exists.', 'description' => '名称已存在'], + ['errorCode' => 'DeliverExceedLimit', 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', 'description' => '订阅任务个数已达上限'], + ], + ], + 'title' => '删除已定制的运营报表', + 'description' => '> 单用户调用频率:3次/秒。 ', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnSubTask'], + ], + ], + 'ramActions' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'title' => 'A short description of struct', - 'description' => '加速域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnSubTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDcdnSubTaskResponse>\\r\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</DeleteDcdnSubTaskResponse>","errorExample":""}]', + ], + 'DeleteDcdnUserConfig' => [ + 'summary' => '调用DeleteDcdnUserConfig删除用户维度的功能配置。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '194960', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ [ 'name' => 'FunctionName', 'in' => 'query', - 'allowEmptyValue' => false, 'schema' => [ - 'title' => '幂等参数', - 'description' => '功能名称,默认查询源站组(source_group)功能。', + 'description' => '要删除的用户功能名称,当前仅支持删除DCDN WAF功能。取值默认为waf。', 'type' => 'string', 'required' => false, - 'example' => 'source_group', - 'default' => 'source_group', + 'example' => 'waf', + 'default' => 'waf', + 'enum' => ['waf'], ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'C80705BF-0F76-41FA-BAD1-5B59296A4E59', - ], - 'DomainConfigs' => [ - 'description' => '域名配置信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ConfigId' => [ - 'description' => '配置ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '6295', - ], - 'Status' => [ - 'description' => '状态。取值:'."\n" - ."\n" - .'- **success**:成功。'."\n" - .'- **testing**:测试中。'."\n" - .'- **failed**:失败。'."\n" - .'- **configuring**:配置中。', - 'type' => 'string', - 'example' => 'success', - ], - 'FunctionArgs' => [ - 'description' => '功能配置。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ArgName' => [ - 'description' => '配置名称。', - 'type' => 'string', - 'example' => 'source_group_name', - ], - 'ArgValue' => [ - 'description' => '配置值。', - 'type' => 'string', - 'example' => '123', - ], - ], - ], - ], - 'FunctionName' => [ - 'description' => '功能名称。', - 'type' => 'string', - 'example' => 'set_req_host_header', - ], - 'ParentId' => [ - 'description' => '高级条件配置ID。', - 'type' => 'string', - 'example' => '1234567', - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5CC228B4-7A67-4016-9C9F-4A4133494A91'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C80705BF-0F76-41FA-BAD1-5B59296A4E59\\",\\n \\"DomainConfigs\\": [\\n {\\n \\"ConfigId\\": 6295,\\n \\"Status\\": \\"success\\",\\n \\"FunctionArgs\\": [\\n {\\n \\"ArgName\\": \\"source_group_name\\",\\n \\"ArgValue\\": \\"123\\"\\n }\\n ],\\n \\"FunctionName\\": \\"set_req_host_header\\",\\n \\"ParentId\\": \\"1234567\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeRDDomainConfigResponse>\\n <RequestId>C80705BF-0F76-41FA-BAD1-5B59296A4E59</RequestId>\\n <DomainConfigs>\\n <ConfigId>6295</ConfigId>\\n <Status>success</Status>\\n <FunctionArgs>\\n <ArgName>source_group_name</ArgName>\\n <ArgValue>123</ArgValue>\\n </FunctionArgs>\\n <FunctionArgs>\\n <ArgName>source_info</ArgName>\\n <ArgValue>1.1.2.1_1_20_1,1.2.3.4_2_34_3</ArgValue>\\n </FunctionArgs>\\n <FunctionArgs>\\n <ArgName>retry_times</ArgName>\\n <ArgValue>1</ArgValue>\\n </FunctionArgs>\\n <FunctionArgs>\\n <ArgName>retry_status_rule</ArgName>\\n <ArgValue>123</ArgValue>\\n </FunctionArgs>\\n <FunctionArgs>\\n <ArgName>failback_source</ArgName>\\n <ArgValue>off</ArgValue>\\n </FunctionArgs>\\n <FunctionName>set_req_host_header</FunctionName>\\n <ParentId>1234567</ParentId>\\n </DomainConfigs>\\n</DescribeRDDomainConfigResponse>","errorExample":""}]', - 'title' => '查询用户RD下的域名功能配置', - ], - 'RefreshDcdnObjectCaches' => [ - 'summary' => '调用RefreshDcdnObjectCaches刷新节点上的文件内容、刷新指定URL内容至Cache节点。支持URL批量刷新。', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '删除用户维度的配置', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnUserConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnUserConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5CC228B4-7A67-4016-9C9F-4A4133494A91\\"\\n}","type":"json"}]', + ], + 'DeleteDcdnWafGroup' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnBCJPGN', - ], + 'abilityTreeNodes' => ['FEATUREdcdnSU2QP6'], ], 'parameters' => [ [ - 'name' => 'ObjectPath', - 'in' => 'query', + 'name' => 'Id', + 'in' => 'formData', + 'schema' => ['description' => '自定义WAF规则组ID。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '30000135'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '- 单次提交多个URL或多个目录时,使用换行符(\\n)或(\\r\\n)分隔。'."\n" - .'- 单次提交的任务中所有URL的域名个数总和需要在10个以内。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com/example.txt', + 'title' => 'Schema of Response', + 'description' => '请求ID。', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '2430E05E-1340-5773-B5E1-B743929F46F2'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'WafGroup.BeingBound', 'errorMessage' => 'The specified WAF group is being bound.', 'description' => '指定的WAF规则组正在被一个或多个防护策略绑定。'], + ['errorCode' => 'WafGroup.NotExist', 'errorMessage' => 'The specified WAF group does not exist.', 'description' => '指定的WAF规则组不存在。'], + ], + 403 => [ + ['errorCode' => '%s.NotSupport', 'errorMessage' => 'The specified resource type %s is not supported.', 'description' => '不支持指定的资源类型。如需使用该类型资源,请与我们联系。'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => '该资源的数量超出了配额所规定的范围,如需申请更多的额度,请与我们联系。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => '内部错误,请重试,如果多次重试报错请提交工单。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '删除自定义WAF规则组', + 'summary' => '调用DeleteDcdnWafGroup删除自定义WAF规则组。', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:15.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnWafGroup'], + ], + ], + 'ramActions' => [ [ - 'name' => 'ObjectType', - 'in' => 'query', - 'schema' => [ - 'description' => '刷新类型。取值范围:'."\n" - ."\n" - .'- **File**(默认值):URL。'."\n" - .'- **Directory**:目录。'."\n" - .'- **Regex**:正则刷新。'."\n" - .'- **IgnoreParams**:去参数刷新。去参数指的是去除请求URL中`?`及`?`之后的参数,去参数刷新指的是用户先通过接口提交去参数后的URL,然后用户提交的待刷新URL将会与已缓存资源的URL进行去参数匹配,如果已缓存资源的URL去参数以后与待刷新URL匹配,那么CDN节点将对缓存资源执行刷新处理。'."\n" - ."\n" - .'> - URL刷新和目录刷新的功能说明请参考[刷新和预热资源](~~64936~~)。'."\n" - .'>- 文件刷新将直接删除节点上的资源,当有新请求时回源拉取新资源。其它刷新类型默认只刷新发生变更的资源,需要强制刷新请配置Force参数为true,详见Force参数说明。', - 'type' => 'string', - 'required' => false, - 'example' => 'File', - 'default' => 'File', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnWafGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2430E05E-1340-5773-B5E1-B743929F46F2\\"\\n}","type":"json"}]', + ], + 'DeleteDcdnWafPolicy' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Force', - 'in' => 'query', - 'schema' => [ - 'description' => '当回源内容和源站资源对比一致时,是否刷新对应范围内的资源。默认为false。'."\n" - .'- **true**:刷新对应范围内的全部资源。选择 “刷新全部资源” 时,如果用户请求的内容匹配到了对应范围内的资源,DCDN节点将会直接回源拉取新资源返回给用户,并重新缓存该资源。'."\n" - .'- **false**:刷新对应范围内发生变更的资源。选择 “刷新变更资源” 时,如果用户请求的内容匹配到了对应范围内的资源,DCDN节点将会回源获取资源的 Last-Modified 信息,若与当前缓存资源一致,则直接返回已缓存资源,若不一致,则回源拉取新资源返回给用户,并重新缓存该资源。'."\n" - .'> 此参数生效范围:除文件刷新外的刷新类型', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREdcdnSU2QP6'], + ], + 'parameters' => [ + [ + 'name' => 'PolicyId', + 'in' => 'formData', + 'schema' => ['description' => '需要删除的防护策略ID,仅支持单个输入。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1000001'], ], ], 'responses' => [ @@ -4312,82 +5118,56 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RefreshTaskId' => [ - 'description' => '刷新返回的任务ID。多个ID用逗号(,)分隔。'."\n", - 'type' => 'string', - 'example' => '95248880', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'E5BD4B50-7A02-493A-AE0B-97B9024B4135', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CB1A380B-09F0-41BB-B084-72F8FD6DA2FE'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SingleRequest.OverLimit', - 'errorMessage' => 'A maximum of 1000 URLs are supported for each request.', - ], - [ - 'errorCode' => 'InvalidObjectType.Malformed', - 'errorMessage' => 'The specified ObjectType is invalid.', - ], - [ - 'errorCode' => 'InvalidObjectPath.Malformed', - 'errorMessage' => 'The specified ObjectPath is invalid.', - ], - [ - 'errorCode' => 'QuotaExceeded.Refresh', - 'errorMessage' => 'Your refresh attempts have exceeded the daily limit.', - ], - [ - 'errorCode' => 'InvalidExtensiveDomain.ValueNotSupported', - 'errorMessage' => 'The specified ExtensiveDomain is not supported.', - ], - [ - 'errorCode' => 'QuotaPerMinuteExceeded.Refresh', - 'errorMessage' => 'You tried to refresh too frequently; please try again later.', - ], - [ - 'errorCode' => 'TooMany.Refresh', - 'errorMessage' => 'The refresh queue is full; please try again later.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ['errorCode' => 'Policy.NotExist', 'errorMessage' => 'The specified policy does not exist.', 'description' => '指定的防护策略不存在。'], + ['errorCode' => 'Policy.DeleteForbidden', 'errorMessage' => 'The specified policy is forbidden to delete.', 'description' => '指定的策略不允许删除。'], ], - 429 => [ - [ - 'errorCode' => 'TooManyRequests', - 'errorMessage' => 'Too many requests, please try again later', - ], + 403 => [ + ['errorCode' => '%s.NotSupport', 'errorMessage' => 'The specified resource type %s is not supported.', 'description' => '不支持指定的资源类型。如需使用该类型资源,请与我们联系。'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => '该资源的数量超出了配额所规定的范围,如需申请更多的额度,请与我们联系。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => '内部错误,请重试,如果多次重试报错请提交工单。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RefreshTaskId\\": \\"95248880\\",\\n \\"RequestId\\": \\"E5BD4B50-7A02-493A-AE0B-97B9024B4135\\"\\n}","errorExample":""},{"type":"xml","example":"<RefreshDcdnObjectCachesResponse>\\r\\n\\t<PushTaskId>95248880</PushTaskId>\\r\\n\\t<RequestId>E5BD4B50-7A02-493A-AE0B-97B9024B4135</RequestId>\\r\\n</RefreshDcdnObjectCachesResponse>\\r\\n\\t\\r\\n","errorExample":""}]', - 'title' => '刷新缓存', - 'description' => '- 请求方式:支持POST请求,参数用form表单显示。'."\n" - .'- 相关接口:刷新预热类接口包含[RefreshDcdnObjectCaches](~~130620~~)刷新接口和[PreloadDcdnObjectCaches](~~130636~~)预热接口。'."\n" - .'- URL刷新配额(每日):默认情况下,一个账号每日最多可以提交10000条URL刷新和100个目录刷新,目录刷新包含子目录。如果您的阿里云账号的日带宽峰值大于200 Mbps,您可以通过<props="china">[配额管理](~~375348~~)</props><props="intl">[提交工单](https://account.alibabacloud.com/login/login.htm?oauth_callback=https%3A//ticket-intl.console.aliyun.com/%23/ticket/createIndex)</props>申请提升每日配额,阿里云将根据您业务的实际需求进行评估和配置。'."\n" - .'- 每次请求最多支持提交1000条URL刷新或者100个目录刷新。'."\n" - .'- 单个域名每分钟最多支持提交10000条URL刷新。'."\n" - .'- 单用户调用频率:30次/秒。'."\n" - ."\n\n" - .'#### 注意事项'."\n" - .'- 提交刷新任务并成功执行后,DCDN节点上对应的缓存资源将会失效,当您再次发起访问请求时,节点会回源站拉取所需资源,并重新缓存在节点上,因此大批量提交刷新任务会清空较多缓存,导致回源带宽和请求突增,增加源站压力。'."\n" - .'- 刷新任务从提交到生效,大约需要5~6分钟,如果文件或者目录配置的缓存过期时间少于5分钟,您无需执行刷新操作,等待文件或者目录缓存超时更新即可。'."\n" - .'- 使用RAM用户来执行刷新或预热操作的,需要先获得授权,请参见[授予RAM用户刷新预热权限](~~445051~~)完成授权。', - ], - 'PreloadDcdnObjectCaches' => [ - 'summary' => '调用PreloadDcdnObjectCaches将源站的内容主动预热到L2 Cache节点上,用户首次访问可直接命中缓存,缓解源站压力。', - 'methods' => [ - 'get', - 'post', + 'title' => '删除防护策略', + 'summary' => '调用DeleteDcdnWafPolicy删除指定防护策略。', + 'description' => '> '."\n" + .'> - 单用户调用频率:20次/秒。'."\n" + .'> - 请求方式:支持POST请求。', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:14.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnWafPolicy'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnWafPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-B084-72F8FD6DA2FE\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDcdnWafPolicyResponse>\\n <RequestId>CB1A380B-09F0-41BB-B084-72F8FD6DA2FE</RequestId>\\n</DeleteDcdnWafPolicyResponse>","errorExample":""}]', + ], + 'DeleteRoutine' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4395,173 +5175,212 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111597', - 'abilityTreeNodes' => [ - 'FEATUREdcdn4TTNAL', - ], + 'abilityTreeCode' => '111467', + 'abilityTreeNodes' => ['FEATUREdcdn75UYDO'], ], 'parameters' => [ [ - 'name' => 'ObjectPath', - 'in' => 'query', + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => 'Routine函数名, 同一个账号下命名唯一。', 'type' => 'string', 'required' => true, 'example' => 'test'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '预热URL,格式为**加速域名/预热的文件**。'."\n" - .'>多个URL之间用换行符(\\n)或(\\r\\n)分隔,ObjectPath的单条长度最长为1024个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com/examplefile.txt', + 'type' => 'object', + 'properties' => [ + 'Content' => ['description' => '返回“"Status": "OK"”。', 'type' => 'object', 'example' => '{"Status": "OK"}'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => '后端服务器发生错误:%s 。如果重试多次依然报错,请提交工单。'], + ], + ], + 'title' => '删除边缘函数的函数配置', + 'summary' => '调用DeleteRoutine删除边缘函数(EdgeRoutine)的函数(Routine)配置。', + 'description' => '> API调用频率:100次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteRoutine'], + ], + ], + 'ramActions' => [ [ - 'name' => 'Area', - 'in' => 'query', - 'schema' => [ - 'description' => '预热区域,取值:'."\n" - .'- **domestic**:仅中国内地。'."\n" - .'- **overseas**:全球(不包含中国内地)。'."\n" - ."\n" - .'如果不传该参数,默认的预热区域为您的域名所配置的DCDN加速区域。具体如下:'."\n" - ."\n" - .'- 域名的加速区域为“**仅中国内地**”,预热区域是仅中国内地。'."\n" - .'- 域名的加速区域为“**全球**”,预热区域是全球。'."\n" - .'- 域名的加速区域为“**全球(不包含中国内地)**”,预热区域是全球(不包含中国内地)。', - 'type' => 'string', - 'required' => false, - 'example' => 'domestic', - 'enum' => [ - 'domestic', - 'overseas', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:DeleteRoutine', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"Status\\": \\"OK\\"\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteRoutineResponse>\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\n<Content>\\n <Status>OK</Status>\\n</Content>\\n</DeleteRoutineResponse>","errorExample":""}]', + ], + 'DeleteRoutineCodeRevision' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'L2Preload', - 'in' => 'query', - 'schema' => [ - 'description' => '是否直接预热到L2节点。取值:'."\n" - ."\n" - .'- **true**:代表预热的节点层级必须包含L2节点。'."\n" - ."\n" - .'- **false**:代表仅预热回源层节点(false为默认值,回源层节点可能是L2节点,也可能是L3节点)。'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'false', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '111468', + 'abilityTreeNodes' => ['FEATUREdcdn75UYDO'], + ], + 'parameters' => [ [ - 'name' => 'WithHeader', - 'in' => 'query', + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => 'Routine函数名, 同一个账号下命名唯一。', 'type' => 'string', 'required' => true, 'example' => 'test'], + ], + [ + 'name' => 'SelectCodeRevision', + 'in' => 'formData', + 'schema' => ['description' => '需要删除的代码版本号。', 'type' => 'string', 'required' => true, 'example' => '123456'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '支持用户自定义预热Header,用JSON串格式提交。', - 'type' => 'string', - 'required' => false, - 'example' => '{'."\n" - .' "Accept-Encoding": ['."\n" - .' "gzip"'."\n" - .' ]'."\n" - .'}', + 'type' => 'object', + 'properties' => [ + 'Content' => ['description' => '返回“"Status": "OK"”。', 'type' => 'object', 'example' => '{"Status": "OK"}'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => '后端服务器发生错误:%s 。如果重试多次依然报错,请提交工单。'], + ], + ], + 'title' => '删除边缘函数代码', + 'summary' => '调用DeleteRoutineCodeRevision删除边缘函数指定版本的代码。', + 'description' => '> API调用频率:100次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteRoutineCodeRevision'], + ], + ], + 'ramActions' => [ [ - 'name' => 'QueryHashkey', - 'in' => 'query', - 'schema' => [ - 'description' => '配置了某些规则(如 URL 重写、参数过滤等)开启使用。该参数用于控制执行预热任务时是否开启hashkey查询模式。取值范围:'."\n" - .'- false:默认模式,不传参数的时候使用该模式,指的是直接使用提交的URL作为预热文件的hashkey。'."\n" - .'- true:根据域名的配置来查询预热URL实际使用的hashkey。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:DeleteRoutineCodeRevision', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"Status\\": \\"OK\\"\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteRoutineCodeRevisionResponse>\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\n<Content>\\n <Status>OK</Status>\\n</Content>\\n</DeleteRoutineCodeRevisionResponse>","errorExample":""}]', + ], + 'DeleteRoutineConfEnvs' => [ + 'summary' => '调用DeleteRoutineConfEnvs删除边缘函数Env列表中的自定义灰度环境。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '111469', + 'abilityTreeNodes' => ['FEATUREdcdn75UYDO'], + ], + 'parameters' => [ + [ + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => 'Routine函数名, 同一个账号下命名唯一。', 'type' => 'string', 'required' => true, 'example' => 'test'], + ], + [ + 'name' => 'Envs', + 'in' => 'formData', + 'style' => 'json', + 'schema' => ['description' => '需要删除的Env列表中的自定义灰度环境。', 'type' => 'object', 'required' => true, 'example' => '["presetCanaryZheJiang"]'], + ], + ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'PreloadTaskId' => [ - 'description' => '预热返回的任务ID,多个任务ID用半角逗号(,)分隔。预热返回的任务ID会按照以下两条规则对预热任务做合并:'."\n" - ."\n" - .'- 同一个域名、同一秒钟提交的预热任务(URL颗粒度)会被合并为同一个RushTaskId。'."\n" - .'- 同一个域名、同一秒钟提交的预热任务(URL颗粒度)如果超过500条,那么会按照每500条合并为一个RushTaskId的方式处理。', - 'type' => 'string', - 'example' => '95248880', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'E5BD4B50-7A02-493A-AE0B-97B9024B4135', - ], + 'Content' => ['description' => '返回“"Status": "OK"”。', 'type' => 'object', 'example' => '{"Status": "OK"}'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SingleRequest.OverLimit', - 'errorMessage' => 'A maximum of 1000 URLs are supported for each request.', - ], - [ - 'errorCode' => 'QuotaExceeded.Preload', - 'errorMessage' => 'Your refresh attempts have exceeded the daily limit.', - ], - [ - 'errorCode' => 'InvalidObjectPath.Malformed', - 'errorMessage' => 'The specified ObjectPath is invalid.', - ], - [ - 'errorCode' => 'InvalidExtensiveDomain.ValueNotSupported', - 'errorMessage' => 'The specified ExtensiveDomain is not supported.', - ], - [ - 'errorCode' => 'PreloadQueueFull', - 'errorMessage' => 'The warming queue is full; please try again later.', - ], - [ - 'errorCode' => 'InvalidObjectPath.ExceedsMaximum', - 'errorMessage' => 'The maximum number of urls is exceeded.', - ], + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => '后端服务器发生错误:%s 。如果重试多次依然报错,请提交工单。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PreloadTaskId\\": \\"95248880\\",\\n \\"RequestId\\": \\"E5BD4B50-7A02-493A-AE0B-97B9024B4135\\"\\n}","errorExample":""},{"type":"xml","example":"<PreloadDcdnObjectCachesResponse>\\r\\n\\t<PushTaskId>95248880</PushTaskId>\\r\\n\\t<RequestId>E5BD4B50-7A02-493A-AE0B-97B9024B4135</RequestId>\\r\\n</PreloadDcdnObjectCachesResponse>\\r\\n\\t\\r\\n","errorExample":""}]', - 'title' => '预热URL', - 'description' => '- 相关接口:刷新预热类接口包含[RefreshDcdnObjectCaches](~~130620~~)刷新接口和[PreloadDcdnObjectCaches](~~130636~~)预热接口。'."\n" - ."\n" - .'- 请求方式:支持POST请求,参数用form表单显示。'."\n" - ."\n" - .'- URL预热配额(每日):默认情况下,一个账号每日最多可以提交1000条URL预热任务,如果您账号的日带宽峰值大于200 Mbps,可通过<props="china">[配额管理](~~375348~~)</props><props="intl">[提交工单](https://account.alibabacloud.com/login/login.htm?oauth_callback=https%3A//ticket-intl.console.aliyun.com/%23/ticket/createIndex)</props>申请提升每日配额,阿里云将根据您业务的实际需求进行评估和配置。'."\n" - ."\n" - .'- 每次最多可以提交100条URL预热任务。'."\n" - ."\n" - .'- 预热队列规则:每个账号的预热队列最大为100,000条URL,DCDN根据URL提交的先后顺序进行预热,当预热队列中未完成的任务达到了100,000条URL时,阿里云DCDN将会采取排队机制(即完成排序最前的一条URL预热后才可以继续提交下一条URL预热)完成预热。'."\n" - ."\n" - .'- 单用户调用频率:15次/秒。'."\n" - ."\n" - .'#### 注意事项'."\n" - ."\n" - .'- 提交预热任务并成功执行后,DCDN节点会立即回源站加载所需资源,因此大批量提交预热任务会生成较多的并发下载任务,导致回源带宽和请求突增,增加源站压力。'."\n" - .'- 预热任务从提交到预热完成,实际执行时间视预热文件大小而定,大约需要5~30分钟,文件平均大小越小,预热速度越快。'."\n" - .'- 使用RAM用户来执行刷新或预热操作的,需要先获得授权,请参见[授予RAM用户刷新预热权限](~~445051~~)完成授权。', + 'title' => '删除边缘函数代码的灰度环境', + 'description' => '> - 仅允许删除自定义增加的Preset Canary。Production和Staging环境不允许删除。'."\n" + .'> - API调用频率:100次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnRefreshQuota' => [ - 'summary' => '调用DescribeDcdnRefreshQuota查询当日刷新URL、预热URL及刷新目录的上限和剩余次数。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteRoutineConfEnvs'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:DeleteRoutineConfEnvs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"Status\\": \\"OK\\"\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteRoutineConfEnvsResponse>\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\n<Content>\\n <Status>OK</Status>\\n</Content>\\n</DeleteRoutineConfEnvsResponse>","errorExample":""}]', + ], + 'DescribeDcdnAclFields' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4572,105 +5391,79 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111537', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', + 'abilityTreeNodes' => ['FEATUREdcdn33QGRH'], + ], + 'parameters' => [ + [ + 'name' => 'Lang', + 'in' => 'query', + 'schema' => [ + 'description' => '访问语言。取值:'."\n" + ."\n" + .'- **en**(默认):英文'."\n" + ."\n" + .'- **zh**:中文', + 'type' => 'string', + 'required' => true, + 'example' => 'en', + 'enum' => ['zh', 'en'], + ], ], - 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'BlockQuota' => [ - 'description' => '封禁上限,单位:个。', - 'type' => 'string', - 'example' => '100', - ], - 'RegexRemain' => [ - 'description' => '当天剩余正则刷新数量,单位:个。', - 'type' => 'string', - 'example' => '100', - ], - 'BlockRemain' => [ - 'description' => '当天剩余封禁数量,单位:个。', - 'type' => 'string', - 'example' => '100', - ], - 'PreloadRemain' => [ - 'description' => '当天剩余预热URL数量,单位:个。', - 'type' => 'string', - 'example' => '500', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '42E0554B-80F4-4921-AED6-ACFB22CAAAD0', - ], - 'DirRemain' => [ - 'description' => '当天剩余刷新目录数量,单位:个。', - 'type' => 'string', - 'example' => '100', - ], - 'UrlRemain' => [ - 'description' => '当天剩余刷新URL数量,单位:个。', - 'type' => 'string', - 'example' => '2000', - ], - 'DirQuota' => [ - 'description' => '当天刷新目录数量上限,单位:个。', - 'type' => 'string', - 'example' => '100', - ], - 'UrlQuota' => [ - 'description' => '当天刷新URL数量上限,单位:个。', - 'type' => 'string', - 'example' => '2000', - ], - 'PreloadQuota' => [ - 'description' => '当天预热URL数量上限,单位:个。', - 'type' => 'string', - 'example' => '500', - ], - 'RegexQuota' => [ - 'description' => '当天正则刷新数量上限,单位:个。', - 'type' => 'string', - 'example' => '100', - ], - 'IgnoreParamsQuota' => [ - 'description' => '当天忽略参数刷新数量上限,单位:个。', - 'type' => 'string', - 'example' => '100', - ], - 'IgnoreParamsRemain' => [ - 'description' => '当天剩余忽略参数刷新数量,单位:个。', - 'type' => 'string', - 'example' => '10', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '30A3A25A-86B3-4C1D-BAA8-12B8607A5CFD'], + 'Content' => [ + 'description' => '规则详情。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Fields' => ['description' => '规则支持项及配置限制策略,需要JSON解码。', 'type' => 'string', 'example' => '\\"fieldList\\":[{\\"name\\":\\"alert\\",\\"display\\":\\"observe\\",\\"tip\\":\\"mark the request in the log without blocking it\\"},{\\"name\\":\\"bypass\\",\\"display\\":\\"bypass\\",\\"tip\\":\\"bypass security modules\\"}],\\"module\\":[{\\"name\\":\\"cc\\",\\"display\\":\\"Rate Limit\\",\\"tip\\":\\"bypass Rate Limit\\"},{\\"name\\":\\"bot\\",\\"display\\":\\"Bot Traffic Management\\",\\"tip\\":\\"bypass Bot Manager\\"}]'], + ], + 'description' => '', + ], ], ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"BlockQuota\\": \\"100\\",\\n \\"RegexRemain\\": \\"100\\",\\n \\"BlockRemain\\": \\"100\\",\\n \\"PreloadRemain\\": \\"500\\",\\n \\"RequestId\\": \\"42E0554B-80F4-4921-AED6-ACFB22CAAAD0\\",\\n \\"DirRemain\\": \\"100\\",\\n \\"UrlRemain\\": \\"2000\\",\\n \\"DirQuota\\": \\"100\\",\\n \\"UrlQuota\\": \\"2000\\",\\n \\"PreloadQuota\\": \\"500\\",\\n \\"RegexQuota\\": \\"100\\",\\n \\"IgnoreParamsQuota\\": \\"100\\",\\n \\"IgnoreParamsRemain\\": \\"10\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnRefreshQuotaResponse>\\n <BlockQuota>100</BlockQuota>\\n <RegexRemain>100</RegexRemain>\\n <BlockRemain>100</BlockRemain>\\n <PreloadRemain>500</PreloadRemain>\\n <RequestId>42E0554B-80F4-4921-AED6-ACFB22CAAAD0</RequestId>\\n <DirRemain>100</DirRemain>\\n <UrlRemain>2000</UrlRemain>\\n <DirQuota>100</DirQuota>\\n <UrlQuota>2000</UrlQuota>\\n <PreloadQuota>500</PreloadQuota>\\n <RegexQuota>100</RegexQuota>\\n <IgnoreParamsQuota>100</IgnoreParamsQuota>\\n <IgnoreParamsRemain>10</IgnoreParamsRemain>\\n</DescribeDcdnRefreshQuotaResponse>","errorExample":""}]', - 'title' => '查询缓存刷新预热数量信息', - 'description' => '> - 刷新预热类接口包含**RefreshDcdnObjectCaches**刷新接口和**PreloadDcdnObjectCaches**预热接口。'."\n" - .'> - 单用户调用频率:20次/秒。', + 'title' => '配置精准访问控制', + 'summary' => '调用DescribeDcdnAclFields为访问控制配置界面提供规则限制项。', + 'description' => '>单用户调用频率:3次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnRefreshTasks' => [ - 'summary' => '调用DescribeDcdnRefreshTasks查询刷新、预热状态是否在全网生效,支持查询3天内的数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2022-12-08T02:53:10.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnAclFields'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnAclFields', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"30A3A25A-86B3-4C1D-BAA8-12B8607A5CFD\\",\\n \\"Content\\": [\\n {\\n \\"Fields\\": \\"\\\\\\\\\\\\\\"fieldList\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"name\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"alert\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"display\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"observe\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"tip\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"mark the request in the log without blocking it\\\\\\\\\\\\\\"},{\\\\\\\\\\\\\\"name\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"bypass\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"display\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"bypass\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"tip\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"bypass security modules\\\\\\\\\\\\\\"}],\\\\\\\\\\\\\\"module\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"name\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"cc\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"display\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Rate Limit\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"tip\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"bypass Rate Limit\\\\\\\\\\\\\\"},{\\\\\\\\\\\\\\"name\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"bot\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"display\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Bot Traffic Management\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"tip\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"bypass Bot Manager\\\\\\\\\\\\\\"}]\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnAclFieldsResponse>\\t\\n<RequestId>30A3A25A-86B3-4C1D-BAA8-12B8607A5CFD</RequestId>\\n<Content>\\n <Fields>{\\"fieldList\\":[{\\"name\\":\\"alert\\",\\"display\\":\\"observe\\",\\"tip\\":\\"mark the request in the log without blocking it\\"},{\\"name\\":\\"bypass\\",\\"display\\":\\"bypass\\",\\"tip\\":\\"bypass security modules\\"}],\\"module\\":[{\\"name\\":\\"cc\\",\\"display\\":\\"Rate Limit\\",\\"tip\\":\\"bypass Rate Limit\\"},{\\"name\\":\\"bot\\",\\"display\\":\\"Bot Traffic Management\\",\\"tip\\":\\"bypass Bot Manager\\"}]}</Fields>\\n</Content>\\n</DescribeDcdnAclFieldsResponse>\\t","errorExample":""}]', + ], + 'DescribeDcdnBgpBpsData' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4681,137 +5474,257 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111539', - 'abilityTreeNodes' => [ - 'FEATUREdcdnBCJPGN', - 'FEATUREdcdnRELTJV', - 'FEATUREdcdnEWYS3A', - 'FEATUREdcdn4TTNAL', - ], + 'abilityTreeCode' => '111473', + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'TaskId', + 'name' => 'Isp', 'in' => 'query', - 'schema' => [ - 'description' => '任务ID,当您创建刷新或预热任务,会返回任务ID。', - 'type' => 'string', - 'required' => false, - 'example' => '704225667', - ], + 'schema' => ['description' => '需要查询的线路,查询多条路线用英文逗号(,)分隔。指定多条线路时进行聚合处理,默认为所有线路.。'."\n" + ."\n" + .'可选值:'."\n" + .'- cu:联通。'."\n" + .'- cmi:移动。'."\n" + .'- ct:电信。', 'type' => 'string', 'required' => false, 'example' => 'cu'], ], [ - 'name' => 'ObjectPath', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '按路径查询,准确匹配。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'http://example.com/examplefile.txt', - ], + 'schema' => ['description' => '获取数据开始时间点。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'最小数据粒度为1小时。'."\n" + ."\n" + .'默认读取过去24小时数据。', 'type' => 'string', 'required' => false, 'example' => '2018-11-29T00:00:00Z'], ], [ - 'name' => 'PageNumber', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '取得页数。取值范围为:**1**~**100000**。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '42949672', - 'example' => '2', - 'default' => '1', - ], + 'schema' => ['description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2018-11-30T00:00:00Z'], ], [ - 'name' => 'ObjectType', + 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => '任务类型。'."\n" - ."\n" - .'- **file**:刷新URL。'."\n" - .'- **directory**:刷新目录。'."\n" - .'- **regex**:正则刷新。'."\n" - .'- **preload**:预热URL。'."\n" - ."\n" - .'当指定**DomainName**或**Status**时,该参数必填。', - 'type' => 'string', - 'required' => false, - 'example' => 'file', - 'enum' => [ - 'file', - 'directory', - 'preload', - 'IgnoreParams', - 'regex', - ], - ], + 'schema' => ['description' => '数据粒度,支持300秒和3600秒,默认为300秒即五分钟,但需要和时间跨度综合判定。', 'type' => 'string', 'required' => false, 'example' => '300'], ], [ - 'name' => 'DomainName', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,仅支持单个查询,默认查询所有加速域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '设备名称。若指定则返回对应设备的数据,,不指定则为所有设备合并。', 'type' => 'string', 'required' => false, 'example' => 'devicename'], ], [ - 'name' => 'Status', + 'name' => 'DevicePort', 'in' => 'query', + 'schema' => ['description' => '设备端口。若指定则返回对应设备端口的数据,不指定则为所有端口。该字段必须在指定了**DeviceName**的时候才可以生效。', 'type' => 'string', 'required' => false, 'example' => '123'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '任务状态。'."\n" - ."\n" - .'- **Complete**:完成。'."\n" - .'- **Refreshing**:处理中。'."\n" - .'- **Timeout**:超时未执行。'."\n" - .'- **Canceled**:取消。'."\n" - .'- **Failed**:失败。', - 'type' => 'string', - 'required' => false, - 'example' => 'Complete', - 'enum' => [ - 'Complete', - 'Refreshing', - 'Failed', + 'type' => 'object', + 'properties' => [ + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2018-11-30T00:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2018-11-29T00:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'E9D3257A-1B7C-414C-90C1-8D07AC47BCAC'], + 'BgpDataInterval' => [ + 'description' => '每个时间间隔的BGP带宽情况。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Out' => ['description' => '出向带宽,单位:Bps。', 'type' => 'number', 'format' => 'float', 'example' => '183'], + 'In' => ['description' => '入向带宽,单位:Bps。', 'type' => 'number', 'format' => 'float', 'example' => '318'], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2018-11-29T20:00:00Z'], + ], + 'description' => '', + ], + ], ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], + ], + ], + 'title' => '查询BGP带宽数据', + 'summary' => '调用DescribeDcdnBgpBpsData查询BGP加速五分钟粒度带宽数据。', + 'description' => '- 不指定StartTime和EndTime时,该接口默认读取过去24小时的数据,同时支持按指定的起止时间查询,两者需要同时指定。'."\n" + .'- 指定多条线路时数据聚合处理。'."\n" + .'- 最多可获取最近90天的数据。'."\n" + .'- StartTime和EndTime最大支持31天跨度。'."\n" + .'- 数据跨度72小时内(包含)可以支持5分钟粒度,72小时以上只支持小时粒度。'."\n" + .'- 单用户调用频率:5次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnBgpBpsData'], + ], + ], + 'ramActions' => [ [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '分页大小。默认值:**20**,最大值:**50**,取值范围:**1**~**50**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'example' => '20', - 'default' => '20', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnBgpBpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2018-11-30T00:00:00Z\\",\\n \\"StartTime\\": \\"2018-11-29T00:00:00Z\\",\\n \\"RequestId\\": \\"E9D3257A-1B7C-414C-90C1-8D07AC47BCAC\\",\\n \\"BgpDataInterval\\": [\\n {\\n \\"Out\\": 183,\\n \\"In\\": 318,\\n \\"TimeStamp\\": \\"2018-11-29T20:00:00Z\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnBgpBpsDataResponse>\\n<RequestId>E9D3257A-1B7C-414C-90C1-8D07AC47BCAC</RequestId>\\n<EndTime>2015-11-30T00:00:00Z</EndTime>\\n<StartTime>2015-11-29T00:00:00Z</StartTime>\\n<BgpDataInterval>\\n <TimeStamp>2015-11-29T20:00:00Z</TimeStamp>\\n <In>318</In>\\n <Out>183</Out>\\n</BgpDataInterval>\\n<BgpDataInterval>\\n <TimeStamp>2015-11-29T20:05:00Z</TimeStamp>\\n <In>312</In>\\n <Out>331</Out>\\n</BgpDataInterval>\\n</DescribeDcdnBgpBpsDataResponse>","errorExample":""}]', + ], + 'DescribeDcdnBgpTrafficData' => [ + 'summary' => '调用DescribeDcdnBgpTrafficData查询BGP加速五分钟粒度流量数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + ], + 'parameters' => [ + [ + 'name' => 'Isp', + 'in' => 'query', + 'schema' => ['description' => '需要查询的线路,查询多条路线用英文逗号(,)分隔。指定多条线路时进行聚合处理,默认为所有线路.。'."\n" + ."\n" + .'可选值:'."\n" + .'- cu:联通。'."\n" + .'- cmi:移动。'."\n" + .'- ct:电信。', 'type' => 'string', 'required' => false, 'example' => 'cu'], + ], [ 'name' => 'StartTime', 'in' => 'query', + 'schema' => ['description' => '获取数据开始时间点。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'最小数据粒度为1小时。'."\n" + ."\n" + .'默认读取过去24小时数据。', 'type' => 'string', 'required' => false, 'example' => '2018-11-29T00:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2018-11-30T00:00:00Z'], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => ['description' => '数据粒度,支持300秒和3600秒,默认为300秒即五分钟,但需要和时间跨度综合判定。', 'type' => 'string', 'required' => false, 'example' => '300'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '开始时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-01-01T12:12:20Z', + 'type' => 'object', + 'properties' => [ + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2018-11-30T00:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2018-11-29T00:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'E9D3257A-1B7C-414C-90C1-8D07AC47BCAC'], + 'BgpDataInterval' => [ + 'description' => '每个时间间隔的BGP流量情况。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Out' => ['description' => '出向流量,单位:Byte。', 'type' => 'integer', 'format' => 'int64', 'example' => '183'], + 'In' => ['description' => '入向流量,单位:Byte。', 'type' => 'integer', 'format' => 'int64', 'example' => '318'], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2018-11-29T20:00:00Z'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], + ], + ], + 'title' => '查询BGP流量数据', + 'description' => '- 不指定StartTime和EndTime时,该接口默认读取过去24小时的数据,同时支持按指定的起止时间查询,两者需要同时指定。'."\n" + .'- 指定多条线路时数据聚合处理。'."\n" + .'- 最多可获取最近90天的数据。'."\n" + .'- StartTime和EndTime最大支持31天跨度。'."\n" + .'- 数据跨度72小时内(包含)可以支持5分钟粒度,72小时以上只支持小时粒度。'."\n" + .'- 单用户调用频率:5次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnBgpTrafficData'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnBgpTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2018-11-30T00:00:00Z\\",\\n \\"StartTime\\": \\"2018-11-29T00:00:00Z\\",\\n \\"RequestId\\": \\"E9D3257A-1B7C-414C-90C1-8D07AC47BCAC\\",\\n \\"BgpDataInterval\\": [\\n {\\n \\"Out\\": 183,\\n \\"In\\": 318,\\n \\"TimeStamp\\": \\"2018-11-29T20:00:00Z\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<RequestId>E9D3257A-1B7C-414C-90C1-8D07AC47BCAC</RequestId>\\n<EndTime>2015-11-30T00:00:00Z</EndTime>\\n<StartTime>2015-11-29T00:00:00Z</StartTime>\\n<BgpDataInterval>\\n <TimeStamp>2015-11-29T20:00:00Z</TimeStamp>\\n <In>318</In>\\n <Out>183</Out>\\n</BgpDataInterval>\\n<BgpDataInterval>\\n <TimeStamp>2015-11-29T20:05:00Z</TimeStamp>\\n <In>312</In>\\n <Out>331</Out>\\n</BgpDataInterval>","errorExample":""}]', + ], + 'DescribeDcdnBlockedRegions' => [ + 'summary' => '调用DescribeDcdnBlockedRegions查询区域封禁支持的国家和地区。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'EndTime', + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + ], + 'parameters' => [ + [ + 'name' => 'Language', 'in' => 'query', 'schema' => [ - 'description' => '结束时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需大于起始时间。', + 'description' => '语言。取值:zh、en和jp。', 'type' => 'string', - 'required' => false, - 'example' => '2017-01-01T12:13:20Z', + 'required' => true, + 'example' => 'zh', + 'enum' => ['zh', 'en', 'jp'], ], ], ], @@ -4820,174 +5733,68 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '174F6032-AA26-470D-B90E-36F0EB205BEE', - ], - 'PageNumber' => [ - 'description' => '页码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'PageSize' => [ - 'description' => '整页大小。'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'TotalCount' => [ - 'description' => '任务数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - 'Tasks' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'BFFCDFAD-DACC-484E-9BE6-0AF3B3A0DD23'], + 'InfoList' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Task' => [ - 'description' => '任务列表。'."\n", + 'InfoItem' => [ + 'description' => '国家地区信息。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => '状态。'."\n" - ."\n" - .'- **Complete**:完成。'."\n" - ."\n" - .'- **Refreshing**:刷新中。'."\n" - ."\n" - .'- **Failed**:刷新失败。', - 'type' => 'string', - 'example' => 'Complete', - ], - 'CreationTime' => [ - 'description' => '任务对象创建时间。为UTC时间。'."\n", - 'type' => 'string', - 'example' => '2014-11-27T08:23:22Z', - ], - 'ObjectType' => [ - 'description' => '任务类型。'."\n" - .'- **file**:刷新URL。'."\n" - .'- **path**:刷新目录。'."\n" - .'- **regex**:正则刷新。'."\n" - .'- **preload**:预热URL。', - 'type' => 'string', - 'example' => 'file', - ], - 'Process' => [ - 'description' => '进度百分比。'."\n", - 'type' => 'string', - 'example' => '10', - ], - 'Description' => [ - 'description' => '刷新预热失败返回错误描述。'."\n" - ."\n" - .'- **InternalError**:内部错误。'."\n" - ."\n" - .'- **OriginTimeout**:源站响应超时。'."\n" - ."\n" - .'- **OriginReturn StatusCode 5XX**:源站响应5xx错误码。', - 'type' => 'string', - 'example' => 'InternalError', - ], - 'ObjectPath' => [ - 'description' => '刷新对象路径。'."\n", - 'type' => 'string', - 'example' => 'http://example.com/examplefile.txt', - ], - 'TaskId' => [ - 'description' => '任务ID。'."\n", - 'type' => 'string', - 'example' => '123', - ], + 'CountriesAndRegions' => ['description' => '国家地区缩写。', 'type' => 'string', 'example' => 'AE'], + 'Continent' => ['description' => '国家地区所属大区。', 'type' => 'string', 'example' => 'Middle East'], + 'CountriesAndRegionsName' => ['description' => '国家地区名称。', 'type' => 'string', 'example' => 'United Arab Emirates'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidTaskId.Malformed', - 'errorMessage' => 'The specified TaskId is invalid.', - ], - [ - 'errorCode' => 'MissingParameter.ObjectType', - 'errorMessage' => 'The ObjectType parameter is required if DomainName or ObjectType is specified.', - ], - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'DomainNameOverLimit', - 'errorMessage' => 'A maximum of 500 domains are supported for each request.', - ], - [ - 'errorCode' => 'InvalidTime', - 'errorMessage' => 'The query time cannot exceed the last 3 days.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], - [ - 'errorCode' => 'InvalidObjectType.ValueNotSupported', - 'errorMessage' => 'The specified ObjectType is not supported.', - ], - [ - 'errorCode' => 'InvalidStatus.ValueNotSupported', - 'errorMessage' => 'The specified Status is not supported.', - ], - ], - 429 => [ - [ - 'errorCode' => 'TooManyRequests', - 'errorMessage' => 'The server is busy. Please try again later.', - ], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'You must specify ArgValue.', 'description' => '缺少参数。'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"174F6032-AA26-470D-B90E-36F0EB205BEE\\",\\n \\"PageNumber\\": 2,\\n \\"PageSize\\": 2,\\n \\"TotalCount\\": 20,\\n \\"Tasks\\": {\\n \\"Task\\": [\\n {\\n \\"Status\\": \\"Complete\\",\\n \\"CreationTime\\": \\"2014-11-27T08:23:22Z\\",\\n \\"ObjectType\\": \\"file\\",\\n \\"Process\\": \\"10\\",\\n \\"Description\\": \\"InternalError\\",\\n \\"ObjectPath\\": \\"http://example.com/examplefile.txt\\",\\n \\"TaskId\\": \\"123\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnRefreshTasksResponse>\\n<Tasks>\\n <Task>\\n <CreationTime>2014-11-27T08:23:22Z</CreationTime>\\n <ObjectPath>http://example.com/examplefile.txt</ObjectPath>\\n <Status>Complete</Status>\\n <TaskId>704225667</TaskId>\\n <ObjectType>file</ObjectType>\\n <Process>100%</Process>\\n </Task>\\n <Task>\\n <CreationTime>2014-11-27T08:18:38Z</CreationTime>\\n <ObjectPath>http://example.edu/examplefile.txt</ObjectPath>\\n <Status>Complete</Status>\\n <TaskId>704222904</TaskId>\\n <ObjectType>file</ObjectType>\\n <Process>100%</Process>\\n </Task>\\n</Tasks>\\n<PageNumber>1</PageNumber>\\n<PageSize>10</PageSize>\\n<TotalCount>2</TotalCount>\\n<RequestId>174F6032-AA26-470D-B90E-36F0EB205BEE</RequestId>\\n</DescribeDcdnRefreshTasksResponse>","errorExample":""}]', - 'title' => '查询刷新预热任务', - 'description' => '- 您可以根据任务ID或URL进行查询。'."\n" - .'- 支持同时指定**TaskId**与**ObjectPath**,如果**TaskId**与**ObjectPath**都不指定,默认查询3天内第一页的数据(20条)。'."\n" - .'- 只可查询最近3天内的数据。'."\n" - .' - 当您指定**DomainName**或**Status**时,必须填写**ObjectType**。'."\n" - .'- 单用户调用频率:5次/秒。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BFFCDFAD-DACC-484E-9BE6-0AF3B3A0DD23\\",\\n \\"InfoList\\": {\\n \\"InfoItem\\": [\\n {\\n \\"CountriesAndRegions\\": \\"AE\\",\\n \\"Continent\\": \\"Middle East\\",\\n \\"CountriesAndRegionsName\\": \\"United Arab Emirates\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<RequestId>BFFCDFAD-DACC-484E-9BE6-0AF3B3A0DD23</RequestId>\\n<InfoList>\\n <InfoItem>\\n <Continent>中东</Continent>\\n <CountriesAndRegionsName>阿拉伯联合酋长国</CountriesAndRegionsName>\\n <CountriesAndRegions>AE</CountriesAndRegions>\\n </InfoItem>\\n</InfoList>","errorExample":""}]', + 'title' => '查询区域封禁支持的国家和地区', + 'description' => '> 单用户调用频率:50次/秒。 ', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnUserQuota' => [ - 'summary' => '调用DescribeDcdnUserQuota查询用户资源上限及已使用情况。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnBlockedRegions'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnBlockedRegions', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeDcdnCertificateDetail' => [ + 'summary' => '调用DescribeDcdnCertificateDetail查询DCDN证书详细信息。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4998,141 +5805,79 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111560', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZA9EPX', + 'abilityTreeNodes' => ['FEATUREdcdnX7NWEB'], + ], + 'parameters' => [ + [ + 'name' => 'CertName', + 'in' => 'query', + 'schema' => ['description' => '证书名称。', 'type' => 'string', 'required' => true, 'example' => '123'], ], - 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'BlockQuota' => [ - 'description' => '封禁上限,单位:个。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'RefreshUrlRemain' => [ - 'description' => '刷新URL余量,单位:个。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'DomainQuota' => [ - 'description' => '加速域名数上限,单位:个。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'BlockRemain' => [ - 'description' => '封禁余量,单位:个。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '500', - ], - 'PreloadRemain' => [ - 'description' => '预热余量,单位:个。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '300', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BFFCDFAD-DACC-484E-9BE6-0AF3B3A0DD23', - ], - 'RefreshUrlQuota' => [ - 'description' => '刷新URL上限,单位:个。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'PreloadQuota' => [ - 'description' => '预热上限,单位:个。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '500', - ], - 'RefreshDirQuota' => [ - 'description' => '刷新目录上限,单位:个。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'RefreshDirRemain' => [ - 'description' => '刷新目录余量,单位:个。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'IgnoreParamsQuota' => [ - 'description' => '忽略参数刷新上限,单位:个。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'IgnoreParamsRemain' => [ - 'description' => '忽略参数刷新余量,单位:个。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], + 'CertName' => ['description' => '证书名称。', 'type' => 'string', 'example' => '123'], + 'Key' => ['description' => '证书key。', 'type' => 'string', 'example' => 'ak1htyxxxx'], + 'Cert' => ['description' => '证书内容。', 'type' => 'string', 'example' => '-----BEGIN CERTIFICATE-----xxx-----END CERTIFICATE-----'], + 'CertId' => ['description' => '证书ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '123'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'C7C69682-7F88-40DD-A198-10D0309E439B'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"BlockQuota\\": 20,\\n \\"RefreshUrlRemain\\": 100,\\n \\"DomainQuota\\": 50,\\n \\"BlockRemain\\": 500,\\n \\"PreloadRemain\\": 300,\\n \\"RequestId\\": \\"BFFCDFAD-DACC-484E-9BE6-0AF3B3A0DD23\\",\\n \\"RefreshUrlQuota\\": 100,\\n \\"PreloadQuota\\": 500,\\n \\"RefreshDirQuota\\": 100,\\n \\"RefreshDirRemain\\": 100,\\n \\"IgnoreParamsQuota\\": 100,\\n \\"IgnoreParamsRemain\\": 10\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnUserQuotaResponse>\\r\\n\\t<DomainQuota>20</DomainQuota>\\r\\n\\t<RefreshUrlQuota>1000</RefreshUrlQuota>\\r\\n\\t<RefreshDirQuota>500</RefreshDirQuota>\\r\\n\\t<RefreshUrlRemain>500</RefreshUrlRemain>\\r\\n\\t<RefreshDirRemain>300</RefreshDirRemain>\\r\\n\\t<PreloadQuota>300</PreloadQuota>\\r\\n\\t<PreloadRemain>100</PreloadRemain>\\r\\n\\t<BlockQuota>100</BlockQuota>\\r\\n\\t<BlockRemain>100</BlockRemain>\\r\\n\\t<RequestId>BFFCDFAD-DACC-484E-9BE6-0AF3B3A0DD23</RequestId>\\r\\n</DescribeDcdnUserQuotaResponse>\\r\\n\\t\\r\\n","errorExample":""}]', - 'title' => '查询用户资源使用信息', + 'title' => '查询证书详情', 'description' => '> 单用户调用频率:30次/秒。 ', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnRefreshTaskById' => [ - 'summary' => '调用DescribeDcdnRefreshTaskById通过任务编号查询刷新或预热是否在全网生效。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2022-10-27T02:44:05.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnCertificateDetail'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnCertificateDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CertName\\": \\"123\\",\\n \\"Key\\": \\"ak1htyxxxx\\",\\n \\"Cert\\": \\"-----BEGIN CERTIFICATE-----xxx-----END CERTIFICATE-----\\",\\n \\"CertId\\": 123,\\n \\"RequestId\\": \\"C7C69682-7F88-40DD-A198-10D0309E439B\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnCertificateDetailResponse>\\n<CertId>123</CertId>\\n<RequestId>C7C69682-7F88-40DD-A198-10D0309E439B</RequestId>\\n<CertName>证书名称</CertName>\\n<Cert>-----BEGIN CERTIFICATE-----xxx-----END CERTIFICATE-----</Cert>\\n<key>ak1htyxxxx</key>\\n</DescribeDcdnCertificateDetailResponse>\\n","errorExample":""}]', + ], + 'DescribeDcdnCertificateList' => [ + 'summary' => '调用DescribeDcdnCertificateList按照域名查询证书列表信息。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => true, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111538', - 'abilityTreeNodes' => [ - 'FEATUREdcdnBCJPGN', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeNodes' => ['FEATUREdcdnX7NWEB'], ], 'parameters' => [ [ - 'name' => 'TaskId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '待查询的任务ID。具体如下:'."\n" - ."\n" - .'- 调用[RefreshDcdnObjectCaches](~~RefreshDcdnObjectCaches~~)接口,获取刷新任务ID。'."\n" - .'- 调用[PreloadDcdnObjectCaches](~~PreloadDcdnObjectCaches~~)接口,获取预热任务ID。'."\n" - ."\n" - .'> 每次调用最多可以传入10个任务ID,多个任务ID用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => '113681**', - ], + 'schema' => ['description' => '加速域名名称。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], ], 'responses' => [ @@ -5140,74 +5885,32 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'TotalCount' => [ - 'description' => '任务总个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'E0C2EF95-B1EC-4C93-855E-2059A7DA2B7B', - ], - 'Tasks' => [ - 'description' => '刷新或预热任务列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '任务状态。取值:'."\n" - ."\n" - .'- **Complete**:完成。'."\n" - .'- **Pending**:等待。'."\n" - .'- **Refreshing**:处理中。'."\n" - .'- **Timeout**:超时未执行。'."\n" - .'- **Canceled**:取消。'."\n" - .'- **Failed**:失败。', - 'type' => 'string', - 'example' => 'Complete', - ], - 'CreationTime' => [ - 'description' => '任务创建时间。使用UTC时间表示,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'example' => '2021-05-10T08:54:23Z', - ], - 'ObjectType' => [ - 'description' => '刷新或预热任务类型。取值:'."\n" - ."\n" - .'- **file**:单文件刷新。'."\n" - ."\n" - .'- **directory**:目录刷新。'."\n" - ."\n" - .'- **preload**:单文件预热。', - 'type' => 'string', - 'example' => 'file', - ], - 'Process' => [ - 'description' => '任务完成进度百分比。', - 'type' => 'string', - 'example' => '100%', - ], - 'Description' => [ - 'description' => '刷新或预热失败后返回的错误描述。取值:'."\n" - ."\n" - .'- **Internal Error**:内部错误。'."\n" - .'- **Origin Timeout**:源站响应超时。'."\n" - .'- **Origin Return StatusCode 5XX**:源站响应5xx错误码。', - 'type' => 'string', - 'example' => 'Internal Error', - ], - 'ObjectPath' => [ - 'description' => '刷新或预热对象的路径。', - 'type' => 'string', - 'example' => 'http://example.com/image_01.png', - ], - 'TaskId' => [ - 'description' => '查询到的任务ID。', - 'type' => 'string', - 'example' => '113681**', + 'RequestId' => ['description' => '请求id。', 'type' => 'string', 'example' => 'FC0E34AC-0239-44A7-AB0E-800DE522C8DA'], + 'CertificateListModel' => [ + 'description' => '证书信息类型。', + 'type' => 'object', + 'properties' => [ + 'Count' => ['description' => '证书数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'CertList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Cert' => [ + 'description' => '证书列表信息。', + 'type' => 'array', + 'items' => [ + 'description' => '证书列表信息。', + 'type' => 'object', + 'properties' => [ + 'Fingerprint' => ['description' => '证书指纹。', 'type' => 'string', 'example' => '0151xxxx'], + 'Issuer' => ['description' => '证书发行商。', 'type' => 'string', 'example' => 'DigiCert'], + 'CertId' => ['description' => '证书ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '7428244'], + 'CertName' => ['description' => '证书名称。', 'type' => 'string', 'example' => 'yourCertName'], + 'LastTime' => ['description' => '证书最后修改时间,单位:毫秒', 'type' => 'integer', 'format' => 'int64', 'example' => '1548065550'], + 'Common' => ['description' => '证书公用名。', 'type' => 'string', 'example' => 'example.com'], + ], + ], + ], ], ], ], @@ -5216,339 +5919,411 @@ ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => 'The specified parameters are invalid.', - ], - [ - 'errorCode' => 'InvalidTaskId.Malformed', - 'errorMessage' => 'The specified TaskId is invalid.', - ], - [ - 'errorCode' => 'InvalidTaskId', - 'errorMessage' => 'The maximum number of taskIds is 10.', - ], - [ - 'errorCode' => 'InvalidTime', - 'errorMessage' => 'The query time cannot exceed the last 3 days.', - ], + 'staticInfo' => [ + 'substitutions' => ['dcdn::2018-01-15::DescribeDcdnSSLCertificateList'], + ], + 'title' => '查询证书列表-按域名', + 'changeSet' => [ + ['createdAt' => '2022-10-27T03:10:38.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnCertificateList'], ], - 429 => [ - [ - 'errorCode' => 'TooManyRequests', - 'errorMessage' => 'The server is busy. Please try again later.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnCertificateList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 2,\\n \\"RequestId\\": \\"E0C2EF95-B1EC-4C93-855E-2059A7DA2B7B\\",\\n \\"Tasks\\": [\\n {\\n \\"Status\\": \\"Complete\\",\\n \\"CreationTime\\": \\"2021-05-10T08:54:23Z\\",\\n \\"ObjectType\\": \\"file\\",\\n \\"Process\\": \\"100%\\",\\n \\"Description\\": \\"Internal Error\\",\\n \\"ObjectPath\\": \\"http://example.com/image_01.png\\",\\n \\"TaskId\\": \\"113681**\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnRefreshTaskByIdResponse>\\n<RequestId>E0C2EF95-B1EC-4C93-855E-2059A7DA2B7B</RequestId>\\n<Tasks>\\n <CreationTime>2021-05-10T08:54:23Z</CreationTime>\\n <Description/>\\n <ObjectPath>http://example.com/image_01.png</ObjectPath>\\n <ObjectType>file</ObjectType>\\n <Process>100%</Process>\\n <Status>Complete</Status>\\n <TaskId>113681**</TaskId>\\n</Tasks>\\n<Tasks>\\n <CreationTime>2021-05-10T09:12:44Z</CreationTime>\\n <Description/>\\n <ObjectPath>http://example.com/image_02.png</ObjectPath>\\n <ObjectType>file</ObjectType>\\n <Process>99.37%</Process>\\n <Status>Refreshing</Status>\\n <TaskId>287367**</TaskId>\\n</Tasks>\\n<TotalCount>2</TotalCount>\\n</DescribeDcdnRefreshTaskByIdResponse>","errorExample":""}]', - 'title' => '查询刷新或预热任务详情', - 'description' => '> - 支持查询3天内(包含3天)的数据。'."\n" - .'> - 单用户调用频率为30次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"FC0E34AC-0239-44A7-AB0E-800DE522C8DA\\",\\n \\"CertificateListModel\\": {\\n \\"Count\\": 2,\\n \\"CertList\\": {\\n \\"Cert\\": [\\n {\\n \\"Fingerprint\\": \\"0151xxxx\\",\\n \\"Issuer\\": \\"DigiCert\\",\\n \\"CertId\\": 7428244,\\n \\"CertName\\": \\"yourCertName\\",\\n \\"LastTime\\": 1548065550,\\n \\"Common\\": \\"example.com\\"\\n }\\n ]\\n }\\n }\\n}","type":"json"}]', ], - 'RefreshDcdnObjectCacheByCacheTag' => [ - 'summary' => '当用户设置了缓存标签功能后,通过调用RefreshObjectCacheByCacheTag指定缓存标签对缓存进行刷新。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], + 'DescribeDcdnDdosService' => [ + 'summary' => '调用DescribeDcdnDdosService查询DCDN DDoS服务状态。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, + 'operationType' => 'read', 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '216660', - 'abilityTreeNodes' => [ - 'FEATUREdcdn4QVGXU', - ], + 'abilityTreeCode' => '143162', + 'abilityTreeNodes' => ['FEATUREdcdnZA9EPX'], + 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [ - [ - 'name' => 'DomainName', - 'in' => 'query', + 'parameters' => [], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '加速域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com ', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '业务状态,取值:'."\n" + ."\n" + .'- **Normal**:正常'."\n" + ."\n" + .'- **WaitForExpire**:等待停机'."\n" + ."\n" + .'- **Expired**:已过期'."\n" + ."\n" + .'- **Released**:释放', 'type' => 'string', 'example' => 'Normal'], + 'ChangingAffectTime' => ['description' => '下次生效时间,GMT时间。'."\n", 'type' => 'string', 'example' => '2018-03-31T16:00:00Z'], + 'OpeningTime' => ['description' => '服务开通时间。', 'type' => 'string', 'example' => '2021-09-26T16:00:00Z'], + 'ChangingEdition' => ['description' => '将变配生效的防护版本。取值范围:'."\n" + .'- **poc**:POC版。'."\n" + .'- **basic**:基础版。'."\n" + .'- **insurance**:保险版。'."\n" + .'- **unlimited**:无忧版。', 'type' => 'string', 'example' => 'basic'], + 'ChargeType' => ['description' => '付费方式。取值范围:'."\n" + .'- **PayByBandwidth**:按日峰值带宽计费。'."\n" + .'- **PayByTraffic**:按使用流量计费。'."\n" + .'- **PayByBandwidth95**:按95带宽计费。', 'type' => 'string', 'example' => 'PayByTraffic'], + 'DomianNum' => ['description' => '防护域名数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'ChangingProtectNum' => ['description' => '变配防护次数。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'ChangingDomianNum' => ['description' => '变配防护域名数。', 'type' => 'integer', 'format' => 'int32', 'example' => '30'], + 'InstanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'xxx-12345'], + 'Edition' => ['description' => '防护版本。取值范围:'."\n" + .'- **poc**:POC版。'."\n" + .'- **basic**:基础版。'."\n" + .'- **insurance**:保险版。'."\n" + .'- **unlimited**:无忧版。', 'type' => 'string', 'example' => 'poc'], + 'ChangingChargeType' => ['description' => '变配后付费方式。取值范围:'."\n" + .'- **PayByBandwidth**:按日峰值带宽计费。'."\n" + .'- **PayByTraffic**:按使用流量计费。'."\n" + .'- **PayByBandwidth95**:按95带宽计费。', 'type' => 'string', 'example' => 'PayByBandwidth'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'C370DAF1-C838-4288-A1A0-9A87633D248E'], + 'ProtectNum' => ['description' => '防护次数。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'Enabled' => ['description' => '服务开通状态。取值范围:'."\n" + .'- **on**:开通'."\n" + .'- **off**:未开通', 'type' => 'string', 'example' => 'on'], + 'EndingTime' => ['description' => '服务到期时间。', 'type' => 'string', 'example' => '2023-09-26T16:00:00Z'], + ], ], ], + ], + 'title' => '查询DDoS服务状态', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDdosService'], + ], + ], + 'ramActions' => [ [ - 'name' => 'CacheTag', - 'in' => 'query', - 'schema' => [ - 'description' => '缓存标签。多个用逗号隔开。', - 'type' => 'string', - 'required' => true, - 'example' => 'tag1,tag2', - 'maxLength' => 16384, + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDdosService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Status\\": \\"Normal\\",\\n \\"ChangingAffectTime\\": \\"2018-03-31T16:00:00Z\\",\\n \\"OpeningTime\\": \\"2021-09-26T16:00:00Z\\",\\n \\"ChangingEdition\\": \\"basic\\",\\n \\"ChargeType\\": \\"PayByTraffic\\",\\n \\"DomianNum\\": 20,\\n \\"ChangingProtectNum\\": 100,\\n \\"ChangingDomianNum\\": 30,\\n \\"InstanceId\\": \\"xxx-12345\\",\\n \\"Edition\\": \\"poc\\",\\n \\"ChangingChargeType\\": \\"PayByBandwidth\\",\\n \\"RequestId\\": \\"C370DAF1-C838-4288-A1A0-9A87633D248E\\",\\n \\"ProtectNum\\": 100,\\n \\"Enabled\\": \\"on\\",\\n \\"EndingTime\\": \\"2023-09-26T16:00:00Z\\"\\n}","type":"json"}]', + ], + 'DescribeDcdnDdosSpecInfo' => [ + 'summary' => '调用DescribeDcdnDdosSpecInfo查询DCDN DDoS用户版本规格。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Force', - 'in' => 'query', - 'schema' => [ - 'description' => '当回源内容和源站资源对比后不一致时,是否刷新对应目录下的资源。默认为false。'."\n" - .'- **true**:刷新对应目录下的全部资源。'."\n" - .'- **false**:刷新对应目录下发生变更的资源。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'AK' => [], ], ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREdcdnO1ZP9O'], + ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', - ], - 'RefreshTaskId' => [ - 'description' => '刷新返回的任务ID。', - 'type' => 'string', - 'example' => '17410889914', + 'Edition' => ['description' => '版本。取值范围:'."\n" + .'- **poc**:poc版'."\n" + .'- **basic**:基础版。'."\n" + .'- **insurance**:保险版。'."\n" + .'- **unlimited** :无忧版。'."\n" + .'- **port_enhancement**:特殊端口增强版。', 'type' => 'string', 'example' => 'insurance'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'DEA8E7BE-33C6-56F5-AC56-74D50547CF34'], + 'Enable' => ['description' => '用户是否开启DDoS防护服务 。取值范围:'."\n" + .'- **on**:开启。'."\n" + .'- **off**:关闭。', 'type' => 'string', 'example' => 'on'], + 'ProtectedArea' => ['description' => '防护地区。取值范围:'."\n" + .'- **global**:全球。'."\n" + .'- **chinese_mainland**:中国内地。'."\n" + .'- **global_excluding_the_chinese_mainland**:全球(不包含中国内地)。', 'type' => 'string', 'example' => 'global'], + 'BandwidthLimit' => ['description' => '单实例限制带宽。', 'type' => 'string', 'example' => '40Gbps'], + 'QpsLimit' => ['description' => 'QPS限制。', 'type' => 'string', 'example' => '100'], + 'SpecInfos' => [ + 'description' => '支持的规则代码及规则的配置信息。', + 'type' => 'array', + 'items' => [ + 'description' => '支持的规则代码及规则的配置信息。', + 'type' => 'object', + 'properties' => [ + 'Rule' => ['description' => '版本规则。取值范围:'."\n" + .'- **version_defense_num**:版本防护次数相关规则。'."\n" + .'- **domain_num**:域名数限制相关规则。'."\n" + .'- **defence_package_num**:额外防护次数包相关规则。', 'type' => 'string', 'example' => 'version_defense_num'], + 'Configs' => [ + 'description' => '版本规则对应的配置。', + 'type' => 'array', + 'items' => [ + 'description' => '版本规则对应的配置。', + 'type' => 'object', + 'properties' => [ + 'Value' => ['description' => '版本规则对应的配置表达式值。', 'type' => 'string', 'example' => '1'], + 'Config' => ['description' => '版本规则对应的配置代码。取值范围:'."\n" + .'- **total_defense_num**:版本总防护次数。'."\n" + .'- **consume_defense_num**:已使用的版本防护次数 。'."\n" + .'- **max_domain_num**:接入域名限制数。'."\n" + .'- **emain_domain_num**:已接入域名数 。'."\n" + .'- **defence_package_num**:额外购买的总防护次数。'."\n" + .'- **consume_defence_package_num**:额外购买的已使用的防护次数。', 'type' => 'string', 'example' => 'total_defense_num'], + 'Expr' => ['description' => '版本规则对应的配置表达式。', 'type' => 'string', 'example' => 'equal'], + ], + ], + ], + ], + ], ], + 'IsSpecialPort' => ['description' => '是否支持自定义端口。取值范围:'."\n" + .'- **yes**:支持。'."\n" + .'- **no**:不支持。', 'type' => 'string', 'example' => 'no'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SingleRequest.OverLimit', - 'errorMessage' => 'A maximum of 1000 URLs are supported for each request.', - ], - [ - 'errorCode' => 'InvalidObjectType.Malformed', - 'errorMessage' => 'The specified ObjectType is invalid.', - ], - [ - 'errorCode' => 'InvalidObjectPath.Malformed', - 'errorMessage' => 'The specified ObjectPath is invalid.', - ], - [ - 'errorCode' => 'InvalidObjectPath.Size.Malformed', - 'errorMessage' => 'The size of ObjectPath is bigger than 1000.', - ], - [ - 'errorCode' => 'QuotaExceeded.Refresh', - 'errorMessage' => 'You\'ve exceeded the prescribed refresh limits.', - ], - [ - 'errorCode' => 'InvalidExtensiveDomain.ValueNotSupported', - 'errorMessage' => 'The specified ExtensiveDomain is not supported.', - ], - [ - 'errorCode' => 'QuotaPerMinuteExceeded.Refresh', - 'errorMessage' => 'You tried to refresh too frequently; please try again later.', - ], - [ - 'errorCode' => 'TooMany.Refresh', - 'errorMessage' => 'The refresh queue is full; please try again later.', - ], - [ - 'errorCode' => 'PreloadQueueFull', - 'errorMessage' => 'Preload queue is full, please try again later!', - ], - [ - 'errorCode' => 'InvalidStations.Malformed', - 'errorMessage' => 'The specified Stations is invalid.', - ], - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => 'The parameters you provided are invalid.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], ], - 429 => [ - [ - 'errorCode' => 'TooManyRequests', - 'errorMessage' => 'Too many requests, please try again later', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => '内部错误,请重试,如果多次重试报错请提交工单。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => '查询DDoS用户版本规格', + 'changeSet' => [ + ['createdAt' => '2023-09-14T01:39:06.000Z', 'description' => '响应参数发生变更'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\",\\n \\"RefreshTaskId\\": \\"17410889914\\"\\n}","type":"json"}]', - 'title' => '根据缓存标签刷新缓存', - ], - 'RefreshErObjectCachesByCacheTag' => [ - 'summary' => 'ER场景下的cache tag粒度的刷新接口', - 'methods' => [ - 'post', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDdosSpecInfo'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDdosSpecInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Edition\\": \\"insurance\\",\\n \\"RequestId\\": \\"DEA8E7BE-33C6-56F5-AC56-74D50547CF34\\",\\n \\"Enable\\": \\"on\\",\\n \\"ProtectedArea\\": \\"global\\",\\n \\"BandwidthLimit\\": \\"40Gbps\\",\\n \\"QpsLimit\\": \\"100\\",\\n \\"SpecInfos\\": [\\n {\\n \\"Rule\\": \\"version_defense_num\\",\\n \\"Configs\\": [\\n {\\n \\"Value\\": \\"1\\",\\n \\"Config\\": \\"total_defense_num\\",\\n \\"Expr\\": \\"equal\\"\\n }\\n ]\\n }\\n ],\\n \\"IsSpecialPort\\": \\"no\\"\\n}","type":"json"}]', + ], + 'DescribeDcdnDeletedDomains' => [ + 'summary' => '调用DescribeDcdnDeletedDomains查询您名下已删除的域名。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '193439', - 'abilityTreeNodes' => [ - 'FEATUREdcdn75UYDO', - ], - 'tenantRelevance' => 'tenant', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ - 'name' => 'Domain', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => '客户端请求打到ER组件,ER组件发起Fetch请求时使用的Fetch域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '当前页码,默认值**1**,取值范围:**1**~**100000**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100000', 'minimum' => '1', 'example' => '1', 'default' => '1'], ], [ - 'name' => 'CacheTag', + 'name' => 'PageSize', 'in' => 'query', + 'schema' => ['description' => '每页显示的域名个数,默认值**20**,取值范围:**1**~**500**之前的任意整数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'minimum' => '1', 'example' => '5', 'default' => '20'], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], 'schema' => [ - 'description' => '缓存标签。多个用逗号隔开。', - 'type' => 'string', - 'required' => true, - 'example' => 'tag1,tag2', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'AA75AADB-5E25-4970-B480-EAA1F5658483'], + 'PageNumber' => ['description' => '当前页码,同请求参数的**PageNumber**。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'PageSize' => ['description' => '每页显示的域名个数,同请求参数的**PageSize**。', 'type' => 'integer', 'format' => 'int64', 'example' => '5'], + 'TotalCount' => ['description' => '查询到的域名总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '16'], + 'Domains' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'PageData' => [ + 'description' => '加速域名的状态信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'GmtModified' => ['description' => '加速域名修改时间。日期格式按照ISO 8601表示法,并使用UTC+0时间,格式为yyyy-MM-DDThh:mm:ssZ。', 'type' => 'string', 'example' => '2015-10-28T11:05:52Z'], + 'DomainName' => ['description' => '加速域名名称。', 'type' => 'string', 'example' => 'example.com'], + ], + ], + ], + ], + ], + ], ], ], + ], + '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' => 'PageSize参数错误,请重新填写。'], + ], + ], + 'title' => '查询已删除域名', + 'description' => '> 单用户调用频率:10次/秒。 ', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDeletedDomains'], + ], + ], + 'ramActions' => [ [ - 'name' => 'MergeDomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '合并刷新域名,刷新的时候会合并域名的调度域节点进行刷新。'."\n" - .'>多个域名之间用英文逗号(,)隔开。', - 'type' => 'string', - 'required' => false, - 'example' => 'a.test.com,b.test.com', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDeletedDomains', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"AA75AADB-5E25-4970-B480-EAA1F5658483\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 5,\\n \\"TotalCount\\": 16,\\n \\"Domains\\": {\\n \\"PageData\\": [\\n {\\n \\"GmtModified\\": \\"2015-10-28T11:05:52Z\\",\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDeletedDomainsResponse>\\n<PageNumber>1</PageNumber>\\n<TotalCount>16</TotalCount>\\n<PageSize>5</PageSize>\\n<RequestId>AA75AADB-5E25-4970-B480-EAA1F5658483</RequestId>\\n<Domains>\\n <PageData>\\n <DomainName>example.com</DomainName>\\n <GmtModified>2015-10-28T11:05:52Z</GmtModified>\\n </PageData>\\n <PageData>\\n <DomainName>example.org</DomainName>\\n <GmtModified>2015-10-28T11:05:50Z</GmtModified>\\n </PageData>\\n <PageData>\\n <DomainName>example.net</DomainName>\\n <GmtModified>2015-10-27T06:26:34Z</GmtModified>\\n </PageData>\\n <PageData>\\n <DomainName>example.edu</DomainName>\\n <GmtModified>2015-10-23T09:23:29Z</GmtModified>\\n </PageData>\\n <PageData>\\n <DomainName>aliyundoc.com</DomainName>\\n <GmtModified>2015-10-23T09:02:11Z</GmtModified>\\n </PageData>\\n</Domains>\\n</DescribeDcdnDeletedDomainsResponse>","errorExample":""}]', + ], + 'DescribeDcdnDeliverList' => [ + 'summary' => '调用DescribeDcdnDeliverList查询报表订阅任务列表,系统将返回所有的订阅任务列表。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Force', + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '111485', + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM', 'FEATUREdcdn2Z4HOI'], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'DeliverId', 'in' => 'query', - 'schema' => [ - 'description' => '当回源内容和源站资源对比一致时,是否刷新对应范围内的资源。默认为false。'."\n" - .'- **true**:刷新对应范围内的全部资源。选择 “刷新全部资源” 时,如果用户请求的内容匹配到了对应范围内的资源,DCDN节点将会直接回源拉取新资源返回给用户,并重新缓存该资源。'."\n" - .'- **false**:刷新对应范围内发生变更的资源。选择 “刷新变更资源” 时,如果用户请求的内容匹配到了对应范围内的资源,DCDN节点将会回源获取资源的 Last-Modified 信息,若与当前缓存资源一致,则直接返回已缓存资源,若不一致,则回源拉取新资源返回给用户,并重新缓存该资源。'."\n" - .'> 此参数生效范围:除文件刷新外的刷新类型', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '待查询的订阅任务ID。如果不传该参数,默认返回所有的订阅任务。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '92'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'EEEBE525-F576-1196-8DAF-2D70CA3F4D2F'."\n", - ], - 'RefreshTaskId' => [ - 'description' => '刷新返回的任务ID。', - 'type' => 'string', - 'example' => '17410889914', - ], + 'Content' => ['description' => '订阅任务列表数据。', 'type' => 'string', 'example' => '"data": [{"deliverId": 1,"status": "enable","createTime": "2021-06-14T11:19:26Z","crontab": "0 0 0 * * ?","frequency": "d","name": " domain name subscription","dmList": ["www.example.com"],"reports": [{"reportId": 1,"conditions": [{"op": "in","field": "prov","value": [" Heilongjiang"," Beijing"]}]},{"reportId": 2}],"deliver": {"email": {"subject": " topic","to": ["username@example.com","username@example.org"],"copy":["username@example.com","username@example.org"]}}}]}'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'SingleRequest.OverLimit', - 'errorMessage' => 'A maximum of 1000 URLs are supported for each request.', - ], - [ - 'errorCode' => 'InvalidObjectType.Malformed', - 'errorMessage' => 'The specified ObjectType is invalid.', - ], - [ - 'errorCode' => 'InvalidObjectPath.Malformed', - 'errorMessage' => 'The specified ObjectPath is invalid.', - ], - [ - 'errorCode' => 'InvalidObjectPath.Size.Malformed', - 'errorMessage' => 'The size of ObjectPath is bigger than 1000.', - ], - [ - 'errorCode' => 'QuotaExceeded.Refresh', - 'errorMessage' => 'You\'ve exceeded the prescribed refresh limits.', - ], - [ - 'errorCode' => 'InvalidExtensiveDomain.ValueNotSupported', - 'errorMessage' => 'The specified ExtensiveDomain is not supported.', - ], - [ - 'errorCode' => 'QuotaPerMinuteExceeded.Refresh', - 'errorMessage' => 'You tried to refresh too frequently; please try again later.', - ], - [ - 'errorCode' => 'TooMany.Refresh', - 'errorMessage' => 'The refresh queue is full; please try again later.', - ], - [ - 'errorCode' => 'PreloadQueueFull', - 'errorMessage' => 'Preload queue is full, please try again later!', - ], - [ - 'errorCode' => 'InvalidStations.Malformed', - 'errorMessage' => 'The specified Stations is invalid.', - ], - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => 'The parameters you provided are invalid.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ['errorCode' => 'TimeParseFailed', 'errorMessage' => 'Failed to parse the time parameter.', 'description' => '解析时间参数失败'], + ['errorCode' => 'SubscriptionAlreadyExists', 'errorMessage' => 'The subscription already exists.', 'description' => '定制服务已开通'], + ['errorCode' => 'SubscriptionNotFound', 'errorMessage' => 'The subscription is not found.', 'description' => '未开通定制服务'], + ['errorCode' => 'NameAlreadyExists', 'errorMessage' => 'The name already exists.', 'description' => '名称已存在'], + ['errorCode' => 'DeliverExceedLimit', 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', 'description' => '订阅任务个数已达上限'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EEEBE525-F576-1196-8DAF-2D70CA3F4D2F\\\\n\\",\\n \\"RefreshTaskId\\": \\"17410889914\\"\\n}","type":"json"}]', - 'title' => '根据缓存标签刷新缓存', - ], - 'DescribeDcdnDomainHttpCodeData' => [ - 'summary' => '调用DescribeDcdnDomainHttpCodeData获取加速域名的HTTP返回码总数和占比数据。', - 'methods' => [ - 'get', - 'post', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": \\"\\\\\\"data\\\\\\": [{\\\\\\"deliverId\\\\\\": 1,\\\\\\"status\\\\\\": \\\\\\"enable\\\\\\",\\\\\\"createTime\\\\\\": \\\\\\"2021-06-14T11:19:26Z\\\\\\",\\\\\\"crontab\\\\\\": \\\\\\"0 0 0 * * ?\\\\\\",\\\\\\"frequency\\\\\\": \\\\\\"d\\\\\\",\\\\\\"name\\\\\\": \\\\\\" domain name subscription\\\\\\",\\\\\\"dmList\\\\\\": [\\\\\\"www.example.com\\\\\\"],\\\\\\"reports\\\\\\": [{\\\\\\"reportId\\\\\\": 1,\\\\\\"conditions\\\\\\": [{\\\\\\"op\\\\\\": \\\\\\"in\\\\\\",\\\\\\"field\\\\\\": \\\\\\"prov\\\\\\",\\\\\\"value\\\\\\": [\\\\\\" Heilongjiang\\\\\\",\\\\\\" Beijing\\\\\\"]}]},{\\\\\\"reportId\\\\\\": 2}],\\\\\\"deliver\\\\\\": {\\\\\\"email\\\\\\": {\\\\\\"subject\\\\\\": \\\\\\" topic\\\\\\",\\\\\\"to\\\\\\": [\\\\\\"username@example.com\\\\\\",\\\\\\"username@example.org\\\\\\"],\\\\\\"copy\\\\\\":[\\\\\\"username@example.com\\\\\\",\\\\\\"username@example.org\\\\\\"]}}}]}\\",\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDeliverListResponse>\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\n<Content>\\n <data>\\n <deliverId>1</deliverId>\\n <status>enable</status>\\n <createTime>2021-06-14T11:19:26Z</createTime>\\n <crontab>0 0 0 * * ?</crontab>\\n <frequency>d</frequency>\\n <name>域名订阅</name>\\n <dmList>www.example.com</dmList>\\n <reports>\\n <reportId>1</reportId>\\n <conditions>\\n <op>in</op>\\n <field>prov</field>\\n <value>黑龙江</value>\\n <value>北京</value>\\n </conditions>\\n </reports>\\n <reports>\\n <reportId>2</reportId>\\n </reports>\\n <deliver>\\n <email>\\n <subject>主题</subject>\\n <to>username@example.com</to>\\n <to>username@example.org</to>\\n <copy>username@example.com</copy>\\n <copy>username@example.org</copy>\\n </email>\\n </deliver>\\n </data>\\n</Content>\\n</DescribeDcdnDeliverListResponse>","errorExample":""}]', + 'title' => '查询报表订阅任务列表', + 'description' => '> 单用户调用频率:3次/秒。 ', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => '**Content数据说明**'."\n" + ."\n" + .'|参数|类型|描述'."\n" + .'|--------|--------|----------|'."\n" + .'|deliverId|Long|订阅任务ID。|'."\n" + .'|status|String|订阅任务状态。取值:<br>enable:启用。<br>disable:关闭。|'."\n" + .'|createTime|String|订阅任务创建时间。|'."\n" + .'|crontab|String|订阅任务执行周期。|'."\n" + .'|frequency|String|执行频率。取值:<br>h:小时<br>d:天<br>M:月|'."\n" + .'|name|String|订阅任务名称。|'."\n" + .'|dmList|String[]|订阅任务的域名过滤列表。|'."\n" + .'|reports|String[]|订阅报表列表。包含以下参数:<br>reportId:报表ID。<br>conditions:报表过滤条件(包含过滤操作、过滤字段和过滤值),没有则为空。op:过滤操作,目前只支持**in**;field:过滤字段;value:过滤值。|'."\n" + .'|deliver|String|交付模块,包含邮件主题、收件人等信息。<br>email:邮件交付。<br>subject:邮件主题。<br>to:发送邮件列表。<br>copy:抄送邮件列表。|', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDeliverList'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDeliverList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeDcdnDomainBpsData' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -5559,82 +6334,54 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdn6V3WP1'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,多个域名用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '加速域名。'."\n" + ."\n" + .'多个域名用半角逗号(,)分隔,不传该参数默认查询所有加速域名。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的起始时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2019-03-01T00:00:00Z', - ], + 'schema' => ['description' => '获取数据的起始时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的结束时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2019-03-02T00:00:00Z', - ], + 'schema' => ['description' => '获取数据的结束时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需大于起始时间。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z'], ], [ 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度,单位为秒。'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。', - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => '查询数据的时间粒度,单位为秒。'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。'."\n", 'type' => 'string', 'required' => false, 'example' => '300'], ], [ 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名。'."\n" - ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获取,默认查询所有运营商。', - 'type' => 'string', - 'required' => false, - 'example' => 'unicom', - ], + 'schema' => ['description' => '运营商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有运营商。', 'type' => 'string', 'required' => false, 'example' => 'beijing'], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '地域商英文名。'."\n" - ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获取,默认查询所有地域。', - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => '地域英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有地域。', 'type' => 'string', 'required' => false, 'example' => 'unicom'], ], ], 'responses' => [ @@ -5642,140 +6389,88 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2018-03-01T13:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2019-03-01T00:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '91FC2D9D-B042-4634-8A5C-7B8E7482C22D', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,以秒为单位。', - 'type' => 'string', - 'example' => '300', - ], - 'DataPerInterval' => [ + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2017-12-10T10:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '数据的时间粒度。', 'type' => 'string', 'example' => '300'], + 'BpsDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => '每个时间间隔的HTTP返回码占比数据。', + 'description' => '每个时间间隔的网络带宽数据。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2019-03-01T13:00:00Z', - ], - 'HttpCodeDataPerInterval' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'HttpCodeDataModule' => [ - 'description' => '各返回码占比使用数据列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => 'HTTP返回码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '404', - ], - 'Proportion' => [ - 'description' => '占比使用数据。', - 'type' => 'number', - 'format' => 'float', - 'example' => '33.333333', - ], - 'Count' => [ - 'description' => '总数。', - 'type' => 'number', - 'format' => 'float', - 'example' => '1', - ], - ], - ], - ], - ], - ], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z'], + 'StaticHttpsBps' => ['description' => '静态https bps数据值,单位:bit/s。', 'type' => 'number', 'format' => 'float', 'example' => '123'], + 'Bps' => ['description' => 'bps数据值,单位:bit/s。', 'type' => 'number', 'format' => 'float', 'example' => '11286'], + 'DynamicHttpsBps' => ['description' => '动态https bps数据值,单位:bit/s。'."\n", 'type' => 'number', 'format' => 'float', 'example' => '12312'], + 'DynamicHttpBps' => ['description' => '动态http bps数据值,单位:bit/s。', 'type' => 'number', 'format' => 'float', 'example' => '11286111'], + 'StaticHttpBps' => ['description' => '静态http bps数据值,单位:bit/s。', 'type' => 'number', 'format' => 'float', 'example' => '123'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2018-03-01T13:00:00Z\\",\\n \\"StartTime\\": \\"2019-03-01T00:00:00Z\\",\\n \\"RequestId\\": \\"91FC2D9D-B042-4634-8A5C-7B8E7482C22D\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"DataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TimeStamp\\": \\"2019-03-01T13:00:00Z\\",\\n \\"HttpCodeDataPerInterval\\": {\\n \\"HttpCodeDataModule\\": [\\n {\\n \\"Code\\": 404,\\n \\"Proportion\\": 33.333333,\\n \\"Count\\": 1\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainHttpCodeDataResponse>\\n<DataInterval>300</DataInterval>\\n<RequestId>273642D8-A11C-420B-8EB5-BD62AE1FC69B</RequestId>\\n<DomainName>example.com</DomainName>\\n<DataPerInterval>\\n <DataModule>\\n <TimeStamp>2019-03-01T13:00:00Z</TimeStamp>\\n <HttpCodeDataPerInterval>\\n <HttpCodeDataModule>\\n <Count>16</Count>\\n <Proportion>100</Proportion>\\n <Code>404</Code>\\n </HttpCodeDataModule>\\n </HttpCodeDataPerInterval>\\n </DataModule>\\n</DataPerInterval>\\n<EndTime>2018-03-01T13:05:00Z</EndTime>\\n<StartTime>2018-03-01T13:00:00Z</StartTime>\\n</DescribeDcdnDomainHttpCodeDataResponse>","errorExample":""}]', - 'title' => '查询HTTP状态码', - 'description' => '- 不指定**StartTime**和**EndTime**,默认返回过去24小时的数据;指定**StartTime**和**EndTime**,该接口返回指定时间段的数据。'."\n" - .'- 单用户调用频率:100次/秒。 '."\n" - ."\n" + 'title' => '查询网络带宽监控数据', + 'summary' => '调用DescribeDcdnDomainBpsData查询加速域名的网络带宽监控数据。', + 'description' => '- 单用户调用频率:100次/秒。'."\n" + .'- 不指定**StartTime**和**EndTime**,默认返回过去24小时的数据;指定**StartTime**和**EndTime**,返回指定起止时间的数据。'."\n" + .' '."\n" .'**支持查询的时间粒度**'."\n" ."\n" .'根据单次查询的最大时间跨度不同,请求参数Interval支持不同的查询数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" - ."\n" - .'|时间粒度 |单次查询的最大时间跨度 |可查询历史数据时间范围|数据延迟|'."\n" - .'|---------------|--------|-----|-------|'."\n" - .'|5分钟|3天|93天|15分钟|'."\n" - .'|1小时|31天|186天|一般延迟3-4小时|'."\n" - .'|1天|366天|366天|一般延迟4小时,不超过24小时|', + .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟 |'."\n" + .'| -------------- | -------------- | ------|-----|'."\n" + .'| 5分钟 | 3天 | 93天 | 15分钟 |'."\n" + .'| 1小时 | 31天 | 186天 | 4小时 |'."\n" + .'| 1天 | 366天 | 366天 | 次日凌晨4点 |', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainHttpCodeDataByLayer' => [ - 'summary' => '调用DescribeDcdnDomainHttpCodeDataByLayer按协议分类获取HTTP状态码数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainBpsData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainBpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T10:00:00Z\\",\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"BpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\",\\n \\"StaticHttpsBps\\": 123,\\n \\"Bps\\": 11286,\\n \\"DynamicHttpsBps\\": 12312,\\n \\"DynamicHttpBps\\": 11286111,\\n \\"StaticHttpBps\\": 123\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainBpsDataResponse>\\r\\n\\t<BpsDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Bps>11288111</Bps>\\r\\n\\t\\t\\t<DynamicHttpBps>11286111</DynamicHttpBps>\\r\\n\\t\\t\\t<DynamicHttpsBps>2000</DynamicHttpsBps>\\r\\n\\t\\t\\t<StaticHttpBps>0</StaticHttpBps>\\r\\n\\t\\t\\t<StaticHttpsBps>0</StaticHttpsBps>\\r\\n\\t\\t</DataModule>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T20:05:00Z</TimeStamp>\\r\\n\\t\\t\\t<Bps>11288111</Bps>\\r\\n\\t\\t\\t<DynamicHttpBps>11286111</DynamicHttpBps>\\r\\n\\t\\t\\t<DynamicHttpsBps>2000</DynamicHttpsBps>\\r\\n\\t\\t\\t<StaticHttpBps>0</StaticHttpBps>\\r\\n\\t\\t\\t<StaticHttpsBps>0</StaticHttpsBps>\\r\\n\\t\\t</DataModule>\\r\\n\\t</BpsDataPerInterval>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>300</DataInterval>\\r\\n\\t<RequestId>3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F</RequestId>\\r\\n\\t<StartTime>2017-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2017-12-10T21:00:00Z</EndTime>\\r\\n</DescribeDcdnDomainBpsDataResponse>\\r\\n\\t\\r\\n","errorExample":""}]', + ], + 'DescribeDcdnDomainBpsDataByLayer' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -5786,88 +6481,52 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的加速域名。支持批量域名查询,多个域名用半角逗号(,)分隔,最多支持500个域名,多个域名会按照聚合结果进行输出。'."\n" - .'若参数为空,默认返回所有加速域名合并后的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '需要查询的加速域名。支持批量域名查询,多个域名用半角逗号(,)分隔,最多支持500个域名,多个域名会按照聚合结果进行输出。'."\n" + .'若参数为空,默认返回所有加速域名合并后的数据。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com '], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'."\n" - .'最小数据粒度为5分钟。'."\n" - .'不写默认读取过去24小时数据。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T20:00:00Z', - ], + 'schema' => ['description' => '获取数据起始时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'."\n" + .'最小数据粒度为5分钟。'."\n" + .'不写默认读取过去24小时数据。', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T20:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据结束时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T21:00:00Z', - ], + 'schema' => ['description' => '获取数据结束时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T21:00:00Z'], ], [ 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => '指定查询数据的时间粒度,单位:秒。'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。', - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => '指定查询数据的时间粒度,单位:秒。'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。', 'type' => 'string', 'required' => false, 'example' => '300'], ], [ 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名,通过[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获得,不传值代表所有运营商。', - 'type' => 'string', - 'required' => false, - 'example' => 'telecom', - ], + 'schema' => ['description' => '运营商英文名,通过[DescribeDcdnRegionAndIsp](~~207199~~)接口获得,不传值代表所有运营商。', 'type' => 'string', 'required' => false, 'example' => 'telecom'], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '区域英文名,通过[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获得,不传值代表所有区域。', - 'type' => 'string', - 'required' => false, - 'example' => 'hangzhou', - ], + 'schema' => ['description' => '区域英文名,通过[DescribeDcdnRegionAndIsp](~~207199~~)接口获得,不传值代表所有区域。', 'type' => 'string', 'required' => false, 'example' => 'hangzhou'], ], [ 'name' => 'Layer', 'in' => 'query', - 'schema' => [ - 'description' => '查询维度,可选网络层(IPv4、IPv6)或应用层(http、https、quic)或 all。'."\n" - .'默认为all。', - 'type' => 'string', - 'required' => false, - 'example' => 'all', - ], + 'schema' => ['description' => '查询维度,可选网络层(IPv4、IPv6)或应用层(http、https、quic)或 all。'."\n" + .'默认为all。', 'type' => 'string', 'required' => false, 'example' => 'all'], ], ], 'responses' => [ @@ -5875,102 +6534,88 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,单位:秒。', - 'type' => 'string', - 'example' => '300', - ], - 'RequestId' => [ - 'description' => '请求ID。'."\n", - 'type' => 'string', - 'example' => 'BEA5625F-8FCF-48F4-851B-CA63946DA664', - ], - 'HttpCodeDataInterval' => [ + 'DataInterval' => ['description' => '每条记录的时间间隔,单位:秒。', 'type' => 'string', 'example' => '300'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'BEA5625F-8FCF-48F4-851B-CA63946DA664'], + 'BpsDataInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => '每个时间间隔的HTTP Code分布情况,单位:个。', + 'description' => '每个时间间隔的每秒访问次数Bps。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Value' => [ - 'description' => '每个Http Code对应的响应次数。', - 'type' => 'object', - 'example' => '{"200": 10,"206": 100}', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2015-12-10T21:00:00Z', - ], - 'TotalValue' => [ - 'description' => '总响应次数。', - 'type' => 'string', - 'example' => '110', - ], + 'Value' => ['description' => '总Bps。', 'type' => 'string', 'example' => '0.56'], + 'TrafficValue' => ['description' => '总流量,单位:字节。', 'type' => 'string', 'example' => '331'], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2015-12-10T21:00:00Z'], + 'DynamicValue' => ['description' => '动态总Bps。', 'type' => 'string', 'example' => '0.34'], + 'StaticValue' => ['description' => '静态总Bps。', 'type' => 'string', 'example' => '0.22'], + 'DynamicTrafficValue' => ['description' => '动态总流量,单位:字节。', 'type' => 'string', 'example' => '200'], + 'StaticTrafficValue' => ['description' => '静态总流量,单位:字节。', 'type' => 'string', 'example' => '131'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The StartTime cannot exceed 31 days before the current time.', 'description' => '不能查询31天之前的数据。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DataInterval\\": \\"300\\",\\n \\"RequestId\\": \\"BEA5625F-8FCF-48F4-851B-CA63946DA664\\",\\n \\"HttpCodeDataInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": {\\n \\"200\\": 10,\\n \\"206\\": 100\\n },\\n \\"TimeStamp\\": \\"2015-12-10T21:00:00Z\\",\\n \\"TotalValue\\": \\"110\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainHttpCodeDataByLayerResponse>\\n<HttpCodeDataInterval>\\n <DataModule>\\n <TimeStamp>2015-12-10T21:00:00Z</TimeStamp>\\n <Value>\\n <200>10</200>\\n <206>100</206>\\n </Value>\\n <TotalValue>110</TotalValue>\\n </DataModule>\\n <DataModule>\\n <TimeStamp>2015-12-10T20:35:00Z</TimeStamp>\\n <Value>\\n <200>12</200>\\n <206>120</206>\\n </Value>\\n <TotalValue>132</TotalValue>\\n </DataModule>\\n</HttpCodeDataInterval>\\n<DataInterval>300</DataInterval>\\n<RequestId>BEA5625F-8FCF-48F4-851B-CA63946DA664</RequestId>\\n</DescribeDcdnDomainHttpCodeDataByLayerResponse>","errorExample":""}]', - 'title' => '查询HTTP状态码-按协议', + 'title' => '查询网络带宽监控数据-按协议', + 'summary' => '调用DescribeDcdnDomainBpsDataByLayer按协议分类获取带宽数据。', 'description' => '- 单用户调用频率:20次/秒。'."\n" - .'- 不支持IP协议查询。'."\n" - .'- 不指定**StartTime**和**EndTime**,默认返回过去24小时的数据;指定**StartTime**和**EndTime**,返回指定起止时间的数据。'."\n" + .'- 如果您不指定**StartTime**和**EndTime**时,默认读取过去24小时的数据;指定**StartTime**和**EndTime**时,按指定的起止时间查询。'."\n" ."\n" .'**支持查询的时间粒度**'."\n" ."\n" .'根据单次查询的最大时间跨度不同,请求参数Interval支持不同的查询数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" - .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟 |'."\n" - .'| -------------- | -------------- | ------ | ------ |'."\n" + .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟 |'."\n" + .'| -------------- | -------------- | ------|----------|'."\n" .'| 5分钟 | 3天 | 93天 | 15分钟 |'."\n" - .'| 1小时 | 31天 | 186天 | 一般延迟3-4小时|'."\n" - .'| 1天 | 90天 | 366天 |一般延迟4小时,不超过24小时 |', + .'| 1小时 | 31天 | 186天 | 一般延迟3-4小时 |'."\n" + .'| 1天 | 90天 | 366天 | 一般延迟4小时,不超过24小时 |', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainRegionData' => [ - 'summary' => '调用DescribeDcdnDomainRegionData查询加速域名天粒度的用户区域分布数据统计,支持获取90天的数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2023-04-13T06:01:52.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainBpsDataByLayer'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainBpsDataByLayer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DataInterval\\": \\"300\\",\\n \\"RequestId\\": \\"BEA5625F-8FCF-48F4-851B-CA63946DA664\\",\\n \\"BpsDataInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"0.56\\",\\n \\"TrafficValue\\": \\"331\\",\\n \\"TimeStamp\\": \\"2015-12-10T21:00:00Z\\",\\n \\"DynamicValue\\": \\"0.34\\",\\n \\"StaticValue\\": \\"0.22\\",\\n \\"DynamicTrafficValue\\": \\"200\\",\\n \\"StaticTrafficValue\\": \\"131\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainBpsDataByLayerResponse>\\n <DataInterval>300</DataInterval>\\n <RequestId>BEA5625F-8FCF-48F4-851B-CA63946DA664</RequestId>\\n <BpsDataInterval>\\n <Value>0.56</Value>\\n <TrafficValue>331</TrafficValue>\\n <TimeStamp>2015-12-10T21:00:00Z</TimeStamp>\\n <DynamicValue>0.34</DynamicValue>\\n <StaticValue>0.22</StaticValue>\\n <DynamicTrafficValue>200</DynamicTrafficValue>\\n <StaticTrafficValue>131</StaticTrafficValue>\\n </BpsDataInterval>\\n</DescribeDcdnDomainBpsDataByLayerResponse>","errorExample":""}]', + ], + 'DescribeDcdnDomainByCertificate' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -5981,47 +6626,31 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnX7NWEB'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'SSLPub', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,仅支持一个域名。'."\n" - ."\n" - .'默认查询当前用户下所有域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '证书公钥。'."\n" + ."\n" + .'需要先采用Base64编码,再进行encodeURIComponent编码,支持PEM格式。', 'type' => 'string', 'required' => true, 'example' => 'xxx'], ], [ - 'name' => 'StartTime', + 'name' => 'SSLStatus', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据开始时间点。'."\n" - ."\n" - .'北京时间,格式为YYYY-MM-DDThh:mm:ssZ。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-05T12:00:00Z', - ], + 'schema' => ['description' => '表示返回的域名列表只包含开启或关闭HTTPS的域名。'."\n" + ."\n" + .'- true:开启'."\n" + .'- false:关闭', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'EndTime', + 'name' => 'Exact', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据结束时间点,结束时间需大于起始时间。'."\n" - ."\n" - .'北京时间,格式为YYYY-MM-DDThh:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-07T12:00:00Z', - ], + 'schema' => ['description' => '表示返回的域名列表是否与证书精准匹配。'."\n" + ."\n" + .'- true:开启'."\n" + .'- false:关闭', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ @@ -6029,153 +6658,235 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2015-12-07T12:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2015-12-05T12:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '2E5AD83F-BD7B-462E-8319-2E30E305519A', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,单位:秒。', - 'type' => 'string', - 'example' => '86400', - ], - 'Value' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'ASAF2FDS-12SADSA-DDSAE3D-DSADCD4C-CDADS2D'], + 'CertInfos' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'RegionProportionData' => [ - 'description' => '各地区访问占比数据列表。', + 'CertInfo' => [ + 'description' => '证书信息。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Qps' => [ - 'description' => '每秒查询率。', - 'type' => 'string', - 'example' => '0', - ], - 'TotalQuery' => [ - 'description' => '总请求次数。', - 'type' => 'string', - 'example' => '0', - ], - 'TotalBytes' => [ - 'description' => '总流量。', - 'type' => 'string', - 'example' => '0', - ], - 'RegionEname' => [ - 'description' => '地域英文名称。', - 'type' => 'string', - 'example' => 'chongqing', - ], - 'Region' => [ - 'description' => '地域信息。', - 'type' => 'string', - 'example' => '重庆市', - ], - 'AvgResponseRate' => [ - 'description' => '平均响应速度,单位:byte/秒。', - 'type' => 'string', - 'example' => '0', - ], - 'AvgResponseTime' => [ - 'description' => '平均响应时间,单位:毫秒。'."\n", - 'type' => 'string', - 'example' => '0', - ], - 'Proportion' => [ - 'description' => '访问占比数据。例如:返回90即为90% 。'."\n", - 'type' => 'string', - 'example' => '0', - ], - 'AvgObjectSize' => [ - 'description' => '响应平均大小,单位:byte。', - 'type' => 'string', - 'example' => '0', - ], - 'Bps' => [ - 'description' => '带宽。', - 'type' => 'string', - 'example' => '0', - ], - 'BytesProportion' => [ - 'description' => '总流量占比。例如:返回90即为90%。', - 'type' => 'string', - 'example' => '0.003544181046236794', - ], + 'CertStartTime' => ['description' => '证书开始时间。', 'type' => 'string', 'example' => 'Nov 29 23:59:59 2017 GMT'], + 'CertExpireTime' => ['description' => '证书过期时间。', 'type' => 'string', 'example' => 'Nov 29 00:00:00 2016 GMT'], + 'CertCaIsLegacy' => ['description' => '证书CA废弃状态。取值:'."\n" + .'- **yes**:已废弃。'."\n" + .'- **no**:正常,未废弃。', 'type' => 'string', 'example' => 'yes'], + 'CertSubjectCommonName' => ['description' => '证书所有者名称。', 'type' => 'string', 'example' => 'example.aliyundoc.com'], + 'CertType' => ['description' => '证书类型。支持**RSA**、**DSA**、**ECDSA**三种取值。', 'type' => 'string', 'example' => 'RSA'], + 'DomainNames' => ['description' => '证书匹配的域名(DNS字段),多个域名用英文逗号(,)分隔。'."\n", 'type' => 'string', 'example' => '*.example.com,example.org'], + 'CertExpired' => ['description' => '证书过期状态。取值:'."\n" + .'- **yes**:已过期。'."\n" + .'- **no**:未过期。', 'type' => 'string', 'example' => 'yes'], + 'Issuer' => ['description' => '证书颁发机构。', 'type' => 'string', 'example' => 'C=US, O=Symantec Corporation, OU=Symantec Trust Network, OU=Domain Validated SSL, CN=Symantec Basic DV SSL CA - G1'], + 'DomainList' => ['description' => '使用对应证书的域名列表。'."\n" + ."\n" + .'如果该参数的返回值不为空,则将域名列表与对应的证书进行匹配,多个域名用英文逗号(,)分隔。', 'type' => 'string', 'example' => 'example.com,example.org'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', + ['errorCode' => 'Certificate.FormatError', 'errorMessage' => 'The format of the certificate is invalid.', 'description' => '证书格式错误。'], + ['errorCode' => 'SSLPub.MissingParameter', 'errorMessage' => 'The SSLPub parameter is required.', 'description' => '请填写SSLPub。'], + ['errorCode' => 'Decode.Error', 'errorMessage' => 'Error decoding the SSLPub or SSLPri certificate.', 'description' => '证书 sslpub 或 sslpri 解码错误。'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => '内部错误,请重试,如果多次重试报错请提交工单。'], + ], + ], + 'title' => '查询域名-按证书', + 'summary' => '调用DescribeDcdnDomainByCertificate根据证书信息查询域名。', + 'description' => '> 单用户调用频率:100次/秒。 ', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-08-22T02:06:44.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainByCertificate'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainByCertificate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 404 => [ - [ - 'errorCode' => 'InvalidDomain.NotFound', - 'errorMessage' => 'The specified domain does not exist.', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"ASAF2FDS-12SADSA-DDSAE3D-DSADCD4C-CDADS2D\\",\\n \\"CertInfos\\": {\\n \\"CertInfo\\": [\\n {\\n \\"CertStartTime\\": \\"Nov 29 23:59:59 2017 GMT\\",\\n \\"CertExpireTime\\": \\"Nov 29 00:00:00 2016 GMT\\",\\n \\"CertCaIsLegacy\\": \\"yes\\",\\n \\"CertSubjectCommonName\\": \\"example.aliyundoc.com\\",\\n \\"CertType\\": \\"RSA\\",\\n \\"DomainNames\\": \\"*.example.com,example.org\\",\\n \\"CertExpired\\": \\"yes\\",\\n \\"Issuer\\": \\"C=US, O=Symantec Corporation, OU=Symantec Trust Network, OU=Domain Validated SSL, CN=Symantec Basic DV SSL CA - G1\\",\\n \\"DomainList\\": \\"example.com,example.org\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainByCertificateResponse>\\n<RequestId>ASAF2FDS-12SADSA-DDSAE3D-DSADCD4C-CDADS2D</RequestId>\\n<content>\\n <Issuer>C=US, O=Symantec Corporation, OU=Symantec Trust Network, OU=Domain Validated SSL, CN=Symantec Basic DV SSL CA - G1</Issuer>\\n <CertType>RSA</CertType>\\n <CertSubjectCommonName>example.aliyundoc.com</CertSubjectCommonName>\\n <CertStartTime>Nov 29 23:59:59 2017 GMT</CertStartTime>\\n <CertExpireTime>Nov 29 00:00:00 2016 GMT</CertExpireTime>\\n <DomainNames>*.example.com,example.org</DomainNames>\\n <DomainList>example.com,example.org</DomainList>\\n <CertExpired>yes</CertExpired>\\n <CertCaIsLegacy>yes</CertCaIsLegacy>\\n</content>\\n</DescribeDcdnDomainByCertificateResponse>","errorExample":""}]', + ], + 'DescribeDcdnDomainCcActivityLog' => [ + 'summary' => '调用DescribeDcdnDomainCcActivityLog查询频次控制规则拦截日志。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + ], + 'parameters' => [ + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '需要查询的加速域名。支持批量域名查询,多个域名用半角逗号(,)分隔。'."\n" + ."\n" + .'若该参数为空,默认返回所有加速域名合并后数据。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据的起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'最小数据粒度为5分钟。'."\n" + ."\n" + .'若该参数为空,默认读取过去24小时数据。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => '2015-12-10T20:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据的结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T21:05:00Z'], + ], + [ + 'name' => 'TriggerObject', + 'in' => 'query', + 'schema' => ['description' => '触发对象。'."\n" + ."\n" + .'若该参数为空,则查询所有拦截事件。', 'type' => 'string', 'required' => false, 'example' => 'IP'], + ], + [ + 'name' => 'Value', + 'in' => 'query', + 'schema' => ['description' => '触发对象值。'."\n" + ."\n" + .'若该参数为空,则查询所有拦截事件。', 'type' => 'string', 'required' => false, 'example' => '10.10.10.10'], + ], + [ + 'name' => 'RuleName', + 'in' => 'query', + 'schema' => ['description' => '规则名称。'."\n" + ."\n" + .'- 正常模式:default_normal;'."\n" + ."\n" + .'- 紧急模式:default_attack;'."\n" + ."\n" + .'- 自定义模式:用户自定义规则名称,例如test2。'."\n" + ."\n\n" + .'若该参数为空,则查询所有拦截事件。'."\n", 'type' => 'string', 'required' => false, 'example' => 'test2'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '单页显示数量。默认值:**30**。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '100', 'example' => '30', 'default' => '30'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '页码。默认值:**1**。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1', 'default' => '1'], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'PageIndex' => ['description' => '返回数据的页码。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F'], + 'PageSize' => ['description' => '整页大小。', 'type' => 'integer', 'format' => 'int64', 'example' => '30'], + 'Total' => ['description' => '总条数。', 'type' => 'integer', 'format' => 'int64', 'example' => '20'], + 'ActivityLog' => [ + 'description' => '拦截事件数据。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Value' => ['description' => '触发对象值。', 'type' => 'string', 'example' => '10.10.10.10'], + 'Ttl' => ['description' => '生效时长,单位:秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '300'], + 'Action' => ['description' => '拦截动作。', 'type' => 'string', 'example' => 'deny'], + 'TriggerObject' => ['description' => '触发对象。', 'type' => 'string', 'example' => 'IP'], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z'], + 'DomainName' => ['description' => '加速域名。', 'type' => 'string', 'example' => 'example.com'], + 'RuleName' => ['description' => '拦截规则名称。', 'type' => 'string', 'example' => 'test2'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-12-07T12:00:00Z\\",\\n \\"StartTime\\": \\"2015-12-05T12:00:00Z\\",\\n \\"RequestId\\": \\"2E5AD83F-BD7B-462E-8319-2E30E305519A\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"86400\\",\\n \\"Value\\": {\\n \\"RegionProportionData\\": [\\n {\\n \\"Qps\\": \\"0\\",\\n \\"TotalQuery\\": \\"0\\",\\n \\"TotalBytes\\": \\"0\\",\\n \\"RegionEname\\": \\"chongqing\\",\\n \\"Region\\": \\"重庆市\\",\\n \\"AvgResponseRate\\": \\"0\\",\\n \\"AvgResponseTime\\": \\"0\\",\\n \\"Proportion\\": \\"0\\",\\n \\"AvgObjectSize\\": \\"0\\",\\n \\"Bps\\": \\"0\\",\\n \\"BytesProportion\\": \\"0.003544181046236794\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainRegionDataResponse>\\r\\n\\t<Value>\\r\\n\\t\\t<RegionProportionData>\\r\\n\\t\\t\\t<Bps>380.9614285714286</Bps>\\r\\n\\t\\t\\t<Proportion>0.01155980271270037</Proportion>\\r\\n\\t\\t\\t<TotalBytes>2400057</TotalBytes>\\r\\n\\t\\t\\t<BytesProportion>0.003544181046236794</BytesProportion>\\r\\n\\t\\t\\t<TotalQuery>3</TotalQuery>\\r\\n\\t\\t\\t<RegionEname></RegionEname>\\r\\n\\t\\t\\t<Region>日本</Region>\\r\\n\\t\\t\\t<AvgResponseRate>154.3345765545624</AvgResponseRate>\\r\\n\\t\\t\\t<AvgObjectSize>800019.0</AvgObjectSize>\\r\\n\\t\\t\\t<Qps>5.9523809523809524E-5</Qps>\\r\\n\\t\\t\\t<AvgResponseTime>5183.666666666667</AvgResponseTime>\\r\\n\\t\\t</RegionProportionData>\\r\\n\\t\\t<RegionProportionData>\\r\\n\\t\\t\\t<Bps>25110.431412698414</Bps>\\r\\n\\t\\t\\t<Proportion>0.31211467324291</Proportion>\\r\\n\\t\\t\\t<TotalBytes>158195717</TotalBytes>\\r\\n\\t\\t\\t<BytesProportion>0.23360872886644055</BytesProportion>\\r\\n\\t\\t\\t<TotalQuery>81</TotalQuery>\\r\\n\\t\\t\\t<RegionEname>hangzhou</RegionEname>\\r\\n\\t\\t\\t<Region>杭州市</Region>\\r\\n\\t\\t\\t<AvgResponseRate>1397.1430909315718</AvgResponseRate>\\r\\n\\t\\t\\t<AvgObjectSize>1953033.5543209878</AvgObjectSize>\\r\\n\\t\\t\\t<Qps>0.0016071428571428571</Qps>\\r\\n\\t\\t\\t<AvgResponseTime>1397.8765432098764</AvgResponseTime>\\r\\n\\t\\t</RegionProportionData>\\r\\n\\t\\t<RegionProportionData>\\r\\n\\t\\t\\t<Bps>40343.86242857143</Bps>\\r\\n\\t\\t\\t<Proportion>0.33908754623921084</Proportion>\\r\\n\\t\\t\\t<TotalBytes>254166333</TotalBytes>\\r\\n\\t\\t\\t<BytesProportion>0.37532921137846464</BytesProportion>\\r\\n\\t\\t\\t<TotalQuery>88</TotalQuery>\\r\\n\\t\\t\\t<RegionEname>chongqing</RegionEname>\\r\\n\\t\\t\\t<Region>重庆市</Region>\\r\\n\\t\\t\\t<AvgResponseRate>787.8073097249128</AvgResponseRate>\\r\\n\\t\\t\\t<AvgObjectSize>2888253.7875</AvgObjectSize>\\r\\n\\t\\t\\t<Qps>0.001746031746031746</Qps>\\r\\n\\t\\t\\t<AvgResponseTime>3666.193181818182</AvgResponseTime>\\r\\n\\t\\t</RegionProportionData>\\r\\n\\t</Value>\\r\\n\\t<DataInterval>86400</DataInterval>\\r\\n\\t<RequestId>2E5AD83F-BD7B-462E-8319-2E30E305519A</RequestId>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<EndTime>2015-12-05T12:00:00Z</EndTime>\\r\\n\\t<StartTime>2015-12-07T12:00:00Z</StartTime>\\r\\n</DescribeDcdnDomainRegionDataResponse>\\r\\n\\t\\r\\n","errorExample":""}]', - 'title' => '查询用户区域分布数据统计', - 'description' => '> - 当您不指定StartTime和EndTime时,默认读取过去24小时的数据;指定StartTime和EndTime时,按指定的起止时间查询。'."\n" - .'> - 单用户调用频率:100次/秒。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], + ], + ], + 'title' => '查询频次控制规则拦截日志', + 'description' => '> - 不指定StartTime和EndTime时,默认读取过去24小时的数据;同时支持按指定的起止时间查询,StartTime和EndTime两者需要同时指定。'."\n" + .'> - 最多可获取30天的数据。'."\n" + .'> - 单用户调用频率:50次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnRegionAndIsp' => [ - 'summary' => '调用DescribeDcdnRegionAndIsp获取地域和运营商列表。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainCcActivityLog'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainCcActivityLog', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageIndex\\": 1,\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\",\\n \\"PageSize\\": 30,\\n \\"Total\\": 20,\\n \\"ActivityLog\\": [\\n {\\n \\"Value\\": \\"10.10.10.10\\",\\n \\"Ttl\\": 300,\\n \\"Action\\": \\"deny\\",\\n \\"TriggerObject\\": \\"IP\\",\\n \\"TimeStamp\\": \\"2015-12-10T20:00:00Z\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"RuleName\\": \\"test2\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainCcActivityLogResponse>\\n<Total>20</Total>\\n<PageSize>30</PageSize>\\n<PageIndex>1</PageIndex>\\n<RequestId>3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F</RequestId>\\n<ActivityLog>\\n <TimeStamp>2015-12-10T20:00:00Z</TimeStamp>\\n <Value>10.10.10.10</Value>\\n <TriggerObject>IP</TriggerObject>\\n <DomainName>example.com</DomainName>\\n <Ttl>300</Ttl>\\n <Action>deny</Action>\\n <RuleName>test2</RuleName>\\n</ActivityLog>\\n<ActivityLog>\\n <TimeStamp>2015-12-10T20:00:00Z</TimeStamp>\\n <Value>safari 5.1 – Windows</Value>\\n <TriggerObject>Header_UserAgent</TriggerObject>\\n <DomainName>example.com</DomainName>\\n <Ttl>300</Ttl>\\n <Action>deny</Action>\\n <RuleName>test2</RuleName>\\n</ActivityLog>\\n</DescribeDcdnDomainCcActivityLogResponse>","errorExample":""}]', + ], + 'DescribeDcdnDomainCertificateInfo' => [ + 'summary' => '调用DescribeDcdnDomainCertificateInfo查询指定域名证书信息。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6186,94 +6897,206 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111540', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', + 'abilityTreeNodes' => ['FEATUREdcdnX7NWEB'], + ], + 'parameters' => [ + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '加速域名,仅支持查询单个域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], - 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '2387C335-932C-4E1E-862C-1C4363B6DE72', - ], - 'Regions' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5C1E43DC-9E51-4771-82C0-7D5ECEB547A1'], + 'CertInfos' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Region' => [ - 'description' => '地域列表。', + 'CertInfo' => [ + 'description' => '证书信息。'."\n", 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'NameEn' => [ - 'description' => '地域英文名称。', - 'type' => 'string', - 'example' => 'liaoning', - ], - 'NameZh' => [ - 'description' => '地域中文名称。', - 'type' => 'string', - 'example' => '辽宁省', - ], + 'Status' => ['description' => '证书状态。'."\n" + ."\n" + .'- **success**:已生效。'."\n" + ."\n" + .'- **checking**:检测域名是否在阿里云全站加速。'."\n" + ."\n" + .'- **cname_error**:域名没有切到阿里云全站加速。'."\n" + ."\n" + .'- **domain_invalid**:域名包含非法字符。'."\n" + ."\n" + .'- **unsupport_wildcard**:不支持泛域名。'."\n" + ."\n" + .'- **applying**:证书申请中。'."\n" + ."\n" + .'- **get_token_timeout**:证书申请超时。'."\n" + ."\n" + .'- **check_token_timeout**:校验超时。'."\n" + ."\n" + .'- **get_cert_timeout**:获取证书超时。'."\n" + ."\n" + .'- **failed**:证书申请失败。', 'type' => 'string', 'example' => 'success'], + 'CertLife' => ['description' => '证书时长。单位:**months**(月)和**years**(年)。'."\n", 'type' => 'string', 'example' => '3 months'], + 'CertExpireTime' => ['description' => '证书过期时间。'."\n", 'type' => 'string', 'example' => '2018-06-03T22:03:39Z'], + 'SSLPub' => ['description' => '证书公钥。', 'type' => 'string', 'example' => 'xxxx'], + 'SSLProtocol' => ['description' => 'HTTPS开启状态。'."\n" + ."\n" + .'- **on**:已开启。'."\n" + ."\n" + .'- **off**:未开启。', 'type' => 'string', 'example' => 'on'], + 'CertType' => ['description' => '证书类型。'."\n" + ."\n" + .'- **cas**:云盾证书。'."\n" + .'- **upload**:自定义上传。', 'type' => 'string', 'example' => 'cas'], + 'CertDomainName' => ['description' => '证书匹配的域名。'."\n", 'type' => 'string', 'example' => 'example.com'], + 'CertName' => ['description' => '证书名称。', 'type' => 'string', 'example' => 'cert-example.com'], + 'CertOrg' => ['description' => '证书组织。', 'type' => 'string', 'example' => 'Let\'s Encrypt'], + 'DomainName' => ['description' => '加速域名。'."\n", 'type' => 'string', 'example' => 'example.com'], + 'CertId' => ['description' => '证书ID。', 'type' => 'string', 'example' => '9002448'], + 'CertRegion' => ['description' => '证书区域。', 'type' => 'string', 'example' => 'cn-hangzhou'], ], + 'description' => '', ], ], ], + 'description' => '', ], - 'Isps' => [ + ], + 'description' => '', + ], + ], + ], + 'title' => '查询指定域名证书信息', + 'description' => '> 单用户调用频率:100次/秒。 ', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainCertificateInfo'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainCertificateInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5C1E43DC-9E51-4771-82C0-7D5ECEB547A1\\",\\n \\"CertInfos\\": {\\n \\"CertInfo\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"CertLife\\": \\"3 months\\",\\n \\"CertExpireTime\\": \\"2018-06-03T22:03:39Z\\",\\n \\"SSLPub\\": \\"xxxx\\",\\n \\"SSLProtocol\\": \\"on\\",\\n \\"CertType\\": \\"cas\\",\\n \\"CertDomainName\\": \\"example.com\\",\\n \\"CertName\\": \\"cert-example.com\\",\\n \\"CertOrg\\": \\"Let\'s Encrypt\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"CertId\\": \\"9002448\\",\\n \\"CertRegion\\": \\"cn-hangzhou\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainCertificateInfoResponse>\\n <RequestId>5C1E43DC-9E51-4771-82C0-7D5ECEB547A1</RequestId>\\n <CertInfos>\\n <Status>success</Status>\\n <CertLife>3 months</CertLife>\\n <CertExpireTime>2018-06-03T22:03:39Z</CertExpireTime>\\n <SSLPub>xxxx</SSLPub>\\n <SSLProtocol>on</SSLProtocol>\\n <CertType>cas</CertType>\\n <CertDomainName>example.com</CertDomainName>\\n <CertName>cert-example.com</CertName>\\n <CertOrg>Let\'s Encrypt</CertOrg>\\n <DomainName>example.com</DomainName>\\n </CertInfos>\\n</DescribeDcdnDomainCertificateInfoResponse>","errorExample":""}]', + ], + 'DescribeDcdnDomainCname' => [ + 'summary' => '调用DescribeDcdnDomainCname对加速域名CNAME进行解析检测,查看解析结果判断是否完成CNAME配置。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '111490', + 'abilityTreeNodes' => ['FEATUREdcdnWQK30N'], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '加速域名,多个以逗号(,)分隔。'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com,example.org'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '15C66C7B-671A-4297-9187-2C4477247A74'], + 'CnameDatas' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Isp' => [ - 'description' => '运营商列表。', + 'Data' => [ + 'description' => 'CNAME信息。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'NameEn' => [ - 'description' => '运营商英文名称。', - 'type' => 'string', - 'example' => 'unicom', - ], - 'NameZh' => [ - 'description' => '运营商中文名称。', - 'type' => 'string', - 'example' => '联通', - ], + 'Status' => ['description' => 'CNAME配置状态,返回0表示成功,返回其他数字表示配置错误。'."\n" + ."\n" + .'- 0:表示通过域名解析检测到分配给域名的CNAME。'."\n" + .'- 1:表示通过域名解析暂未监测到分配给域名的CNAME。'."\n" + .'- -1:表示通过域名解析暂未监测到分配给域名的CNAME 超时。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Domain' => ['description' => '加速域名。', 'type' => 'string', 'example' => '.example.com'], + 'Cname' => ['description' => '阿里云DCDN分配给域名的CNAME。', 'type' => 'string', 'example' => 'a.com.w.alikunlun.net'], + 'Passed' => ['description' => '通过域名解析检测到分配给域名的cname是否通过,取值:'."\n" + .'- true: 通过'."\n" + .'- false: 不通过'."\n" + .'- timeout: 超时', 'type' => 'string', 'example' => 'true'], + 'ErrMsg' => ['description' => '通过域名解析检测到分配给域名的cname不通过或超时的错误信息。', 'type' => 'string', 'example' => 'timeout'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2387C335-932C-4E1E-862C-1C4363B6DE72\\",\\n \\"Regions\\": {\\n \\"Region\\": [\\n {\\n \\"NameEn\\": \\"liaoning\\",\\n \\"NameZh\\": \\"辽宁省\\"\\n }\\n ]\\n },\\n \\"Isps\\": {\\n \\"Isp\\": [\\n {\\n \\"NameEn\\": \\"unicom\\",\\n \\"NameZh\\": \\"联通\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnRegionAndIspResponse>\\n <RequestId>2387C335-932C-4E1E-862C-1C4363B6DE72</RequestId>\\n <Regions>\\n <Region>\\n <NameEn>Papua New Guinea</NameEn>\\n <NameZh>巴布亚新几内亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Cambodia</NameEn>\\n <NameZh>柬埔寨</NameZh>\\n </Region>\\n <Region>\\n <NameEn>ningxia</NameEn>\\n <NameZh>宁夏回族自治区</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Kazakhstan</NameEn>\\n <NameZh>哈萨克斯坦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Paraguay</NameEn>\\n <NameZh>巴拉圭</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Solomon Islands</NameEn>\\n <NameZh>索罗门群岛</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Bahamas</NameEn>\\n <NameZh>巴哈马</NameZh>\\n </Region>\\n <Region>\\n <NameEn>qinghai</NameEn>\\n <NameZh>青海省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Mali</NameEn>\\n <NameZh>马里</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Panama</NameEn>\\n <NameZh>巴拿马</NameZh>\\n </Region>\\n <Region>\\n <NameEn>yunnan</NameEn>\\n <NameZh>云南省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Argentina</NameEn>\\n <NameZh>阿根廷</NameZh>\\n </Region>\\n <Region>\\n <NameEn>anhui</NameEn>\\n <NameZh>安徽省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Belize</NameEn>\\n <NameZh>伯利兹</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Zambia</NameEn>\\n <NameZh>赞比亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Bahrain</NameEn>\\n <NameZh>巴林</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Congo</NameEn>\\n <NameZh>刚果共和国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Guinea-Bissau</NameEn>\\n <NameZh>几内亚比绍</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Namibia</NameEn>\\n <NameZh>纳米比亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Finland</NameEn>\\n <NameZh>芬兰</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Palestinian Territory</NameEn>\\n <NameZh>巴勒斯坦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Georgia</NameEn>\\n <NameZh>格鲁吉亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Yemen</NameEn>\\n <NameZh>也门</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Puerto Rico</NameEn>\\n <NameZh>波多黎各</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Eritrea</NameEn>\\n <NameZh>厄立特里亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Madagascar</NameEn>\\n <NameZh>马达加斯加</NameZh>\\n </Region>\\n <Region>\\n <NameEn>fujian</NameEn>\\n <NameZh>福建省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Sweden</NameEn>\\n <NameZh>瑞典</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Malawi</NameEn>\\n <NameZh>马拉维</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Poland</NameEn>\\n <NameZh>波兰</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Jordan</NameEn>\\n <NameZh>约旦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Tunisia</NameEn>\\n <NameZh>突尼斯</NameZh>\\n </Region>\\n <Region>\\n <NameEn>jiangxi</NameEn>\\n <NameZh>江西省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>United Arab Emirates</NameEn>\\n <NameZh>阿拉伯联合酋长国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Kenya</NameEn>\\n <NameZh>肯尼亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Lebanon</NameEn>\\n <NameZh>黎巴嫩</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Djibouti</NameEn>\\n <NameZh>吉布提</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Azerbaijan</NameEn>\\n <NameZh>阿塞拜疆</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Czech Republic</NameEn>\\n <NameZh>捷克共和国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Mauritania</NameEn>\\n <NameZh>毛里塔尼亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>shanghai</NameEn>\\n <NameZh>上海市</NameZh>\\n </Region>\\n <Region>\\n <NameEn>sichuan</NameEn>\\n <NameZh>四川省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Israel</NameEn>\\n <NameZh>以色列</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Australia</NameEn>\\n <NameZh>澳大利亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Tajikistan</NameEn>\\n <NameZh>塔吉克斯坦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Myanmar</NameEn>\\n <NameZh>缅甸</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Cameroon</NameEn>\\n <NameZh>喀麦隆</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Cyprus</NameEn>\\n <NameZh>塞浦路斯</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Malaysia</NameEn>\\n <NameZh>马来西亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Iceland</NameEn>\\n <NameZh>冰岛</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Oman</NameEn>\\n <NameZh>阿曼</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Bosnia And Herzegovina</NameEn>\\n <NameZh>波斯尼亚和黑塞哥维那</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Armenia</NameEn>\\n <NameZh>亚美尼亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Gabon</NameEn>\\n <NameZh>加蓬</NameZh>\\n </Region>\\n <Region>\\n <NameEn>zhejiang</NameEn>\\n <NameZh>浙江省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Luxembourg</NameEn>\\n <NameZh>卢森堡</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Brazil</NameEn>\\n <NameZh>巴西</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Algeria</NameEn>\\n <NameZh>阿尔及利亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Slovenia</NameEn>\\n <NameZh>斯洛文尼亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Colombia</NameEn>\\n <NameZh>哥伦比亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Ecuador</NameEn>\\n <NameZh>厄瓜多尔</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Moldova</NameEn>\\n <NameZh>摩尔多瓦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Lao People\'s Democratic Republic</NameEn>\\n <NameZh>老挝</NameZh>\\n </Region>\\n <Region>\\n <NameEn>China(Taiwan)</NameEn>\\n <NameZh>中国台湾</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Vanuatu</NameEn>\\n <NameZh>瓦努阿图</NameZh>\\n </Region>\\n <Region>\\n <NameEn>shandong</NameEn>\\n <NameZh>山东省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Italy</NameEn>\\n <NameZh>意大利</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Honduras</NameEn>\\n <NameZh>洪都拉斯</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Haiti</NameEn>\\n <NameZh>海地</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Russian Federation</NameEn>\\n <NameZh>俄罗斯</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Burundi</NameEn>\\n <NameZh>布隆迪</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Afghanistan</NameEn>\\n <NameZh>阿富汗</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Singapore</NameEn>\\n <NameZh>新加坡</NameZh>\\n </Region>\\n <Region>\\n <NameEn>beijing</NameEn>\\n <NameZh>北京市</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Netherlands</NameEn>\\n <NameZh>荷兰</NameZh>\\n </Region>\\n <Region>\\n <NameEn>China</NameEn>\\n <NameZh>中国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>liaoning</NameEn>\\n <NameZh>辽宁省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Kyrgyzstan</NameEn>\\n <NameZh>吉尔吉斯斯坦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Local Area Network</NameEn>\\n <NameZh>局域网</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Korea</NameEn>\\n <NameZh>韩国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>China(Hong Kong)</NameEn>\\n <NameZh>中国香港</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Cote D\'Ivoire</NameEn>\\n <NameZh>科特迪瓦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Bhutan</NameEn>\\n <NameZh>不丹</NameZh>\\n </Region>\\n <Region>\\n <NameEn>shaanxi</NameEn>\\n <NameZh>陕西省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Romania</NameEn>\\n <NameZh>罗马尼亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Togo</NameEn>\\n <NameZh>多哥</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Falkland Islands (Malvinas)</NameEn>\\n <NameZh>福克兰群岛(马尔维纳斯群岛)</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Philippines</NameEn>\\n <NameZh>菲律宾</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Uzbekistan</NameEn>\\n <NameZh>乌兹别克斯坦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>jilin</NameEn>\\n <NameZh>吉林省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Oversea</NameEn>\\n <NameZh>海外</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Zimbabwe</NameEn>\\n <NameZh>津巴布韦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Montenegro</NameEn>\\n <NameZh>黑山</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Indonesia</NameEn>\\n <NameZh>印度尼西亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Benin</NameEn>\\n <NameZh>贝宁</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Angola</NameEn>\\n <NameZh>安哥拉</NameZh>\\n </Region>\\n <Region>\\n <NameEn>guizhou</NameEn>\\n <NameZh>贵州省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Sudan</NameEn>\\n <NameZh>苏丹</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Croatia/Hrvatska</NameEn>\\n <NameZh>克罗地亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>xinjiang</NameEn>\\n <NameZh>新疆维吾尔自治区</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Portugal</NameEn>\\n <NameZh>葡萄牙</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Brunei Darussalam</NameEn>\\n <NameZh>文莱达鲁萨兰国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>heilongjiang</NameEn>\\n <NameZh>黑龙江省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>New Caledonia</NameEn>\\n <NameZh>新喀里多尼亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Greece</NameEn>\\n <NameZh>希腊</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Latvia</NameEn>\\n <NameZh>拉脱维亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Mongolia</NameEn>\\n <NameZh>蒙古</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Morocco</NameEn>\\n <NameZh>摩洛哥</NameZh>\\n </Region>\\n <Region>\\n <NameEn>henan</NameEn>\\n <NameZh>河南省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Guyana</NameEn>\\n <NameZh>圭亚那</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Guatemala</NameEn>\\n <NameZh>危地马拉</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Iraq</NameEn>\\n <NameZh>伊拉克</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Chile</NameEn>\\n <NameZh>智利</NameZh>\\n </Region>\\n <Region>\\n <NameEn>hunan</NameEn>\\n <NameZh>湖南省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Nepal</NameEn>\\n <NameZh>尼泊尔</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Ukraine</NameEn>\\n <NameZh>乌克兰</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Tanzania</NameEn>\\n <NameZh>坦桑尼亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Ghana</NameEn>\\n <NameZh>加纳</NameZh>\\n </Region>\\n <Region>\\n <NameEn>India</NameEn>\\n <NameZh>印度</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Canada</NameEn>\\n <NameZh>加拿大</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Turkey</NameEn>\\n <NameZh>土耳其</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Belgium</NameEn>\\n <NameZh>比利时</NameZh>\\n </Region>\\n <Region>\\n <NameEn>South Africa</NameEn>\\n <NameZh>南非</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Central African Republic</NameEn>\\n <NameZh>中非共和国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Jamaica</NameEn>\\n <NameZh>牙买加</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Peru</NameEn>\\n <NameZh>秘鲁</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Turkmenistan</NameEn>\\n <NameZh>土库曼斯坦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Germany</NameEn>\\n <NameZh>德国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Fiji</NameEn>\\n <NameZh>斐济</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Guinea</NameEn>\\n <NameZh>几内亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>United States</NameEn>\\n <NameZh>美国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Chad</NameEn>\\n <NameZh>乍得</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Somalia</NameEn>\\n <NameZh>索马里</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Thailand</NameEn>\\n <NameZh>泰国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Equatorial Guinea</NameEn>\\n <NameZh>赤道几内亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Costa Rica</NameEn>\\n <NameZh>哥斯达黎加</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Vietnam</NameEn>\\n <NameZh>越南</NameZh>\\n </Region>\\n <Region>\\n <NameEn>xizang</NameEn>\\n <NameZh>西藏自治区</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Kuwait</NameEn>\\n <NameZh>科威特</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Nigeria</NameEn>\\n <NameZh>尼日利亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>China(Macao)</NameEn>\\n <NameZh>中国澳门</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Uruguay</NameEn>\\n <NameZh>乌拉圭</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Sri Lanka</NameEn>\\n <NameZh>斯里兰卡</NameZh>\\n </Region>\\n <Region>\\n <NameEn>tianjin</NameEn>\\n <NameZh>天津市</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Timor-Leste</NameEn>\\n <NameZh>东帝汶</NameZh>\\n </Region>\\n <Region>\\n <NameEn>United Kingdom</NameEn>\\n <NameZh>英国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Switzerland</NameEn>\\n <NameZh>瑞士</NameZh>\\n </Region>\\n <Region>\\n <NameEn>chongqing</NameEn>\\n <NameZh>重庆市</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Spain</NameEn>\\n <NameZh>西班牙</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Liberia</NameEn>\\n <NameZh>利比里亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Venezuela</NameEn>\\n <NameZh>委内瑞拉</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Burkina Faso</NameEn>\\n <NameZh>布基纳法索</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Swaziland</NameEn>\\n <NameZh>斯威士兰</NameZh>\\n </Region>\\n <Region>\\n <NameEn>neimenggu</NameEn>\\n <NameZh>内蒙古自治区</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Estonia</NameEn>\\n <NameZh>爱沙尼亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>hebei</NameEn>\\n <NameZh>河北省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Libyan Arab Jamahiriya</NameEn>\\n <NameZh>利比亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>hainan</NameEn>\\n <NameZh>海南省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>guangdong</NameEn>\\n <NameZh>广东省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Austria</NameEn>\\n <NameZh>奥地利</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Mozambique</NameEn>\\n <NameZh>莫桑比克</NameZh>\\n </Region>\\n <Region>\\n <NameEn>El Salvador</NameEn>\\n <NameZh>萨尔瓦多</NameZh>\\n </Region>\\n <Region>\\n <NameEn>shanxi</NameEn>\\n <NameZh>山西省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Lesotho</NameEn>\\n <NameZh>莱索托</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Western Sahara</NameEn>\\n <NameZh>西撒哈拉</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Hungary</NameEn>\\n <NameZh>匈牙利</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Japan</NameEn>\\n <NameZh>日本</NameZh>\\n </Region>\\n <Region>\\n <NameEn>hubei</NameEn>\\n <NameZh>湖北省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Slovakia (Slovak Republic)</NameEn>\\n <NameZh>斯洛伐克</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Belarus</NameEn>\\n <NameZh>白俄罗斯</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Albania</NameEn>\\n <NameZh>阿尔巴尼亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>New Zealand</NameEn>\\n <NameZh>新西兰</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Senegal</NameEn>\\n <NameZh>塞内加尔</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Macedonia</NameEn>\\n <NameZh>马其顿</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Ethiopia</NameEn>\\n <NameZh>埃塞俄比亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Egypt</NameEn>\\n <NameZh>埃及</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Sierra Leone</NameEn>\\n <NameZh>塞拉利昂</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Bolivia</NameEn>\\n <NameZh>玻利维亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>guangxi</NameEn>\\n <NameZh>广西壮族自治区</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Saudi Arabia</NameEn>\\n <NameZh>沙特阿拉伯</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Pakistan</NameEn>\\n <NameZh>巴基斯坦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Gambia</NameEn>\\n <NameZh>冈比亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>jiangsu</NameEn>\\n <NameZh>江苏省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Qatar</NameEn>\\n <NameZh>卡塔尔</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Ireland</NameEn>\\n <NameZh>爱尔兰</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Serbia</NameEn>\\n <NameZh>塞尔维亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Lithuania</NameEn>\\n <NameZh>立陶宛</NameZh>\\n </Region>\\n <Region>\\n <NameEn>France</NameEn>\\n <NameZh>法国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Niger</NameEn>\\n <NameZh>尼日尔</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Rwanda</NameEn>\\n <NameZh>卢旺达</NameZh>\\n </Region>\\n <Region>\\n <NameEn>gansu</NameEn>\\n <NameZh>甘肃省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Bangladesh</NameEn>\\n <NameZh>孟加拉国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Nicaragua</NameEn>\\n <NameZh>尼加拉瓜</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Norway</NameEn>\\n <NameZh>挪威</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Botswana</NameEn>\\n <NameZh>博茨瓦纳</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Dominican Republic</NameEn>\\n <NameZh>多米尼加共和国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Denmark</NameEn>\\n <NameZh>丹麦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Mexico</NameEn>\\n <NameZh>墨西哥</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Uganda</NameEn>\\n <NameZh>乌干达</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Suriname</NameEn>\\n <NameZh>苏里南</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Greenland</NameEn>\\n <NameZh>格陵兰岛</NameZh>\\n </Region>\\n </Regions>\\n <Isps>\\n <Isp>\\n <NameEn>telecom</NameEn>\\n <NameZh>电信</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>mobile</NameEn>\\n <NameZh>移动</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>cernet</NameEn>\\n <NameZh>教育网</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>tietong</NameEn>\\n <NameZh>铁通</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>other</NameEn>\\n <NameZh>其他</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>drpeng</NameEn>\\n <NameZh>鹏博士</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>unicom</NameEn>\\n <NameZh>联通</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>alibaba</NameEn>\\n <NameZh>阿里巴巴</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>citic</NameEn>\\n <NameZh>中信网络</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>dounder</NameEn>\\n <NameZh>方正宽带</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>overseas</NameEn>\\n <NameZh>海外ISP</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>ocn</NameEn>\\n <NameZh>有线通</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>wasu</NameEn>\\n <NameZh>华数</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>hrtn</NameEn>\\n <NameZh>湖北广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>cqccn</NameEn>\\n <NameZh>重庆有线</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>bjctv</NameEn>\\n <NameZh>歌华有线</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>topway</NameEn>\\n <NameZh>天威视讯</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>hkbn</NameEn>\\n <NameZh>香港宽频</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>telstra</NameEn>\\n <NameZh>澳大利亚电信</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>jxsarft</NameEn>\\n <NameZh>江西广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>gbs</NameEn>\\n <NameZh>湖南广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>djwl</NameEn>\\n <NameZh>典基网络</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>ctm</NameEn>\\n <NameZh>澳门电讯</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>ljwl</NameEn>\\n <NameZh>黑龙江广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>sxbctv</NameEn>\\n <NameZh>陕西广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>ccn</NameEn>\\n <NameZh>广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>gwbn</NameEn>\\n <NameZh>长城宽带</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>wasumedia</NameEn>\\n <NameZh>华数传媒</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>gcable</NameEn>\\n <NameZh>广东广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>lnsarft</NameEn>\\n <NameZh>辽宁广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>hensarft</NameEn>\\n <NameZh>河南广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>sdsarft</NameEn>\\n <NameZh>山东广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>jssarft</NameEn>\\n <NameZh>江苏广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>aipu</NameEn>\\n <NameZh>四川艾普</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>jilincatv</NameEn>\\n <NameZh>吉视传媒</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>sicsarft</NameEn>\\n <NameZh>四川广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>anhuicatv</NameEn>\\n <NameZh>安徽广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>fujiancatv</NameEn>\\n <NameZh>福建广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>xjsarft</NameEn>\\n <NameZh>新疆广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>guizhoucatv</NameEn>\\n <NameZh>贵州广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Local Area Network</NameEn>\\n <NameZh>局域网</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>hunanjy</NameEn>\\n <NameZh>湖南巨亚</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>zhujiangsm</NameEn>\\n <NameZh>珠江数码</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>baolian</NameEn>\\n <NameZh>北京宝联之星</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>telin</NameEn>\\n <NameZh>印尼Telin</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>indosat</NameEn>\\n <NameZh>印尼Indosat</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>shchilian</NameEn>\\n <NameZh>上海驰联</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>shqishun</NameEn>\\n <NameZh>上海企舜</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>cnix</NameEn>\\n <NameZh>皓宽网络</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>sify</NameEn>\\n <NameZh>印度Sify</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>zenlayer_in</NameEn>\\n <NameZh>印度Zenlayer</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>tata</NameEn>\\n <NameZh>印度TATA</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>airtel</NameEn>\\n <NameZh>印度AirTel</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>telstraglobal</NameEn>\\n <NameZh>Telstra Global</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>JPIX</NameEn>\\n <NameZh>JPIX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>sxsarft</NameEn>\\n <NameZh>山西广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>nmgcatv</NameEn>\\n <NameZh>内蒙古广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>jastel</NameEn>\\n <NameZh>JasTel</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>PCCW</NameEn>\\n <NameZh>PCCW</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>taiwanfixednetwork</NameEn>\\n <NameZh>Taiwan Fixed Network</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>digitalunited</NameEn>\\n <NameZh>Digital United</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>ntt</NameEn>\\n <NameZh>NTT</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>kddi</NameEn>\\n <NameZh>KDDI</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>koreatelecom</NameEn>\\n <NameZh>Korea Telecom</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>tmnet</NameEn>\\n <NameZh>TM Net</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>trueinternet</NameEn>\\n <NameZh>True Internet</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>CSL</NameEn>\\n <NameZh>CSL</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>vnpt</NameEn>\\n <NameZh>VNPT</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>eitcdu</NameEn>\\n <NameZh>EITC-DU</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Rostelecom</NameEn>\\n <NameZh>Rostelecom</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>globalnet</NameEn>\\n <NameZh>GLOBALNET</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>ertelecomholding</NameEn>\\n <NameZh>ER-Telecom Holding</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>businessnetworkltd</NameEn>\\n <NameZh>Business Network Ltd</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>vodafone</NameEn>\\n <NameZh>Vodafone</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>SmileServ</NameEn>\\n <NameZh>SmileServ</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>TATA</NameEn>\\n <NameZh>TATA</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>entersrl</NameEn>\\n <NameZh>ENTER S.r.l.</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>vodacomens</NameEn>\\n <NameZh>Vodacom ENS</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>hurricaneelectric</NameEn>\\n <NameZh>Hurricane Electric</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>cta</NameEn>\\n <NameZh>CTA</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>telefonicausa</NameEn>\\n <NameZh>Telefonica USA</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>verizonbusiness</NameEn>\\n <NameZh>Verizon Business</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>telefonicadatasa</NameEn>\\n <NameZh>Telefonica Data S.A.</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>pldt</NameEn>\\n <NameZh>PLDT</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>viettel</NameEn>\\n <NameZh>Viettel</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>retn</NameEn>\\n <NameZh>RETN</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>aims</NameEn>\\n <NameZh>AIMS</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>guangxsarft</NameEn>\\n <NameZh>广西广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>hebsarft</NameEn>\\n <NameZh>河北广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>hunsarft</NameEn>\\n <NameZh>湖南有线</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>sdqdsarft</NameEn>\\n <NameZh>山东青岛广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>level3</NameEn>\\n <NameZh>Level3</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>nxsarft</NameEn>\\n <NameZh>宁夏广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>zenlayer_id</NameEn>\\n <NameZh>印尼Zenlayer</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>zain</NameEn>\\n <NameZh>Zain</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>singtel</NameEn>\\n <NameZh>Singtel</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>bbix</NameEn>\\n <NameZh>BBIX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>mskix</NameEn>\\n <NameZh>MSK-IX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>tpix</NameEn>\\n <NameZh>TPIX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Equinix</NameEn>\\n <NameZh>Equinix</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>taiwanstar</NameEn>\\n <NameZh>台湾之星</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>aliyun</NameEn>\\n <NameZh>阿里云</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>maxis</NameEn>\\n <NameZh>Maxis</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>TelekomMalaysia</NameEn>\\n <NameZh>TelekomMalaysia</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>kinx</NameEn>\\n <NameZh>KINX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>skbb</NameEn>\\n <NameZh>SKBB</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>cat</NameEn>\\n <NameZh>CAT</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>ooredoo</NameEn>\\n <NameZh>Ooredoo</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Fareastone telecom</NameEn>\\n <NameZh>Fareastone</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>all</NameEn>\\n <NameZh>全部</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>luofang</NameEn>\\n <NameZh>luofang</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>gssarft</NameEn>\\n <NameZh>甘肃广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>tjsarft</NameEn>\\n <NameZh>天津广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>dlut</NameEn>\\n <NameZh>大连理工大学</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>gzchilian</NameEn>\\n <NameZh>广州驰联</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>lxix</NameEn>\\n <NameZh>蓝汛网络</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Seacom</NameEn>\\n <NameZh>Seacom</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>NAPAfrica IXP</NameEn>\\n <NameZh>NAPAfrica IXP</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>tcwl</NameEn>\\n <NameZh>天弛网络</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>HGC</NameEn>\\n <NameZh>HGC</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>sdlxsarft</NameEn>\\n <NameZh>山东乐享广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Omantel</NameEn>\\n <NameZh>Omantel</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Megaport</NameEn>\\n <NameZh>Megaport</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>xjtu</NameEn>\\n <NameZh>西安交通大学</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>TIME DotCom Berhad</NameEn>\\n <NameZh>TIME DotCom Berhad</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>MyIX</NameEn>\\n <NameZh>MyIX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Telenor Global Wholesale</NameEn>\\n <NameZh>Telenor Global Wholesale</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Webe Digital Sdn Bhd</NameEn>\\n <NameZh>Webe Digital Sdn Bhd</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Extreme Broadband</NameEn>\\n <NameZh>Extreme Broadband</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Cato Networks</NameEn>\\n <NameZh>Cato Networks</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Shinjiru</NameEn>\\n <NameZh>Shinjiru</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Packet Clearing House</NameEn>\\n <NameZh>Packet Clearing House</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>YTL Communications Sdn Bhd</NameEn>\\n <NameZh>YTL Communications Sdn Bhd</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Sri Lanka Telecom</NameEn>\\n <NameZh>Sri Lanka Telecom</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>LAOTELECOM</NameEn>\\n <NameZh>LAOTELECOM</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Apple</NameEn>\\n <NameZh>Apple</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>EarthTelecom</NameEn>\\n <NameZh>EarthTelecom</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Frontiir</NameEn>\\n <NameZh>Frontiir</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>BGP Network</NameEn>\\n <NameZh>BGP Network</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>SUPERLOOP</NameEn>\\n <NameZh>SUPERLOOP</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>IBOSS</NameEn>\\n <NameZh>IBOSS</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>EMIX</NameEn>\\n <NameZh>EMIX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>TurboTech</NameEn>\\n <NameZh>TurboTech</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>SEATEL</NameEn>\\n <NameZh>SEATEL</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Anycast</NameEn>\\n <NameZh>Anycast</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Mobily</NameEn>\\n <NameZh>Mobily</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>VeloNetworks</NameEn>\\n <NameZh>VeloNetworks</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>HiNet</NameEn>\\n <NameZh>HiNet</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>shmec</NameEn>\\n <NameZh>上海教委</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>JIO</NameEn>\\n <NameZh>JIO</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>AIS</NameEn>\\n <NameZh>泰国AIS</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>TOT</NameEn>\\n <NameZh>泰国TOT</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>DTAC</NameEn>\\n <NameZh>泰国DTAC</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>DiGi</NameEn>\\n <NameZh>马来DiGi</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Webe</NameEn>\\n <NameZh>马来Webe</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Tele2</NameEn>\\n <NameZh>俄罗斯Tele2</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>MTS</NameEn>\\n <NameZh>俄罗斯MTS</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Megafon</NameEn>\\n <NameZh>俄罗斯Megafon</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>VodafoneIN</NameEn>\\n <NameZh>印度VodafoneIN</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Idea</NameEn>\\n <NameZh>印度Idea</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>HGC-ID</NameEn>\\n <NameZh>印尼HGC-ID</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>XL</NameEn>\\n <NameZh>印尼XL</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>privateabtn</NameEn>\\n <NameZh>privateabtn</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Workonline</NameEn>\\n <NameZh>Workonline</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Telia</NameEn>\\n <NameZh>Telia</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>DE-CIX</NameEn>\\n <NameZh>DE-CIX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>MIX</NameEn>\\n <NameZh>MIX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Netnod</NameEn>\\n <NameZh>Netnod</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>LINX</NameEn>\\n <NameZh>LINX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>AMS-IX</NameEn>\\n <NameZh>AMS-IX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>ESPANIX</NameEn>\\n <NameZh>ESPANIX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>fusionCDN</NameEn>\\n <NameZh>融合CDN</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Telkomsel</NameEn>\\n <NameZh>Telkomsel</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>GLOBE</NameEn>\\n <NameZh>GLOBE</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Skycable</NameEn>\\n <NameZh>Skycable</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Starhub</NameEn>\\n <NameZh>Starhub</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>FPT</NameEn>\\n <NameZh>FPT</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>FRANCEIXP</NameEn>\\n <NameZh>FRANCEIXP</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>CTG</NameEn>\\n <NameZh>CTG</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>iADVANTAGE</NameEn>\\n <NameZh>iADVANTAGE</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Teraco</NameEn>\\n <NameZh>Teraco</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>VimpelCom</NameEn>\\n <NameZh>VimpelCom</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>DATAIX</NameEn>\\n <NameZh>DATAIX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>SGIX</NameEn>\\n <NameZh>SGIX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Liberty</NameEn>\\n <NameZh>Liberty</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>hainsarft</NameEn>\\n <NameZh>海南广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Celcom</NameEn>\\n <NameZh>Celcom</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Metfone</NameEn>\\n <NameZh>Metfone</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Smart Axiata</NameEn>\\n <NameZh>Smart Axiata</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>OpenNet</NameEn>\\n <NameZh>OpenNet</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>SMTeleMedia</NameEn>\\n <NameZh>SMTeleMedia</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>WiCAM</NameEn>\\n <NameZh>WiCAM</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Unitel</NameEn>\\n <NameZh>Unitel</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>MPT</NameEn>\\n <NameZh>MPT</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Mytel</NameEn>\\n <NameZh>Mytel</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>DIGI</NameEn>\\n <NameZh>DIGI</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Umobile</NameEn>\\n <NameZh>Umobile</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>M1</NameEn>\\n <NameZh>M1</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>MyRepublic</NameEn>\\n <NameZh>MyRepublic</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Fastnet</NameEn>\\n <NameZh>Fastnet</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>SmartFren</NameEn>\\n <NameZh>SmartFren</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Moratel</NameEn>\\n <NameZh>Moratel</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>HongKongCableTV</NameEn>\\n <NameZh>HongKongCableTV</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>CMCTelecom</NameEn>\\n <NameZh>CMCTelecom</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>qiniu</NameEn>\\n <NameZh>七牛</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>chuangshi</NameEn>\\n <NameZh>创世</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>wangsu</NameEn>\\n <NameZh>网宿</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>fastly</NameEn>\\n <NameZh>fastly</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>baishan</NameEn>\\n <NameZh>白山</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>yidong</NameEn>\\n <NameZh>cmcc</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Orange</NameEn>\\n <NameZh>Orange</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Sparkle</NameEn>\\n <NameZh>Sparkle</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>stackpath</NameEn>\\n <NameZh>stackpath</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>nonexistent</NameEn>\\n <NameZh>nonexistent</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>tianyiyun</NameEn>\\n <NameZh>天翼云</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>migu</NameEn>\\n <NameZh>咪咕</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>pinru</NameEn>\\n <NameZh>品茹</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>baidu</NameEn>\\n <NameZh>百度</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>CMHK</NameEn>\\n <NameZh>CMHK</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>shdxscn</NameEn>\\n <NameZh>scn</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>AsiaPacificTelecom</NameEn>\\n <NameZh>AsiaPacificTelecom</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Akamai</NameEn>\\n <NameZh>Akamai</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>cstnet</NameEn>\\n <NameZh>科技网</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>JPNAP</NameEn>\\n <NameZh>JPNAP</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>IIX</NameEn>\\n <NameZh>IIX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>OpenIXP</NameEn>\\n <NameZh>OpenIXP</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>TOP-IX</NameEn>\\n <NameZh>TOP-IX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>BSNL</NameEn>\\n <NameZh>BSNL</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>ACT</NameEn>\\n <NameZh>ACT</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>MTNL</NameEn>\\n <NameZh>MTNL</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Hathway</NameEn>\\n <NameZh>Hathway</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>You Broadband</NameEn>\\n <NameZh>You Broadband</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>GTPL</NameEn>\\n <NameZh>GTPL</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Excitel</NameEn>\\n <NameZh>Excitel</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>APSFL</NameEn>\\n <NameZh>APSFL</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Tikona</NameEn>\\n <NameZh>Tikona</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Broadway</NameEn>\\n <NameZh>Broadway</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Alliance</NameEn>\\n <NameZh>Alliance</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Indusind Media</NameEn>\\n <NameZh>Indusind Media</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Railtel</NameEn>\\n <NameZh>Railtel</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Netplus</NameEn>\\n <NameZh>Netplus</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Mahataa</NameEn>\\n <NameZh>Mahataa</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Quadrant Televentures</NameEn>\\n <NameZh>Quadrant Televentures</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Dvois</NameEn>\\n <NameZh>Dvois</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>VNPL</NameEn>\\n <NameZh>VNPL</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Ani network</NameEn>\\n <NameZh>Ani network</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Syscon infoway</NameEn>\\n <NameZh>Syscon infoway</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Asianet</NameEn>\\n <NameZh>Asianet</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Siti Broadband</NameEn>\\n <NameZh>Siti Broadband</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Ctrls</NameEn>\\n <NameZh>Ctrls</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Den Digital</NameEn>\\n <NameZh>Den Digital</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Excell Media</NameEn>\\n <NameZh>Excell Media</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Intech</NameEn>\\n <NameZh>Intech</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>KVANT-TELECOM</NameEn>\\n <NameZh>KVANT-TELECOM</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>MasMovil</NameEn>\\n <NameZh>MasMovil</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>zjhuashu</NameEn>\\n <NameZh>浙江华数</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Biznet</NameEn>\\n <NameZh>Biznet</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Interxion</NameEn>\\n <NameZh>Interxion</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Telehouse</NameEn>\\n <NameZh>Telehouse</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>IRIDEOS</NameEn>\\n <NameZh>IRIDEOS</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Moscow M9</NameEn>\\n <NameZh>Moscow M9</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>jsdxjcn</NameEn>\\n <NameZh>jcn</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>GlobalSwitch</NameEn>\\n <NameZh>GlobalSwitch</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>CUSG</NameEn>\\n <NameZh>CUSG</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>ETL</NameEn>\\n <NameZh>ETL</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>CamGSM</NameEn>\\n <NameZh>CamGSM</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>CADCOMMS</NameEn>\\n <NameZh>CADCOMMS</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Smartone</NameEn>\\n <NameZh>Smartone</NameZh>\\n </Isp>\\n </Isps>\\n</DescribeDcdnRegionAndIspResponse>","errorExample":""}]', - 'title' => '查询地域和运营商列表', - 'description' => '> 单用户调用频率:30次/秒。 ', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A74\\",\\n \\"CnameDatas\\": {\\n \\"Data\\": [\\n {\\n \\"Status\\": 0,\\n \\"Domain\\": \\".example.com\\",\\n \\"Cname\\": \\"a.com.w.alikunlun.net\\",\\n \\"Passed\\": \\"true\\",\\n \\"ErrMsg\\": \\"timeout\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainCnameResponse>\\n<RequestId>D27C81EF-90CA-4897-94AC-B73ADBFE4781</RequestId>\\n<CnameDatas>\\n <Data>\\n <Cname>*.com</Cname>\\n <Status>0</Status>\\n <Domain>.example.com</Domain>\\n </Data>\\n</CnameDatas>\\n</DescribeDcdnDomainCnameResponse>\\n","errorExample":""}]', + 'title' => '检测域名的CNAME是否完成配置', + 'description' => '> 单用户调用频率:80次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainIspData' => [ - 'summary' => '调用DescribeDcdnDomainIspData查询加速域名天粒度的用户运营商分布数据统计,支持获取最近90天的数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2025-05-21T08:10:18.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '80', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainCname'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainCname', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + ], + 'DescribeDcdnDomainConfigs' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6284,44 +7107,25 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111491', + 'abilityTreeNodes' => ['FEATUREdcdnWQK30N'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,仅支持查询单个域名。'."\n" - ."\n" - .'默认查询当前用户下所有域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '加速域名,仅支持查询单个域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'StartTime', + 'name' => 'FunctionNames', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为YYYY-MM-DDThh:mm:ssZ。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2019-12-05T12:00:00Z', - ], + 'allowEmptyValue' => true, + 'schema' => ['description' => '功能列表名称,多个用英文逗号(,)分隔。', 'type' => 'string', 'required' => false, 'example' => 'filetype_based_ttl_set,set_req_host_header'], ], [ - 'name' => 'EndTime', + 'name' => 'ConfigId', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据结束时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为YYYY-MM-DDThh:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2019-12-06T12:00:00Z', - ], + 'schema' => ['description' => '配置ID。', 'type' => 'string', 'required' => false, 'example' => '5003576'], ], ], 'responses' => [ @@ -6329,95 +7133,45 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2019-12-06T12:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2019-12-05T12:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '2E5AD83F-BD7B-462E-8319-2E30E305519A', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,单位:秒。', - 'type' => 'string', - 'example' => '86400', - ], - 'Value' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED'], + 'DomainConfigs' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'IspProportionData' => [ - 'description' => '各运营商访问占比数据列表。', + 'DomainConfig' => [ + 'description' => '域名配置。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Qps' => [ - 'description' => '每秒查询率。', - 'type' => 'string', - 'example' => '5.9523809523809524E-5', - ], - 'TotalQuery' => [ - 'description' => '总请求次数。', - 'type' => 'string', - 'example' => '3', - ], - 'TotalBytes' => [ - 'description' => '总流量。', - 'type' => 'string', - 'example' => '2400057', - ], - 'AvgResponseRate' => [ - 'description' => '平均响应速度,单位:byte/毫秒。'."\n", - 'type' => 'string', - 'example' => '154.3345765545624', - ], - 'AvgResponseTime' => [ - 'description' => '平均响应时间,单位:毫秒。'."\n", - 'type' => 'string', - 'example' => '5183.666666666667', - ], - 'Proportion' => [ - 'description' => '占比使用数据。', - 'type' => 'string', - 'example' => '0.01155980271270037', - ], - 'AvgObjectSize' => [ - 'description' => '响应平均大小,单位:byte。', - 'type' => 'string', - 'example' => '800019.0', - ], - 'IspEname' => [ - 'description' => '运营商英文名称。', - 'type' => 'string', - 'example' => 'unicom', - ], - 'Bps' => [ - 'description' => '带宽。单位:bit/s。', - 'type' => 'string', - 'example' => '380.9614285714286', - ], - 'Isp' => [ - 'description' => '运营商信息。', - 'type' => 'string', - 'example' => '联通', - ], - 'BytesProportion' => [ - 'description' => '总流量占比。例如:返回90即为90%。'."\n", - 'type' => 'string', - 'example' => '0.003544181046236794', + 'Status' => ['description' => '状态。取值:'."\n" + ."\n" + .'- **success**:成功。'."\n" + ."\n" + .'- **testing**:测试中。'."\n" + ."\n" + .'- **failed**:失败。'."\n" + ."\n" + .'- **configuring**:配置中。', 'type' => 'string', 'example' => 'success'], + 'ParentId' => ['description' => '高级条件配置ID。', 'type' => 'string', 'example' => '1234567'], + 'ConfigId' => ['description' => '配置ID。', 'type' => 'string', 'example' => '5068995'], + 'FunctionName' => ['description' => '功能名称。', 'type' => 'string', 'example' => 'set_req_host_header'], + 'FunctionArgs' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'FunctionArg' => [ + 'description' => '功能配置。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ArgName' => ['description' => '配置名称。', 'type' => 'string', 'example' => 'ttl'], + 'ArgValue' => ['description' => '配置值。', 'type' => 'string', 'example' => '13'], + ], + ], + ], + ], ], ], ], @@ -6430,54 +7184,222 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', + ['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => 'FunctionName [%s] is not supported.', 'description' => '不支持该配置,请重新查询。'], + ], + ], + 'title' => '查询域名配置信息', + 'summary' => '调用DescribeDcdnDomainConfigs获取加速域名的配置信息。', + 'description' => '> - 一次可查询多个功能配置信息。'."\n" + .'> - 单用户调用频率:30次/秒。', + 'requestParamsDescription' => '功能列表如下表所示。'."\n" + ."\n" + .'| 名称 | 参数 |'."\n" + .'|---------------|--------|'."\n" + .'| referer_white_list_set:Referer防盗链白名单| refer_domain_allow_list:白名单列表,多个用英文逗号(,)分隔。<br>allow_empty:是否允许空Referer字段访问DCDN资源,取值:on或off。|'."\n" + .'| referer_black_list_set:Referer防盗链黑名单| refer_domain_deny_list:黑名单列表,多个用英文逗号(,)分隔。<br>allow_empty:是否允许空Referer字段访问DCDN资源,取值:on或off。|'."\n" + .'| filetype_based_ttl_set:文件类型缓存过期时间设置| ttl:缓存时间,单位为秒。<br>file_type:文件类型。多个文件类型用英文逗号(,)分隔,例如TXT,JPG。<br>weight:权重。|'."\n" + .'| path_based_ttl_set:目录类型缓存过期时间设置| ttl:缓存时间,单位为秒。<br>path:目录,必须以正斜线(/)开头。<br>weight:权重。|'."\n" + .'| oss_auth:OSS鉴权Bucket| oss_bucket_id:您的Bucket地址。|'."\n" + .'| ip_black_list_set:IP黑名单| ip_list:IP列表,多个用英文逗号(,)分隔。|'."\n" + .'| ip_allow_list_set:IP白名单| ip_list:IP列表,多个用英文逗号(,)分隔。|'."\n" + .'| error_page:错误页面重定向| error_code:错误码。<br>rewrite_page:重定向页面。|'."\n" + .'| set_req_host_header:修改回源自定义头| domain_name:回源HOST头内容。|'."\n" + .'| set_hashkey_args:忽略URL参数| hashkey_args:保留参数列表,多个用英文逗号(,)分隔,最多支持填写10个。<br>disable:等于on表示忽略所有参数,off表示不忽略(缓存hashkey忽略所有参数,优先级低于保留缓存参数列表)。<br>keep_oss_args:等于on表示回源保留所有参数,off表示与缓存hashkey的参数一致。|'."\n" + .'| aliauth:阿里鉴权| auth_type:鉴权类型。no_auth:无鉴权;type_a:鉴权方式A;type_b:鉴权方式B;type_c:鉴权方式C。<br>auth_key1:鉴权key1;auth_key2:鉴权key2。<br>ali_auth_delta:自定义鉴权缓冲时间。|'."\n" + .'| set_resp_header:设置HTTP响应头(浏览器端可见)| key(必填):响应头。<br>value(必填):响应头内容,删除填写null。<br>header_operation_type:请求头操作,支持add、delete、modify、rewrite,添加add、删除delete、变更modify、替换rewrite。<br>duplicate:是否允许重复,支持on或off。<br>header_source:查找。<br>header_destination:替换为。<br>match_all:匹配所有,支持on或off。|'."\n" + .'| https_force:强制HTTPS跳转| enable:功能开关,取值:on或off。|'."\n" + .'| http_force:强制HTTP跳转| enable:功能开关,取值:on或off。|'."\n" + .'| https_option:HTTPS基础参数| http2:HTTP2开关,取值:on或off。<br>ocsp_stapling:OCSP Stapling开关,取值:on或off。|'."\n" + .'| forward_scheme:静态协议跟随回源| enable:开关,取值:on或off。<br> scheme_origin:回源协议类型,支持http、https和follow(跟随)。|'."\n" + .'| dynamic:全站加速相关配置|enable(必填):开关,支持on或off。<br>static_route_type:静态加速文件后缀。<br> static_route_url:静态加速URI。<br>static_route_path:静态加速PATH。<br>dynamic_route_origin:回源路由scheme,支持http、https、follow和follow-port。<br>dynamic_route_round_robin:开启负载均衡开关,支持on或off。<br>dynamic_route_adapt_cache:开启自适应缓存开关,支持on或off。|'."\n" + .'| set_req_header:自定义回源HTTP头| key:回源头。<br>value:回源头内容。|'."\n" + .'| l2_oss_key:阿里云OSS私有Bucket回源| private_oss_auth:私有Bucket回源开关,支持on或off。|'."\n" + .'| range:range回源| enable:开关,支持on、off。|'."\n" + .'| video_seek:视频拖拽播放|enable(必填):开关,支持on或off。<br> flv_seek_by_time:开启FLV按时间拖拽,支持on或off。<br> mp4_seek_start:自定义MP4开始参数。 <br> mp4_seek_end:自定义MP4结束参数。 <br> flv_seek_start:自定义FLV开始参数。 <br> flv_seek_end:自定义FLV结束参数。|'."\n" + .'| websocket:Websocket| enabled(必填):是否开启,取值:on或off。<br>origin_scheme:回源scheme,支持http、https和follow。<br>heartbeat:心跳时间,默认为60秒,支持1~300秒。|'."\n" + .'| ali_remove_args:忽略URL参数(删除)|ali_remove_args(必填):删除指定的参数,多个参数之间用空格隔开,剩余参数将作为hashkey中URL args部分。<br>keep_oss_args:回源保留参数。支持on或off,on表示回源保留所有参数,off表示与缓存hashkey的参数一致。|'."\n" + .'| https_tls_version:TLS协议版本| tls10:开启TLSv1.0,默认为on,支持on或off。<br>tls11:开启TLSv1.1,默认为on,支持on或off。<br> tls12:开启TLSv1.2,默认为on,支持on或off。<br>tls13:开启TLSv1.3,默认为off,支持on或off。|'."\n" + .'| HSTS:HSTS|enabled(必填):开关,默认为off,支持on或off。<br>https_hsts_max_age(必填):过期时间,单位:ms,建议填写5184000000ms(60天)。<br> https_hsts_include_subdomains:HSTS头包含includeSubDomains参数,支持on或off。请谨慎开启,开启前请确保该加速域名的所有子域名都已开启HTTPS,否则会导致子域名自动跳转到HTTPS后无法访问。|'."\n" + .'| filetype_force_ttl_code:文件状态码过期时间设置|file_type(必填):文件类型,多个用英文逗号(,)分隔,例如:TXT,JPG。<br>code_string(必填):状态码,多个用英文逗号(,)分隔。例如:302=0,301=0,4xx=2。|'."\n" + .'| path_force_ttl_code:路径状态码过期时间设置|path(必填):必须以正斜线(/)开头,例如:/image。<br>code_string(必填):状态码,多个用英文逗号(,)分隔。例如:302=0,301=0,4xx=2。|'."\n" + .'| gzip:智能压缩|enable(必填):功能开关,支持on或off。|'."\n" + .'| tesla:页面优化|enable(必填):功能开关,支持on或off。<br>trim_js:支持on或off,开启该功能,优化html中内嵌的js代码。<br>trim_css:支持on或off,开启该功能,优化html中内嵌的css代码。|'."\n" + .'| https_origin_sni:回源SNI|enabled:功能开关,支持on或off。<br>https_origin_sni(必填):回源SNI。|'."\n" + .'| protogw:IP应用加速|realip(必填):源站IP透传方式,支持off、toa、pp。<br>port(必填):服务端口。<br>patten:模式字符串。|'."\n" + .'| host_redirect:重写功能| regex:需要重写的URL,例如:^/$。<br>replacement:目标URL,例如: /go/act/sale/tbzlsy.php。<br>flag:仅支持redirect、break。'."\n" + .'| forward_timeout:回源请求超时时间| forward_timeout:单位为秒,配置时建议不要大于100秒。|'."\n" + .'|ipv6:IPv6配置|switch(必填):开关,支持on或off,on表示开启,off表示关闭。<br>region:开启IPv6功能的地区,支持星号(*)。|'."\n" + .'| edge_function:边缘脚本|<br>rule(必填):DSL规则。<br>pri(必填):优先级。<br>enable(必填):本条规则是否生效,取值:on或off。<br>name:规则名称。<br>pos:规则执行位置。全站加速域名仅支持head,不支持foot。<br>brk:命中本条规则后,当前执行位置剩余规则均跳过。<br>option:option管控。<br> grammar:grammar管控,可选值:空、es2、js。<br> jsmode:js域名白单管控,可选值:redirect、bypass。|'."\n" + .'| brotli:Brotli压缩|enable(必填):功能开关,支持on或off。<br>brotli_level:压缩等级,取值范围[1,11]。|'."\n" + .'| ali_ua:User-Agent黑/白名单| ua:User-Agent。<br>type:名单类型,black或white。|', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-03-27T01:47:58.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2022-11-16T03:01:20.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2022-11-15T06:00:54.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2022-10-27T06:31:12.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainConfigs'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], ], ], - 404 => [ - [ - 'errorCode' => 'InvalidDomain.NotFound', - 'errorMessage' => 'The specified domain does not exist.', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED\\",\\n \\"DomainConfigs\\": {\\n \\"DomainConfig\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"ParentId\\": \\"1234567\\",\\n \\"ConfigId\\": \\"5068995\\",\\n \\"FunctionName\\": \\"set_req_host_header\\",\\n \\"FunctionArgs\\": {\\n \\"FunctionArg\\": [\\n {\\n \\"ArgName\\": \\"ttl\\",\\n \\"ArgValue\\": \\"13\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainConfigsResponse>\\n <RequestId>F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED</RequestId>\\n <DomainConfigs>\\n <DomainConfig>\\n <FunctionArgs>\\n <FunctionArg>\\n <ArgName>domain_name</ArgName>\\n <ArgValue>testdcdn3.cdnpe.com</ArgValue>\\n </FunctionArg>\\n </FunctionArgs>\\n <ConfigId>5003576</ConfigId>\\n <FunctionName>set_req_host_header</FunctionName>\\n </DomainConfig>\\n <DomainConfig>\\n <FunctionArgs>\\n <FunctionArg>\\n <ArgName>file_type</ArgName>\\n <ArgValue>txt</ArgValue>\\n </FunctionArg>\\n <FunctionArg>\\n <ArgName>ttl</ArgName>\\n <ArgValue>13</ArgValue>\\n </FunctionArg>\\n </FunctionArgs>\\n <ConfigId>5068995</ConfigId>\\n <ParentId>1234567</ParentId>\\n <FunctionName>filetype_based_ttl_set</FunctionName>\\n </DomainConfig>\\n </DomainConfigs>\\n</DescribeDcdnDomainConfigsResponse>","errorExample":""}]', + ], + 'DescribeDcdnDomainDetail' => [ + 'summary' => '调用DescribeDcdnDomainDetail获取指定加速域名配置的基本信息。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + ], + 'parameters' => [ + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '加速域名,仅支持单个域名查询。'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '09ABE829-6CD3-4FE0-AFEE-556113E29727'], + 'DomainDetail' => [ + 'description' => '域名信息列表。', + 'type' => 'object', + 'properties' => [ + 'GmtCreated' => ['description' => '创建时间。'."\n", 'type' => 'string', 'example' => '2017-11-27T06:51:26Z'], + 'SSLPub' => ['description' => '如果开启HTTPS,此处为证书公钥。'."\n", 'type' => 'string', 'example' => 'xxx'], + 'Description' => ['description' => '域名备案信息。', 'type' => 'string', 'example' => 'Beijing ICP Filing No. 1703xxxx'], + 'SSLProtocol' => ['description' => '是否开启SSL证书。取值:'."\n" + ."\n" + .'- **on**:**开启**。'."\n" + ."\n" + .'- **off**:**关闭**。', 'type' => 'string', 'example' => 'on'], + 'ResourceGroupId' => ['description' => '资源组ID。'."\n", 'type' => 'string', 'example' => 'rg-acfmyuji4b6r4**'], + 'Scope' => ['description' => '加速区域。'."\n" + .'- **domestic**(默认值):仅中国内地。'."\n" + .'- **overseas**:全球(不包含中国内地)。'."\n" + .'- **global**:全球。', 'type' => 'string', 'example' => 'overseas'], + 'Cname' => ['description' => '为加速域名生成的一个CNAME域名,您需要在域名解析服务商处为加速域名配置CNAME解析。', 'type' => 'string', 'example' => 'example.aliyundoc.com'], + 'DomainStatus' => ['description' => '加速域名运行状态。取值:'."\n" + ."\n" + .'- **online**:启用。'."\n" + ."\n" + .'- **offline**:停用。'."\n" + ."\n" + .'- **configuring**:配置中。'."\n" + ."\n" + .'- **configure_failed**:配置失败。'."\n" + ."\n" + .'- **checking**:正在审核。'."\n" + ."\n" + .'- **check_failed**:审核失败。', 'type' => 'string', 'example' => 'online'], + 'GmtModified' => ['description' => '最近修改时间。'."\n", 'type' => 'string', 'example' => '2017-11-27T06:51:25Z'], + 'DomainName' => ['description' => '加速的域名。', 'type' => 'string', 'example' => 'example.com'], + 'Sources' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Source' => [ + 'description' => '源站信息。'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => '源站类型。取值:'."\n" + ."\n" + .'- **ipaddr**:IP源站。'."\n" + ."\n" + .'- **domain**:域名源站。'."\n" + ."\n" + .'- **oss**:OSS Bucket为源站。', 'type' => 'string', 'example' => 'oss'], + 'Weight' => ['description' => '回源权重。', 'type' => 'string', 'example' => '20'], + 'Enabled' => ['description' => '状态。'."\n", 'type' => 'string', 'example' => 'online'], + 'Priority' => ['description' => '优先级。'."\n", 'type' => 'string', 'example' => '50'], + 'Port' => ['description' => '端口,支持443和80。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'Content' => ['description' => '回源地址。', 'type' => 'string', 'example' => 'example.org'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + 'Scene' => ['description' => '加速场景。支持:'."\n" + .'- **apiscene**:API加速。'."\n" + .'- **webservicescene**:网站业务加速。'."\n" + .'- **staticscene**:视频、图文类加速。'."\n" + .'- **(空)**:没有场景。', 'type' => 'string', 'example' => 'apiscene'], + 'FunctionType' => ['description' => '计算服务类型。取值:'."\n" + .'- **routine**:程序。'."\n" + .'- **image**:镜像。'."\n" + .'- **cloudFunction**:函数。', 'type' => 'string', 'example' => 'routine'], + ], + ], + ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2019-12-06T12:00:00Z\\",\\n \\"StartTime\\": \\"2019-12-05T12:00:00Z\\",\\n \\"RequestId\\": \\"2E5AD83F-BD7B-462E-8319-2E30E305519A\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"86400\\",\\n \\"Value\\": {\\n \\"IspProportionData\\": [\\n {\\n \\"Qps\\": \\"5.9523809523809524E-5\\",\\n \\"TotalQuery\\": \\"3\\",\\n \\"TotalBytes\\": \\"2400057\\",\\n \\"AvgResponseRate\\": \\"154.3345765545624\\",\\n \\"AvgResponseTime\\": \\"5183.666666666667\\",\\n \\"Proportion\\": \\"0.01155980271270037\\",\\n \\"AvgObjectSize\\": \\"800019.0\\",\\n \\"IspEname\\": \\"unicom\\",\\n \\"Bps\\": \\"380.9614285714286\\",\\n \\"Isp\\": \\"联通\\",\\n \\"BytesProportion\\": \\"0.003544181046236794\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainIspDataResponse>\\r\\n\\t<Value>\\r\\n\\t\\t<IspProportionData>\\r\\n\\t\\t\\t<Bps>380.9614285714286</Bps>\\r\\n\\t\\t\\t<Proportion>0.01155980271270037</Proportion>\\r\\n\\t\\t\\t<TotalBytes>2400057</TotalBytes>\\r\\n\\t\\t\\t<BytesProportion>0.003544181046236794</BytesProportion>\\r\\n\\t\\t\\t<TotalQuery>3</TotalQuery>\\r\\n\\t\\t\\t<IspEname>unicom</IspEname>\\r\\n\\t\\t\\t<Isp>联通</Isp>\\r\\n\\t\\t\\t<AvgResponseRate>154.3345765545624</AvgResponseRate>\\r\\n\\t\\t\\t<AvgObjectSize>800019.0</AvgObjectSize>\\r\\n\\t\\t\\t<Qps>5.9523809523809524E-5</Qps>\\r\\n\\t\\t\\t<AvgResponseTime>5183.666666666667</AvgResponseTime>\\r\\n\\t\\t</IspProportionData>\\r\\n\\t\\t<IspProportionData>\\r\\n\\t\\t\\t<Bps>25110.431412698414</Bps>\\r\\n\\t\\t\\t<Proportion>0.31211467324291</Proportion>\\r\\n\\t\\t\\t<TotalBytes>158195717</TotalBytes>\\r\\n\\t\\t\\t<BytesProportion>0.23360872886644055</BytesProportion>\\r\\n\\t\\t\\t<TotalQuery>81</TotalQuery>\\r\\n\\t\\t\\t<IspEname>telecom</IspEname>\\r\\n\\t\\t\\t<Isp>电信</Isp>\\r\\n\\t\\t\\t<AvgResponseRate>1397.1430909315718</AvgResponseRate>\\r\\n\\t\\t\\t<AvgObjectSize>1953033.5543209878</AvgObjectSize>\\r\\n\\t\\t\\t<Qps>0.0016071428571428571</Qps>\\r\\n\\t\\t\\t<AvgResponseTime>1397.8765432098764</AvgResponseTime>\\r\\n\\t\\t</IspProportionData>\\r\\n\\t\\t<IspProportionData>\\r\\n\\t\\t\\t<Bps>40343.86242857143</Bps>\\r\\n\\t\\t\\t<Proportion>0.33908754623921084</Proportion>\\r\\n\\t\\t\\t<TotalBytes>254166333</TotalBytes>\\r\\n\\t\\t\\t<BytesProportion>0.37532921137846464</BytesProportion>\\r\\n\\t\\t\\t<TotalQuery>88</TotalQuery>\\r\\n\\t\\t\\t<IspEname>mobile</IspEname>\\r\\n\\t\\t\\t<Isp>移动</Isp>\\r\\n\\t\\t\\t<AvgResponseRate>787.8073097249128</AvgResponseRate>\\r\\n\\t\\t\\t<AvgObjectSize>2888253.7875</AvgObjectSize>\\r\\n\\t\\t\\t<Qps>0.001746031746031746</Qps>\\r\\n\\t\\t\\t<AvgResponseTime>3666.193181818182</AvgResponseTime>\\r\\n\\t\\t</IspProportionData>\\r\\n\\t</Value>\\r\\n\\t<DataInterval>86400</DataInterval>\\r\\n\\t<RequestId>2E5AD83F-BD7B-462E-8319-2E30E305519A</RequestId>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<EndTime>2019-12-06T12:00:00Z</EndTime>\\r\\n\\t<StartTime>2019-12-05T12:00:00Z</StartTime>\\r\\n</DescribeDcdnDomainIspDataResponse>\\r\\n\\t\\r\\n","errorExample":""}]', - 'title' => '查询用户运营商分布数据', - 'description' => '- 单用户调用频率:100次/秒。'."\n" - .'- 不指定StartTime和EndTime时,默认读取过去24小时的数据,同时支持按指定的起止时间查询,两者需要同时指定;'."\n" - .'- 只支持一个域名,或当前用户下所有域名;'."\n" - .'- 最多可获取最近90天的数据。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"09ABE829-6CD3-4FE0-AFEE-556113E29727\\",\\n \\"DomainDetail\\": {\\n \\"GmtCreated\\": \\"2017-11-27T06:51:26Z\\",\\n \\"SSLPub\\": \\"xxx\\",\\n \\"Description\\": \\"Beijing ICP Filing No. 1703xxxx\\",\\n \\"SSLProtocol\\": \\"on\\",\\n \\"ResourceGroupId\\": \\"rg-acfmyuji4b6r4**\\",\\n \\"Scope\\": \\"overseas\\",\\n \\"Cname\\": \\"example.aliyundoc.com\\",\\n \\"DomainStatus\\": \\"online\\",\\n \\"GmtModified\\": \\"2017-11-27T06:51:25Z\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Sources\\": {\\n \\"Source\\": [\\n {\\n \\"Type\\": \\"oss\\",\\n \\"Weight\\": \\"20\\",\\n \\"Enabled\\": \\"online\\",\\n \\"Priority\\": \\"50\\",\\n \\"Port\\": 80,\\n \\"Content\\": \\"example.org\\"\\n }\\n ]\\n },\\n \\"Scene\\": \\"apiscene\\",\\n \\"FunctionType\\": \\"routine\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainDetailResponse>\\n <RequestId>09ABE829-6CD3-4FE0-AFEE-556113E29727</RequestId>\\n <DomainDetail>\\n <GmtCreated>2017-11-27T06:51:26Z</GmtCreated>\\n <SSLPub>xxx</SSLPub>\\n <Description>京ICP备1703xxxx号</Description>\\n <SSLProtocol>on</SSLProtocol>\\n <ResourceGroupId>rg-acfmyuji4b6r4**</ResourceGroupId>\\n <Scope>overseas</Scope>\\n <Cname>example.aliyundoc.com</Cname>\\n <DomainStatus>online</DomainStatus>\\n <GmtModified>2017-11-27T06:51:25Z</GmtModified>\\n <DomainName>example.com</DomainName>\\n <Sources>\\n <Type>oss</Type>\\n <Weight>20</Weight>\\n <Enabled>online</Enabled>\\n <Priority>50</Priority>\\n <Port>80</Port>\\n <Content>example.org</Content>\\n </Sources>\\n </DomainDetail>\\n</DescribeDcdnDomainDetailResponse>","errorExample":""}]', + 'title' => '查询域名详情', + 'description' => '> 单用户调用频率:30次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-08-29T08:41:52.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2022-10-27T07:42:51.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainDetail'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + ], ], 'DescribeDcdnDomainHitRateData' => [ 'summary' => '调用DescribeDcdnDomainHitRateData查询域名的字节命中率(命中字节百分比)。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6488,56 +7410,34 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,仅支持单个域名查询。'."\n" - ."\n" - .'不填默认查询所有域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '加速域名,仅支持单个域名查询。'."\n" + ."\n" + .'不填默认查询所有域名。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-03-02T12:00:00Z', - ], + 'schema' => ['description' => '获取数据起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2018-03-02T12:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'结束时间需大于起始时间。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-03-02T15:00:00Z', - ], + 'schema' => ['description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'结束时间需大于起始时间。'."\n", 'type' => 'string', 'required' => false, 'example' => '2018-03-02T15:00:00Z'], ], [ 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度,单位为秒。'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见上方的**支持查询的时间粒度**。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => '查询数据的时间粒度,单位为秒。'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见上方的**支持查询的时间粒度**。'."\n", 'type' => 'string', 'required' => false, 'example' => '300'], ], ], 'responses' => [ @@ -6545,31 +7445,11 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2018-03-02T15:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2018-03-02T12:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4D07ABFE-4737-4834-B1B9-A661308C47B4', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,以秒为单位。', - 'type' => 'string', - 'example' => '3600', - ], + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2018-03-02T15:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2018-03-02T12:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '4D07ABFE-4737-4834-B1B9-A661308C47B4'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔,以秒为单位。', 'type' => 'string', 'example' => '3600'], 'HitRatePerInterval' => [ 'type' => 'object', 'itemNode' => true, @@ -6580,57 +7460,30 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2018-03-02T13:00:00Z', - ], - 'ByteHitRate' => [ - 'description' => '字节命中百分占比。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'ReqHitRate' => [ - 'description' => '请求命中百分占比。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2018-03-02T13:00:00Z'], + 'ByteHitRate' => ['description' => '字节命中百分占比。', 'type' => 'number', 'format' => 'float', 'example' => '0'], + 'ReqHitRate' => ['description' => '请求命中百分占比。', 'type' => 'number', 'format' => 'float', 'example' => '0'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2018-03-02T15:00:00Z\\",\\n \\"StartTime\\": \\"2018-03-02T12:00:00Z\\",\\n \\"RequestId\\": \\"4D07ABFE-4737-4834-B1B9-A661308C47B4\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"3600\\",\\n \\"HitRatePerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TimeStamp\\": \\"2018-03-02T13:00:00Z\\",\\n \\"ByteHitRate\\": 0,\\n \\"ReqHitRate\\": 0\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainHitRateDataResponse>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>3600</DataInterval>\\r\\n\\t<HitRatePerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<ByteHitRate>0</ByteHitRate>\\r\\n\\t\\t\\t<TimeStamp>2018-03-02T15:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<ReqHitRate>0</ReqHitRate>\\r\\n\\t\\t</DataModule>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<ByteHitRate>0</ByteHitRate>\\r\\n\\t\\t\\t<TimeStamp>2018-03-02T14:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<ReqHitRate>0</ReqHitRate>\\r\\n\\t\\t</DataModule>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<ByteHitRate>0</ByteHitRate>\\r\\n\\t\\t\\t<TimeStamp>2018-03-02T13:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<ReqHitRate>0</ReqHitRate>\\r\\n\\t\\t</DataModule>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<ByteHitRate>0</ByteHitRate>\\r\\n\\t\\t\\t<TimeStamp>2018-03-02T12:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<ReqHitRate>0</ReqHitRate>\\r\\n\\t\\t</DataModule>\\r\\n\\t</HitRatePerInterval>\\r\\n\\t<RequestId>4D07ABFE-4737-4834-B1B9-A661308C47B4</RequestId>\\r\\n\\t<EndTime>2018-03-02T15:00:00Z</EndTime>\\r\\n\\t<StartTime>2018-03-02T12:00:00Z</StartTime>\\r\\n</DescribeDcdnDomainHitRateDataResponse>\\r\\n\\t\\r\\n","errorExample":""}]', 'title' => '查询字节命中率', 'description' => '- 单用户调用频率:100次/秒。'."\n" .'- 不指定**StartTime**和**EndTime**时,默认读取过去24小时的数据;指定**StartTime**和**EndTime**时,按指定的起止时间查询'."\n" @@ -6646,17 +7499,30 @@ 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainQpsData' => [ - 'summary' => '调用DescribeDcdnDomainQpsData查询域名的每秒访问次数QPS。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainHitRateData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainHitRateData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2018-03-02T15:00:00Z\\",\\n \\"StartTime\\": \\"2018-03-02T12:00:00Z\\",\\n \\"RequestId\\": \\"4D07ABFE-4737-4834-B1B9-A661308C47B4\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"3600\\",\\n \\"HitRatePerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TimeStamp\\": \\"2018-03-02T13:00:00Z\\",\\n \\"ByteHitRate\\": 0,\\n \\"ReqHitRate\\": 0\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainHitRateDataResponse>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>3600</DataInterval>\\r\\n\\t<HitRatePerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<ByteHitRate>0</ByteHitRate>\\r\\n\\t\\t\\t<TimeStamp>2018-03-02T15:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<ReqHitRate>0</ReqHitRate>\\r\\n\\t\\t</DataModule>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<ByteHitRate>0</ByteHitRate>\\r\\n\\t\\t\\t<TimeStamp>2018-03-02T14:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<ReqHitRate>0</ReqHitRate>\\r\\n\\t\\t</DataModule>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<ByteHitRate>0</ByteHitRate>\\r\\n\\t\\t\\t<TimeStamp>2018-03-02T13:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<ReqHitRate>0</ReqHitRate>\\r\\n\\t\\t</DataModule>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<ByteHitRate>0</ByteHitRate>\\r\\n\\t\\t\\t<TimeStamp>2018-03-02T12:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<ReqHitRate>0</ReqHitRate>\\r\\n\\t\\t</DataModule>\\r\\n\\t</HitRatePerInterval>\\r\\n\\t<RequestId>4D07ABFE-4737-4834-B1B9-A661308C47B4</RequestId>\\r\\n\\t<EndTime>2018-03-02T15:00:00Z</EndTime>\\r\\n\\t<StartTime>2018-03-02T12:00:00Z</StartTime>\\r\\n</DescribeDcdnDomainHitRateDataResponse>\\r\\n\\t\\r\\n","errorExample":""}]', + ], + 'DescribeDcdnDomainHttpCodeData' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6667,85 +7533,50 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名。'."\n" - ."\n" - .'多个域名用英文逗号(,)分隔,不传该参数默认查询所有加速域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '加速域名,多个域名用英文逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的起始时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', - ], + 'schema' => ['description' => '获取数据的起始时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2019-03-01T00:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的结束时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需晚于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], + 'schema' => ['description' => '获取数据的结束时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2019-03-02T00:00:00Z'], ], [ 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度,单位为秒。'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => '查询数据的时间粒度,单位为秒。'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。', 'type' => 'string', 'required' => false, 'example' => '300'], ], [ 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名。'."\n" - ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有运营商。', - 'type' => 'string', - 'required' => false, - 'example' => 'unicom', - ], + 'schema' => ['description' => '运营商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获取,默认查询所有运营商。', 'type' => 'string', 'required' => false, 'example' => 'unicom'], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '地域商英文名。'."\n" - ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有地域。', - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => '地域商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获取,默认查询所有地域。', 'type' => 'string', 'required' => false, 'example' => 'beijing'], ], ], 'responses' => [ @@ -6753,166 +7584,104 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BEA5625F-8FCF-48F4-851B-CA63946DA664', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,以秒为单位。', - 'type' => 'string', - 'example' => '300', - ], - 'QpsDataPerInterval' => [ + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2018-03-01T13:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2019-03-01T00:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '91FC2D9D-B042-4634-8A5C-7B8E7482C22D'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔,以秒为单位。', 'type' => 'string', 'example' => '300'], + 'DataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => '每个时间间隔的每秒访问次数QPS。', + 'description' => '每个时间间隔的HTTP返回码占比数据。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'DynamicHttpsAcc' => [ - 'description' => '动态HTTPS访问次数。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'DynamicHttpAcc' => [ - 'description' => '动态HTTP访问次数。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'Qps' => [ - 'description' => '总QPS。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.56', - ], - 'StaticHttpsAcc' => [ - 'description' => '静态HTTPS访问次数。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'StaticHttpQps' => [ - 'description' => '静态HTTP QPS。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'StaticHttpAcc' => [ - 'description' => '静态HTTP访问次数。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'DynamicHttpsQps' => [ - 'description' => '动态HTTPS QPS。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'Acc' => [ - 'description' => '总访问次数。', - 'type' => 'number', - 'format' => 'float', - 'example' => '100', - ], - 'StaticHttpsQps' => [ - 'description' => '静态HTTPS QPS。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'DynamicHttpQps' => [ - 'description' => '动态HTTP QPS。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2019-03-01T13:00:00Z'], + 'HttpCodeDataPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'HttpCodeDataModule' => [ + 'description' => '各返回码占比使用数据列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => 'HTTP返回码。', 'type' => 'integer', 'format' => 'int32', 'example' => '404'], + 'Proportion' => ['description' => '占比使用数据。', 'type' => 'number', 'format' => 'float', 'example' => '33.333333'], + 'Count' => ['description' => '总数。', 'type' => 'number', 'format' => 'float', 'example' => '1'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"BEA5625F-8FCF-48F4-851B-CA63946DA664\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"QpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"DynamicHttpsAcc\\": 0,\\n \\"DynamicHttpAcc\\": 0,\\n \\"Qps\\": 0.56,\\n \\"StaticHttpsAcc\\": 0,\\n \\"StaticHttpQps\\": 0,\\n \\"StaticHttpAcc\\": 0,\\n \\"DynamicHttpsQps\\": 0,\\n \\"Acc\\": 100,\\n \\"StaticHttpsQps\\": 0,\\n \\"DynamicHttpQps\\": 0,\\n \\"TimeStamp\\": \\"2017-12-10T21:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainQpsDataResponse>\\r\\n\\t<QpsDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T21:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Qps>0.56</Qps>\\r\\n\\t\\t\\t<DynamicHttpQps>0.28</DynamicHttpQps>\\r\\n\\t\\t\\t<DynamicHttpsQps>0.28</DynamicHttpsQps>\\r\\n\\t\\t\\t<StaticHttpQps>0</StaticHttpQps>\\r\\n\\t\\t\\t<StaticHttpsQps>0</StaticHttpsQps>\\r\\n\\t\\t\\t<Acc>100</Acc>\\r\\n\\t\\t\\t<DynamicHttpAcc>50</DynamicHttpAcc>\\r\\n\\t\\t\\t<DynamicHttpsAcc>50</DynamicHttpsAcc>\\r\\n\\t\\t\\t<StaticHttpAcc>0</StaticHttpAcc>\\r\\n\\t\\t\\t<StaticHttpsAcc>0</StaticHttpsAcc>\\r\\n\\t\\t</DataModule>\\r\\n\\t</QpsDataPerInterval>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>300</DataInterval>\\r\\n\\t<RequestId>BEA5625F-8FCF-48F4-851B-CA63946DA664</RequestId>\\r\\n\\t<StartTime>2017-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2017-12-10T21:00:00Z</EndTime>\\r\\n</DescribeDcdnDomainQpsDataResponse>\\r\\n\\t\\r\\n","errorExample":""}]', - 'title' => '查询QPS', - 'description' => '- 单用户调用频率:100次/秒。'."\n" - .'- 不指定**StartTime**和**EndTime**,默认返回过去24小时的数据;指定**StartTime**和**EndTime**,返回指定起止时间的数据。'."\n" + 'title' => '查询HTTP状态码', + 'summary' => '调用DescribeDcdnDomainHttpCodeData获取加速域名的HTTP返回码总数和占比数据。', + 'description' => '- 不指定**StartTime**和**EndTime**,默认返回过去24小时的数据;指定**StartTime**和**EndTime**,该接口返回指定时间段的数据。'."\n" + .'- 单用户调用频率:100次/秒。 '."\n" ."\n" .'**支持查询的时间粒度**'."\n" ."\n" .'根据单次查询的最大时间跨度不同,请求参数Interval支持不同的查询数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" ."\n" - .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟 |'."\n" - .'| -------------- | -------------- | ------ | ----- |'."\n" - .'| 5分钟 | 3天 | 93天 | 15分钟 |'."\n" - .'| 1小时 | 31天 | 186天 | 一般延迟3-4小时 |'."\n" - .'| 1天 | 366天 | 366天 | 一般延迟4小时,不超过24小时 |', + .'|时间粒度 |单次查询的最大时间跨度 |可查询历史数据时间范围|数据延迟|'."\n" + .'|---------------|--------|-----|-------|'."\n" + .'|5分钟|3天|93天|15分钟|'."\n" + .'|1小时|31天|186天|一般延迟3-4小时|'."\n" + .'|1天|366天|366天|一般延迟4小时,不超过24小时|', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainQpsDataByLayer' => [ - 'summary' => '调用DescribeDcdnDomainQpsDataByLayer按协议查询域名的每秒访问次数QPS。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainHttpCodeData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainHttpCodeData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2018-03-01T13:00:00Z\\",\\n \\"StartTime\\": \\"2019-03-01T00:00:00Z\\",\\n \\"RequestId\\": \\"91FC2D9D-B042-4634-8A5C-7B8E7482C22D\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"DataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TimeStamp\\": \\"2019-03-01T13:00:00Z\\",\\n \\"HttpCodeDataPerInterval\\": {\\n \\"HttpCodeDataModule\\": [\\n {\\n \\"Code\\": 404,\\n \\"Proportion\\": 33.333333,\\n \\"Count\\": 1\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainHttpCodeDataResponse>\\n<DataInterval>300</DataInterval>\\n<RequestId>273642D8-A11C-420B-8EB5-BD62AE1FC69B</RequestId>\\n<DomainName>example.com</DomainName>\\n<DataPerInterval>\\n <DataModule>\\n <TimeStamp>2019-03-01T13:00:00Z</TimeStamp>\\n <HttpCodeDataPerInterval>\\n <HttpCodeDataModule>\\n <Count>16</Count>\\n <Proportion>100</Proportion>\\n <Code>404</Code>\\n </HttpCodeDataModule>\\n </HttpCodeDataPerInterval>\\n </DataModule>\\n</DataPerInterval>\\n<EndTime>2018-03-01T13:05:00Z</EndTime>\\n<StartTime>2018-03-01T13:00:00Z</StartTime>\\n</DescribeDcdnDomainHttpCodeDataResponse>","errorExample":""}]', + ], + 'DescribeDcdnDomainHttpCodeDataByLayer' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6923,88 +7692,51 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的加速域名。支持批量域名查询,多个域名用半角逗号(,)分隔,最多支持500个域名,多个域名会按照聚合结果进行输出。'."\n" - .'若参数为空,默认返回所有加速域名合并后的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '需要查询的加速域名。支持批量域名查询,多个域名用半角逗号(,)分隔,最多支持500个域名,多个域名会按照聚合结果进行输出。'."\n" + .'若参数为空,默认返回所有加速域名合并后的数据。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'."\n" - .'最小数据粒度为5分钟。'."\n" - .'不写默认读取过去24小时数据。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T20:00:00Z', - ], + 'schema' => ['description' => '获取数据起始时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'."\n" + .'最小数据粒度为5分钟。'."\n" + .'不写默认读取过去24小时数据。', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T20:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据结束时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T21:00:00Z', - ], + 'schema' => ['description' => '获取数据结束时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T21:00:00Z'], ], [ 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => '指定查询数据的时间粒度,单位:秒。'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。', - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => '指定查询数据的时间粒度,单位:秒。'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。', 'type' => 'string', 'required' => false, 'example' => '300'], ], [ 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名,通过[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获得,不传值代表所有运营商。', - 'type' => 'string', - 'required' => false, - 'example' => 'telecom', - ], + 'schema' => ['description' => '运营商英文名,通过[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获得,不传值代表所有运营商。', 'type' => 'string', 'required' => false, 'example' => 'telecom'], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '区域英文名,通过[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获得,不传值代表所有区域。', - 'type' => 'string', - 'required' => false, - 'example' => 'hangzhou', - ], + 'schema' => ['description' => '区域英文名,通过[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获得,不传值代表所有区域。', 'type' => 'string', 'required' => false, 'example' => 'hangzhou'], ], [ 'name' => 'Layer', 'in' => 'query', - 'schema' => [ - 'description' => '查询维度,可选网络层(IPv4、IPv6)或应用层(http、https、quic)或all。'."\n" - .'默认为all。', - 'type' => 'string', - 'required' => false, - 'example' => 'all', - ], + 'schema' => ['description' => '查询维度,可选网络层(IPv4、IPv6)或应用层(http、https、quic)或 all。'."\n" + .'默认为all。', 'type' => 'string', 'required' => false, 'example' => 'all'], ], ], 'responses' => [ @@ -7012,142 +7744,83 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2015-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2015-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BEA5625F-8FCF-48F4-851B-CA63946DA664', - ], - 'Layer' => [ - 'description' => '返回的Layer。', - 'type' => 'string', - 'example' => 'all', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,单位:秒。', - 'type' => 'string', - 'example' => '300', - ], - 'QpsDataInterval' => [ + 'DataInterval' => ['description' => '每条记录的时间间隔,单位:秒。', 'type' => 'string', 'example' => '300'], + 'RequestId' => ['description' => '请求ID。'."\n", 'type' => 'string', 'example' => 'BEA5625F-8FCF-48F4-851B-CA63946DA664'], + 'HttpCodeDataInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => '每个时间间隔的每秒访问次数QPS。', + 'description' => '每个时间间隔的HTTP Code分布情况,单位:个。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Value' => [ - 'description' => 'QPS总数。', - 'type' => 'string', - 'example' => '0.56', - ], - 'AccValue' => [ - 'description' => '总请求次数。', - 'type' => 'string', - 'example' => '56', - ], - 'AccDomesticValue' => [ - 'description' => '中国内地请求数。', - 'type' => 'string', - 'example' => '12', - ], - 'OverseasValue' => [ - 'description' => '全球(不包含中国内地)QPS。', - 'type' => 'string', - 'example' => '0.44', - ], - 'AccOverseasValue' => [ - 'description' => '全球(不包含中国内地)请求数。', - 'type' => 'string', - 'example' => '44', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2015-12-10T21:00:00Z', - ], - 'DomesticValue' => [ - 'description' => '中国内地QPS。', - 'type' => 'string', - 'example' => '0.12', - ], + 'Value' => ['description' => '每个Http Code对应的响应次数。', 'type' => 'object', 'example' => '{"200": 10,"206": 100}'], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2015-12-10T21:00:00Z'], + 'TotalValue' => ['description' => '总响应次数。', 'type' => 'string', 'example' => '110'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2015-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"BEA5625F-8FCF-48F4-851B-CA63946DA664\\",\\n \\"Layer\\": \\"all\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"QpsDataInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"0.56\\",\\n \\"AccValue\\": \\"56\\",\\n \\"AccDomesticValue\\": \\"12\\",\\n \\"OverseasValue\\": \\"0.44\\",\\n \\"AccOverseasValue\\": \\"44\\",\\n \\"TimeStamp\\": \\"2015-12-10T21:00:00Z\\",\\n \\"DomesticValue\\": \\"0.12\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainQpsDataByLayerResponse>\\n<QpsDataInterval>\\n <DataModule>\\n <TimeStamp>2015-12-10T21:00:00Z</TimeStamp>\\n <Value>0.56</Value>\\n <AccValue>56</AccValue>\\n </DataModule>\\n <DataModule>\\n <TimeStamp>2015-12-10T20:35:00Z</TimeStamp>\\n <Value>0.64</Value>\\n <AccValue>56</AccValue>\\n </DataModule>\\n</QpsDataInterval>\\n<Layer>all</Layer>\\n<DomainName>example.com</DomainName>\\n<DataInterval>300</DataInterval>\\n<RequestId>BEA5625F-8FCF-48F4-851B-CA63946DA664</RequestId>\\n<StartTime>2015-12-10T20:00:00Z</StartTime>\\n<EndTime>2015-12-10T21:00:00Z</EndTime>\\n</DescribeDcdnDomainQpsDataByLayerResponse>","errorExample":""}]', - 'title' => '查询QPS-按协议', - 'description' => '> '."\n" - .'> - 单用户调用频率:20次/秒。'."\n" - .'> - 不指定**StartTime**和**EndTime**,默认返回过去24小时的数据;指定**StartTime**和**EndTime**,返回指定起止时间的数据。'."\n" + 'title' => '查询HTTP状态码-按协议', + 'summary' => '调用DescribeDcdnDomainHttpCodeDataByLayer按协议分类获取HTTP状态码数据。', + 'description' => '- 单用户调用频率:20次/秒。'."\n" + .'- 不支持IP协议查询。'."\n" + .'- 不指定**StartTime**和**EndTime**,默认返回过去24小时的数据;指定**StartTime**和**EndTime**,返回指定起止时间的数据。'."\n" ."\n" .'**支持查询的时间粒度**'."\n" ."\n" .'根据单次查询的最大时间跨度不同,请求参数Interval支持不同的查询数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟 |'."\n" - .'| -------------- | -------------- | ------|----------|'."\n" + .'| -------------- | -------------- | ------ | ------ |'."\n" .'| 5分钟 | 3天 | 93天 | 15分钟 |'."\n" - .'| 1小时 | 31天 | 186天 | 一般延迟3-4小时 |'."\n" - .'| 1天 | 366天 | 366天 | 一般延迟4小时,不超过24小时|', + .'| 1小时 | 31天 | 186天 | 一般延迟3-4小时|'."\n" + .'| 1天 | 90天 | 366天 |一般延迟4小时,不超过24小时 |', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainBpsData' => [ - 'summary' => '调用DescribeDcdnDomainBpsData查询加速域名的网络带宽监控数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainHttpCodeDataByLayer'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainHttpCodeDataByLayer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DataInterval\\": \\"300\\",\\n \\"RequestId\\": \\"BEA5625F-8FCF-48F4-851B-CA63946DA664\\",\\n \\"HttpCodeDataInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": {\\n \\"200\\": 10,\\n \\"206\\": 100\\n },\\n \\"TimeStamp\\": \\"2015-12-10T21:00:00Z\\",\\n \\"TotalValue\\": \\"110\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainHttpCodeDataByLayerResponse>\\n<HttpCodeDataInterval>\\n <DataModule>\\n <TimeStamp>2015-12-10T21:00:00Z</TimeStamp>\\n <Value>\\n <200>10</200>\\n <206>100</206>\\n </Value>\\n <TotalValue>110</TotalValue>\\n </DataModule>\\n <DataModule>\\n <TimeStamp>2015-12-10T20:35:00Z</TimeStamp>\\n <Value>\\n <200>12</200>\\n <206>120</206>\\n </Value>\\n <TotalValue>132</TotalValue>\\n </DataModule>\\n</HttpCodeDataInterval>\\n<DataInterval>300</DataInterval>\\n<RequestId>BEA5625F-8FCF-48F4-851B-CA63946DA664</RequestId>\\n</DescribeDcdnDomainHttpCodeDataByLayerResponse>","errorExample":""}]', + ], + 'DescribeDcdnDomainIpaBpsData' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7158,86 +7831,70 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn6V3WP1', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名。'."\n" - ."\n" - .'多个域名用半角逗号(,)分隔,不传该参数默认查询所有加速域名。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '加速域名。'."\n" + ."\n" + .'多个域名用英文逗号(,)分隔,默认查询所有加速域名。'."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的起始时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', - ], + 'schema' => ['description' => '获取数据的起始时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的结束时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需大于起始时间。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], + 'schema' => ['description' => '获取数据的结束时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z'], + ], + [ + 'name' => 'TimeMerge', + 'in' => 'query', + 'schema' => ['description' => '是否自适应计算**Interval**值,如果**timeMerge**=**1**,会根据**startTime**和**endTime**计算出合适的**inteval**值,和**Interval**参数任选。', 'type' => 'string', 'required' => false, 'example' => '1'], ], [ 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度,单位为秒。'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => '查询数据的时间粒度,单位为秒。'."\n" + ."\n" + .'根据您指定**StartTime**和**EndTime**两者的时间跨度,该参数取值如下:'."\n" + ."\n" + .'- 3天以内(不包含3天整):支持**300**、**3600**、 **86400**,如果不传该参数,默认值为**300**。'."\n" + ."\n" + .'- 3~31天(不包含31天整):支持**3600**和**86400**,如果不传该参数,默认值为**3600**。'."\n" + ."\n" + .'- 31天及以上:支持**86400**,如果不传该参数,默认值为**86400**。'."\n", 'type' => 'string', 'required' => false, 'example' => '300'], + ], + [ + 'name' => 'FixTimeGap', + 'in' => 'query', + 'schema' => ['description' => '是否补零。取值:'."\n" + .'- **true**:补零。'."\n" + .'- **false**:不补零。', 'type' => 'string', 'required' => false, 'example' => 'false'], ], [ 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名。'."\n" - ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有运营商。', - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => '运营商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有运营商。', 'type' => 'string', 'required' => false, 'example' => 'Unicom'], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '地域英文名。'."\n" - ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有地域。', - 'type' => 'string', - 'required' => false, - 'example' => 'unicom', - ], + 'schema' => ['description' => '地域商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有地域。', 'type' => 'string', 'required' => false, 'example' => 'beijing'], ], ], 'responses' => [ @@ -7245,31 +7902,11 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2017-12-10T10:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '数据的时间粒度。', - 'type' => 'string', - 'example' => '300', - ], + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => ' 数据间隔时间。单位:秒。', 'type' => 'string', 'example' => '300'], 'BpsDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, @@ -7280,101 +7917,62 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'StaticHttpsBps' => [ - 'description' => '静态https bps数据值,单位:bit/s。', - 'type' => 'number', - 'format' => 'float', - 'example' => '123', - ], - 'Bps' => [ - 'description' => 'bps数据值,单位:bit/s。', - 'type' => 'number', - 'format' => 'float', - 'example' => '11286', - ], - 'DynamicHttpsBps' => [ - 'description' => '动态https bps数据值,单位:bit/s。'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '12312', - ], - 'DynamicHttpBps' => [ - 'description' => '动态http bps数据值,单位:bit/s。', - 'type' => 'number', - 'format' => 'float', - 'example' => '11286111', - ], - 'StaticHttpBps' => [ - 'description' => '静态http bps数据值,单位:bit/s。', - 'type' => 'number', - 'format' => 'float', - 'example' => '123', - ], + 'IpaBps' => ['description' => '带宽数据值,单位:bit/second。', 'type' => 'number', 'format' => 'float', 'example' => '11288111'], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T10:00:00Z\\",\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"BpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\",\\n \\"StaticHttpsBps\\": 123,\\n \\"Bps\\": 11286,\\n \\"DynamicHttpsBps\\": 12312,\\n \\"DynamicHttpBps\\": 11286111,\\n \\"StaticHttpBps\\": 123\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainBpsDataResponse>\\r\\n\\t<BpsDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Bps>11288111</Bps>\\r\\n\\t\\t\\t<DynamicHttpBps>11286111</DynamicHttpBps>\\r\\n\\t\\t\\t<DynamicHttpsBps>2000</DynamicHttpsBps>\\r\\n\\t\\t\\t<StaticHttpBps>0</StaticHttpBps>\\r\\n\\t\\t\\t<StaticHttpsBps>0</StaticHttpsBps>\\r\\n\\t\\t</DataModule>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T20:05:00Z</TimeStamp>\\r\\n\\t\\t\\t<Bps>11288111</Bps>\\r\\n\\t\\t\\t<DynamicHttpBps>11286111</DynamicHttpBps>\\r\\n\\t\\t\\t<DynamicHttpsBps>2000</DynamicHttpsBps>\\r\\n\\t\\t\\t<StaticHttpBps>0</StaticHttpBps>\\r\\n\\t\\t\\t<StaticHttpsBps>0</StaticHttpsBps>\\r\\n\\t\\t</DataModule>\\r\\n\\t</BpsDataPerInterval>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>300</DataInterval>\\r\\n\\t<RequestId>3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F</RequestId>\\r\\n\\t<StartTime>2017-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2017-12-10T21:00:00Z</EndTime>\\r\\n</DescribeDcdnDomainBpsDataResponse>\\r\\n\\t\\r\\n","errorExample":""}]', - 'title' => '查询网络带宽监控数据', - 'description' => '- 单用户调用频率:100次/秒。'."\n" - .'- 不指定**StartTime**和**EndTime**,默认返回过去24小时的数据;指定**StartTime**和**EndTime**,返回指定起止时间的数据。'."\n" - .' '."\n" - .'**支持查询的时间粒度**'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,请求参数Interval支持不同的查询数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" - .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟 |'."\n" - .'| -------------- | -------------- | ------|-----|'."\n" - .'| 5分钟 | 3天 | 93天 | 15分钟 |'."\n" - .'| 1小时 | 31天 | 186天 | 4小时 |'."\n" - .'| 1天 | 366天 | 366天 | 次日凌晨4点 |', + 'title' => '获取四层加速的带宽数据', + 'summary' => '调用DescribeDcdnDomainIpaBpsData获取加速域名四层加速的网络带宽监控数据,支持获取最近90天的数据。', + 'description' => '> '."\n" + .'> - 该接口获取数据的单位为:bit/second。'."\n" + .'> - 不指定**StartTime**和**EndTime**,默认返回过去24小时的数据;指定**StartTime**和**EndTime**,返回指定起止时间的数据。'."\n" + .'> - 单用户调用频率:100次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainBpsDataByLayer' => [ - 'summary' => '调用DescribeDcdnDomainBpsDataByLayer按协议分类获取带宽数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainIpaBpsData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainIpaBpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"BpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"IpaBps\\": 11288111,\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainIpaBpsDataResponse>\\r\\n\\t<BpsDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<IpaBps>11288111</IpaBps>\\r\\n\\t\\t</DataModule>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T20:05:00Z</TimeStamp>\\r\\n\\t\\t\\t<IpaBps>11288111</IpaBps>\\r\\n\\t\\t</DataModule>\\r\\n\\t</BpsDataPerInterval>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>300</DataInterval>\\r\\n\\t<RequestId>3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F</RequestId>\\r\\n\\t<StartTime>2017-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2017-12-10T21:00:00Z</EndTime>\\r\\n</DescribeDcdnDomainIpaBpsDataResponse>","errorExample":""}]', + ], + 'DescribeDcdnDomainIpaConnData' => [ + 'summary' => '调用DescribeDcdnDomainIpaConnData查询IPA用户连接数。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7385,89 +7983,38 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的加速域名。支持批量域名查询,多个域名用半角逗号(,)分隔,最多支持500个域名,多个域名会按照聚合结果进行输出。'."\n" - .'若参数为空,默认返回所有加速域名合并后的数据。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com ', - ], + 'schema' => ['description' => 'IPA层应用加速域名,多个域名用英文逗号(,)分隔。'."\n" + .'> 若参数为空,默认返回所有加速域名合并后数据。'."\n", 'type' => 'string', 'required' => false, 'example' => 'example1.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'."\n" - .'最小数据粒度为5分钟。'."\n" - .'不写默认读取过去24小时数据。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T20:00:00Z', - ], + 'schema' => ['description' => '获取数据的起始时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2015-02-21T07:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据结束时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T21:00:00Z', - ], - ], - [ - 'name' => 'Interval', - 'in' => 'query', - 'schema' => [ - 'description' => '指定查询数据的时间粒度,单位:秒。'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。', - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], - ], - [ - 'name' => 'IspNameEn', - 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名,通过[DescribeDcdnRegionAndIsp](~~207199~~)接口获得,不传值代表所有运营商。', - 'type' => 'string', - 'required' => false, - 'example' => 'telecom', - ], - ], - [ - 'name' => 'LocationNameEn', - 'in' => 'query', - 'schema' => [ - 'description' => '区域英文名,通过[DescribeDcdnRegionAndIsp](~~207199~~)接口获得,不传值代表所有区域。', - 'type' => 'string', - 'required' => false, - 'example' => 'hangzhou', - ], + 'schema' => ['description' => '获取数据的结束时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + .'> 结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2015-02-22T7:00:00Z'], ], [ - 'name' => 'Layer', + 'name' => 'SplitBy', 'in' => 'query', - 'schema' => [ - 'description' => '查询维度,可选网络层(IPv4、IPv6)或应用层(http、https、quic)或 all。'."\n" - .'默认为all。', - 'type' => 'string', - 'required' => false, - 'example' => 'all', - ], + 'schema' => ['description' => '查询结果分组方式。取值:'."\n" + ."\n" + .'- domain:按加速域名分组。'."\n" + ."\n" + .'- 参数为空(默认):查询结果不分组。', 'type' => 'string', 'required' => false, 'example' => 'domain'], ], ], 'responses' => [ @@ -7475,121 +8022,76 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,单位:秒。', - 'type' => 'string', - 'example' => '300', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BEA5625F-8FCF-48F4-851B-CA63946DA664', - ], - 'BpsDataInterval' => [ + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2015-02-22T15:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2015-02-21T15:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A2A1EEF8-043E-43A1-807C-BEAC18EA1807'], + 'ConnectionDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => '每个时间间隔的每秒访问次数Bps。', + 'description' => '每个时间间隔的用户连接数。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Value' => [ - 'description' => '总Bps。', - 'type' => 'string', - 'example' => '0.56', - ], - 'TrafficValue' => [ - 'description' => '总流量,单位:字节。', - 'type' => 'string', - 'example' => '331', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2015-12-10T21:00:00Z', - ], - 'DynamicValue' => [ - 'description' => '动态总Bps。', - 'type' => 'string', - 'example' => '0.34', - ], - 'StaticValue' => [ - 'description' => '静态总Bps。', - 'type' => 'string', - 'example' => '0.22', - ], - 'DynamicTrafficValue' => [ - 'description' => '动态总流量,单位:字节。', - 'type' => 'string', - 'example' => '200', - ], - 'StaticTrafficValue' => [ - 'description' => '静态总流量,单位:字节。', - 'type' => 'string', - 'example' => '131', - ], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2022-02-21T15:00:00+08:00'], + 'Domain' => ['description' => '加速域名。', 'type' => 'string', 'example' => 'example1.com'], + 'Connections' => ['description' => 'IPA用户连接数。', 'type' => 'integer', 'format' => 'int64', 'example' => '189095'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The StartTime cannot exceed 31 days before the current time.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidTimeRange', 'errorMessage' => 'The time span between the StartTime and the EndTime cannot exceed 31 days.', 'description' => 'EndTime和StartTime差值不能超过31天'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DataInterval\\": \\"300\\",\\n \\"RequestId\\": \\"BEA5625F-8FCF-48F4-851B-CA63946DA664\\",\\n \\"BpsDataInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"0.56\\",\\n \\"TrafficValue\\": \\"331\\",\\n \\"TimeStamp\\": \\"2015-12-10T21:00:00Z\\",\\n \\"DynamicValue\\": \\"0.34\\",\\n \\"StaticValue\\": \\"0.22\\",\\n \\"DynamicTrafficValue\\": \\"200\\",\\n \\"StaticTrafficValue\\": \\"131\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainBpsDataByLayerResponse>\\n <DataInterval>300</DataInterval>\\n <RequestId>BEA5625F-8FCF-48F4-851B-CA63946DA664</RequestId>\\n <BpsDataInterval>\\n <Value>0.56</Value>\\n <TrafficValue>331</TrafficValue>\\n <TimeStamp>2015-12-10T21:00:00Z</TimeStamp>\\n <DynamicValue>0.34</DynamicValue>\\n <StaticValue>0.22</StaticValue>\\n <DynamicTrafficValue>200</DynamicTrafficValue>\\n <StaticTrafficValue>131</StaticTrafficValue>\\n </BpsDataInterval>\\n</DescribeDcdnDomainBpsDataByLayerResponse>","errorExample":""}]', - 'title' => '查询网络带宽监控数据-按协议', - 'description' => '- 单用户调用频率:20次/秒。'."\n" - .'- 如果您不指定**StartTime**和**EndTime**时,默认读取过去24小时的数据;指定**StartTime**和**EndTime**时,按指定的起止时间查询。'."\n" - ."\n" - .'**支持查询的时间粒度**'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,请求参数Interval支持不同的查询数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" - .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟 |'."\n" - .'| -------------- | -------------- | ------|----------|'."\n" - .'| 5分钟 | 3天 | 93天 | 15分钟 |'."\n" - .'| 1小时 | 31天 | 186天 | 一般延迟3-4小时 |'."\n" - .'| 1天 | 90天 | 366天 | 一般延迟4小时,不超过24小时 |', + 'title' => '查询IPA用户连接数', + 'description' => '> '."\n" + .'> - 单用户调用频率:10次/秒。'."\n" + .'> - 不指定**StartTime**和**EndTime**,默认返回过去24小时的数据;指定**StartTime**和**EndTime**,该接口返回指定时间段的数据。'."\n" + .'> - 数据最小查询粒度为5分钟;单次查询的最大时间跨度为31天;可查询历史数据时间范围最大为366天;数据延迟一般不超过10分钟。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainTrafficData' => [ - 'summary' => '调用DescribeDcdnDomainTrafficData查询域名的网络流量监控数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainIpaConnData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainIpaConnData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-02-22T15:00:00Z\\",\\n \\"StartTime\\": \\"2015-02-21T15:00:00Z\\",\\n \\"RequestId\\": \\"A2A1EEF8-043E-43A1-807C-BEAC18EA1807\\",\\n \\"ConnectionDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TimeStamp\\": \\"2022-02-21T15:00:00+08:00\\",\\n \\"Domain\\": \\"example1.com\\",\\n \\"Connections\\": 189095\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainIpaConnDataResponse>\\n<RequestId>A2A1EEF8-043E-43A1-807C-BEAC18EA1807</RequestId>\\n<StartTime>2015-02-21T15:00:00Z</StartTime>\\n<EndTime>2015-02-22T15:00:00Z</EndTime>\\n<ConnectionDataPerInterval>\\n <TimeStamp>2022-02-21T15:00:00+08:00</TimeStamp>\\n <domain>example1.com</domain>\\n <Connections>189095</Connections>\\n</ConnectionDataPerInterval>\\n<ConnectionDataPerInterval>\\n <TimeStamp>2022-02-21T15:05:00+08:00</TimeStamp>\\n <domain>example2.com</domain>\\n <Connections>194044</Connections>\\n</ConnectionDataPerInterval>\\n</DescribeDcdnDomainIpaConnDataResponse>","errorExample":""}]', + ], + 'DescribeDcdnDomainIpaTrafficData' => [ + 'summary' => '调用DescribeDcdnDomainIpaTrafficData获取加速域名的四层加速网络流量监控数据,支持获取最近90天的数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7600,85 +8102,73 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名。'."\n" - ."\n" - .'多个域名用英文逗号(,)分隔,默认查询所有加速域名。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '加速域名。'."\n" + ."\n" + .'多个域名用英文逗号(,)分隔,默认查询所有加速域名。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的起始时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', - ], + 'schema' => ['description' => '获取数据的起始时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的结束时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需晚于起始时间。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], + 'schema' => ['description' => '获取数据的结束时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z'], + ], + [ + 'name' => 'TimeMerge', + 'in' => 'query', + 'schema' => ['description' => '是否自适应计算**interval**值,如果**timeMerge**=**1**,会根据**StartTime**和**EndTime**计算出合适的**inteval**值,和**interval**参数任选。', 'type' => 'string', 'required' => false, 'example' => '1'], ], [ 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度,单位为秒。'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => '查询数据的时间粒度,单位为秒。'."\n" + ."\n" + .'根据您指定**StartTime**和**EndTime**两者的时间跨度,该参数取值如下:'."\n" + ."\n" + .'- 3天以内(不包含3天整):支持**300**、**3600**、 **86400**,如果不传该参数,默认值为**300**。'."\n" + ."\n" + .'- 3~31天(不包含31天整):支持**3600**和**86400**,如果不传该参数,默认值为**3600**。'."\n" + ."\n" + .'- 31天及以上:支持**86400**,如果不传该参数,默认值为**86400**。'."\n", 'type' => 'string', 'required' => false, 'example' => '300'], + ], + [ + 'name' => 'FixTimeGap', + 'in' => 'query', + 'schema' => ['description' => '是否补零。取值:'."\n" + ."\n" + .'- **true**:补零。'."\n" + ."\n" + .'- **false**:不补零。'."\n", 'type' => 'string', 'required' => false, 'example' => 'false'], ], [ 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名。'."\n" - ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有运营商。', - 'type' => 'string', - 'required' => false, - 'example' => 'unicom', - ], + 'schema' => ['description' => '运营商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有运营商。', 'type' => 'string', 'required' => false, 'example' => 'unicom'], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '地域英文名。'."\n" - ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有地域。', - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => '地域商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有地域。', 'type' => 'string', 'required' => false, 'example' => 'beijing'], ], ], 'responses' => [ @@ -7686,136 +8176,77 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,单位:秒。', - 'type' => 'string', - 'example' => '300', - ], + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔,以秒为单位。'."\n", 'type' => 'string', 'example' => '300'], 'TrafficDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => '每个时间间隔的流量数据,单位:Byte。', + 'description' => '每个时间间隔的流量数据。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'StaticHttpTraffic' => [ - 'description' => '静态HTTP流量。', - 'type' => 'number', - 'format' => 'float', - 'example' => '123', - ], - 'DynamicHttpsTraffic' => [ - 'description' => '动态HTTPS流量。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'Traffic' => [ - 'description' => '总流量。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'DynamicHttpTraffic' => [ - 'description' => '动态HTTP流量。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'StaticHttpsTraffic' => [ - 'description' => '静态HTTPS流量。', - 'type' => 'number', - 'format' => 'float', - 'example' => '132', - ], + 'IpaTraffic' => ['description' => '总流量。', 'type' => 'number', 'format' => 'float', 'example' => '423304182'], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"TrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"StaticHttpTraffic\\": 123,\\n \\"DynamicHttpsTraffic\\": 0,\\n \\"Traffic\\": 0,\\n \\"DynamicHttpTraffic\\": 0,\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\",\\n \\"StaticHttpsTraffic\\": 132\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainTrafficDataResponse>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>300</DataInterval>\\r\\n\\t<TrafficDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Traffic>423304182</Traffic>\\r\\n\\t\\t\\t<DynamicHttpTraffic>0</DynamicHttpTraffic>\\r\\n\\t\\t\\t<DynamicHttpsTraffic>423304182</DynamicHttpsTraffic>\\r\\n\\t\\t\\t<StaticHttpTraffic>0</StaticHttpTraffic>\\r\\n\\t\\t\\t<StaticHttpsTraffic>0</StaticHttpsTraffic>\\r\\n\\t\\t</DataModule>\\r\\n\\t</TrafficDataPerInterval>\\r\\n\\t<RequestId>B955107D-E658-4E77-B913-E0AC3D31693E</RequestId>\\r\\n\\t<StartTime>2017-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2017-12-10T21:00:00Z</EndTime>\\r\\n</DescribeDcdnDomainTrafficDataResponse>","errorExample":""}]', - 'title' => '查询网络流量监控数据', - 'description' => '- 不指定**StartTime**和**EndTime**,默认返回过去24小时的数据;指定**StartTime**和**EndTime**,返回指定起止时间的数据。'."\n" - .'- 单用户调用频率:100次/秒。'."\n" - ."\n" - .'**支持查询的时间粒度**'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,请求参数Interval支持不同的查询数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" - .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟 |'."\n" - .'| -------------- | -------------- | ------ | ------| '."\n" - .'| 5分钟 | 3天 | 93天 | 15分钟 |'."\n" - .'| 1小时 | 31天 | 186天 | 一般延迟3-4小时|'."\n" - .'| 1天 | 366天 | 366天 | 一般延迟4小时,不超过24小时 |', + 'title' => '获取四层加速流量监控数据', + 'description' => '> '."\n" + .'> - 不指定**StartTime**和**EndTime**,默认返回过去24小时的数据;指定**StartTime**和**EndTime**,返回指定起止时间的数据。'."\n" + .'> - 该接口获取数据的单位为:byte。'."\n" + .'> - 单用户调用频率:100次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainOriginBpsData' => [ - 'summary' => '调用DescribeDcdnDomainOriginBpsData查询域名的回源带宽监控数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainIpaTrafficData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainIpaTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"TrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"IpaTraffic\\": 423304182,\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainIpaTrafficDataResponse>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>300</DataInterval>\\r\\n\\t<TrafficDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<IpaTraffic>423304182</IpaTraffic>\\r\\n\\t\\t</DataModule>\\r\\n\\t</TrafficDataPerInterval>\\r\\n\\t<RequestId>B955107D-E658-4E77-B913-E0AC3D31693E</RequestId>\\r\\n\\t<StartTime>2017-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2017-12-10T21:00:00Z</EndTime>\\r\\n</DescribeDcdnDomainIpaTrafficDataResponse>","errorExample":""}]', + ], + 'DescribeDcdnDomainIspData' => [ + 'summary' => '调用DescribeDcdnDomainIspData查询加速域名天粒度的用户运营商分布数据统计,支持获取最近90天的数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7826,54 +8257,27 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,多个域名用英文逗号(,)分隔,默认查询所有加速域名。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '加速域名,仅支持查询单个域名。'."\n" + ."\n" + .'默认查询当前用户下所有域名。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2019-12-10T00:00:00Z', - ], + 'schema' => ['description' => '获取数据起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为YYYY-MM-DDThh:mm:ssZ。'."\n", 'type' => 'string', 'required' => false, 'example' => '2019-12-05T12:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需晚于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2019-12-11T00:00:00Z', - ], - ], - [ - 'name' => 'Interval', - 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度,单位为秒。'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => '获取数据结束时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为YYYY-MM-DDThh:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2019-12-06T12:00:00Z'], ], ], 'responses' => [ @@ -7881,137 +8285,89 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2019-12-11T00:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2019-12-10T00:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7CBCD6AD-B016-42E5-AE0B-B3731DE8F755', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,以秒为单位。', - 'type' => 'string', - 'example' => '300', - ], - 'OriginBpsDataPerInterval' => [ + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2019-12-06T12:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2019-12-05T12:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '2E5AD83F-BD7B-462E-8319-2E30E305519A'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔,单位:秒。', 'type' => 'string', 'example' => '86400'], + 'Value' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DataModule' => [ - 'description' => '每个时间间隔的回源带宽数据,单位:bit/s。', + 'IspProportionData' => [ + 'description' => '各运营商访问占比数据列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'DynamicHttpOriginBps' => [ - 'description' => '动态HTTP回源带宽数据。', - 'type' => 'number', - 'format' => 'float', - 'example' => '100', - ], - 'StaticHttpOriginBps' => [ - 'description' => '静态HTTP回源带宽数据。', - 'type' => 'number', - 'format' => 'float', - 'example' => '100', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2019-12-10T00:00:00Z', - ], - 'StaticHttpsOriginBps' => [ - 'description' => '静态HTTPS回源带宽数据。', - 'type' => 'number', - 'format' => 'float', - 'example' => '100', - ], - 'OriginBps' => [ - 'description' => '回源带宽数据。', - 'type' => 'number', - 'format' => 'float', - 'example' => '100', - ], - 'DynamicHttpsOriginBps' => [ - 'description' => '动态HTTPS回源带宽数据。', - 'type' => 'number', - 'format' => 'float', - 'example' => '100', - ], + 'Qps' => ['description' => '每秒查询率。', 'type' => 'string', 'example' => '5.9523809523809524E-5'], + 'TotalQuery' => ['description' => '总请求次数。', 'type' => 'string', 'example' => '3'], + 'TotalBytes' => ['description' => '总流量。', 'type' => 'string', 'example' => '2400057'], + 'AvgResponseRate' => ['description' => '平均响应速度,单位:byte/毫秒。'."\n", 'type' => 'string', 'example' => '154.3345765545624'], + 'AvgResponseTime' => ['description' => '平均响应时间,单位:毫秒。'."\n", 'type' => 'string', 'example' => '5183.666666666667'], + 'Proportion' => ['description' => '占比使用数据。', 'type' => 'string', 'example' => '0.01155980271270037'], + 'AvgObjectSize' => ['description' => '响应平均大小,单位:byte。', 'type' => 'string', 'example' => '800019.0'], + 'IspEname' => ['description' => '运营商英文名称。', 'type' => 'string', 'example' => 'unicom'], + 'Bps' => ['description' => '带宽。单位:bit/s。', 'type' => 'string', 'example' => '380.9614285714286'], + 'Isp' => ['description' => '运营商信息。', 'type' => 'string', 'example' => '联通'], + 'BytesProportion' => ['description' => '总流量占比。例如:返回90即为90%。'."\n", 'type' => 'string', 'example' => '0.003544181046236794'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], + ], + 404 => [ + ['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'The specified domain does not exist.', 'description' => '该域名不存在。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2019-12-11T00:00:00Z\\",\\n \\"StartTime\\": \\"2019-12-10T00:00:00Z\\",\\n \\"RequestId\\": \\"7CBCD6AD-B016-42E5-AE0B-B3731DE8F755\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"OriginBpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"DynamicHttpOriginBps\\": 100,\\n \\"StaticHttpOriginBps\\": 100,\\n \\"TimeStamp\\": \\"2019-12-10T00:00:00Z\\",\\n \\"StaticHttpsOriginBps\\": 100,\\n \\"OriginBps\\": 100,\\n \\"DynamicHttpsOriginBps\\": 100\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainOriginBpsDataResponse>\\n<DomainName>example.com</DomainName>\\n<DataInterval>300</DataInterval>\\n<RequestId>73769293-5997-491D-8FEA-B98F6E59DF38</RequestId>\\n<OriginBpsDataPerInterval>\\n <DataModule>\\n <DynamicHttpOriginBps>0</DynamicHttpOriginBps>\\n <TimeStamp>2019-12-10T21:00:00Z</TimeStamp>\\n <OriginBps>0</OriginBps>\\n <StaticHttpOriginBps>0</StaticHttpOriginBps>\\n <StaticHttpsOriginBps>0</StaticHttpsOriginBps>\\n <DynamicHttpsOriginBps>0</DynamicHttpsOriginBps>\\n </DataModule>\\n</OriginBpsDataPerInterval>\\n<EndTime>2019-12-10T21:05:00Z</EndTime>\\n<StartTime>2019-12-10T21:00:00Z</StartTime>\\n</DescribeDcdnDomainOriginBpsDataResponse>\\n","errorExample":""}]', - 'title' => '查询回源带宽监控数据', - 'description' => '- 单用户调用频率:100次/秒。 '."\n" - .'- 如果您不指定**StartTime**和**EndTime**时,默认读取过去24小时的数据;指定**StartTime**和**EndTime**时,按指定的起止时间查询。'."\n" - ."\n" - .'**支持查询的时间粒度**'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,请求参数Interval支持不同的查询数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" - ."\n" - .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟 |'."\n" - .'| -------------- | -------------- | ------ | ----- |'."\n" - .'| 5分钟 | 3天 | 93天 | 15分钟 |'."\n" - .'| 1小时 | 31天 | 186天 | 一般延迟3-4小时|'."\n" - .'| 1天 | 366天 | 366天 | 一般延迟4小时,不超过24小时 |', + 'title' => '查询用户运营商分布数据', + 'description' => '- 单用户调用频率:100次/秒。'."\n" + .'- 不指定StartTime和EndTime时,默认读取过去24小时的数据,同时支持按指定的起止时间查询,两者需要同时指定;'."\n" + .'- 只支持一个域名,或当前用户下所有域名;'."\n" + .'- 最多可获取最近90天的数据。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainOriginTrafficData' => [ - 'summary' => '调用DescribeDcdnDomainOriginTrafficData查询域名的回源流量监控数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainIspData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainIspData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2019-12-06T12:00:00Z\\",\\n \\"StartTime\\": \\"2019-12-05T12:00:00Z\\",\\n \\"RequestId\\": \\"2E5AD83F-BD7B-462E-8319-2E30E305519A\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"86400\\",\\n \\"Value\\": {\\n \\"IspProportionData\\": [\\n {\\n \\"Qps\\": \\"5.9523809523809524E-5\\",\\n \\"TotalQuery\\": \\"3\\",\\n \\"TotalBytes\\": \\"2400057\\",\\n \\"AvgResponseRate\\": \\"154.3345765545624\\",\\n \\"AvgResponseTime\\": \\"5183.666666666667\\",\\n \\"Proportion\\": \\"0.01155980271270037\\",\\n \\"AvgObjectSize\\": \\"800019.0\\",\\n \\"IspEname\\": \\"unicom\\",\\n \\"Bps\\": \\"380.9614285714286\\",\\n \\"Isp\\": \\"联通\\",\\n \\"BytesProportion\\": \\"0.003544181046236794\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainIspDataResponse>\\r\\n\\t<Value>\\r\\n\\t\\t<IspProportionData>\\r\\n\\t\\t\\t<Bps>380.9614285714286</Bps>\\r\\n\\t\\t\\t<Proportion>0.01155980271270037</Proportion>\\r\\n\\t\\t\\t<TotalBytes>2400057</TotalBytes>\\r\\n\\t\\t\\t<BytesProportion>0.003544181046236794</BytesProportion>\\r\\n\\t\\t\\t<TotalQuery>3</TotalQuery>\\r\\n\\t\\t\\t<IspEname>unicom</IspEname>\\r\\n\\t\\t\\t<Isp>联通</Isp>\\r\\n\\t\\t\\t<AvgResponseRate>154.3345765545624</AvgResponseRate>\\r\\n\\t\\t\\t<AvgObjectSize>800019.0</AvgObjectSize>\\r\\n\\t\\t\\t<Qps>5.9523809523809524E-5</Qps>\\r\\n\\t\\t\\t<AvgResponseTime>5183.666666666667</AvgResponseTime>\\r\\n\\t\\t</IspProportionData>\\r\\n\\t\\t<IspProportionData>\\r\\n\\t\\t\\t<Bps>25110.431412698414</Bps>\\r\\n\\t\\t\\t<Proportion>0.31211467324291</Proportion>\\r\\n\\t\\t\\t<TotalBytes>158195717</TotalBytes>\\r\\n\\t\\t\\t<BytesProportion>0.23360872886644055</BytesProportion>\\r\\n\\t\\t\\t<TotalQuery>81</TotalQuery>\\r\\n\\t\\t\\t<IspEname>telecom</IspEname>\\r\\n\\t\\t\\t<Isp>电信</Isp>\\r\\n\\t\\t\\t<AvgResponseRate>1397.1430909315718</AvgResponseRate>\\r\\n\\t\\t\\t<AvgObjectSize>1953033.5543209878</AvgObjectSize>\\r\\n\\t\\t\\t<Qps>0.0016071428571428571</Qps>\\r\\n\\t\\t\\t<AvgResponseTime>1397.8765432098764</AvgResponseTime>\\r\\n\\t\\t</IspProportionData>\\r\\n\\t\\t<IspProportionData>\\r\\n\\t\\t\\t<Bps>40343.86242857143</Bps>\\r\\n\\t\\t\\t<Proportion>0.33908754623921084</Proportion>\\r\\n\\t\\t\\t<TotalBytes>254166333</TotalBytes>\\r\\n\\t\\t\\t<BytesProportion>0.37532921137846464</BytesProportion>\\r\\n\\t\\t\\t<TotalQuery>88</TotalQuery>\\r\\n\\t\\t\\t<IspEname>mobile</IspEname>\\r\\n\\t\\t\\t<Isp>移动</Isp>\\r\\n\\t\\t\\t<AvgResponseRate>787.8073097249128</AvgResponseRate>\\r\\n\\t\\t\\t<AvgObjectSize>2888253.7875</AvgObjectSize>\\r\\n\\t\\t\\t<Qps>0.001746031746031746</Qps>\\r\\n\\t\\t\\t<AvgResponseTime>3666.193181818182</AvgResponseTime>\\r\\n\\t\\t</IspProportionData>\\r\\n\\t</Value>\\r\\n\\t<DataInterval>86400</DataInterval>\\r\\n\\t<RequestId>2E5AD83F-BD7B-462E-8319-2E30E305519A</RequestId>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<EndTime>2019-12-06T12:00:00Z</EndTime>\\r\\n\\t<StartTime>2019-12-05T12:00:00Z</StartTime>\\r\\n</DescribeDcdnDomainIspDataResponse>\\r\\n\\t\\r\\n","errorExample":""}]', + ], + 'DescribeDcdnDomainLog' => [ + 'summary' => '调用DescribeDcdnDomainLog查询指定域名的原始访问日志的下载地址。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8022,404 +8378,416 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,多个域名用半角逗号(,)分隔,默认查询所有加速域名。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '待查询的加速域名,只支持查询单个域名。'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'StartTime', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => '分页大小。'."\n" + ."\n" + .'取值:**1**~**1000**,默认值:**300**,最大值:**1000**。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '1000', 'example' => '300', 'default' => '300'], ], [ - 'name' => 'EndTime', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需晚于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], + 'schema' => ['description' => '取得第几页,取值范围:大于**1**的任意整数。'."\n" + ."\n" + .'默认值为**1**。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1', 'default' => '1'], ], [ - 'name' => 'Interval', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度,单位为秒。'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => '获取日志起始时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n", 'type' => 'string', 'required' => false, 'example' => '2021-11-07T17:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '获取日志结束时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需大于起始时间。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => '2021-11-07T18:00:00Z'], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A666D44F-19D6-490E-97CF-1A64AB962C57', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,以秒为单位。', - 'type' => 'string', - 'example' => '300', - ], - 'OriginTrafficDataPerInterval' => [ + 'DomainName' => ['description' => '域名。'."\n", 'type' => 'string', 'example' => 'example.com'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '95594003-CAC5-5636-AF72-2A094364****'], + 'DomainLogDetails' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DataModule' => [ - 'description' => '每个时间间隔的回源流量数据,单位:Byte。', + 'DomainLogDetail' => [ + 'description' => 'DomainLogDetail组成的数据。'."\n", 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'DynamicHttpOriginTraffic' => [ - 'description' => '动态HTTP回源流量数据。', - 'type' => 'number', - 'format' => 'float', - 'example' => '1000', - ], - 'StaticHttpsOriginTraffic' => [ - 'description' => '静态HTTPS回源流量数据。', - 'type' => 'number', - 'format' => 'float', - 'example' => '100', - ], - 'OriginTraffic' => [ - 'description' => '回源流量数据。', - 'type' => 'number', - 'format' => 'float', - 'example' => '100', - ], - 'StaticHttpOriginTraffic' => [ - 'description' => '静态HTTP回源流量数据。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'DynamicHttpsOriginTraffic' => [ - 'description' => '动态HTTPS回源流量数据。', - 'type' => 'number', - 'format' => 'float', - 'example' => '500', + 'LogCount' => ['description' => '本页返回的总条数。'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '4'], + 'LogInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LogInfoDetail' => [ + 'description' => 'LogInfoDetail组成的数据。'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2021-11-07T18:00:00Z'], + 'LogSize' => ['description' => '日志大小,单位:字节。'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '192'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2021-11-07T17:00:00Z'], + 'LogName' => ['description' => '日志名称。'."\n", 'type' => 'string', 'example' => 'example.com_2021_11_08_010000_020000.gz'], + 'LogPath' => ['description' => '日志路径。'."\n" + ."\n" + .'需要关注返回参数LogPath中的字段Expires(过期时间戳),过期后日志下载链接失效,需要重新获取。更多信息,请参见[LogPath字段信息](~~31952~~)', 'type' => 'string', 'example' => 'example.aliyundoc.com /v1.l1cache/105252530/example.com/2021_11_08/example.com_2021_11_08_010000_020000.gz?Expires=1636963354&OSSAccessKeyId=yourAccessKeyID&Signature=u0V6foRfZniHE8i%2BHUdxGOhZsK****'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', + 'PageInfos' => [ + 'description' => 'PageInfoDetail组成的数据。', + 'type' => 'object', + 'properties' => [ + 'PageIndex' => ['description' => '返回数据的页码。'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'PageSize' => ['description' => '整页大小。'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'Total' => ['description' => '总条数。'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '4'], + ], ], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The StartTime cannot exceed 31 days before the current time.', 'description' => '不能查询31天之前的数据。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"A666D44F-19D6-490E-97CF-1A64AB962C57\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"OriginTrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"DynamicHttpOriginTraffic\\": 1000,\\n \\"StaticHttpsOriginTraffic\\": 100,\\n \\"OriginTraffic\\": 100,\\n \\"StaticHttpOriginTraffic\\": 0,\\n \\"DynamicHttpsOriginTraffic\\": 500,\\n \\"TimeStamp\\": \\"2017-12-10T21:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainOriginTrafficDataResponse>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>300</DataInterval>\\r\\n\\t<OriginTrafficDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T21:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<OriginTraffic>1000</OriginTraffic>\\r\\n\\t\\t\\t<DynamicHttpOriginTraffic>500</DynamicHttpOriginTraffic>\\r\\n\\t\\t\\t<DynamicHttpsOriginTraffic>500</DynamicHttpsOriginTraffic>\\r\\n\\t\\t\\t<StaticHttpOriginTraffic>0</StaticHttpOriginTraffic>\\r\\n\\t\\t\\t<StaticHttpsOriginTraffic>0</StaticHttpsOriginTraffic>\\r\\n\\t\\t</DataModule>\\r\\n\\t</OriginTrafficDataPerInterval>\\r\\n\\t<RequestId>A666D44F-19D6-490E-97CF-1A64AB962C57</RequestId>\\r\\n\\t<StartTime>2017-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2017-12-10T21:00:00Z</EndTime>\\r\\n</DescribeDcdnDomainOriginTrafficDataResponse>","errorExample":""}]', - 'title' => '查询回源流量监控数据', - 'description' => '- 单用户调用频率:100次/秒。'."\n" - .'- 如果您不指定**StartTime**和**EndTime**时,默认读取过去24小时的数据;指定**StartTime**和**EndTime**时,按指定的起止时间查询。'."\n" - ."\n" - .'**支持查询的时间粒度**'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,请求参数Interval支持不同的查询数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" - ."\n" - .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟 |'."\n" - .'| -------------- | -------------- | ------|-----|'."\n" - .'| 5分钟 | 3天 | 93天 | 15分钟 |'."\n" - .'| 1小时 | 31天 | 186天 | 一般延迟3-4小时 |'."\n" - .'| 1天 | 366天 | 366天 | 一般延迟4小时,不超过24小时 |', + 'title' => '查询离线访问日志下载地址', + 'description' => '> - 当您不指定**StartTime**和**EndTime**时,默认读取过去24小时的日志数据;当指定**StartTime**和**EndTime**时,按指定的起止时间查询日志。'."\n" + .'> - 单用户调用频率:100次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainWebsocketHttpCodeData' => [ - 'summary' => '调用DescribeDcdnDomainWebsocketHttpCodeData查询域名WebSocket协议的HTTP返回码总数和占比数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainLog'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainLog', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"RequestId\\": \\"95594003-CAC5-5636-AF72-2A094364****\\",\\n \\"DomainLogDetails\\": {\\n \\"DomainLogDetail\\": [\\n {\\n \\"LogCount\\": 4,\\n \\"LogInfos\\": {\\n \\"LogInfoDetail\\": [\\n {\\n \\"EndTime\\": \\"2021-11-07T18:00:00Z\\",\\n \\"LogSize\\": 192,\\n \\"StartTime\\": \\"2021-11-07T17:00:00Z\\",\\n \\"LogName\\": \\"example.com_2021_11_08_010000_020000.gz\\",\\n \\"LogPath\\": \\"example.aliyundoc.com /v1.l1cache/105252530/example.com/2021_11_08/example.com_2021_11_08_010000_020000.gz?Expires=1636963354&OSSAccessKeyId=yourAccessKeyID&Signature=u0V6foRfZniHE8i%2BHUdxGOhZsK****\\"\\n }\\n ]\\n },\\n \\"PageInfos\\": {\\n \\"PageIndex\\": 1,\\n \\"PageSize\\": 10,\\n \\"Total\\": 4\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainLogResponse>\\n<RequestId>95594003-CAC5-5636-AF72-2A094364****</RequestId>\\n<DomainName>example.com</DomainName>\\n<DomainLogDetails>\\n <DomainLogDetail>\\n <LogInfos>\\n <LogInfoDetail>\\n <LogSize>192</LogSize>\\n <EndTime>2021-11-07T18:00:00Z</EndTime>\\n <StartTime>2021-11-07T17:00:00Z</StartTime>\\n <LogName>example.com_2021_11_08_010000_020000.gz</LogName>\\n <LogPath>example.aliyundoc.com /v1.l1cache/105252530/example.com/2021_11_08/example.com_2021_11_08_010000_020000.gz?Expires=1636963354&OSSAccessKeyId=LTAIviCc6zy8****&Signature=u0V6foRfZniHE8i%2BHUdxGOhZsK****</LogPath>\\n </LogInfoDetail>\\n <LogInfoDetail>\\n <LogSize>226</LogSize>\\n <EndTime>2021-11-07T20:00:00Z</EndTime>\\n <StartTime>2021-11-07T19:00:00Z</StartTime>\\n <LogName>example.com_2021_11_08_030000_040000.gz</LogName>\\n <LogPath>example.aliyundoc.com /v1.l1cache/105252530/example.com/2021_11_08/example.com_2021_11_08_030000_040000.gz?Expires=1636963354&OSSAccessKeyId=LTAIviCc6zy8****&Signature=GPETaV9ydedqtQxoEcVONxQvY****</LogPath>\\n </LogInfoDetail>\\n <LogInfoDetail>\\n <LogSize>260</LogSize>\\n <EndTime>2021-11-07T21:00:00Z</EndTime>\\n <StartTime>2021-11-07T20:00:00Z</StartTime>\\n <LogName>example.com_2021_11_08_040000_050000.gz</LogName>\\n <LogPath>example.aliyundoc.com /v1.l1cache/105252530/example.com/2021_11_08/example.com_2021_11_08_040000_050000.gz?Expires=1636963354&OSSAccessKeyId=LTAIviCc6zy8****&Signature=WIOGy%2BLRp86zpex%2FCGOETf6UUg****</LogPath>\\n </LogInfoDetail>\\n <LogInfoDetail>\\n <LogSize>413</LogSize>\\n <EndTime>2021-11-07T22:00:00Z</EndTime>\\n <StartTime>2021-11-07T21:00:00Z</StartTime>\\n <LogName>example.com_2021_11_08_050000_060000.gz</LogName>\\n <LogPath>example.aliyundoc.com /v1.l1cache/105252530/example.com/2021_11_08/example.com_2021_11_08_050000_060000.gz?Expires=1636963354&OSSAccessKeyId=LTAIviCc6zy8****&Signature=vZpNRaKuaFsOB7RT%2F%2BS8wjfmjO****</LogPath>\\n </LogInfoDetail>\\n </LogInfos>\\n <PageInfos>\\n <PageSize>10</PageSize>\\n <Total>4</Total>\\n <PageIndex>1</PageIndex>\\n </PageInfos>\\n <LogCount>4</LogCount>\\n </DomainLogDetail>\\n</DomainLogDetails>\\n</DescribeDcdnDomainLogResponse>","errorExample":""}]', + ], + 'DescribeDcdnDomainMultiUsageData' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeCode' => '111499', + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], + 'autoTest' => true, ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,多个域名用半角逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '若参数为空,默认返回所有加速域名分组数据。'."\n" + ."\n" + .'可输入需要查询的加速域名,支持批量域名查询,多个域名用半角逗号(,)分隔。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的起始时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-03-01T05:00:00Z', - ], + 'schema' => ['description' => '获取数据起始时间点。'."\n" + .'- 日期格式按照ISO8601表示法,并使用UTC时间。'."\n" + .'- 格式为:YYYY-MM-DDThh:mm:ssZ。'."\n" + .'- 最小数据粒度为5分钟。'."\n" + .'- 不写默认读取过去24小时数据。'."\n" + .'- 需要和EndTime搭配使用', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', + 'schema' => ['description' => '结束时间需大于起始时间。'."\n" + .'- 日期格式按照ISO8601表示法,并使用UTC时间。'."\n" + .'- 格式为:YYYY-MM-DDThh:mm:ssZ。'."\n" + .'- 需要和StartTime配合使用', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '获取数据的结束时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-03-01T06:00:00Z', + 'type' => 'object', + 'properties' => [ + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z'], + 'RequestId' => ['description' => '该条任务请求Id。', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F'], + 'RequestPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RequestDataModule' => [ + 'description' => '每五分钟各请求计量数据。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => '请求数类型,可以是StaticHttps,DynamicHttps,DynamicHttp,StaticQuic,DynamicQuic之一。', 'type' => 'string', 'example' => 'DynamicHttp'], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z'], + 'Domain' => ['description' => '域名。', 'type' => 'string', 'example' => 'example.com'], + 'Request' => ['description' => '请求数,单位个。', 'type' => 'integer', 'format' => 'int64', 'example' => '1128'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + 'TrafficPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'TrafficDataModule' => [ + 'description' => '每五分钟的各流量计量数据。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => '类型,可以是Simple,IPA,WebSocket 之一。', 'type' => 'string', 'example' => 'Simple'], + 'Domain' => ['description' => '域名。', 'type' => 'string', 'example' => 'example.com'], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z'], + 'Area' => ['description' => '大区名称。', 'type' => 'string', 'example' => 'CN'], + 'Bps' => ['description' => 'BPS数据值,单位:bit/second', 'type' => 'number', 'format' => 'float', 'example' => '11288111.1'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => '时间跨度超过限制,请参照接口文档,配置合理查询跨度。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '批量查询用量数据', + 'summary' => '调用DescribeDcdnDomainMultiUsageData批量查询DCDN域名的各计量口径计费数据(最小粒度为5分钟), 不包含非请求类的计费项。', + 'description' => '- 不指定StartTime和EndTime时,默认读取过去 10 分钟的数据,同时支持按指定的起止时间查询,两者需要同时指定。'."\n" + .'- 支持批量域名查询,多个域名用逗号(半角)分隔, 多个域名会分开返回。'."\n" + .'- 最多可获取最近90天的数据。'."\n" + .'- 查询时间跨度不超过1小时', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainMultiUsageData'], + ], + ], + 'ramActions' => [ [ - 'name' => 'Interval', - 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度,单位为秒。'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainMultiUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\",\\n \\"RequestPerInterval\\": {\\n \\"RequestDataModule\\": [\\n {\\n \\"Type\\": \\"DynamicHttp\\",\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\",\\n \\"Domain\\": \\"example.com\\",\\n \\"Request\\": 1128\\n }\\n ]\\n },\\n \\"TrafficPerInterval\\": {\\n \\"TrafficDataModule\\": [\\n {\\n \\"Type\\": \\"Simple\\",\\n \\"Domain\\": \\"example.com\\",\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\",\\n \\"Area\\": \\"CN\\",\\n \\"Bps\\": 11288111.1\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainMultiUsageDataResponse>\\n<TrafficPerInterval>\\n <TrafficDataModule>\\n <TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\n <Domain>example.com</Domain>\\n <Bps>11288111.1</Bps>\\n <Type>Simple</Type>\\n <Area>CN</Area>\\n </TrafficDataModule>\\n <TrafficDataModule>\\n <TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\n <Domain>example.com</Domain>\\n <Bps>11288111.1</Bps>\\n <Type>IPA</Type>\\n <Area>CN</Area>\\n </TrafficDataModule>\\n</TrafficPerInterval>\\n<RequestPerInterval>\\n <RequestDataModule>\\n <TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\n <Domain>example.com</Domain>\\n <Request>1128</Request>\\n <Type>DynamicHttp</Type>\\n </RequestDataModule>\\n <RequestDataModule>\\n <TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\n <Domain>example.com</Domain>\\n <Request>1128</Request>\\n <Type>StaticHttps</Type>\\n </RequestDataModule>\\n</RequestPerInterval>\\n<RequestId>3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F</RequestId>\\n<StartTime>2017-12-10T20:00:00Z</StartTime>\\n<EndTime>2017-12-10T21:00:00Z</EndTime>\\n</DescribeDcdnDomainMultiUsageDataResponse>","errorExample":""}]', + ], + 'DescribeDcdnDomainOriginBpsData' => [ + 'summary' => '调用DescribeDcdnDomainOriginBpsData查询域名的回源带宽监控数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'IspNameEn', + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + ], + 'parameters' => [ + [ + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名。'."\n" - ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有运营商。', - 'type' => 'string', - 'required' => false, - 'example' => 'unicom', - ], + 'schema' => ['description' => '加速域名,多个域名用英文逗号(,)分隔,默认查询所有加速域名。'."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ - 'name' => 'LocationNameEn', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '地域商英文名。'."\n" - ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有地域。', - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => '获取数据起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2019-12-10T00:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需晚于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2019-12-11T00:00:00Z'], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => ['description' => '查询数据的时间粒度,单位为秒。'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。'."\n", 'type' => 'string', 'required' => false, 'example' => '300'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '参数解释。', 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2018-03-01T13:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2018-03-01T05:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '91FC2D9D-B042-4634-8A5C-7B8E7482C22D', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,以秒为单位。', - 'type' => 'string', - 'example' => '3600', - ], - 'HttpCodeDataPerInterval' => [ + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2019-12-11T00:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2019-12-10T00:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7CBCD6AD-B016-42E5-AE0B-B3731DE8F755'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔,以秒为单位。', 'type' => 'string', 'example' => '300'], + 'OriginBpsDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => '返回码。', + 'description' => '每个时间间隔的回源带宽数据,单位:bit/s。', 'type' => 'array', 'items' => [ - 'description' => '返回码。', 'type' => 'object', 'properties' => [ - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2018-03-01T13:00:00Z', - ], - 'WebsocketHttpCode' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'HttpCodeDataModule' => [ - 'description' => '各返回码占比使用数据列表。', - 'type' => 'array', - 'items' => [ - 'description' => '各返回码占比使用数据描述。', - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => 'HTTP返回码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '404', - ], - 'Proportion' => [ - 'description' => '占比使用数据。', - 'type' => 'number', - 'format' => 'float', - 'example' => '100', - ], - 'Count' => [ - 'description' => '总数。', - 'type' => 'number', - 'format' => 'float', - 'example' => '16', - ], - ], - ], - ], - ], - ], + 'DynamicHttpOriginBps' => ['description' => '动态HTTP回源带宽数据。', 'type' => 'number', 'format' => 'float', 'example' => '100'], + 'StaticHttpOriginBps' => ['description' => '静态HTTP回源带宽数据。', 'type' => 'number', 'format' => 'float', 'example' => '100'], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2019-12-10T00:00:00Z'], + 'StaticHttpsOriginBps' => ['description' => '静态HTTPS回源带宽数据。', 'type' => 'number', 'format' => 'float', 'example' => '100'], + 'OriginBps' => ['description' => '回源带宽数据。', 'type' => 'number', 'format' => 'float', 'example' => '100'], + 'DynamicHttpsOriginBps' => ['description' => '动态HTTPS回源带宽数据。', 'type' => 'number', 'format' => 'float', 'example' => '100'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2018-03-01T13:00:00Z\\",\\n \\"StartTime\\": \\"2018-03-01T05:00:00Z\\",\\n \\"RequestId\\": \\"91FC2D9D-B042-4634-8A5C-7B8E7482C22D\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"3600\\",\\n \\"HttpCodeDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TimeStamp\\": \\"2018-03-01T13:00:00Z\\",\\n \\"WebsocketHttpCode\\": {\\n \\"HttpCodeDataModule\\": [\\n {\\n \\"Code\\": 404,\\n \\"Proportion\\": 100,\\n \\"Count\\": 16\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainWebsocketHttpCodeDataResponse>\\r\\n\\t<DataInterval>3600</DataInterval>\\r\\n\\t<RequestId>91FC2D9D-B042-4634-8A5C-7B8E7482C22D</RequestId>\\r\\n\\t<EndTime>2018-03-01T13:00:00Z</EndTime>\\r\\n\\t<StartTime>2018-03-01T05:00:00Z</StartTime>\\r\\n\\t<HttpCodeDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2018-03-01T13:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<WebsocketHttpCode></WebsocketHttpCode>\\r\\n\\t\\t</DataModule>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2018-03-01T12:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<WebsocketHttpCode>\\r\\n\\t\\t\\t\\t<HttpCodeDataModule>\\r\\n\\t\\t\\t\\t\\t<Count>16</Count>\\r\\n\\t\\t\\t\\t\\t<Proportion>100</Proportion>\\r\\n\\t\\t\\t\\t\\t<Code>404</Code>\\r\\n\\t\\t\\t\\t</HttpCodeDataModule>\\r\\n\\t\\t\\t</WebsocketHttpCode>\\r\\n\\t\\t</DataModule>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2018-03-01T11:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<WebsocketHttpCode>\\r\\n\\t\\t\\t\\t<HttpCodeDataModule>\\r\\n\\t\\t\\t\\t\\t<Count>9</Count>\\r\\n\\t\\t\\t\\t\\t<Proportion>50</Proportion>\\r\\n\\t\\t\\t\\t\\t<Code>403</Code>\\r\\n\\t\\t\\t\\t</HttpCodeDataModule>\\r\\n\\t\\t\\t\\t<HttpCodeDataModule>\\r\\n\\t\\t\\t\\t\\t<Count>9</Count>\\r\\n\\t\\t\\t\\t\\t<Proportion>50</Proportion>\\r\\n\\t\\t\\t\\t\\t<Code>504</Code>\\r\\n\\t\\t\\t\\t</HttpCodeDataModule>\\r\\n\\t\\t\\t</WebsocketHttpCode>\\r\\n\\t\\t</DataModule>\\r\\n\\t</HttpCodeDataPerInterval>\\r\\n</DescribeDcdnDomainWebsocketHttpCodeDataResponse>\\r\\n\\t\\r\\n","errorExample":""}]', - 'title' => '查询WebSocket返回码数据', - 'description' => '单用户调用频率:100次/秒。 '."\n" + 'title' => '查询回源带宽监控数据', + 'description' => '- 单用户调用频率:100次/秒。 '."\n" + .'- 如果您不指定**StartTime**和**EndTime**时,默认读取过去24小时的数据;指定**StartTime**和**EndTime**时,按指定的起止时间查询。'."\n" ."\n" .'**支持查询的时间粒度**'."\n" ."\n" .'根据单次查询的最大时间跨度不同,请求参数Interval支持不同的查询数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" + ."\n" .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟 |'."\n" - .'| -------------- | -------------- | ------ | ---------|'."\n" + .'| -------------- | -------------- | ------ | ----- |'."\n" .'| 5分钟 | 3天 | 93天 | 15分钟 |'."\n" - .'| 1小时 | 31天 | 186天 | 4小时 |'."\n" - .'| 1天 | 366天 | 366天 | 次日凌晨4点 |', + .'| 1小时 | 31天 | 186天 | 一般延迟3-4小时|'."\n" + .'| 1天 | 366天 | 366天 | 一般延迟4小时,不超过24小时 |', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainWebsocketBpsData' => [ - 'summary' => '调用DescribeDcdnDomainWebsocketBpsData查询域名WebSocket协议的网络带宽监控数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainOriginBpsData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainOriginBpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2019-12-11T00:00:00Z\\",\\n \\"StartTime\\": \\"2019-12-10T00:00:00Z\\",\\n \\"RequestId\\": \\"7CBCD6AD-B016-42E5-AE0B-B3731DE8F755\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"OriginBpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"DynamicHttpOriginBps\\": 100,\\n \\"StaticHttpOriginBps\\": 100,\\n \\"TimeStamp\\": \\"2019-12-10T00:00:00Z\\",\\n \\"StaticHttpsOriginBps\\": 100,\\n \\"OriginBps\\": 100,\\n \\"DynamicHttpsOriginBps\\": 100\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainOriginBpsDataResponse>\\n<DomainName>example.com</DomainName>\\n<DataInterval>300</DataInterval>\\n<RequestId>73769293-5997-491D-8FEA-B98F6E59DF38</RequestId>\\n<OriginBpsDataPerInterval>\\n <DataModule>\\n <DynamicHttpOriginBps>0</DynamicHttpOriginBps>\\n <TimeStamp>2019-12-10T21:00:00Z</TimeStamp>\\n <OriginBps>0</OriginBps>\\n <StaticHttpOriginBps>0</StaticHttpOriginBps>\\n <StaticHttpsOriginBps>0</StaticHttpsOriginBps>\\n <DynamicHttpsOriginBps>0</DynamicHttpsOriginBps>\\n </DataModule>\\n</OriginBpsDataPerInterval>\\n<EndTime>2019-12-10T21:05:00Z</EndTime>\\n<StartTime>2019-12-10T21:00:00Z</StartTime>\\n</DescribeDcdnDomainOriginBpsDataResponse>\\n","errorExample":""}]', + ], + 'DescribeDcdnDomainOriginTrafficData' => [ + 'summary' => '调用DescribeDcdnDomainOriginTrafficData查询域名的回源流量监控数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8430,85 +8798,32 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名。'."\n" - ."\n" - .'多个域名用英文逗号(,)分隔,默认查询所有加速域名。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '加速域名,多个域名用半角逗号(,)分隔,默认查询所有加速域名。'."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的起始时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', - ], + 'schema' => ['description' => '获取数据起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的结束时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], + 'schema' => ['description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需晚于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z'], ], [ 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度,单位为秒。'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], - ], - [ - 'name' => 'IspNameEn', - 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名。'."\n" - ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有运营商。', - 'type' => 'string', - 'required' => false, - 'example' => 'unicom', - ], - ], - [ - 'name' => 'LocationNameEn', - 'in' => 'query', - 'schema' => [ - 'description' => '地域商英文名。'."\n" - ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有地域。', - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => '查询数据的时间粒度,单位为秒。'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。'."\n", 'type' => 'string', 'required' => false, 'example' => '300'], ], ], 'responses' => [ @@ -8516,112 +8831,89 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,以秒为单位。', - 'type' => 'string', - 'example' => '300', - ], - 'BpsDataPerInterval' => [ + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A666D44F-19D6-490E-97CF-1A64AB962C57'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔,以秒为单位。', 'type' => 'string', 'example' => '300'], + 'OriginTrafficDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => '每个时间间隔的网络带宽数据。'."\n", + 'description' => '每个时间间隔的回源流量数据,单位:Byte。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'WebsocketBps' => [ - 'description' => 'bps数据值,单位:bit/s。', - 'type' => 'number', - 'format' => 'float', - 'example' => '11288111', - ], + 'DynamicHttpOriginTraffic' => ['description' => '动态HTTP回源流量数据。', 'type' => 'number', 'format' => 'float', 'example' => '1000'], + 'StaticHttpsOriginTraffic' => ['description' => '静态HTTPS回源流量数据。', 'type' => 'number', 'format' => 'float', 'example' => '100'], + 'OriginTraffic' => ['description' => '回源流量数据。', 'type' => 'number', 'format' => 'float', 'example' => '100'], + 'StaticHttpOriginTraffic' => ['description' => '静态HTTP回源流量数据。', 'type' => 'number', 'format' => 'float', 'example' => '0'], + 'DynamicHttpsOriginTraffic' => ['description' => '动态HTTPS回源流量数据。', 'type' => 'number', 'format' => 'float', 'example' => '500'], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"BpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\",\\n \\"WebsocketBps\\": 11288111\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainWebsocketBpsDataResponse>\\r\\n\\t<BpsDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<WebsocketBps>11288111</WebsocketBps>\\r\\n\\t\\t</DataModule>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T20:05:00Z</TimeStamp>\\r\\n\\t\\t\\t<WebsocketBps>11288111</WebsocketBps>\\r\\n\\t\\t</DataModule>\\r\\n\\t</BpsDataPerInterval>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>300</DataInterval>\\r\\n\\t<RequestId>3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F</RequestId>\\r\\n\\t<StartTime>2017-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2017-12-10T21:00:00Z</EndTime>\\r\\n</DescribeDcdnDomainWebsocketBpsDataResponse>","errorExample":""}]', - 'title' => '查询WebSocket的带宽数据', + 'title' => '查询回源流量监控数据', 'description' => '- 单用户调用频率:100次/秒。'."\n" - .'- 不指定**StartTime**和**EndTime**,默认返回过去24小时的数据;指定**StartTime**和**EndTime**,返回指定起止时间的数据。'."\n" + .'- 如果您不指定**StartTime**和**EndTime**时,默认读取过去24小时的数据;指定**StartTime**和**EndTime**时,按指定的起止时间查询。'."\n" ."\n" .'**支持查询的时间粒度**'."\n" ."\n" .'根据单次查询的最大时间跨度不同,请求参数Interval支持不同的查询数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" + ."\n" .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟 |'."\n" - .'| -------------- | -------------- | ------ | ------ |'."\n" + .'| -------------- | -------------- | ------|-----|'."\n" .'| 5分钟 | 3天 | 93天 | 15分钟 |'."\n" .'| 1小时 | 31天 | 186天 | 一般延迟3-4小时 |'."\n" .'| 1天 | 366天 | 366天 | 一般延迟4小时,不超过24小时 |', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainWebsocketTrafficData' => [ - 'summary' => '调用DescribeDcdnDomainWebsocketTrafficData查询域名的WebSocket网络流量监控数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainOriginTrafficData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainOriginTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"A666D44F-19D6-490E-97CF-1A64AB962C57\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"OriginTrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"DynamicHttpOriginTraffic\\": 1000,\\n \\"StaticHttpsOriginTraffic\\": 100,\\n \\"OriginTraffic\\": 100,\\n \\"StaticHttpOriginTraffic\\": 0,\\n \\"DynamicHttpsOriginTraffic\\": 500,\\n \\"TimeStamp\\": \\"2017-12-10T21:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainOriginTrafficDataResponse>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>300</DataInterval>\\r\\n\\t<OriginTrafficDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T21:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<OriginTraffic>1000</OriginTraffic>\\r\\n\\t\\t\\t<DynamicHttpOriginTraffic>500</DynamicHttpOriginTraffic>\\r\\n\\t\\t\\t<DynamicHttpsOriginTraffic>500</DynamicHttpsOriginTraffic>\\r\\n\\t\\t\\t<StaticHttpOriginTraffic>0</StaticHttpOriginTraffic>\\r\\n\\t\\t\\t<StaticHttpsOriginTraffic>0</StaticHttpsOriginTraffic>\\r\\n\\t\\t</DataModule>\\r\\n\\t</OriginTrafficDataPerInterval>\\r\\n\\t<RequestId>A666D44F-19D6-490E-97CF-1A64AB962C57</RequestId>\\r\\n\\t<StartTime>2017-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2017-12-10T21:00:00Z</EndTime>\\r\\n</DescribeDcdnDomainOriginTrafficDataResponse>","errorExample":""}]', + ], + 'DescribeDcdnDomainProperty' => [ + 'summary' => '调用DescribeDcdnDomainProperty查询IPA的协议类型。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8632,85 +8924,92 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', + 'schema' => ['description' => '待查询的加速域名,只支持查询单个域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], 'schema' => [ - 'description' => '加速域名。'."\n" - ."\n" - .'多个域名用英文逗号(,)分隔,默认查询所有加速域名。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB'], + 'DomainName' => ['description' => '查询到的加速域名。', 'type' => 'string', 'example' => 'example.com'], + 'Protocol' => ['description' => '协议名称。取值:'."\n" + .'- **udp**:UDP协议。'."\n" + .'- **tcp**:TCP协议。', 'type' => 'string', 'example' => 'udp'], + ], ], ], + ], + 'errorCodes' => [ + 404 => [ + ['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'The specified domain does not exist.', 'description' => '该域名不存在。'], + ], + ], + 'title' => '查询IPA的协议类型', + 'description' => '> 单用户调用频率:10次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainProperty'], + ], + ], + 'ramActions' => [ [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的起始时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainProperty', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Protocol\\": \\"udp\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainPropertyResponse>\\n<RequestId>34AB41F1-04A5-496F-8C8D-634BDBE6A9FB</RequestId>\\n<DomainName>example.com</DomainName>\\n<Protocol>udp</Protocol>\\n</DescribeDcdnDomainPropertyResponse>","errorExample":""}]', + ], + 'DescribeDcdnDomainPvData' => [ + 'summary' => '调用DescribeDcdnDomainPvData查询域名最小1小时粒度的PV页面访问统计。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的结束时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], + ], + 'parameters' => [ [ - 'name' => 'Interval', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度,单位为秒。'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。', - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => '加速域名,仅支持查询单个域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'IspNameEn', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名。'."\n" - ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有运营商。', - 'type' => 'string', - 'required' => false, - 'example' => 'unicom', - ], + 'schema' => ['description' => '获取数据起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2019-11-28T00:00:00Z'], ], [ - 'name' => 'LocationNameEn', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '地域商英文名。'."\n" - ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有地域。', - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2019-11-29T00:00:00Z'], ], ], 'responses' => [ @@ -8718,111 +9017,72 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,以秒为单位。', - 'type' => 'string', - 'example' => '300', - ], - 'TrafficDataPerInterval' => [ + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2019-11-29T00:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2019-11-28T00:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'BCD7D917-76F1-442F-BB75-C810DE34C761'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔,单位:秒。', 'type' => 'string', 'example' => '3600'], + 'PvDataInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DataModule' => [ - 'description' => '每个时间间隔的流量数据,单位:Byte。', + 'UsageData' => [ + 'description' => '每个时间间隔的页面访问次数。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'WebsocketTraffic' => [ - 'description' => '总流量。', - 'type' => 'number', - 'format' => 'float', - 'example' => '423304182', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], + 'Value' => ['description' => '详细使用数据。', 'type' => 'string', 'example' => '9292'], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2015-11-28T03:00:00Z'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"TrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"WebsocketTraffic\\": 423304182,\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainWebsocketTrafficDataResponse>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>300</DataInterval>\\r\\n\\t<TrafficDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<WebsocketTraffic>423304182</WebsocketTraffic>\\r\\n\\t\\t</DataModule>\\r\\n\\t</TrafficDataPerInterval>\\r\\n\\t<RequestId>B955107D-E658-4E77-B913-E0AC3D31693E</RequestId>\\r\\n\\t<StartTime>2017-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2017-12-10T21:00:00Z</EndTime>\\r\\n</DescribeDcdnDomainWebsocketTrafficDataResponse>","errorExample":""}]', - 'title' => '查询WebSocket流量数据', - 'description' => '- 单用户调用频率:100次/秒。 '."\n" - .'- 不指定**StartTime**和**EndTime**,默认返回过去24小时的数据;指定**StartTime**和**EndTime**,返回指定起止时间的数据。'."\n" - ."\n" - .'**支持查询的时间粒度**'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,请求参数Interval支持不同的查询数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" - .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟'."\n" - .'| -------------- | -------------- | ------|-----|'."\n" - .'| 5分钟 | 3天 | 93天 | 15分钟 |'."\n" - .'| 1小时 | 31天 | 186天 | 一般延迟3-4小时|'."\n" - .'| 1天 | 366天 | 366天 | 一般延迟4小时,不超过24小时 |', + 'title' => '查询PV页面访问统计', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainRealTimeQpsData' => [ - 'summary' => '调用DescribeDcdnDomainRealTimeQpsData获取域名每秒访问次数的数据。', - 'methods' => [ - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainPvData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainPvData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2019-11-29T00:00:00Z\\",\\n \\"StartTime\\": \\"2019-11-28T00:00:00Z\\",\\n \\"RequestId\\": \\"BCD7D917-76F1-442F-BB75-C810DE34C761\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"3600\\",\\n \\"PvDataInterval\\": {\\n \\"UsageData\\": [\\n {\\n \\"Value\\": \\"9292\\",\\n \\"TimeStamp\\": \\"2015-11-28T03:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainPvDataResponse>\\n<DataInterval>3600</DataInterval>\\n<RequestId>BCD7D917-76F1-442F-BB75-C810DE34C761</RequestId>\\n<DomainName>example.com</DomainName>\\n<EndTime>2019-11-29T00:00:00Z</EndTime>\\n<PvDataInterval>\\n <UsageData>\\n <TimeStamp>2015-11-29T03:00:00Z</TimeStamp>\\n <Value>9292</Value>\\n </UsageData>\\n <UsageData>\\n <TimeStamp>2015-11-29T23:00:00Z</TimeStamp>\\n <Value>9239</Value>\\n </UsageData>\\n</PvDataInterval>\\n<StartTime>2019-11-28T00:00:00Z</StartTime>\\n</DescribeDcdnDomainPvDataResponse>","errorExample":""}]', + ], + 'DescribeDcdnDomainQpsData' => [ + 'summary' => '调用DescribeDcdnDomainQpsData查询域名的每秒访问次数QPS。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8833,70 +9093,53 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,多个域名用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '加速域名。'."\n" + ."\n" + .'多个域名用英文逗号(,)分隔,不传该参数默认查询所有加速域名。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ - 'name' => 'IspNameEn', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名。'."\n" - ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有运营商。', - 'type' => 'string', - 'required' => false, - 'example' => 'telecom', - ], + 'schema' => ['description' => '获取数据的起始时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z'], ], [ - 'name' => 'LocationNameEn', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '地域英文名。'."\n" - ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有地域。', - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => '获取数据的结束时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需晚于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z'], ], [ - 'name' => 'StartTime', + 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的起始时间。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-01-02T11:26:00Z', - ], + 'schema' => ['description' => '查询数据的时间粒度,单位为秒。'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。'."\n", 'type' => 'string', 'required' => false, 'example' => '300'], ], [ - 'name' => 'EndTime', + 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的结束时间。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-01-02T11:27:00Z', - ], + 'schema' => ['description' => '运营商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有运营商。', 'type' => 'string', 'required' => false, 'example' => 'unicom'], + ], + [ + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => ['description' => '地域商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有地域。', 'type' => 'string', 'required' => false, 'example' => 'beijing'], ], ], 'responses' => [ @@ -8904,92 +9147,93 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '32DC9806-E9F9-4490-BBDC-B3A9E32FCC1D', - ], - 'Data' => [ + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'BEA5625F-8FCF-48F4-851B-CA63946DA664'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔,以秒为单位。', 'type' => 'string', 'example' => '300'], + 'QpsDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'QpsModel' => [ - 'description' => '数据列表。', + 'DataModule' => [ + 'description' => '每个时间间隔的每秒访问次数QPS。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Qps' => [ - 'description' => 'QPS数据。', - 'type' => 'number', - 'format' => 'float', - 'example' => '1851.25', - ], - 'TimeStamp' => [ - 'description' => '数据时间戳,日期格式按照ISO8601表示法,并使用UTC时间。', - 'type' => 'string', - 'example' => '2018-01-02T11:26:00Z', - ], + 'DynamicHttpsAcc' => ['description' => '动态HTTPS访问次数。', 'type' => 'number', 'format' => 'float', 'example' => '0'], + 'DynamicHttpAcc' => ['description' => '动态HTTP访问次数。', 'type' => 'number', 'format' => 'float', 'example' => '0'], + 'Qps' => ['description' => '总QPS。', 'type' => 'number', 'format' => 'float', 'example' => '0.56'], + 'StaticHttpsAcc' => ['description' => '静态HTTPS访问次数。', 'type' => 'number', 'format' => 'float', 'example' => '0'], + 'StaticHttpQps' => ['description' => '静态HTTP QPS。', 'type' => 'number', 'format' => 'float', 'example' => '0'], + 'StaticHttpAcc' => ['description' => '静态HTTP访问次数。', 'type' => 'number', 'format' => 'float', 'example' => '0'], + 'DynamicHttpsQps' => ['description' => '动态HTTPS QPS。', 'type' => 'number', 'format' => 'float', 'example' => '0'], + 'Acc' => ['description' => '总访问次数。', 'type' => 'number', 'format' => 'float', 'example' => '100'], + 'StaticHttpsQps' => ['description' => '静态HTTPS QPS。', 'type' => 'number', 'format' => 'float', 'example' => '0'], + 'DynamicHttpQps' => ['description' => '动态HTTP QPS。', 'type' => 'number', 'format' => 'float', 'example' => '0'], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"32DC9806-E9F9-4490-BBDC-B3A9E32FCC1D\\",\\n \\"Data\\": {\\n \\"QpsModel\\": [\\n {\\n \\"Qps\\": 1851.25,\\n \\"TimeStamp\\": \\"2018-01-02T11:26:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainRealTimeQpsDataResponse>\\r\\n\\t<Data>\\r\\n\\t\\t<QpsModel>\\r\\n\\t\\t\\t<TimeStamp>2018-01-02T11:26:00Z</TimeStamp>\\r\\n\\t\\t\\t<Qps>1851.25</Qps>\\r\\n\\t\\t</QpsModel>\\r\\n\\t\\t<QpsModel>\\r\\n\\t\\t\\t<TimeStamp>2018-01-02T11:25:00Z</TimeStamp>\\r\\n\\t\\t\\t<Qps>8967.7</Qps>\\r\\n\\t\\t</QpsModel>\\r\\n\\t</Data>\\r\\n\\t<RequestId>32DC9806-E9F9-4490-BBDC-B3A9E32FCC1D</RequestId>\\r\\n</DescribeDcdnDomainRealTimeQpsDataResponse>","errorExample":""}]', - 'title' => '查询实时QPS', - 'description' => '- 单用户调用频率:10次/秒'."\n" - .'- 如果您不指定StartTime和EndTime,该接口默认返回过去1小时的数据;指定StartTime和EndTime,该接口返回指定时间段的数据。'."\n" + 'title' => '查询QPS', + 'description' => '- 单用户调用频率:100次/秒。'."\n" + .'- 不指定**StartTime**和**EndTime**,默认返回过去24小时的数据;指定**StartTime**和**EndTime**,返回指定起止时间的数据。'."\n" ."\n" - .'**返回数据时间粒度**'."\n" + .'**支持查询的时间粒度**'."\n" ."\n" - .'根据您指定StartTime和EndTime时间跨度,会返回不同的数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" - .'|时间粒度 |单次查询的最大时间跨度 |可查询历史数据时间范围|数据延迟|'."\n" - .'|---------------|--------|-----|-----|'."\n" - .'|1分钟|1小时|7天|5分钟|'."\n" - .'|5分钟|3天|93天|15分钟|'."\n" - .'|1小时|31天|186天|一般延迟3-4小时|', - 'requestParamsDescription' => ' ', + .'根据单次查询的最大时间跨度不同,请求参数Interval支持不同的查询数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" + ."\n" + .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟 |'."\n" + .'| -------------- | -------------- | ------ | ----- |'."\n" + .'| 5分钟 | 3天 | 93天 | 15分钟 |'."\n" + .'| 1小时 | 31天 | 186天 | 一般延迟3-4小时 |'."\n" + .'| 1天 | 366天 | 366天 | 一般延迟4小时,不超过24小时 |', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainRealTimeTrafficData' => [ - 'summary' => '调用DescribeDcdnDomainRealTimeTrafficData查询域名单位时间段的流量监控数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainQpsData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainQpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"BEA5625F-8FCF-48F4-851B-CA63946DA664\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"QpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"DynamicHttpsAcc\\": 0,\\n \\"DynamicHttpAcc\\": 0,\\n \\"Qps\\": 0.56,\\n \\"StaticHttpsAcc\\": 0,\\n \\"StaticHttpQps\\": 0,\\n \\"StaticHttpAcc\\": 0,\\n \\"DynamicHttpsQps\\": 0,\\n \\"Acc\\": 100,\\n \\"StaticHttpsQps\\": 0,\\n \\"DynamicHttpQps\\": 0,\\n \\"TimeStamp\\": \\"2017-12-10T21:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainQpsDataResponse>\\r\\n\\t<QpsDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T21:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Qps>0.56</Qps>\\r\\n\\t\\t\\t<DynamicHttpQps>0.28</DynamicHttpQps>\\r\\n\\t\\t\\t<DynamicHttpsQps>0.28</DynamicHttpsQps>\\r\\n\\t\\t\\t<StaticHttpQps>0</StaticHttpQps>\\r\\n\\t\\t\\t<StaticHttpsQps>0</StaticHttpsQps>\\r\\n\\t\\t\\t<Acc>100</Acc>\\r\\n\\t\\t\\t<DynamicHttpAcc>50</DynamicHttpAcc>\\r\\n\\t\\t\\t<DynamicHttpsAcc>50</DynamicHttpsAcc>\\r\\n\\t\\t\\t<StaticHttpAcc>0</StaticHttpAcc>\\r\\n\\t\\t\\t<StaticHttpsAcc>0</StaticHttpsAcc>\\r\\n\\t\\t</DataModule>\\r\\n\\t</QpsDataPerInterval>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>300</DataInterval>\\r\\n\\t<RequestId>BEA5625F-8FCF-48F4-851B-CA63946DA664</RequestId>\\r\\n\\t<StartTime>2017-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2017-12-10T21:00:00Z</EndTime>\\r\\n</DescribeDcdnDomainQpsDataResponse>\\r\\n\\t\\r\\n","errorExample":""}]', + ], + 'DescribeDcdnDomainQpsDataByLayer' => [ + 'summary' => '调用DescribeDcdnDomainQpsDataByLayer按协议查询域名的每秒访问次数QPS。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8997,47 +9241,54 @@ ], 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名。支持批量域名查询,多个域名使用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '需要查询的加速域名。支持批量域名查询,多个域名用半角逗号(,)分隔,最多支持500个域名,多个域名会按照聚合结果进行输出。'."\n" + .'若参数为空,默认返回所有加速域名合并后的数据。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 如果您不指定StartTime和EndTime时,默认读取过去1小时的数据;指定StartTime和EndTime时,按指定的起止时间查询。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T20:00:00Z', - ], + 'schema' => ['description' => '获取数据起始时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'."\n" + .'最小数据粒度为5分钟。'."\n" + .'不写默认读取过去24小时数据。', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T20:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。结束时间需大于起始时间。'."\n" - ."\n" - .'> 如果您不指定StartTime和EndTime时,默认读取过去1小时的数据;指定StartTime和EndTime时,按指定的起止时间查询。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T20:01:00Z', - ], + 'schema' => ['description' => '获取数据结束时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T21:00:00Z'], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => ['description' => '指定查询数据的时间粒度,单位:秒。'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。', 'type' => 'string', 'required' => false, 'example' => '300'], + ], + [ + 'name' => 'IspNameEn', + 'in' => 'query', + 'schema' => ['description' => '运营商英文名,通过[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获得,不传值代表所有运营商。', 'type' => 'string', 'required' => false, 'example' => 'telecom'], + ], + [ + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => ['description' => '区域英文名,通过[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获得,不传值代表所有区域。', 'type' => 'string', 'required' => false, 'example' => 'hangzhou'], + ], + [ + 'name' => 'Layer', + 'in' => 'query', + 'schema' => ['description' => '查询维度,可选网络层(IPv4、IPv6)或应用层(http、https、quic)或all。'."\n" + .'默认为all。', 'type' => 'string', 'required' => false, 'example' => 'all'], ], ], 'responses' => [ @@ -9045,113 +9296,91 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2015-12-10T20:01:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2015-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A666D44F-19D6-490E-97CF-1A64AB962C57', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,单位为秒。'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,该参数固定返回60(1分钟)、300(5分钟)或3600(1小时),具体请参见**使用说明**中返回数据时间粒度。', - 'type' => 'string', - 'example' => '60', - ], - 'RealTimeTrafficDataPerInterval' => [ + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2015-12-10T21:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'BEA5625F-8FCF-48F4-851B-CA63946DA664'], + 'Layer' => ['description' => '返回的Layer。', 'type' => 'string', 'example' => 'all'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔,单位:秒。', 'type' => 'string', 'example' => '300'], + 'QpsDataInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => '每个时间间隔的回源流量数据。', + 'description' => '每个时间间隔的每秒访问次数QPS。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Value' => [ - 'description' => '详细使用数据。'."\n" - ."\n" - .'> 该接口数据单位:Byte。', - 'type' => 'string', - 'example' => '0', - ], - 'TimeStamp' => [ - 'description' => '单位时间段的起始时间。', - 'type' => 'string', - 'example' => '2015-12-10T20:00:00Z', - ], + 'Value' => ['description' => 'QPS总数。', 'type' => 'string', 'example' => '0.56'], + 'AccValue' => ['description' => '总请求次数。', 'type' => 'string', 'example' => '56'], + 'AccDomesticValue' => ['description' => '中国内地请求数。', 'type' => 'string', 'example' => '12'], + 'OverseasValue' => ['description' => '全球(不包含中国内地)QPS。', 'type' => 'string', 'example' => '0.44'], + 'AccOverseasValue' => ['description' => '全球(不包含中国内地)请求数。', 'type' => 'string', 'example' => '44'], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2015-12-10T21:00:00Z'], + 'DomesticValue' => ['description' => '中国内地QPS。', 'type' => 'string', 'example' => '0.12'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-12-10T20:01:00Z\\",\\n \\"StartTime\\": \\"2015-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\\": \\"2015-12-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainRealTimeTrafficDataResponse>\\n<DomainName>example.com</DomainName>\\n<DataInterval>60</DataInterval>\\n<RealTimeTrafficDataPerInterval>\\n <DataModule>\\n <TimeStamp>2015-12-10T20:00:00Z</TimeStamp>\\n <Value>0</Value>\\n </DataModule>\\n <DataModule>\\n <TimeStamp>2015-12-10T20:01:00Z</TimeStamp>\\n <Value>0</Value>\\n </DataModule>\\n</RealTimeTrafficDataPerInterval>\\n<RequestId>A666D44F-19D6-490E-97CF-1A64AB962C57</RequestId>\\n<StartTime>2015-12-10T20:00:00Z</StartTime>\\n<EndTime>2015-12-10T20:01:00Z</EndTime>\\n</DescribeDcdnDomainRealTimeTrafficDataResponse>","errorExample":""}]', - 'title' => '查询实时流量监控数据', - 'description' => '单用户调用频率:50次/秒。 '."\n" + 'title' => '查询QPS-按协议', + 'description' => '> '."\n" + .'> - 单用户调用频率:20次/秒。'."\n" + .'> - 不指定**StartTime**和**EndTime**,默认返回过去24小时的数据;指定**StartTime**和**EndTime**,返回指定起止时间的数据。'."\n" ."\n" - .'**返回数据时间粒度**'."\n" + .'**支持查询的时间粒度**'."\n" ."\n" - .'根据您指定StartTime和EndTime时间跨度,会返回不同的数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" - .'|时间粒度 |单次查询的最大时间跨度 |可查询历史数据时间范围|数据延迟|'."\n" - .'|---------------|--------|--------|-----------|'."\n" - .'|1分钟|1小时|7天|5分钟|'."\n" - .'|5分钟|3天|93天|15分钟|'."\n" - .'|1小时|31天|186天|一般延迟3-4小时|', + .'根据单次查询的最大时间跨度不同,请求参数Interval支持不同的查询数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" + .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟 |'."\n" + .'| -------------- | -------------- | ------|----------|'."\n" + .'| 5分钟 | 3天 | 93天 | 15分钟 |'."\n" + .'| 1小时 | 31天 | 186天 | 一般延迟3-4小时 |'."\n" + .'| 1天 | 366天 | 366天 | 一般延迟4小时,不超过24小时|', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainQpsDataByLayer'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainQpsDataByLayer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2015-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"BEA5625F-8FCF-48F4-851B-CA63946DA664\\",\\n \\"Layer\\": \\"all\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"QpsDataInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"0.56\\",\\n \\"AccValue\\": \\"56\\",\\n \\"AccDomesticValue\\": \\"12\\",\\n \\"OverseasValue\\": \\"0.44\\",\\n \\"AccOverseasValue\\": \\"44\\",\\n \\"TimeStamp\\": \\"2015-12-10T21:00:00Z\\",\\n \\"DomesticValue\\": \\"0.12\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainQpsDataByLayerResponse>\\n<QpsDataInterval>\\n <DataModule>\\n <TimeStamp>2015-12-10T21:00:00Z</TimeStamp>\\n <Value>0.56</Value>\\n <AccValue>56</AccValue>\\n </DataModule>\\n <DataModule>\\n <TimeStamp>2015-12-10T20:35:00Z</TimeStamp>\\n <Value>0.64</Value>\\n <AccValue>56</AccValue>\\n </DataModule>\\n</QpsDataInterval>\\n<Layer>all</Layer>\\n<DomainName>example.com</DomainName>\\n<DataInterval>300</DataInterval>\\n<RequestId>BEA5625F-8FCF-48F4-851B-CA63946DA664</RequestId>\\n<StartTime>2015-12-10T20:00:00Z</StartTime>\\n<EndTime>2015-12-10T21:00:00Z</EndTime>\\n</DescribeDcdnDomainQpsDataByLayerResponse>","errorExample":""}]', ], 'DescribeDcdnDomainRealTimeBpsData' => [ 'summary' => '调用DescribeDcdnDomainRealTimeBpsData查询域名实时网络带宽数据。', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9162,70 +9391,43 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,多个域名用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '加速域名,多个域名用英文逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名。'."\n" - ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获取,默认查询所有运营商。', - 'type' => 'string', - 'required' => false, - 'example' => 'telecom', - ], + 'schema' => ['description' => '运营商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获取,默认查询所有运营商。', 'type' => 'string', 'required' => false, 'example' => 'telecom'], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '地域商英文名。'."\n" - ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获取,默认查询所有地域。', - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => '地域商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获取,默认查询所有地域。', 'type' => 'string', 'required' => false, 'example' => 'beijing'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的开始时间。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-01-02T11:00:00Z', - ], + 'schema' => ['description' => '获取数据的开始时间。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2018-01-02T11:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的结束时间。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-01-02T11:00:00Z', - ], + 'schema' => ['description' => '获取数据的结束时间。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2018-01-02T11:00:00Z'], ], ], 'responses' => [ @@ -9233,11 +9435,7 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B49E6DDA-F413-422B-B58E-2FA23F286726', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B49E6DDA-F413-422B-B58E-2FA23F286726'], 'Data' => [ 'type' => 'object', 'itemNode' => true, @@ -9248,51 +9446,29 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Bps' => [ - 'description' => '带宽数据,单位是bit/s。', - 'type' => 'number', - 'format' => 'float', - 'example' => '16710625.733333332', - ], - 'TimeStamp' => [ - 'description' => '数据时间戳,日期格式按照ISO8601表示法,并使用UTC时间。', - 'type' => 'string', - 'example' => '2018-01-02T11:05:00Z', - ], + 'Bps' => ['description' => '带宽数据,单位是bit/s。', 'type' => 'number', 'format' => 'float', 'example' => '16710625.733333332'], + 'TimeStamp' => ['description' => '数据时间戳,日期格式按照ISO8601表示法,并使用UTC时间。', 'type' => 'string', 'example' => '2018-01-02T11:05:00Z'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B49E6DDA-F413-422B-B58E-2FA23F286726\\",\\n \\"Data\\": {\\n \\"BpsModel\\": [\\n {\\n \\"Bps\\": 16710625.733333332,\\n \\"TimeStamp\\": \\"2018-01-02T11:05:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainRealTimeBpsDataResponse>\\r\\n\\t<Data>\\r\\n\\t\\t<BpsModel>\\r\\n\\t\\t\\t<TimeStamp>2018-01-02T11:05:00Z</TimeStamp>\\r\\n\\t\\t\\t<Bps>16710625.733333332</Bps>\\r\\n\\t\\t</BpsModel>\\r\\n\\t\\t<BpsModel>\\r\\n\\t\\t\\t<TimeStamp>2018-01-02T11:04:00Z</TimeStamp>\\r\\n\\t\\t\\t<Bps>59392614.8</Bps>\\r\\n\\t\\t</BpsModel>\\r\\n\\t</Data>\\r\\n\\t<RequestId>B49E6DDA-F413-422B-B58E-2FA23F286726</RequestId>\\r\\n</DescribeDcdnDomainRealTimeBpsDataResponse>","errorExample":""}]', 'title' => '查询实时网络带宽数据', 'description' => '- 单用户调用频率:10次/秒。'."\n" .'- 如果您不指定**StartTime**和**EndTime**,该接口默认返回过去1小时的数据;指定**StartTime**和**EndTime**,该接口返回指定时间段的数据。'."\n" @@ -9309,16 +9485,30 @@ 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainRealTimeByteHitRateData' => [ - 'summary' => '调用DescribeDcdnDomainRealTimeByteHitRateData查询域名实时字节命中率数据。', - 'methods' => [ - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRealTimeBpsData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRealTimeBpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B49E6DDA-F413-422B-B58E-2FA23F286726\\",\\n \\"Data\\": {\\n \\"BpsModel\\": [\\n {\\n \\"Bps\\": 16710625.733333332,\\n \\"TimeStamp\\": \\"2018-01-02T11:05:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainRealTimeBpsDataResponse>\\r\\n\\t<Data>\\r\\n\\t\\t<BpsModel>\\r\\n\\t\\t\\t<TimeStamp>2018-01-02T11:05:00Z</TimeStamp>\\r\\n\\t\\t\\t<Bps>16710625.733333332</Bps>\\r\\n\\t\\t</BpsModel>\\r\\n\\t\\t<BpsModel>\\r\\n\\t\\t\\t<TimeStamp>2018-01-02T11:04:00Z</TimeStamp>\\r\\n\\t\\t\\t<Bps>59392614.8</Bps>\\r\\n\\t\\t</BpsModel>\\r\\n\\t</Data>\\r\\n\\t<RequestId>B49E6DDA-F413-422B-B58E-2FA23F286726</RequestId>\\r\\n</DescribeDcdnDomainRealTimeBpsDataResponse>","errorExample":""}]', + ], + 'DescribeDcdnDomainRealTimeByteHitRateData' => [ + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9329,42 +9519,25 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '域名,多个之间用逗号(,)隔开。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '域名,多个之间用逗号(,)隔开。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', - ], + 'schema' => ['description' => '获取数据起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], + 'schema' => ['description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z'], ], ], 'responses' => [ @@ -9372,11 +9545,7 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E'], 'Data' => [ 'type' => 'object', 'itemNode' => true, @@ -9387,52 +9556,31 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'ByteHitRate' => [ - 'description' => '请求命中率数据。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.8956940476262277', - ], - 'TimeStamp' => [ - 'description' => '数据时间戳,日期格式按照ISO8601表示法,并使用UTC时间。', - 'type' => 'string', - 'example' => '2016-10-20T04:00:00Z', - ], + 'ByteHitRate' => ['description' => '请求命中率数据。', 'type' => 'number', 'format' => 'float', 'example' => '0.8956940476262277'], + 'TimeStamp' => ['description' => '数据时间戳,日期格式按照ISO8601表示法,并使用UTC时间。', 'type' => 'string', 'example' => '2016-10-20T04:00:00Z'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"Data\\": {\\n \\"ByteHitRateDataModel\\": [\\n {\\n \\"ByteHitRate\\": 0.8956940476262277,\\n \\"TimeStamp\\": \\"2016-10-20T04:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainRealTimeByteHitRateDataResponse>\\r\\n\\t<Data>\\r\\n\\t\\t<ReqHitRate>0.8956940476262277</ReqHitRate>\\r\\n\\t\\t<TimeStamp>2016-10-20T04:00:00Z</TimeStamp>\\r\\n\\t</Data>\\r\\n\\t<RequestId>B955107D-E658-4E77-B913-E0AC3D31693E</RequestId>\\r\\n</DescribeDcdnDomainRealTimeByteHitRateDataResponse>\\r\\n\\t\\r\\n","errorExample":""}]', 'title' => '查询实时字节命中率数据', + 'summary' => '调用DescribeDcdnDomainRealTimeByteHitRateData查询域名实时字节命中率数据。', 'description' => '- 单用户调用频率:10次/秒。 '."\n" .'- 由于存在多域名合并存储的情况,可能会导致命中率数据不准确,具体情况以配置为准。'."\n" .'- 如果您不指定**StartTime**和**EndTime**,该接口默认返回过去1小时的数据;指定**StartTime**和**EndTime**,该接口返回指定时间段的数据。'."\n" @@ -9448,16 +9596,31 @@ 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainRealTimeReqHitRateData' => [ - 'summary' => '调用DescribeDcdnDomainRealTimeReqHitRateData查询域名实时请求命中率数据。', - 'methods' => [ - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRealTimeByteHitRateData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRealTimeByteHitRateData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"Data\\": {\\n \\"ByteHitRateDataModel\\": [\\n {\\n \\"ByteHitRate\\": 0.8956940476262277,\\n \\"TimeStamp\\": \\"2016-10-20T04:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainRealTimeByteHitRateDataResponse>\\r\\n\\t<Data>\\r\\n\\t\\t<ReqHitRate>0.8956940476262277</ReqHitRate>\\r\\n\\t\\t<TimeStamp>2016-10-20T04:00:00Z</TimeStamp>\\r\\n\\t</Data>\\r\\n\\t<RequestId>B955107D-E658-4E77-B913-E0AC3D31693E</RequestId>\\r\\n</DescribeDcdnDomainRealTimeByteHitRateDataResponse>\\r\\n\\t\\r\\n","errorExample":""}]', + ], + 'DescribeDcdnDomainRealTimeDetailData' => [ + 'summary' => '调用DescribeDcdnDomainRealTimeDetailData批量获取域名的各地区运营商流量和访问次数的1分钟粒度数据。该API最长查询跨度不超过10分钟。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9468,42 +9631,67 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,多个用英文逗号(,)隔开。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '加速域名,多个用英文逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '起始时间,日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2019-12-10T20:00:00Z', - ], + 'schema' => ['description' => '获取数据的起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => true, 'example' => '2019-11-30T05:33:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '结束时间,日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2019-12-10T20:03:00Z', - ], + 'schema' => ['description' => '获取数据的结束时间点,日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需大于起始时间,且查询跨度不得超过10分钟。', 'type' => 'string', 'required' => true, 'example' => '2019-11-30T05:40:00Z'], + ], + [ + 'name' => 'Field', + 'in' => 'query', + 'schema' => ['description' => '获取的类别信息,多个用逗号(,)分隔。取值:'."\n" + ."\n" + .'- **qps**:每秒访问次数。'."\n" + .'- **bps**:带宽数据。'."\n" + .'- **http_code**:HTTP返回码。'."\n" + ."\n", 'type' => 'string', 'required' => true, 'example' => 'bps'], + ], + [ + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => ['description' => '地域英文名,通过[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)获得。'."\n" + ."\n" + .'默认查询所有地域。', 'type' => 'string', 'required' => false, 'example' => 'beijing'], + ], + [ + 'name' => 'IspNameEn', + 'in' => 'query', + 'schema' => ['description' => '运营商英文名,通过[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)获得。'."\n" + ."\n" + .'默认查询所有运营商。', 'type' => 'string', 'required' => false, 'example' => 'unicom'], + ], + [ + 'name' => 'Merge', + 'in' => 'query', + 'schema' => ['description' => '是否输出汇总值。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'默认值为**false**。', 'type' => 'string', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'MergeLocIsp', + 'in' => 'query', + 'schema' => ['description' => '是否合并**LocationNameEn**和**IspNameEn**输出汇总值。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'默认值为**false**。', 'type' => 'string', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ @@ -9511,92 +9699,85 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', - ], - 'Data' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ReqHitRateDataModel' => [ - 'description' => '字节命中率数据列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ReqHitRate' => [ - 'description' => '请求命中率数据。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.8956940476262277', - ], - 'TimeStamp' => [ - 'description' => '数据时间戳,日期格式按照ISO8601表示法,并使用UTC时间。', - 'type' => 'string', - 'example' => '2016-10-20T04:00:00Z', - ], - ], - ], - ], - ], - ], - ], + 'Data' => ['description' => '数据信息列表。'."\n" + ."\n" + .'> 该字段受API限制,按JSON字符串返回,各个字段意义及名称如下表所示。', '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.0'."\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" + .' ]'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A603F324-7A05-4FB3-ADF3-2563233D26CC'], + ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified StartTime or EndTime is malformed.', 'description' => '开始时间或结束时间格式错误。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specific DomainName is invalid.', 'description' => '指定的域名无效。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"Data\\": {\\n \\"ReqHitRateDataModel\\": [\\n {\\n \\"ReqHitRate\\": 0.8956940476262277,\\n \\"TimeStamp\\": \\"2016-10-20T04:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainRealTimeReqHitRateDataResponse>\\n<Data>\\n <ReqHitRateDataModel>\\n <TimeStamp>2019-12-10T20:00:00Z</TimeStamp>\\n <ReqHitRate>0</ReqHitRate>\\n </ReqHitRateDataModel>\\n <ReqHitRateDataModel>\\n <TimeStamp>2019-12-10T20:01:00Z</TimeStamp>\\n <ReqHitRate>0</ReqHitRate>\\n </ReqHitRateDataModel>\\n</Data>\\n<RequestId>9C1CE71E-706C-4253-A0C4-EDA427CAE347</RequestId>\\n</DescribeDcdnDomainRealTimeReqHitRateDataResponse>\\n","errorExample":""}]', - 'title' => '查询实时请求命中率数据', - 'description' => '- 单用户调用频率:10次/秒。 '."\n" - .'- 由于存在多域名合并存储的情况,可能会导致命中率数据不准确,具体情况以配置为准。'."\n" - .'- 如果您不指定**StartTime**和**EndTime**,该接口默认返回过去1小时的数据;指定**StartTime**和**EndTime**,该接口返回指定时间段的数据。'."\n" - ."\n" - .'**返回数据时间粒度**'."\n" - .'根据您指定StartTime和EndTime时间跨度,会返回不同的数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" - .'|时间粒度 |单次查询的最大时间跨度 |可查询历史数据时间范围|数据延迟|'."\n" - .'|----|----|-------|--------|'."\n" - .'|1分钟|1小时|7天|5分钟|'."\n" - .'|5分钟|3天|93天|15分钟|'."\n" - .'|1小时|31天|186天|一般延迟3-4小时|', + 'title' => '批量获取域名实时监控详细数据', + 'description' => '> '."\n" + .'> - 单用户调用频率:10次/秒。'."\n" + .'> - 该接口暂时仅支持日峰值带宽为 1 Gbps 以上的用户调用,如果您符合该条件,请[提交工单](https://smartservice.console.aliyun.com/service/create-ticket)申请该接口的调用权限。', 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', + 'responseParamsDescription' => '### Data字段说明'."\n" + ."\n" + .'| 名称 | 类型 | 描述 |示例值|'."\n" + .'|-------------|----------|---------------------------------------------------------------------------|----------|'."\n" + .'| domain_name | String | 查询域名。 |example.com |'."\n" + .'| isp | String | 运营商名称。 |unicom|'."\n" + .'| location | String | 地区名称。 |qingdao|'."\n" + .'| qps | Long | 每秒访问次数。 |40|'."\n" + .'| bps | Long | 带宽数据。 |100|'."\n" + .'| http_code | Map | http_code明细,键为状态码名称,值为状态码数量。 | {"200": 1, "304": 2, "403": 3} |'."\n" + .'| time_stp | String | 数据起始时间,键为查询数据的起始时间,日期格式按照ISO8601表示法,并使用UTC时间。|2022-10-20T04:00:00Z |', 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-07-04T08:38:54.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRealTimeDetailData'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRealTimeDetailData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","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.0\\\\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\\": \\"A603F324-7A05-4FB3-ADF3-2563233D26CC\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainRealTimeDetailDataResponse>\\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.0\\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 ]</Data>\\n <RequestId>A603F324-7A05-4FB3-ADF3-2563233D26CC</RequestId>\\n</DescribeDcdnDomainRealTimeDetailDataResponse>","errorExample":""}]', ], 'DescribeDcdnDomainRealTimeHttpCodeData' => [ 'summary' => '调用DescribeDcdnDomainRealTimeHttpCodeData查询域名实时HTTP返回码总数和占比数据。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9607,70 +9788,43 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,多个域名用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '加速域名,多个域名用英文逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的起始时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', - ], + 'schema' => ['description' => '获取数据的起始时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的结束时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], + 'schema' => ['description' => '获取数据的结束时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z'], ], [ 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名。'."\n" - ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获取,默认查询所有运营商。', - 'type' => 'string', - 'required' => false, - 'example' => 'unicom', - ], + 'schema' => ['description' => '运营商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获取,默认查询所有运营商。', 'type' => 'string', 'required' => false, 'example' => 'unicom'], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '地域商英文名。'."\n" - ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获取,默认查询所有地域。', - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => '地域商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获取,默认查询所有地域。', 'type' => 'string', 'required' => false, 'example' => 'beijing'], ], ], 'responses' => [ @@ -9678,31 +9832,11 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,以秒为单位。', - 'type' => 'string', - 'example' => '60', - ], + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔,以秒为单位。', 'type' => 'string', 'example' => '60'], 'RealTimeHttpCodeData' => [ 'type' => 'object', 'itemNode' => true, @@ -9713,11 +9847,7 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z'], 'Value' => [ 'type' => 'object', 'itemNode' => true, @@ -9728,60 +9858,37 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => 'HTTP返回码。', - 'type' => 'string', - 'example' => '200', - ], - 'Proportion' => [ - 'description' => '占比使用数据。', - 'type' => 'string', - 'example' => '0.01155980271270037', - ], - 'Count' => [ - 'description' => '总数。', - 'type' => 'string', - 'example' => '1', - ], + 'Code' => ['description' => 'HTTP返回码。', 'type' => 'string', 'example' => '200'], + 'Proportion' => ['description' => '占比使用数据。', 'type' => 'string', 'example' => '0.01155980271270037'], + 'Count' => ['description' => '总数。', 'type' => 'string', 'example' => '1'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"60\\",\\n \\"RealTimeHttpCodeData\\": {\\n \\"UsageData\\": [\\n {\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\",\\n \\"Value\\": {\\n \\"RealTimeCodeProportionData\\": [\\n {\\n \\"Code\\": \\"200\\",\\n \\"Proportion\\": \\"0.01155980271270037\\",\\n \\"Count\\": \\"1\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainRealTimeHttpCodeDataResponse>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>60</DataInterval>\\r\\n\\t<RealTimeHttpCodeData>\\r\\n\\t\\t<TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\r\\n\\t\\t<RealTimeCodeProportionData>\\r\\n\\t\\t\\t<Code>200</Code>\\r\\n\\t\\t\\t<Proportion>0.01155980271270037</Proportion>\\r\\n\\t\\t\\t<Count>1</Count>\\r\\n\\t\\t</RealTimeCodeProportionData>\\r\\n\\t</RealTimeHttpCodeData>\\r\\n\\t<RequestId>B955107D-E658-4E77-B913-E0AC3D31693E</RequestId>\\r\\n\\t<StartTime>2017-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2017-12-10T21:00:00Z</EndTime>\\r\\n</DescribeDcdnDomainRealTimeHttpCodeDataResponse>","errorExample":""}]', 'title' => '查询实时HTTP状态码', 'description' => '- 单用户调用频率:10次/秒。'."\n" .'- 如果您不指定StartTime和EndTime,该接口默认返回过去1小时的数据;指定StartTime和EndTime,该接口返回指定时间段的数据。'."\n" @@ -9798,16 +9905,30 @@ 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainRealTimeDetailData' => [ - 'summary' => '调用DescribeDcdnDomainRealTimeDetailData批量获取域名的各地区运营商流量和访问次数的1分钟粒度数据。该API最长查询跨度不超过10分钟。', - 'methods' => [ - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRealTimeHttpCodeData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRealTimeHttpCodeData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"60\\",\\n \\"RealTimeHttpCodeData\\": {\\n \\"UsageData\\": [\\n {\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\",\\n \\"Value\\": {\\n \\"RealTimeCodeProportionData\\": [\\n {\\n \\"Code\\": \\"200\\",\\n \\"Proportion\\": \\"0.01155980271270037\\",\\n \\"Count\\": \\"1\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainRealTimeHttpCodeDataResponse>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>60</DataInterval>\\r\\n\\t<RealTimeHttpCodeData>\\r\\n\\t\\t<TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\r\\n\\t\\t<RealTimeCodeProportionData>\\r\\n\\t\\t\\t<Code>200</Code>\\r\\n\\t\\t\\t<Proportion>0.01155980271270037</Proportion>\\r\\n\\t\\t\\t<Count>1</Count>\\r\\n\\t\\t</RealTimeCodeProportionData>\\r\\n\\t</RealTimeHttpCodeData>\\r\\n\\t<RequestId>B955107D-E658-4E77-B913-E0AC3D31693E</RequestId>\\r\\n\\t<StartTime>2017-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2017-12-10T21:00:00Z</EndTime>\\r\\n</DescribeDcdnDomainRealTimeHttpCodeDataResponse>","errorExample":""}]', + ], + 'DescribeDcdnDomainRealTimeQpsData' => [ + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9818,109 +9939,43 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,多个用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => true, - 'example' => '2019-11-30T05:33:00Z', - ], + 'schema' => ['description' => '加速域名,多个域名用英文逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的结束时间点,日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需大于起始时间,且查询跨度不得超过10分钟。', - 'type' => 'string', - 'required' => true, - 'example' => '2019-11-30T05:40:00Z', - ], - ], - [ - 'name' => 'Field', + 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '获取的类别信息,多个用逗号(,)分隔。取值:'."\n" - ."\n" - .'- **qps**:每秒访问次数。'."\n" - .'- **bps**:带宽数据。'."\n" - .'- **http_code**:HTTP返回码。'."\n" - ."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'bps', - ], + 'schema' => ['description' => '运营商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有运营商。', 'type' => 'string', 'required' => false, 'example' => 'telecom'], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '地域英文名,通过[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)获得。'."\n" - ."\n" - .'默认查询所有地域。', - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => '地域英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有地域。', 'type' => 'string', 'required' => false, 'example' => 'beijing'], ], [ - 'name' => 'IspNameEn', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名,通过[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)获得。'."\n" - ."\n" - .'默认查询所有运营商。', - 'type' => 'string', - 'required' => false, - 'example' => 'unicom', - ], + 'schema' => ['description' => '获取数据的起始时间。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2018-01-02T11:26:00Z'], ], [ - 'name' => 'Merge', - 'in' => 'query', - 'schema' => [ - 'description' => '是否输出汇总值。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'默认值为**false**。', - 'type' => 'string', - 'required' => false, - 'example' => 'true', - ], - ], - [ - 'name' => 'MergeLocIsp', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '是否合并**LocationNameEn**和**IspNameEn**输出汇总值。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'默认值为**false**。', - 'type' => 'string', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '获取数据的结束时间。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2018-01-02T11:27:00Z'], ], ], 'responses' => [ @@ -9928,98 +9983,81 @@ 'schema' => [ 'type' => 'object', 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '32DC9806-E9F9-4490-BBDC-B3A9E32FCC1D'], 'Data' => [ - 'description' => '数据信息列表。'."\n" - ."\n" - .'> 该字段受API限制,按JSON字符串返回,各个字段意义及名称如下表所示。', - '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.0'."\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" - .' ]', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A603F324-7A05-4FB3-ADF3-2563233D26CC', + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'QpsModel' => [ + 'description' => '数据列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Qps' => ['description' => 'QPS数据。', 'type' => 'number', 'format' => 'float', 'example' => '1851.25'], + 'TimeStamp' => ['description' => '数据时间戳,日期格式按照ISO8601表示法,并使用UTC时间。', 'type' => 'string', 'example' => '2018-01-02T11:26:00Z'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidTime.Malformed', - 'errorMessage' => 'Specified StartTime or EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidDomainName.Malformed', - 'errorMessage' => 'The specific DomainName is invalid.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Data\\": \\"[\\\\n {\\\\n \\\\\\"time_stp\\\\\\": \\\\\\"2018-06-05T20:00:00Z\\\\\\",\\\\n \\\\\\"domain_name\\\\\\": \\\\\\"example.com\\\\\\",\\\\n \\\\\\"location\\\\\\": \\\\\\"Guangdong\\\\\\",\\\\n \\\\\\"isp\\\\\\": \\\\\\"telecom\\\\\\",\\\\n \\\\\\"qps\\\\\\": 10.0\\\\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\\": \\"A603F324-7A05-4FB3-ADF3-2563233D26CC\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainRealTimeDetailDataResponse>\\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.0\\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 ]</Data>\\n <RequestId>A603F324-7A05-4FB3-ADF3-2563233D26CC</RequestId>\\n</DescribeDcdnDomainRealTimeDetailDataResponse>","errorExample":""}]', - 'title' => '批量获取域名实时监控详细数据', - 'description' => '> '."\n" - .'> - 单用户调用频率:10次/秒。'."\n" - .'> - 该接口暂时仅支持日峰值带宽为 1 Gbps 以上的用户调用,如果您符合该条件,请[提交工单](https://smartservice.console.aliyun.com/service/create-ticket)申请该接口的调用权限。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => '### Data字段说明'."\n" + 'title' => '查询实时QPS', + 'summary' => '调用DescribeDcdnDomainRealTimeQpsData获取域名每秒访问次数的数据。', + 'description' => '- 单用户调用频率:10次/秒'."\n" + .'- 如果您不指定StartTime和EndTime,该接口默认返回过去1小时的数据;指定StartTime和EndTime,该接口返回指定时间段的数据。'."\n" ."\n" - .'| 名称 | 类型 | 描述 |示例值|'."\n" - .'|-------------|----------|---------------------------------------------------------------------------|----------|'."\n" - .'| domain_name | String | 查询域名。 |example.com |'."\n" - .'| isp | String | 运营商名称。 |unicom|'."\n" - .'| location | String | 地区名称。 |qingdao|'."\n" - .'| qps | Long | 每秒访问次数。 |40|'."\n" - .'| bps | Long | 带宽数据。 |100|'."\n" - .'| http_code | Map | http_code明细,键为状态码名称,值为状态码数量。 | {"200": 1, "304": 2, "403": 3} |'."\n" - .'| time_stp | String | 数据起始时间,键为查询数据的起始时间,日期格式按照ISO8601表示法,并使用UTC时间。|2022-10-20T04:00:00Z |', + .'**返回数据时间粒度**'."\n" + ."\n" + .'根据您指定StartTime和EndTime时间跨度,会返回不同的数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" + .'|时间粒度 |单次查询的最大时间跨度 |可查询历史数据时间范围|数据延迟|'."\n" + .'|---------------|--------|-----|-----|'."\n" + .'|1分钟|1小时|7天|5分钟|'."\n" + .'|5分钟|3天|93天|15分钟|'."\n" + .'|1小时|31天|186天|一般延迟3-4小时|', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainRealTimeSrcBpsData' => [ - 'summary' => '调用DescribeDcdnDomainRealTimeSrcBpsData查询域名实时回源带宽数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRealTimeQpsData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRealTimeQpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"32DC9806-E9F9-4490-BBDC-B3A9E32FCC1D\\",\\n \\"Data\\": {\\n \\"QpsModel\\": [\\n {\\n \\"Qps\\": 1851.25,\\n \\"TimeStamp\\": \\"2018-01-02T11:26:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainRealTimeQpsDataResponse>\\r\\n\\t<Data>\\r\\n\\t\\t<QpsModel>\\r\\n\\t\\t\\t<TimeStamp>2018-01-02T11:26:00Z</TimeStamp>\\r\\n\\t\\t\\t<Qps>1851.25</Qps>\\r\\n\\t\\t</QpsModel>\\r\\n\\t\\t<QpsModel>\\r\\n\\t\\t\\t<TimeStamp>2018-01-02T11:25:00Z</TimeStamp>\\r\\n\\t\\t\\t<Qps>8967.7</Qps>\\r\\n\\t\\t</QpsModel>\\r\\n\\t</Data>\\r\\n\\t<RequestId>32DC9806-E9F9-4490-BBDC-B3A9E32FCC1D</RequestId>\\r\\n</DescribeDcdnDomainRealTimeQpsDataResponse>","errorExample":""}]', + ], + 'DescribeDcdnDomainRealTimeReqHitRateData' => [ + 'summary' => '调用DescribeDcdnDomainRealTimeReqHitRateData查询域名实时请求命中率数据。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10030,42 +10068,25 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,多个域名用逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '加速域名,多个用英文逗号(,)隔开。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T20:00:00Z', - ], + 'schema' => ['description' => '起始时间,日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2019-12-10T20:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T20:01:00Z', - ], + 'schema' => ['description' => '结束时间,日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2019-12-10T20:03:00Z'], ], ], 'responses' => [ @@ -10073,114 +10094,80 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2015-12-10T20:01:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2015-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7CBCD6AD-B016-42E5-AE0B-B3731DE8F755', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,以秒为单位。'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,该参数固定返回60(1分钟)、300(5分钟)或3600(1小时),具体请参见**使用说明**中返回数据时间粒度。', - 'type' => 'string', - 'example' => '60', - ], - 'RealTimeSrcBpsDataPerInterval' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E'], + 'Data' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DataModule' => [ - 'description' => '每个时间间隔的回源带宽数据,单位:bit/s。', + 'ReqHitRateDataModel' => [ + 'description' => '字节命中率数据列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Value' => [ - 'description' => '详细使用数据。', - 'type' => 'string', - 'example' => '0', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2015-12-10T20:01:00Z', - ], + 'ReqHitRate' => ['description' => '请求命中率数据。', 'type' => 'number', 'format' => 'float', 'example' => '0.8956940476262277'], + 'TimeStamp' => ['description' => '数据时间戳,日期格式按照ISO8601表示法,并使用UTC时间。', 'type' => 'string', 'example' => '2016-10-20T04:00:00Z'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-12-10T20:01:00Z\\",\\n \\"StartTime\\": \\"2015-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"7CBCD6AD-B016-42E5-AE0B-B3731DE8F755\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"60\\",\\n \\"RealTimeSrcBpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"0\\",\\n \\"TimeStamp\\": \\"2015-12-10T20:01:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainRealTimeSrcBpsDataResponse>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>60</DataInterval>\\r\\n\\t<RealTimeSrcBpsDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2015-12-10T20:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>821</Value>\\r\\n\\t\\t</DataModule>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2015-12-10T20:01:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>0</Value>\\r\\n\\t\\t</DataModule>\\r\\n\\t</RealTimeSrcBpsDataPerInterval>\\r\\n\\t<RequestId>7CBCD6AD-B016-42E5-AE0B-B3731DE8F755</RequestId>\\r\\n\\t<StartTime>2015-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2015-12-10T20:01:00Z</EndTime>\\r\\n</DescribeDcdnDomainRealTimeSrcBpsDataResponse>\\r\\n\\t\\r\\n","errorExample":""}]', - 'title' => '查询实时回源带宽数据', - 'description' => '- 单用户调用频率:10次/秒。'."\n" - .'- 如果您不指定StartTime和EndTime,该接口默认返回过去1小时的数据;指定StartTime和EndTime,该接口返回指定时间段的数据。'."\n" + 'title' => '查询实时请求命中率数据', + 'description' => '- 单用户调用频率:10次/秒。 '."\n" + .'- 由于存在多域名合并存储的情况,可能会导致命中率数据不准确,具体情况以配置为准。'."\n" + .'- 如果您不指定**StartTime**和**EndTime**,该接口默认返回过去1小时的数据;指定**StartTime**和**EndTime**,该接口返回指定时间段的数据。'."\n" ."\n" .'**返回数据时间粒度**'."\n" - ."\n" .'根据您指定StartTime和EndTime时间跨度,会返回不同的数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" - ."\n" - .'| 时间粒度 | 单次查询的最大时间跨度 |可查询历史数据时间范围 | 数据延迟 |'."\n" - .'|--------------|------------------------|------------------------|---------|'."\n" + .'|时间粒度 |单次查询的最大时间跨度 |可查询历史数据时间范围|数据延迟|'."\n" + .'|----|----|-------|--------|'."\n" .'|1分钟|1小时|7天|5分钟|'."\n" .'|5分钟|3天|93天|15分钟|'."\n" .'|1小时|31天|186天|一般延迟3-4小时|', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainRealTimeSrcTrafficData' => [ - 'summary' => '调用DescribeDcdnDomainRealTimeSrcTrafficData查询域名实时回源流量监控数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRealTimeReqHitRateData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRealTimeReqHitRateData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"Data\\": {\\n \\"ReqHitRateDataModel\\": [\\n {\\n \\"ReqHitRate\\": 0.8956940476262277,\\n \\"TimeStamp\\": \\"2016-10-20T04:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainRealTimeReqHitRateDataResponse>\\n<Data>\\n <ReqHitRateDataModel>\\n <TimeStamp>2019-12-10T20:00:00Z</TimeStamp>\\n <ReqHitRate>0</ReqHitRate>\\n </ReqHitRateDataModel>\\n <ReqHitRateDataModel>\\n <TimeStamp>2019-12-10T20:01:00Z</TimeStamp>\\n <ReqHitRate>0</ReqHitRate>\\n </ReqHitRateDataModel>\\n</Data>\\n<RequestId>9C1CE71E-706C-4253-A0C4-EDA427CAE347</RequestId>\\n</DescribeDcdnDomainRealTimeReqHitRateDataResponse>\\n","errorExample":""}]', + ], + 'DescribeDcdnDomainRealTimeSrcBpsData' => [ + 'summary' => '调用DescribeDcdnDomainRealTimeSrcBpsData查询域名实时回源带宽数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10191,42 +10178,25 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,多个域名用逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '加速域名,多个域名用逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T20:00:00Z', - ], + 'schema' => ['description' => '获取数据起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T20:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T20:01:00Z', - ], + 'schema' => ['description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T20:01:00Z'], ], ], 'responses' => [ @@ -10234,112 +10204,86 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2015-12-10T20:01:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2015-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A666D44F-19D6-490E-97CF-1A64AB962C57', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,以秒为单位。'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,该参数固定返回60(1分钟)、300(5分钟)或3600(1小时),具体请参见**使用说明**中返回数据时间粒度。', - 'type' => 'string', - 'example' => '60', - ], - 'RealTimeSrcTrafficDataPerInterval' => [ + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2015-12-10T20:01:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7CBCD6AD-B016-42E5-AE0B-B3731DE8F755'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔,以秒为单位。'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,该参数固定返回60(1分钟)、300(5分钟)或3600(1小时),具体请参见**使用说明**中返回数据时间粒度。', 'type' => 'string', 'example' => '60'], + 'RealTimeSrcBpsDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => '每个时间间隔的回源流量数据,单位:Byte。', + 'description' => '每个时间间隔的回源带宽数据,单位:bit/s。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Value' => [ - 'description' => '详细使用数据。', - 'type' => 'string', - 'example' => '0', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2015-12-10T20:00:00Z', - ], + 'Value' => ['description' => '详细使用数据。', 'type' => 'string', 'example' => '0'], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2015-12-10T20:01:00Z'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-12-10T20:01:00Z\\",\\n \\"StartTime\\": \\"2015-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"A666D44F-19D6-490E-97CF-1A64AB962C57\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"60\\",\\n \\"RealTimeSrcTrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"0\\",\\n \\"TimeStamp\\": \\"2015-12-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainRealTimeSrcTrafficDataResponse>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>60</DataInterval>\\r\\n\\t<RealTimeSrcTrafficDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2015-12-10T20:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>0</Value>\\r\\n\\t\\t</DataModule>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2015-12-10T20:01:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>0</Value>\\r\\n\\t\\t</DataModule>\\r\\n\\t</RealTimeSrcTrafficDataPerInterval>\\r\\n\\t<RequestId>A666D44F-19D6-490E-97CF-1A64AB962C57</RequestId>\\r\\n\\t<StartTime>2015-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2015-12-10T20:01:00Z</EndTime>\\r\\n</DescribeDcdnDomainRealTimeSrcTrafficDataResponse>\\r\\n\\t\\r\\n","errorExample":""}]', - 'title' => '查询实时回源流量监控数据', - 'description' => '> 如果您不指定StartTime和EndTime时,默认读取过去1小时的数据;指定StartTime和EndTime时,按指定的起止时间查询。'."\n" + 'title' => '查询实时回源带宽数据', + 'description' => '- 单用户调用频率:10次/秒。'."\n" + .'- 如果您不指定StartTime和EndTime,该接口默认返回过去1小时的数据;指定StartTime和EndTime,该接口返回指定时间段的数据。'."\n" ."\n" .'**返回数据时间粒度**'."\n" ."\n" .'根据您指定StartTime和EndTime时间跨度,会返回不同的数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" - .'|时间粒度 |单次查询的最大时间跨度 |可查询历史数据时间范围|数据延迟|'."\n" - .'|---------------|--------|------|-------|'."\n" + ."\n" + .'| 时间粒度 | 单次查询的最大时间跨度 |可查询历史数据时间范围 | 数据延迟 |'."\n" + .'|--------------|------------------------|------------------------|---------|'."\n" .'|1分钟|1小时|7天|5分钟|'."\n" .'|5分钟|3天|93天|15分钟|'."\n" .'|1小时|31天|186天|一般延迟3-4小时|', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainRealTimeSrcHttpCodeData' => [ - 'summary' => '调用DescribeDcdnDomainRealTimeSrcHttpCodeData查询域名实时回源HTTP返回码占比数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRealTimeSrcBpsData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRealTimeSrcBpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-12-10T20:01:00Z\\",\\n \\"StartTime\\": \\"2015-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"7CBCD6AD-B016-42E5-AE0B-B3731DE8F755\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"60\\",\\n \\"RealTimeSrcBpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"0\\",\\n \\"TimeStamp\\": \\"2015-12-10T20:01:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainRealTimeSrcBpsDataResponse>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>60</DataInterval>\\r\\n\\t<RealTimeSrcBpsDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2015-12-10T20:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>821</Value>\\r\\n\\t\\t</DataModule>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2015-12-10T20:01:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>0</Value>\\r\\n\\t\\t</DataModule>\\r\\n\\t</RealTimeSrcBpsDataPerInterval>\\r\\n\\t<RequestId>7CBCD6AD-B016-42E5-AE0B-B3731DE8F755</RequestId>\\r\\n\\t<StartTime>2015-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2015-12-10T20:01:00Z</EndTime>\\r\\n</DescribeDcdnDomainRealTimeSrcBpsDataResponse>\\r\\n\\t\\r\\n","errorExample":""}]', + ], + 'DescribeDcdnDomainRealTimeSrcHttpCodeData' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10350,68 +10294,41 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,多个域名用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com,example.org', - ], + 'schema' => ['description' => '加速域名,多个域名用英文逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'example.com,example.org'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的开始时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2019-11-30T05:39:00Z', - ], + 'schema' => ['description' => '获取数据的开始时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2019-11-30T05:39:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的结束时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2019-11-30T05:40:00Z', - ], + 'schema' => ['description' => '获取数据的结束时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2019-11-30T05:40:00Z'], ], [ 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名。'."\n" - ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获取,默认查询所有运营商。', - 'type' => 'string', - 'required' => false, - 'example' => 'unicom', - ], + 'schema' => ['description' => '运营商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获取,默认查询所有运营商。', 'type' => 'string', 'required' => false, 'example' => 'unicom'], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => '地域商英文名。'."\n" - ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获取,默认查询所有地域。', - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => '地域商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~)接口获取,默认查询所有地域。', 'type' => 'string', 'required' => false, 'example' => 'beijing'], ], ], 'responses' => [ @@ -10419,37 +10336,17 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '获取数据的结束时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'example' => '2019-11-30T05:40:00Z', - ], - 'StartTime' => [ - 'description' => '获取数据的开始时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'example' => '2019-11-30T05:33:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com,example.org', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,单位为秒。'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,该参数固定返回60(1分钟)、300(5分钟)或3600(1小时),具体请参见**使用说明**中返回数据时间粒度。', - 'type' => 'string', - 'example' => '60', - ], + 'EndTime' => ['description' => '获取数据的结束时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2019-11-30T05:40:00Z'], + 'StartTime' => ['description' => '获取数据的开始时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2019-11-30T05:33:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com,example.org'], + 'DataInterval' => ['description' => '每条记录的时间间隔,单位为秒。'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,该参数固定返回60(1分钟)、300(5分钟)或3600(1小时),具体请参见**使用说明**中返回数据时间粒度。', 'type' => 'string', 'example' => '60'], 'RealTimeSrcHttpCodeData' => [ 'type' => 'object', 'itemNode' => true, @@ -10460,11 +10357,7 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2019-11-30T05:40:00Z', - ], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2019-11-30T05:40:00Z'], 'Value' => [ 'type' => 'object', 'itemNode' => true, @@ -10475,61 +10368,39 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => 'HTTP返回码。', - 'type' => 'string', - 'example' => '200', - ], - 'Proportion' => [ - 'description' => '占比使用数据。', - 'type' => 'string', - 'example' => '66.046511627907', - ], - 'Count' => [ - 'description' => '返回码数量。', - 'type' => 'string', - 'example' => '2', - ], + 'Code' => ['description' => 'HTTP返回码。', 'type' => 'string', 'example' => '200'], + 'Proportion' => ['description' => '占比使用数据。', 'type' => 'string', 'example' => '66.046511627907'], + 'Count' => ['description' => '返回码数量。', 'type' => 'string', 'example' => '2'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2019-11-30T05:40:00Z\\",\\n \\"StartTime\\": \\"2019-11-30T05:33:00Z\\",\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B67C85ACF7\\",\\n \\"DomainName\\": \\"example.com,example.org\\",\\n \\"DataInterval\\": \\"60\\",\\n \\"RealTimeSrcHttpCodeData\\": {\\n \\"UsageData\\": [\\n {\\n \\"TimeStamp\\": \\"2019-11-30T05:40:00Z\\",\\n \\"Value\\": {\\n \\"RealTimeSrcCodeProportionData\\": [\\n {\\n \\"Code\\": \\"200\\",\\n \\"Proportion\\": \\"66.046511627907\\",\\n \\"Count\\": \\"2\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainRealTimeSrcHttpCodeDataResponse>\\n<RealTimeSrcHttpCodeData>\\n <UsageData>\\n <TimeStamp>2019-11-30T05:40:00Z</TimeStamp>\\n <Value>\\n <RealTimeSrcCodeProportionData>\\n <Proportion>66.046511627907</Proportion>\\n <Code>200</Code>\\n <Count>2</Count>\\n </RealTimeSrcCodeProportionData>\\n </Value>\\n </UsageData>\\n</RealTimeSrcHttpCodeData>\\n<DataInterval>60</DataInterval>\\n<RequestId>BC858082-736F-4A25-867B-E5B67C85ACF7</RequestId>\\n<DomainName>example.com,example.org</DomainName>\\n<EndTime>2019-11-30T05:40:00Z</EndTime>\\n<StartTime>2019-11-30T05:33:00Z</StartTime>\\n</DescribeDcdnDomainRealTimeSrcHttpCodeDataResponse>","errorExample":""}]', 'title' => '查询实时回源HTTP状态码', + 'summary' => '调用DescribeDcdnDomainRealTimeSrcHttpCodeData查询域名实时回源HTTP返回码占比数据。', 'description' => '- 单用户调用频率:10次/秒。'."\n" .'- 如果您不指定StartTime和EndTime,该接口默认返回过去1小时的数据;指定StartTime和EndTime,该接口返回指定时间段的数据。'."\n" ."\n" @@ -10545,68 +10416,59 @@ 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateDcdnSubTask' => [ - 'summary' => '调用CreateDcdnSubTask定制运营报表。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRealTimeSrcHttpCodeData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRealTimeSrcHttpCodeData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2019-11-30T05:40:00Z\\",\\n \\"StartTime\\": \\"2019-11-30T05:33:00Z\\",\\n \\"RequestId\\": \\"BC858082-736F-4A25-867B-E5B67C85ACF7\\",\\n \\"DomainName\\": \\"example.com,example.org\\",\\n \\"DataInterval\\": \\"60\\",\\n \\"RealTimeSrcHttpCodeData\\": {\\n \\"UsageData\\": [\\n {\\n \\"TimeStamp\\": \\"2019-11-30T05:40:00Z\\",\\n \\"Value\\": {\\n \\"RealTimeSrcCodeProportionData\\": [\\n {\\n \\"Code\\": \\"200\\",\\n \\"Proportion\\": \\"66.046511627907\\",\\n \\"Count\\": \\"2\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainRealTimeSrcHttpCodeDataResponse>\\n<RealTimeSrcHttpCodeData>\\n <UsageData>\\n <TimeStamp>2019-11-30T05:40:00Z</TimeStamp>\\n <Value>\\n <RealTimeSrcCodeProportionData>\\n <Proportion>66.046511627907</Proportion>\\n <Code>200</Code>\\n <Count>2</Count>\\n </RealTimeSrcCodeProportionData>\\n </Value>\\n </UsageData>\\n</RealTimeSrcHttpCodeData>\\n<DataInterval>60</DataInterval>\\n<RequestId>BC858082-736F-4A25-867B-E5B67C85ACF7</RequestId>\\n<DomainName>example.com,example.org</DomainName>\\n<EndTime>2019-11-30T05:40:00Z</EndTime>\\n<StartTime>2019-11-30T05:33:00Z</StartTime>\\n</DescribeDcdnDomainRealTimeSrcHttpCodeDataResponse>","errorExample":""}]', + ], + 'DescribeDcdnDomainRealTimeSrcTrafficData' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZZCERX', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ - 'name' => 'ReportIds', - 'in' => 'formData', - 'schema' => [ - 'description' => '支持定制的报表ID列表,多个用英文逗号(,)分隔。取值:'."\n" - .'- **2**:热门URL(按请求数排序)。'."\n" - .'- **4**:热门URL(按流量排序)。'."\n" - .'- **6**:热门Referer(按请求数排序)。 '."\n" - .'- **8**:热门Referer(按流量排序)。'."\n" - .'- **10**:回源热门URL(按请求数排序)。'."\n" - .'- **12**:回源热门URL(按流量排序)。'."\n" - .'- **14**:Top客户端IP(按请求数排序)。'."\n" - .'- **16**:Top客户端IP(按流量排序)。'."\n" - .'- **18**:域名排行(按流量排序)。'."\n" - .'- **20**:PV和UV。'."\n" - .'- **22**:访问区域分布。'."\n" - .'- **24**:运营商分布。'."\n" - .'- **26**:IPv4/IPv6峰值带宽。'."\n" - .'- **27**:回源带宽。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2,4,6', - ], + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '加速域名,多个域名用逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'DomainName', - 'in' => 'formData', - 'schema' => [ - 'description' => '<props="china">待订阅的域名列表,多个域名用半角逗号(,)分隔,订阅域名数量上限为500个,超过500个请[填写信息](https://page.aliyun.com/form/act2017566026/index.htm)申请。</props>'."\n" - ."\n" - .'<props="intl">待订阅的域名列表,多个域名用半角逗号(,)分隔,订阅域名数量上限为500个,超过500个请[提交工单](https://workorder-intl.console.aliyun.com/?spm=5176.2020520001.aliyun_topbar.18.dbd44bd3e4f845#/ticket/createIndex)申请。</props>'."\n" - .'> 不传该参数,默认为账号下的所有域名订阅报表交付任务。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com,example.org', - ], + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T20:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T20:01:00Z'], ], ], 'responses' => [ @@ -10614,154 +10476,85 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2015-12-10T20:01:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A666D44F-19D6-490E-97CF-1A64AB962C57'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔,以秒为单位。'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,该参数固定返回60(1分钟)、300(5分钟)或3600(1小时),具体请参见**使用说明**中返回数据时间粒度。', 'type' => 'string', 'example' => '60'], + 'RealTimeSrcTrafficDataPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => '每个时间间隔的回源流量数据,单位:Byte。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Value' => ['description' => '详细使用数据。', 'type' => 'string', 'example' => '0'], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'TimeParseFailed', - 'errorMessage' => 'Failed to parse the time parameter.', - ], - [ - 'errorCode' => 'SubscriptionAlreadyExists', - 'errorMessage' => 'The subscription already exists.', - ], - [ - 'errorCode' => 'SubscriptionNotFound', - 'errorMessage' => 'The subscription is not found.', - ], - [ - 'errorCode' => 'NameAlreadyExists', - 'errorMessage' => 'The name already exists.', - ], - [ - 'errorCode' => 'DeliverExceedLimit', - 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateDcdnSubTaskResponse>\\r\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</CreateDcdnSubTaskResponse>","errorExample":""}]', - 'title' => '定制运营报表', - 'description' => '> - 定制可精确到报表和域名粒度,定制成功后可供您日常查看定制的报表数据。'."\n" - .'>- 单用户调用频率:3次/秒。', + 'title' => '查询实时回源流量监控数据', + 'summary' => '调用DescribeDcdnDomainRealTimeSrcTrafficData查询域名实时回源流量监控数据。', + 'description' => '> 如果您不指定StartTime和EndTime时,默认读取过去1小时的数据;指定StartTime和EndTime时,按指定的起止时间查询。'."\n" + ."\n" + .'**返回数据时间粒度**'."\n" + ."\n" + .'根据您指定StartTime和EndTime时间跨度,会返回不同的数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" + .'|时间粒度 |单次查询的最大时间跨度 |可查询历史数据时间范围|数据延迟|'."\n" + .'|---------------|--------|------|-------|'."\n" + .'|1分钟|1小时|7天|5分钟|'."\n" + .'|5分钟|3天|93天|15分钟|'."\n" + .'|1小时|31天|186天|一般延迟3-4小时|', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnSubList' => [ - 'summary' => '调用DescribeDcdnSubList查询已定制的报表任务。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRealTimeSrcTrafficData'], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '111551', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - 'FEATUREdcdn2Z4HOI', - ], - 'tenantRelevance' => 'publicInformation', - ], - 'parameters' => [], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Content' => [ - 'description' => '已定制的报表任务。', - 'type' => 'string', - 'example' => '"data": [{"subId": 336,"reportId": [6,8],"createTime": "2021-07-05T06:18:46Z","domains": ["example.com"],"effectiveFrom": "2021-07-05T06:18:46Z","effectiveEnd": "2021-10-05T06:18:46Z","status": "enable"}]', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '3250A51D-C11D-46BA-B6B3-95348EEDE652', - ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRealTimeSrcTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'TimeParseFailed', - 'errorMessage' => 'Failed to parse the time parameter.', - ], - [ - 'errorCode' => 'SubscriptionAlreadyExists', - 'errorMessage' => 'The subscription already exists.', - ], - [ - 'errorCode' => 'SubscriptionNotFound', - 'errorMessage' => 'The subscription is not found.', - ], - [ - 'errorCode' => 'NameAlreadyExists', - 'errorMessage' => 'The name already exists.', - ], - [ - 'errorCode' => 'DeliverExceedLimit', - 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": \\"\\\\\\"data\\\\\\": [{\\\\\\"subId\\\\\\": 336,\\\\\\"reportId\\\\\\": [6,8],\\\\\\"createTime\\\\\\": \\\\\\"2021-07-05T06:18:46Z\\\\\\",\\\\\\"domains\\\\\\": [\\\\\\"example.com\\\\\\"],\\\\\\"effectiveFrom\\\\\\": \\\\\\"2021-07-05T06:18:46Z\\\\\\",\\\\\\"effectiveEnd\\\\\\": \\\\\\"2021-10-05T06:18:46Z\\\\\\",\\\\\\"status\\\\\\": \\\\\\"enable\\\\\\"}]\\",\\n \\"RequestId\\": \\"3250A51D-C11D-46BA-B6B3-95348EEDE652\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnSubListResponse>\\n<RequestId>3250A51D-C11D-46BA-B6B3-95348EEDE652</RequestId>\\n<Content>\\n <data>\\n <subId>336</subId>\\n <reportId>6</reportId>\\n <reportId>8</reportId>\\n <createTime>2021-07-05T06:18:46Z</createTime>\\n <domains>example.com</domains>\\n <effectiveFrom>2021-07-05T06:18:46Z</effectiveFrom>\\n <effectiveEnd>2021-10-05T06:18:46Z</effectiveEnd>\\n <status>enable</status>\\n </data>\\n</Content>\\n</DescribeDcdnSubListResponse>","errorExample":""}]', - 'title' => '查询已定制的报表任务', - 'description' => '> - 调用该接口默认返回所有已定制的报表,但目前只支持展示单个定制任务,因此调用结果只会返回一个定制报表任务。'."\n" - .'> - 单用户调用频率:3次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => '#### Content数据说明'."\n" - ."\n" - .'|参数|类型|描述'."\n" - .'|--------|----|--------------|'."\n" - .'|subId|Long|任务的请求ID。|'."\n" - .'|reportId|Long[]|报表ID列表。|'."\n" - .'|createTime|String|报表创建时间。|'."\n" - .'|domains|String[]|定制报表的域名列表。|'."\n" - .'|effectiveFrom|String|定制任务开始时间。|'."\n" - .'|effectiveEnd|String|定制任务结束时间。|'."\n" - .'|status|String|定制任务状态。取值:<br>enable:启用。<br>disable:关闭。|', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-12-10T20:01:00Z\\",\\n \\"StartTime\\": \\"2015-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"A666D44F-19D6-490E-97CF-1A64AB962C57\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"60\\",\\n \\"RealTimeSrcTrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"Value\\": \\"0\\",\\n \\"TimeStamp\\": \\"2015-12-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainRealTimeSrcTrafficDataResponse>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>60</DataInterval>\\r\\n\\t<RealTimeSrcTrafficDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2015-12-10T20:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>0</Value>\\r\\n\\t\\t</DataModule>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2015-12-10T20:01:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>0</Value>\\r\\n\\t\\t</DataModule>\\r\\n\\t</RealTimeSrcTrafficDataPerInterval>\\r\\n\\t<RequestId>A666D44F-19D6-490E-97CF-1A64AB962C57</RequestId>\\r\\n\\t<StartTime>2015-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2015-12-10T20:01:00Z</EndTime>\\r\\n</DescribeDcdnDomainRealTimeSrcTrafficDataResponse>\\r\\n\\t\\r\\n","errorExample":""}]', ], - 'DescribeDcdnReport' => [ - 'summary' => '调用DescribeDcdnReport查询已定制的报表数据。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnDomainRealTimeTrafficData' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10769,96 +10562,30 @@ ], 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - 'FEATUREdcdn2Z4HOI', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '待查询的域名列表,多个域名用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => false, - 'example' => 'www.example.com,www.example.org', - ], - ], - [ - 'name' => 'ReportId', - 'in' => 'query', - 'schema' => [ - 'description' => '待查询的报表ID,每次调用仅支持传入单个报表ID。您可以调用[DescribeDcdnSubList](~~270075~~)接口查询报表ID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '2', - ], - ], - [ - 'name' => 'Area', - 'in' => 'query', - 'schema' => [ - 'description' => '地域英文名,您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取地域英文名。'."\n" - ."\n" - .'- 如果不传该参数,默认查询全部地域。'."\n" - .'- 如果传入指定地域,则按照指定的地域获取相应数据。支持传入多个地域,多个地域用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => false, - 'example' => 'shanghai', - ], - ], - [ - 'name' => 'IsOverseas', - 'in' => 'query', - 'schema' => [ - 'description' => '是否为中国内地以外的区域。取值:'."\n" - .'- **1**:中国内地以外的区域。'."\n" - .'- **0**:中国内地。', - 'type' => 'string', - 'required' => false, - 'example' => '0', - ], - ], - [ - 'name' => 'HttpCode', - 'in' => 'query', - 'schema' => [ - 'description' => 'HTTP状态码。取值:'."\n" - .'- **2xx**:2xx状态码。'."\n" - .'- **3xx**:3xx状态码。'."\n" - .'- **4xx**:4xx状态码。'."\n" - .'- **5xx**:5xx状态码。'."\n" - ."\n" - .'如果不传该参数,默认查询以上全部HTTP状态码。', - 'type' => 'string', - 'required' => false, - 'example' => '2xx', - ], + 'schema' => ['description' => '加速域名。支持批量域名查询,多个域名使用英文逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '查询开始时间。使用UTC+0时间表示,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => true, - 'example' => '2021-07-02T00:00:00Z', - ], + 'schema' => ['description' => '获取数据起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 如果您不指定StartTime和EndTime时,默认读取过去1小时的数据;指定StartTime和EndTime时,按指定的起止时间查询。', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T20:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '查询结束时间。使用UTC+0时间表示,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => true, - 'example' => '2021-07-02T01:00:00Z', - ], + 'schema' => ['description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。结束时间需大于起始时间。'."\n" + ."\n" + .'> 如果您不指定StartTime和EndTime时,默认读取过去1小时的数据;指定StartTime和EndTime时,按指定的起止时间查询。', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T20:01:00Z'], ], ], 'responses' => [ @@ -10866,126 +10593,121 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => '查询到的报表数据。', + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2015-12-10T20:01:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A666D44F-19D6-490E-97CF-1A64AB962C57'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔,单位为秒。'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,该参数固定返回60(1分钟)、300(5分钟)或3600(1小时),具体请参见**使用说明**中返回数据时间粒度。', 'type' => 'string', 'example' => '60'], + 'RealTimeTrafficDataPerInterval' => [ 'type' => 'object', - 'example' => '"data":[{"deliver":{ "report":{"title":"TopUrlByAcc","format":"table","sape":"","header":["url","traf","traf_rate","acc","acc_rate"]}}, "data":[{"acc":440,"acc_rate":"0.200%","traf":22,"url":"http://example.com","traf_rate":"0.100%"},{"acc":440,"acc_rate":"0.200%","traf":22,"url":"http://example.org","traf_rate":"0.100%"}]}]', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => '每个时间间隔的回源流量数据。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Value' => ['description' => '详细使用数据。'."\n" + ."\n" + .'> 该接口数据单位:Byte。', 'type' => 'string', 'example' => '0'], + 'TimeStamp' => ['description' => '单位时间段的起始时间。', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'TimeParseFailed', - 'errorMessage' => 'Failed to parse the time parameter.', - ], - [ - 'errorCode' => 'SubscriptionAlreadyExists', - 'errorMessage' => 'The subscription already exists.', - ], - [ - 'errorCode' => 'SubscriptionNotFound', - 'errorMessage' => 'The subscription is not found.', - ], - [ - 'errorCode' => 'NameAlreadyExists', - 'errorMessage' => 'The name already exists.', - ], - [ - 'errorCode' => 'DeliverExceedLimit', - 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnReportResponse>\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\n<Content>\\n <data>\\n <deliver>\\n <report>\\n <title>TopUrlByAcc</title>\\n <format>table</format>\\n <shape/>\\n <header>url</header>\\n <header>traf</header>\\n <header>traf_rate</header>\\n <header>acc</header>\\n <header>acc_rate</header>\\n </report>\\n </deliver>\\n <data>\\n <acc>440</acc>\\n <acc_rate>0.200%</acc_rate>\\n <traf>22</traf>\\n <url>http://example.com</url>\\n <traf_rate>0.100%</traf_rate>\\n </data>\\n <data>\\n <acc>440</acc>\\n <acc_rate>0.200%</acc_rate>\\n <traf>22</traf>\\n <url>http://example.org</url>\\n <traf_rate>0.100%</traf_rate>\\n </data>\\n </data>\\n</Content>\\n</DescribeDcdnReportResponse>","errorExample":""}]', - 'title' => '查询已定制的报表数据', - 'description' => '> 单用户调用频率:3次/秒。 ', - 'requestParamsDescription' => '**各报表必传的请求参数说明**'."\n" - ."\n" - .'|报表名称|必传参数|说明|'."\n" - .'|--------|---------|---------|'."\n" - .'|PV和UV|Action、ReportId、DomainName、StartTime、EndTime。|不支持其他参数。|'."\n" - .'|Top客户端IP(按流量排序)|Action、ReportId、DomainName、Area、StartTime、EndTime。|不支持其他参数。|'."\n" - .'|Top客户端IP(按请求数排序)|Action、ReportId、DomainName、Area、StartTime、EndTime。|不支持其他参数。|'."\n" - .'|访问区域分布|Action、ReportId、DomainName、IsOverseas、StartTime、EndTime。|不支持其他参数。|'."\n" - .'|运营商分布|Action、ReportId、DomainName、IsOverseas、StartTime、EndTime。|不支持其他参数。|'."\n" - .'|热门Referer(按流量排序)|Action、ReportId、DomainName、StartTime、EndTime。|不支持其他参数。|'."\n" - .'|热门Referer(按请求数排序)|Action、ReportId、DomainName、StartTime、EndTime。|不支持其他参数。|'."\n" - .'|热门URL(按流量排序)|Action、ReportId、DomainName、HttpCode、StartTime、EndTime。|不支持其他参数。|'."\n" - .'|热门URL(按请求数排序)|Action、ReportId、DomainName、HttpCode、StartTime、EndTime。|不支持其他参数。|'."\n" - .'|回源热门URL(按流量排序)|Action、ReportId、DomainName、HttpCode、StartTime、EndTime。|不支持其他参数。|'."\n" - .'|回源热门URL(按请求数排序)|Action、ReportId、DomainName、HttpCode、StartTime、EndTime。|不支持其他参数。|'."\n" - .'|域名排行(按流量排序)|Action、ReportId、StartTime、EndTime。|不支持其他参数。|', - 'responseParamsDescription' => '**Content数据说明**'."\n" - ."\n" - .'|参数|类型|描述|'."\n" - .'|--------|------|------------|'."\n" - .'|deliver|report|报表样式。|'."\n" - .'|data|String[]|报表中的数据,例如:[{"表头字段1":"value1","表头字段2":"value2"}, {"表头字段1":"value3","表头字段2":"value4"}]。|'."\n" + 'title' => '查询实时流量监控数据', + 'summary' => '调用DescribeDcdnDomainRealTimeTrafficData查询域名单位时间段的流量监控数据。', + 'description' => '单用户调用频率:50次/秒。 '."\n" ."\n" - .'**report数据说明**'."\n" + .'**返回数据时间粒度**'."\n" ."\n" - .'|参数|类型|描述|'."\n" - .'|--------|-------|-----------|'."\n" - .'|title|String|报表标题。|'."\n" - .'|format|String|报表类型。取值如下:<br>chart:图表。<br>table:表格。|'."\n" - .'|shape|String|图表类型。当format为table时,请忽略此字段。取值如下:<br>line:曲线图。<br>pie:饼状图。<br>bar:柱状图。|'."\n" - .'|header|String[]|报表的表头字段。|'."\n" - .'|legend|String|图形的图例字段。|'."\n" - .'|xAxis|String|图形x轴,没有则为空。|'."\n" - .'|yAxis|String|图形y轴,没有则为空。|', + .'根据您指定StartTime和EndTime时间跨度,会返回不同的数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" + .'|时间粒度 |单次查询的最大时间跨度 |可查询历史数据时间范围|数据延迟|'."\n" + .'|---------------|--------|--------|-----------|'."\n" + .'|1分钟|1小时|7天|5分钟|'."\n" + .'|5分钟|3天|93天|15分钟|'."\n" + .'|1小时|31天|186天|一般延迟3-4小时|', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnReportList' => [ - 'summary' => '调用DescribeDcdnReportList查询所有的定制报表列表。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRealTimeTrafficData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRealTimeTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-12-10T20:01:00Z\\",\\n \\"StartTime\\": \\"2015-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\\": \\"2015-12-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainRealTimeTrafficDataResponse>\\n<DomainName>example.com</DomainName>\\n<DataInterval>60</DataInterval>\\n<RealTimeTrafficDataPerInterval>\\n <DataModule>\\n <TimeStamp>2015-12-10T20:00:00Z</TimeStamp>\\n <Value>0</Value>\\n </DataModule>\\n <DataModule>\\n <TimeStamp>2015-12-10T20:01:00Z</TimeStamp>\\n <Value>0</Value>\\n </DataModule>\\n</RealTimeTrafficDataPerInterval>\\n<RequestId>A666D44F-19D6-490E-97CF-1A64AB962C57</RequestId>\\n<StartTime>2015-12-10T20:00:00Z</StartTime>\\n<EndTime>2015-12-10T20:01:00Z</EndTime>\\n</DescribeDcdnDomainRealTimeTrafficDataResponse>","errorExample":""}]', + ], + 'DescribeDcdnDomainRegionData' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ - 'name' => 'ReportId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '待查询的报表ID。如果不传该参数,默认查询所有报表,您可以调用[DescribeDcdnSubList](~~DescribeDcdnSubList~~)接口查询报表ID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '2', - ], + 'schema' => ['description' => '加速域名,仅支持一个域名。'."\n" + ."\n" + .'默认查询当前用户下所有域名。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据开始时间点。'."\n" + ."\n" + .'北京时间,格式为YYYY-MM-DDThh:mm:ssZ。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => '2015-12-05T12:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据结束时间点,结束时间需大于起始时间。'."\n" + ."\n" + .'北京时间,格式为YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2015-12-07T12:00:00Z'], ], ], 'responses' => [ @@ -10993,151 +10715,145 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => '报表列表。', - 'type' => 'string', - 'example' => '"data": [{"reportId":2,"deliver":{"report":{"title":"DomainPvUv","format":"chart","shape":"line","xAxis":"ds","yAxis":"cnt","legend":"cnt_type","header":["ds","cnt_type","cnt"]}}}', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2015-12-07T12:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2015-12-05T12:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '2E5AD83F-BD7B-462E-8319-2E30E305519A'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔,单位:秒。', 'type' => 'string', 'example' => '86400'], + 'Value' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RegionProportionData' => [ + 'description' => '各地区访问占比数据列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Qps' => ['description' => '每秒查询率。', 'type' => 'string', 'example' => '0'], + 'TotalQuery' => ['description' => '总请求次数。', 'type' => 'string', 'example' => '0'], + 'TotalBytes' => ['description' => '总流量。', 'type' => 'string', 'example' => '0'], + 'RegionEname' => ['description' => '地域英文名称。', 'type' => 'string', 'example' => 'chongqing'], + 'Region' => ['description' => '地域信息。', 'type' => 'string', 'example' => '重庆市'], + 'AvgResponseRate' => ['description' => '平均响应速度,单位:byte/秒。', 'type' => 'string', 'example' => '0'], + 'AvgResponseTime' => ['description' => '平均响应时间,单位:毫秒。'."\n", 'type' => 'string', 'example' => '0'], + 'Proportion' => ['description' => '访问占比数据。例如:返回90即为90% 。'."\n", 'type' => 'string', 'example' => '0'], + 'AvgObjectSize' => ['description' => '响应平均大小,单位:byte。', 'type' => 'string', 'example' => '0'], + 'Bps' => ['description' => '带宽。', 'type' => 'string', 'example' => '0'], + 'BytesProportion' => ['description' => '总流量占比。例如:返回90即为90%。', 'type' => 'string', 'example' => '0.003544181046236794'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'TimeParseFailed', - 'errorMessage' => 'Failed to parse the time parameter.', - ], - [ - 'errorCode' => 'SubscriptionAlreadyExists', - 'errorMessage' => 'The subscription already exists.', - ], - [ - 'errorCode' => 'SubscriptionNotFound', - 'errorMessage' => 'The subscription is not found.', - ], - [ - 'errorCode' => 'NameAlreadyExists', - 'errorMessage' => 'The name already exists.', - ], - [ - 'errorCode' => 'DeliverExceedLimit', - 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], + ], + 404 => [ + ['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'The specified domain does not exist.', 'description' => '该域名不存在。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": \\"\\\\\\"data\\\\\\": [{\\\\\\"reportId\\\\\\":2,\\\\\\"deliver\\\\\\":{\\\\\\"report\\\\\\":{\\\\\\"title\\\\\\":\\\\\\"DomainPvUv\\\\\\",\\\\\\"format\\\\\\":\\\\\\"chart\\\\\\",\\\\\\"shape\\\\\\":\\\\\\"line\\\\\\",\\\\\\"xAxis\\\\\\":\\\\\\"ds\\\\\\",\\\\\\"yAxis\\\\\\":\\\\\\"cnt\\\\\\",\\\\\\"legend\\\\\\":\\\\\\"cnt_type\\\\\\",\\\\\\"header\\\\\\":[\\\\\\"ds\\\\\\",\\\\\\"cnt_type\\\\\\",\\\\\\"cnt\\\\\\"]}}}\\",\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnReportListResponse>\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\n<Content>\\n <data>\\n <reportId>2</reportId>\\n <deliver>\\n <report>\\n <title>DomainPvUv</title>\\n <format>chart</format>\\n <shape>line</shape>\\n <xAxis>ds</xAxis>\\n <yAxis>cnt</yAxis>\\n <legend>cnt_type</legend>\\n <header>ds</header>\\n <header>cnt_type</header>\\n <header>cnt</header>\\n </report>\\n </deliver>\\n </data>\\n <data>\\n <reportId>4</reportId>\\n <deliver>\\n <report>\\n <format>table</format>\\n <shape>line</shape>\\n <header>url</header>\\n <header>traf</header>\\n <header>traf_rate</header>\\n <header>acc</header>\\n <header>acc_rate</header>\\n <title>TopUrlByAcc</title>\\n </report>\\n </deliver>\\n </data>\\n</Content>\\n</DescribeDcdnReportListResponse>","errorExample":""}]', - 'title' => '查询所有定制报表列表', - 'description' => '> - 该接口将返回所有定制报表的元数据,不包含具体报表的统计数据。'."\n" - .'> - 单用户调用频率:3次/秒。', + 'title' => '查询用户区域分布数据统计', + 'summary' => '调用DescribeDcdnDomainRegionData查询加速域名天粒度的用户区域分布数据统计,支持获取90天的数据。', + 'description' => '> - 当您不指定StartTime和EndTime时,默认读取过去24小时的数据;指定StartTime和EndTime时,按指定的起止时间查询。'."\n" + .'> - 单用户调用频率:100次/秒。', 'requestParamsDescription' => ' ', - 'responseParamsDescription' => '**Content数据说明**'."\n" - ."\n" - .'|参数|类型|描述|'."\n" - .'|--------|------|------------|'."\n" - .'|reportId|Long|任务的请求ID。|'."\n" - .'|deliver|report|报表样式。|'."\n" - ."\n" - .'**report数据说明**'."\n" - ."\n" - .'|参数|类型|描述|'."\n" - .'|--------|--------|----------|'."\n" - .'|title|String|报表标题。|'."\n" - .'|format|String|报表类型。取值:<br>chart:图表。<br>table:表格。|'."\n" - .'|shape|String|图表类型。当format为table时,请忽略此字段。取值:<br>line:曲线图。<br>pie:饼状图。<br>bar:柱状图。|'."\n" - .'|header|String[]|报表的表头字段。|'."\n" - .'|legend|String|图形的图例字段。|'."\n" - .'|xAxis|String|图形x轴,没有则为空。|'."\n" - .'|yAxis|String|图形y轴,没有则为空。|', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateDcdnSubTask' => [ - 'summary' => '调用UpdateDcdnSubTask更新已定制的运营报表。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRegionData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRegionData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-12-07T12:00:00Z\\",\\n \\"StartTime\\": \\"2015-12-05T12:00:00Z\\",\\n \\"RequestId\\": \\"2E5AD83F-BD7B-462E-8319-2E30E305519A\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"86400\\",\\n \\"Value\\": {\\n \\"RegionProportionData\\": [\\n {\\n \\"Qps\\": \\"0\\",\\n \\"TotalQuery\\": \\"0\\",\\n \\"TotalBytes\\": \\"0\\",\\n \\"RegionEname\\": \\"chongqing\\",\\n \\"Region\\": \\"重庆市\\",\\n \\"AvgResponseRate\\": \\"0\\",\\n \\"AvgResponseTime\\": \\"0\\",\\n \\"Proportion\\": \\"0\\",\\n \\"AvgObjectSize\\": \\"0\\",\\n \\"Bps\\": \\"0\\",\\n \\"BytesProportion\\": \\"0.003544181046236794\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainRegionDataResponse>\\r\\n\\t<Value>\\r\\n\\t\\t<RegionProportionData>\\r\\n\\t\\t\\t<Bps>380.9614285714286</Bps>\\r\\n\\t\\t\\t<Proportion>0.01155980271270037</Proportion>\\r\\n\\t\\t\\t<TotalBytes>2400057</TotalBytes>\\r\\n\\t\\t\\t<BytesProportion>0.003544181046236794</BytesProportion>\\r\\n\\t\\t\\t<TotalQuery>3</TotalQuery>\\r\\n\\t\\t\\t<RegionEname></RegionEname>\\r\\n\\t\\t\\t<Region>日本</Region>\\r\\n\\t\\t\\t<AvgResponseRate>154.3345765545624</AvgResponseRate>\\r\\n\\t\\t\\t<AvgObjectSize>800019.0</AvgObjectSize>\\r\\n\\t\\t\\t<Qps>5.9523809523809524E-5</Qps>\\r\\n\\t\\t\\t<AvgResponseTime>5183.666666666667</AvgResponseTime>\\r\\n\\t\\t</RegionProportionData>\\r\\n\\t\\t<RegionProportionData>\\r\\n\\t\\t\\t<Bps>25110.431412698414</Bps>\\r\\n\\t\\t\\t<Proportion>0.31211467324291</Proportion>\\r\\n\\t\\t\\t<TotalBytes>158195717</TotalBytes>\\r\\n\\t\\t\\t<BytesProportion>0.23360872886644055</BytesProportion>\\r\\n\\t\\t\\t<TotalQuery>81</TotalQuery>\\r\\n\\t\\t\\t<RegionEname>hangzhou</RegionEname>\\r\\n\\t\\t\\t<Region>杭州市</Region>\\r\\n\\t\\t\\t<AvgResponseRate>1397.1430909315718</AvgResponseRate>\\r\\n\\t\\t\\t<AvgObjectSize>1953033.5543209878</AvgObjectSize>\\r\\n\\t\\t\\t<Qps>0.0016071428571428571</Qps>\\r\\n\\t\\t\\t<AvgResponseTime>1397.8765432098764</AvgResponseTime>\\r\\n\\t\\t</RegionProportionData>\\r\\n\\t\\t<RegionProportionData>\\r\\n\\t\\t\\t<Bps>40343.86242857143</Bps>\\r\\n\\t\\t\\t<Proportion>0.33908754623921084</Proportion>\\r\\n\\t\\t\\t<TotalBytes>254166333</TotalBytes>\\r\\n\\t\\t\\t<BytesProportion>0.37532921137846464</BytesProportion>\\r\\n\\t\\t\\t<TotalQuery>88</TotalQuery>\\r\\n\\t\\t\\t<RegionEname>chongqing</RegionEname>\\r\\n\\t\\t\\t<Region>重庆市</Region>\\r\\n\\t\\t\\t<AvgResponseRate>787.8073097249128</AvgResponseRate>\\r\\n\\t\\t\\t<AvgObjectSize>2888253.7875</AvgObjectSize>\\r\\n\\t\\t\\t<Qps>0.001746031746031746</Qps>\\r\\n\\t\\t\\t<AvgResponseTime>3666.193181818182</AvgResponseTime>\\r\\n\\t\\t</RegionProportionData>\\r\\n\\t</Value>\\r\\n\\t<DataInterval>86400</DataInterval>\\r\\n\\t<RequestId>2E5AD83F-BD7B-462E-8319-2E30E305519A</RequestId>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<EndTime>2015-12-05T12:00:00Z</EndTime>\\r\\n\\t<StartTime>2015-12-07T12:00:00Z</StartTime>\\r\\n</DescribeDcdnDomainRegionDataResponse>\\r\\n\\t\\r\\n","errorExample":""}]', + ], + 'DescribeDcdnDomainStagingConfig' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdn2JMMUY'], ], 'parameters' => [ [ - 'name' => 'ReportIds', - 'in' => 'formData', - 'schema' => [ - 'description' => '待定制的报表ID列表,多个用英文逗号(,)分隔。您可以调用[DescribeDcdnSubList](~~270075~~)接口查询报表ID。', - 'type' => 'string', - 'required' => false, - 'example' => '2,4,6', - ], - ], - [ 'name' => 'DomainName', - 'in' => 'formData', - 'schema' => [ - 'description' => '需要定制的域名列表。如果不传该参数,默认为账号下的所有域名定制运营报表。', - 'type' => 'string', - 'required' => false, - 'example' => 'www.example.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '定制任务的开始时间。使用UTC+0时间表示,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2021-04-17T00:00:00Z', - ], + 'in' => 'query', + 'schema' => ['description' => '加速域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'EndTime', - 'in' => 'formData', - 'schema' => [ - 'description' => '定制任务的结束时间。使用UTC+0时间表示,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2021-06-17T00:00:00Z', - ], + 'name' => 'FunctionNames', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => ['description' => '功能列表名称,多个用逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'aliauth'], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'C80705BF-0F76-41FA-BAD1-5B59296A4E59'], + 'DomainConfigs' => [ + 'description' => '加速域名配置。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '状态。取值:'."\n" + .'- success:成功。'."\n" + .'- testing:测试中。'."\n" + .'- failed:失败。'."\n" + .'- configuring:配置中。', 'type' => 'string', 'example' => 'success'], + 'ConfigId' => ['description' => '配置ID。', 'type' => 'string', 'example' => '6295'], + 'FunctionName' => ['description' => '功能名称。', 'type' => 'string', 'example' => 'aliauth'], + 'FunctionArgs' => [ + 'description' => '功能说明。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ArgName' => ['description' => '配置名称。', 'type' => 'string', 'example' => 'auth_type'], + 'ArgValue' => ['description' => '配置值。', 'type' => 'string', 'example' => 'req_auth'], + ], + ], + ], + ], + ], ], ], ], @@ -11145,190 +10861,77 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'TimeParseFailed', - 'errorMessage' => 'Failed to parse the time parameter.', - ], - [ - 'errorCode' => 'SubscriptionAlreadyExists', - 'errorMessage' => 'The subscription already exists.', - ], - [ - 'errorCode' => 'SubscriptionNotFound', - 'errorMessage' => 'The subscription is not found.', - ], - [ - 'errorCode' => 'NameAlreadyExists', - 'errorMessage' => 'The name already exists.', - ], - [ - 'errorCode' => 'DeliverExceedLimit', - 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', - ], + ['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => 'FunctionName [%s] is not supported.', 'description' => '不支持该配置,请重新查询。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateDcdnSubTaskResponse>\\r\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</UpdateDcdnSubTaskResponse>","errorExample":""}]', - 'title' => '更新已定制的运营报表', - 'description' => '> 单用户调用频率:3次/秒。 ', + 'title' => '查询环境配置(灰度)', + 'summary' => '调用DescribeDcdnDomainStagingConfig查询环境配置(灰度)。', + 'description' => '> 单用户调用频率:30次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteDcdnSubTask' => [ - 'summary' => '调用DeleteDcdnSubTask删除所有已定制的运营报表。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2022-12-14T06:29:22.000Z', 'description' => '请求参数发生变更'], ], - 'security' => [ - [ - 'AK' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainStagingConfig'], ], ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], - ], - 'parameters' => [], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainStagingConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'TimeParseFailed', - 'errorMessage' => 'Failed to parse the time parameter.', - ], - [ - 'errorCode' => 'SubscriptionAlreadyExists', - 'errorMessage' => 'The subscription already exists.', - ], - [ - 'errorCode' => 'SubscriptionNotFound', - 'errorMessage' => 'The subscription is not found.', - ], - [ - 'errorCode' => 'NameAlreadyExists', - 'errorMessage' => 'The name already exists.', - ], - [ - 'errorCode' => 'DeliverExceedLimit', - 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDcdnSubTaskResponse>\\r\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</DeleteDcdnSubTaskResponse>","errorExample":""}]', - 'title' => '删除已定制的运营报表', - 'description' => '> 单用户调用频率:3次/秒。 ', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C80705BF-0F76-41FA-BAD1-5B59296A4E59\\",\\n \\"DomainConfigs\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"ConfigId\\": \\"6295\\",\\n \\"FunctionName\\": \\"aliauth\\",\\n \\"FunctionArgs\\": [\\n {\\n \\"ArgName\\": \\"auth_type\\",\\n \\"ArgValue\\": \\"req_auth\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainStagingConfigResponse>\\n<RequestId>C80705BF-0F76-41FA-BAD1-5B59296A4E59</RequestId>\\n<DomainConfigs>\\n <Status>success</Status>\\n <FunctionArgs>\\n <ArgName>auth_type</ArgName>\\n <ArgValue>req_auth</ArgValue>\\n </FunctionArgs>\\n <FunctionArgs>\\n <ArgName>ali_auth_dual</ArgName>\\n <ArgValue>on</ArgValue>\\n </FunctionArgs>\\n <ConfigId>6295</ConfigId>\\n <FunctionName>aliauth</FunctionName>\\n</DomainConfigs>\\n</DescribeDcdnDomainStagingConfigResponse>\\n","errorExample":""}]', ], - 'CreateDcdnDeliverTask' => [ - 'summary' => '调用CreateDcdnDeliverTask创建报表订阅任务,订阅成功后系统会周期性地以邮件方式向您发送报表统计数据。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnDomainTopReferVisit' => [ + 'summary' => '调用DescribeDcdnDomainTopReferVisit查询域名某天的热门页面引用次数排名,支持获取最近90天的数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZZCERX', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ - 'name' => 'Name', - 'in' => 'formData', - 'schema' => [ - 'description' => '订阅任务名称。', - 'type' => 'string', - 'required' => true, - 'example' => '域名订阅', - ], - ], - [ - 'name' => 'Reports', - 'in' => 'formData', - 'schema' => [ - 'description' => '待订阅的报表列表,需进行JSON转义。', - 'type' => 'string', - 'required' => true, - 'example' => '[{\\"reportId\\":2,\\"conditions\\":[{\\"field\\":\\"prov\\",\\"op\\":\\"in\\",\\"value\\":[\\"黑龙江\\",\\"北京\\"]}]}]', - ], - ], - [ 'name' => 'DomainName', - 'in' => 'formData', - 'schema' => [ - 'description' => '<props="china">待订阅的域名列表,多个域名用半角逗号(,)分隔,订阅域名数量上限为500个,超过500个请[填写信息](https://page.aliyun.com/form/act2017566026/index.htm)申请。</props>'."\n" - ."\n" - .'<props="intl">待订阅的域名列表,多个域名用半角逗号(,)分隔,订阅域名数量上限为500个,超过500个请[提交工单](https://workorder-intl.console.aliyun.com/?spm=5176.2020520001.aliyun_topbar.18.dbd44bd3e4f845#/ticket/createIndex)申请。</props>'."\n" - .'> 不传该参数,默认为账号下的所有域名订阅报表交付任务。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com,example.org', - ], + 'in' => 'query', + 'schema' => ['description' => '加速域名信息,只支持一个域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'Deliver', - 'in' => 'formData', - 'schema' => [ - 'description' => '报表发送方式,仅支持邮件发送,需进行JSON转义。', - 'type' => 'string', - 'required' => true, - 'example' => '{"email":{"subject":"主题名称","to":["username@example.com","username@example.org"]}}', - ], + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '开始获取数据的时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'查询某天的数据,建议传yyyy-MM-ddT16:00:00Z。'."\n" + ."\n" + .'默认读取过去24小时数据。'."\n", 'type' => 'string', 'required' => false, 'example' => '2018-10-03T16:00:00Z'], ], [ - 'name' => 'Schedule', - 'in' => 'formData', - 'schema' => [ - 'description' => '订阅周期相关参数,需进行JSON转义。', - 'type' => 'string', - 'required' => true, - 'example' => '{"schedName":"订阅任务名称","description":"描述","crontab":"000**?","frequency":"d","status":"enable","effectiveFrom":"2020-09-17T00:00:00Z","effectiveEnd":"2020-11-17T00:00:00Z"}', - ], + 'name' => 'SortBy', + 'in' => 'query', + 'schema' => ['description' => '排序方式。取值:'."\n" + .'- **traf**:流量。'."\n" + .'- **pv**:访问次数。'."\n" + ."\n" + .'默认取值为**pv**。'."\n", 'type' => 'string', 'required' => false, 'example' => 'pv'], ], ], 'responses' => [ @@ -11336,89 +10939,74 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'DeliverId' => [ - 'description' => '订阅任务ID。', - 'type' => 'string', - 'example' => '92', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'StartTime' => ['description' => '查询指定日期。', 'type' => 'string', 'example' => '2018-10-03T16:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '95994621-8382-464B-8762-C708E73568D1'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'TopReferList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ReferList' => [ + 'description' => '全部热门ReferUrl列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Flow' => ['description' => '流量。单位:byte。', 'type' => 'string', 'example' => '460486880'], + 'FlowProportion' => ['description' => '流量占比。', 'type' => 'number', 'format' => 'float', 'example' => '0.35'], + 'VisitData' => ['description' => '访问次数。', 'type' => 'string', 'example' => '229567'], + 'ReferDetail' => ['description' => '完整的ReferUrl地址。', 'type' => 'string', 'example' => '192.XXX.XXX.1'], + 'VisitProportion' => ['description' => '访问占比。', 'type' => 'number', 'format' => 'float', 'example' => '0.35'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'TimeParseFailed', - 'errorMessage' => 'Failed to parse the time parameter.', - ], - [ - 'errorCode' => 'SubscriptionNotFound', - 'errorMessage' => 'The subscription is not found.', - ], - [ - 'errorCode' => 'NameAlreadyExists', - 'errorMessage' => 'The name already exists.', - ], - [ - 'errorCode' => 'DeliverExceedLimit', - 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DeliverId\\": \\"92\\",\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateDcdnDeliverTaskResponse>\\r\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</CreateDcdnDeliverTaskResponse>","errorExample":""}]', - 'title' => '创建报表订阅任务', - 'description' => '> 单用户调用频率:3次/秒。 '."\n", - 'requestParamsDescription' => '**Reports数据说明**'."\n" - .'|参数|类型|是否必须|描述'."\n" - .'|--------|------------------|---|---|'."\n" - .'|reportId|String|是|报表ID。|'."\n" - .'|conditions|ConDatas[]|否|报表过滤条件。|'."\n" - ."\n" - .'**conditions数据说明**'."\n" - .'|参数|类型|是否必须|描述'."\n" - .'|--------|------------------|---|---|'."\n" - .'|field|String|否|过滤字段。|'."\n" - .'|op|String|否|过滤操作,目前只支持**in**。|'."\n" - .'|value|String[]|否|字段值数组。|'."\n" - ."\n" - .'**Deliver数据说明**'."\n" - .'|参数|类型|是否必须|描述|'."\n" - .'|--------|------------------|---|---|'."\n" - .'|subject|String|否|订阅主题。|'."\n" - .'|to|String[]|是|收件邮箱列表数组。|'."\n" - ."\n" - .'**Schedule数据说明**'."\n" - .'|参数|类型|是否必须|描述|'."\n" - .'|--------|------------------|---|---|'."\n" - .'|schedName|String|否|订阅任务名称。|'."\n" - .'|description|String|否|订阅任务描述。|'."\n" - .'|crontab|String|是|订阅任务执行周期。|'."\n" - .'|frequency|String|是|执行频率。取值:<br>h:小时<br>d:天<br>w:周|'."\n" - .'|status|String|否|订阅任务状态。取值:<br>enable:启用。<br>disable:关闭。|'."\n" - .'|effectiveFrom|String|否|订阅交付任务开始时间。|'."\n" - .'|effectiveEnd|String|否|订阅交付任务结束时间。|'."\n", + 'title' => '查询热门页面引用次数排名', + 'description' => '- 不指定StartTime时,默认读取过去1天的数据。'."\n" + .'- 只支持查询一个域名。', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDeliverList' => [ - 'summary' => '调用DescribeDcdnDeliverList查询报表订阅任务列表,系统将返回所有的订阅任务列表。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainTopReferVisit'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainTopReferVisit', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"StartTime\\": \\"2018-10-03T16:00:00Z\\",\\n \\"RequestId\\": \\"95994621-8382-464B-8762-C708E73568D1\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"TopReferList\\": {\\n \\"ReferList\\": [\\n {\\n \\"Flow\\": \\"460486880\\",\\n \\"FlowProportion\\": 0.35,\\n \\"VisitData\\": \\"229567\\",\\n \\"ReferDetail\\": \\"192.XXX.XXX.1\\",\\n \\"VisitProportion\\": 0.35\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainTopReferVisitResponse>\\n<TopReferList>\\n <ReferList>\\n <VisitData>229567</VisitData>\\n <ReferDetail>192.168.0.1</ReferDetail>\\n <VisitProportion>0.35</VisitProportion>\\n <Flow>460486880</Flow>\\n <FlowProportion>0.35</FlowProportion>\\n </ReferList>\\n <ReferList>\\n <VisitData>2496</VisitData>\\n <ReferDetail>10.10.10.10</ReferDetail>\\n <VisitProportion>0.35</VisitProportion>\\n <Flow>460486880</Flow>\\n <FlowProportion>0.35</FlowProportion>\\n </ReferList>\\n <ReferList>\\n <VisitData>448</VisitData>\\n <ReferDetail>demo.aliyundoc.com</ReferDetail>\\n <VisitProportion>0.35</VisitProportion>\\n <Flow>460486880</Flow>\\n <FlowProportion>0.35</FlowProportion>\\n </ReferList>\\n <ReferList>\\n <VisitData>3</VisitData>\\n <ReferDetail>example.aliyundoc.com</ReferDetail>\\n <VisitProportion>0.35</VisitProportion>\\n <Flow>460486880</Flow>\\n <FlowProportion>0.35</FlowProportion>\\n </ReferList>\\n</TopReferList>\\n<RequestId>95994621-8382-464B-8762-C708E73568D1</RequestId>\\n<DomainName>example.com</DomainName>\\n<StartTime>2018-10-03T16:00:00Z</StartTime>\\n</DescribeDcdnDomainTopReferVisitResponse>","errorExample":""}]', + ], + 'DescribeDcdnDomainTopUrlVisit' => [ + 'summary' => '调用DescribeDcdnDomainTopUrlVisit获取加速域名某天内的热门URL列表。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -11429,24 +11017,33 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111485', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - 'FEATUREdcdn2Z4HOI', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ - 'name' => 'DeliverId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '待查询的订阅任务ID。如果不传该参数,默认返回所有的订阅任务。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '92', - ], + 'schema' => ['description' => '加速域名,只支持传入一个域名。'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '开始获取数据的时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ。'."\n" + ."\n" + .'如果需要查询某天的数据,建议传入:YYYY-MM-DDT16:00:00Z。'."\n" + ."\n" + .'> 不传该参数默认读取过去24小时的数据。'."\n", 'type' => 'string', 'required' => false, 'example' => '2018-10-03T16:00:00Z'], + ], + [ + 'name' => 'SortBy', + 'in' => 'query', + 'schema' => ['description' => '排序方式。取值:'."\n" + .'- **traf**:流量。'."\n" + .'- **pv**:访问次数。'."\n" + ."\n" + .'默认值为**pv**。'."\n", 'type' => 'string', 'required' => false, 'example' => 'pv'], ], ], 'responses' => [ @@ -11454,152 +11051,220 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => '订阅任务列表数据。', - 'type' => 'string', - 'example' => '"data": [{"deliverId": 1,"status": "enable","createTime": "2021-06-14T11:19:26Z","crontab": "0 0 0 * * ?","frequency": "d","name": "域名订阅","dmList": ["www.example.com"],"reports": [{"reportId": 1,"conditions": [{"op": "in","field": "prov","value": ["黑龙江","北京"]}]},{"reportId": 2}],"deliver": {"email": {"subject": "主题","to": ["username@example.com","username@example.org"],"copy":["username@example.com","username@example.org"]}}}]}', + 'StartTime' => ['description' => '查询指定日期。', 'type' => 'string', 'example' => '2018-10-03T16:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '64D28B53-5902-409B-94F6-FD46680144FE'], + 'DomainName' => ['description' => '加速域名。', 'type' => 'string', 'example' => 'example.com'], + 'AllUrlList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'UrlList' => [ + 'description' => '全部热门URL列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Flow' => ['description' => '流量。单位:byte。', 'type' => 'string', 'example' => '460486880'], + 'UrlDetail' => ['description' => '完整的URL地址。', 'type' => 'string', 'example' => 'http://example.com/nn_live/nn_x64/a0.m3u8'], + 'FlowProportion' => ['description' => '流量占比。', 'type' => 'number', 'format' => 'float', 'example' => '0.35'], + 'VisitData' => ['description' => '访问次数。', 'type' => 'string', 'example' => '161673'], + 'VisitProportion' => ['description' => '访问占比。', 'type' => 'number', 'format' => 'float', 'example' => '0.35'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + 'Url200List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'UrlList' => [ + 'description' => '返回为2xx的URL列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Flow' => ['description' => '流量。单位:byte。', 'type' => 'string', 'example' => '460486880'], + 'UrlDetail' => ['description' => '完整的URL地址。', 'type' => 'string', 'example' => 'http://example.com/nn_live/nn_x64/a0.m3u8'], + 'FlowProportion' => ['description' => '流量占比。', 'type' => 'number', 'format' => 'float', 'example' => '0.35'], + 'VisitData' => ['description' => '访问次数。', 'type' => 'string', 'example' => '161673'], + 'VisitProportion' => ['description' => '访问占比。', 'type' => 'number', 'format' => 'float', 'example' => '0.35'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'Url300List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'UrlList' => [ + 'description' => '返回为3xx的URL列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Flow' => ['description' => '流量。单位:byte。', 'type' => 'string', 'example' => '460486880'], + 'UrlDetail' => ['description' => '完整的URL地址。', 'type' => 'string', 'example' => 'http://example.com/nn_live/nn_x64/a0.m3u8'], + 'FlowProportion' => ['description' => '流量占比。', 'type' => 'number', 'format' => 'float', 'example' => '0.35'], + 'VisitData' => ['description' => '访问次数。', 'type' => 'string', 'example' => '161673'], + 'VisitProportion' => ['description' => '访问占比。', 'type' => 'number', 'format' => 'float', 'example' => '0.35'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + 'Url400List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'UrlList' => [ + 'description' => '返回为4xx的URL列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Flow' => ['description' => '流量。单位:byte。', 'type' => 'string', 'example' => '460486880'], + 'UrlDetail' => ['description' => '完整的URL地址。', 'type' => 'string', 'example' => 'http://example.com/nn_live/nn_x64/a0.m3u8'], + 'FlowProportion' => ['description' => '流量占比。', 'type' => 'number', 'format' => 'float', 'example' => '0.35'], + 'VisitData' => ['description' => '访问次数。', 'type' => 'string', 'example' => '161673'], + 'VisitProportion' => ['description' => '访问占比。', 'type' => 'number', 'format' => 'float', 'example' => '0.35'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + 'Url500List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'UrlList' => [ + 'description' => '返回为5xx的URL列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Flow' => ['description' => '流量。单位:byte。', 'type' => 'string', 'example' => '460486880'], + 'UrlDetail' => ['description' => '完整的URL地址。', 'type' => 'string', 'example' => 'http://example.com/nn_live/nn_x64/a0.m3u8'], + 'FlowProportion' => ['description' => '流量占比。', 'type' => 'number', 'format' => 'float', 'example' => '0.35'], + 'VisitData' => ['description' => '访问次数。', 'type' => 'string', 'example' => '161673'], + 'VisitProportion' => ['description' => '访问占比。', 'type' => 'number', 'format' => 'float', 'example' => '0.35'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'TimeParseFailed', - 'errorMessage' => 'Failed to parse the time parameter.', - ], - [ - 'errorCode' => 'SubscriptionAlreadyExists', - 'errorMessage' => 'The subscription already exists.', - ], - [ - 'errorCode' => 'SubscriptionNotFound', - 'errorMessage' => 'The subscription is not found.', - ], - [ - 'errorCode' => 'NameAlreadyExists', - 'errorMessage' => 'The name already exists.', - ], - [ - 'errorCode' => 'DeliverExceedLimit', - 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => '域名格式错误。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": \\"\\\\\\"data\\\\\\": [{\\\\\\"deliverId\\\\\\": 1,\\\\\\"status\\\\\\": \\\\\\"enable\\\\\\",\\\\\\"createTime\\\\\\": \\\\\\"2021-06-14T11:19:26Z\\\\\\",\\\\\\"crontab\\\\\\": \\\\\\"0 0 0 * * ?\\\\\\",\\\\\\"frequency\\\\\\": \\\\\\"d\\\\\\",\\\\\\"name\\\\\\": \\\\\\"域名订阅\\\\\\",\\\\\\"dmList\\\\\\": [\\\\\\"www.example.com\\\\\\"],\\\\\\"reports\\\\\\": [{\\\\\\"reportId\\\\\\": 1,\\\\\\"conditions\\\\\\": [{\\\\\\"op\\\\\\": \\\\\\"in\\\\\\",\\\\\\"field\\\\\\": \\\\\\"prov\\\\\\",\\\\\\"value\\\\\\": [\\\\\\"黑龙江\\\\\\",\\\\\\"北京\\\\\\"]}]},{\\\\\\"reportId\\\\\\": 2}],\\\\\\"deliver\\\\\\": {\\\\\\"email\\\\\\": {\\\\\\"subject\\\\\\": \\\\\\"主题\\\\\\",\\\\\\"to\\\\\\": [\\\\\\"username@example.com\\\\\\",\\\\\\"username@example.org\\\\\\"],\\\\\\"copy\\\\\\":[\\\\\\"username@example.com\\\\\\",\\\\\\"username@example.org\\\\\\"]}}}]}\\",\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDeliverListResponse>\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\n<Content>\\n <data>\\n <deliverId>1</deliverId>\\n <status>enable</status>\\n <createTime>2021-06-14T11:19:26Z</createTime>\\n <crontab>0 0 0 * * ?</crontab>\\n <frequency>d</frequency>\\n <name>域名订阅</name>\\n <dmList>www.example.com</dmList>\\n <reports>\\n <reportId>1</reportId>\\n <conditions>\\n <op>in</op>\\n <field>prov</field>\\n <value>黑龙江</value>\\n <value>北京</value>\\n </conditions>\\n </reports>\\n <reports>\\n <reportId>2</reportId>\\n </reports>\\n <deliver>\\n <email>\\n <subject>主题</subject>\\n <to>username@example.com</to>\\n <to>username@example.org</to>\\n <copy>username@example.com</copy>\\n <copy>username@example.org</copy>\\n </email>\\n </deliver>\\n </data>\\n</Content>\\n</DescribeDcdnDeliverListResponse>","errorExample":""}]', - 'title' => '查询报表订阅任务列表', - 'description' => '> 单用户调用频率:3次/秒。 ', + 'title' => '查询热门URL列表', + 'description' => '> 最多可获取近7天的数据。', 'requestParamsDescription' => ' ', - 'responseParamsDescription' => '**Content数据说明**'."\n" - ."\n" - .'|参数|类型|描述'."\n" - .'|--------|--------|----------|'."\n" - .'|deliverId|Long|订阅任务ID。|'."\n" - .'|status|String|订阅任务状态。取值:<br>enable:启用。<br>disable:关闭。|'."\n" - .'|createTime|String|订阅任务创建时间。|'."\n" - .'|crontab|String|订阅任务执行周期。|'."\n" - .'|frequency|String|执行频率。取值:<br>h:小时<br>d:天<br>M:月|'."\n" - .'|name|String|订阅任务名称。|'."\n" - .'|dmList|String[]|订阅任务的域名过滤列表。|'."\n" - .'|reports|String[]|订阅报表列表。包含以下参数:<br>reportId:报表ID。<br>conditions:报表过滤条件(包含过滤操作、过滤字段和过滤值),没有则为空。op:过滤操作,目前只支持**in**;field:过滤字段;value:过滤值。|'."\n" - .'|deliver|String|交付模块,包含邮件主题、收件人等信息。<br>email:邮件交付。<br>subject:邮件主题。<br>to:发送邮件列表。<br>copy:抄送邮件列表。|', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateDcdnDeliverTask' => [ - 'summary' => '调用UpdateDcdnDeliverTask根据订阅任务ID更新已订阅的报表任务。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainTopUrlVisit'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainTopUrlVisit', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"StartTime\\": \\"2018-10-03T16:00:00Z\\",\\n \\"RequestId\\": \\"64D28B53-5902-409B-94F6-FD46680144FE\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"AllUrlList\\": {\\n \\"UrlList\\": [\\n {\\n \\"Flow\\": \\"460486880\\",\\n \\"UrlDetail\\": \\"http://example.com/nn_live/nn_x64/a0.m3u8\\",\\n \\"FlowProportion\\": 0.35,\\n \\"VisitData\\": \\"161673\\",\\n \\"VisitProportion\\": 0.35\\n }\\n ]\\n },\\n \\"Url200List\\": {\\n \\"UrlList\\": [\\n {\\n \\"Flow\\": \\"460486880\\",\\n \\"UrlDetail\\": \\"http://example.com/nn_live/nn_x64/a0.m3u8\\",\\n \\"FlowProportion\\": 0.35,\\n \\"VisitData\\": \\"161673\\",\\n \\"VisitProportion\\": 0.35\\n }\\n ]\\n },\\n \\"Url300List\\": {\\n \\"UrlList\\": [\\n {\\n \\"Flow\\": \\"460486880\\",\\n \\"UrlDetail\\": \\"http://example.com/nn_live/nn_x64/a0.m3u8\\",\\n \\"FlowProportion\\": 0.35,\\n \\"VisitData\\": \\"161673\\",\\n \\"VisitProportion\\": 0.35\\n }\\n ]\\n },\\n \\"Url400List\\": {\\n \\"UrlList\\": [\\n {\\n \\"Flow\\": \\"460486880\\",\\n \\"UrlDetail\\": \\"http://example.com/nn_live/nn_x64/a0.m3u8\\",\\n \\"FlowProportion\\": 0.35,\\n \\"VisitData\\": \\"161673\\",\\n \\"VisitProportion\\": 0.35\\n }\\n ]\\n },\\n \\"Url500List\\": {\\n \\"UrlList\\": [\\n {\\n \\"Flow\\": \\"460486880\\",\\n \\"UrlDetail\\": \\"http://example.com/nn_live/nn_x64/a0.m3u8\\",\\n \\"FlowProportion\\": 0.35,\\n \\"VisitData\\": \\"161673\\",\\n \\"VisitProportion\\": 0.35\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainTopUrlVisitResponse>\\r\\n\\t<AllUrlList>\\r\\n\\t\\t<UrlList>\\r\\n\\t\\t\\t<VisitData>161673</VisitData>\\r\\n\\t\\t\\t<UrlDetail>http://example.com/nn_live/nn_x64/a0.m3u8</UrlDetail>\\r\\n\\t\\t\\t<VisitProportion>0.35</VisitProportion>\\r\\n\\t\\t\\t<Flow>460486880</Flow>\\r\\n\\t\\t\\t<FlowProportion>0.35</FlowProportion>\\r\\n\\t\\t</UrlList>\\r\\n\\t\\t<UrlList>\\r\\n\\t\\t\\t<VisitData>37</VisitData>\\r\\n\\t\\t\\t<UrlDetail>http://example.com/nn_live/nn_x64/ZXg9MQ,,/HNJSMPP360.ts</UrlDetail>\\r\\n\\t\\t\\t<VisitProportion>0.35</VisitProportion>\\r\\n\\t\\t\\t<Flow>460486880</Flow>\\r\\n\\t\\t\\t<FlowProportion>0.35</FlowProportion>\\r\\n\\t\\t</UrlList>\\r\\n\\t</AllUrlList>\\r\\n\\t<Url300List>\\r\\n\\t\\t<UrlList>\\r\\n\\t\\t\\t<VisitData>161673</VisitData>\\r\\n\\t\\t\\t<UrlDetail>http://example.com/nn_live/nn_x64/aWQ9SE5KU0GNfbGl2ZQ,,/HNJSMPP360.m3u8</UrlDetail>\\r\\n\\t\\t\\t<VisitProportion>0.35</VisitProportion>\\r\\n\\t\\t\\t<Flow>460486880</Flow>\\r\\n\\t\\t\\t<FlowProportion>0.35</FlowProportion>\\r\\n\\t\\t</UrlList>\\r\\n\\t\\t<UrlList>\\r\\n\\t\\t\\t<VisitData>3</VisitData>\\r\\n\\t\\t\\t<UrlDetail>http://example.com/nn_live/nn_x64/aWQ9SE5KU01QUDZXg9MQ,,/HNJSMPP360.ts</UrlDetail>\\r\\n\\t\\t\\t<VisitProportion>0.35</VisitProportion>\\r\\n\\t\\t\\t<Flow>460486880</Flow>\\r\\n\\t\\t\\t<FlowProportion>0.35</FlowProportion>\\r\\n\\t\\t</UrlList>\\r\\n\\t</Url300List>\\r\\n\\t<Url400List>\\r\\n\\t\\t<UrlList>\\r\\n\\t\\t\\t<VisitData>1884</VisitData>\\r\\n\\t\\t\\t<UrlDetail>http://example.com/nn_live/nn_x64/aWQ9SE5KU01QUhbGxfcGNfbGl2ZQ,,/HNJSMPP360.m3u8</UrlDetail>\\r\\n\\t\\t\\t<VisitProportion>0.35</VisitProportion>\\r\\n\\t\\t\\t<Flow>460486880</Flow>\\r\\n\\t\\t\\t<FlowProportion>0.35</FlowProportion>\\r\\n\\t\\t</UrlList>\\r\\n\\t\\t<UrlList>\\r\\n\\t\\t\\t<VisitData>1</VisitData>\\r\\n\\t\\t\\t<UrlDetail>http://example.com/nn_live/nn_x64/aWQ9SEEwODgmpbmRleZPTE,/HNJSMPP360.ts</UrlDetail>\\r\\n\\t\\t\\t<VisitProportion>0.35</VisitProportion>\\r\\n\\t\\t\\t<Flow>460486880</Flow>\\r\\n\\t\\t\\t<FlowProportion>0.35</FlowProportion>\\r\\n\\t\\t</UrlList>\\r\\n\\t</Url400List>\\r\\n\\t<RequestId>64D28B53-5902-409B-94F6-FD46680144FE</RequestId>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<Url200List>\\r\\n\\t\\t<UrlList>\\r\\n\\t\\t\\t<VisitData>161673</VisitData>\\r\\n\\t\\t\\t<UrlDetail>http://example.com/nn_live/nn_x64/aWQ9SE5KU0bGxfcGNfbGl2ZQ,,/HNJSMPP360.m3u8</UrlDetail>\\r\\n\\t\\t\\t<VisitProportion>0.35</VisitProportion>\\r\\n\\t\\t\\t<Flow>460486880</Flow>\\r\\n\\t\\t\\t<FlowProportion>0.35</FlowProportion>\\r\\n\\t\\t</UrlList>\\r\\n\\t\\t<UrlList>\\r\\n\\t\\t\\t<VisitData>3</VisitData>\\r\\n\\t\\t\\t<UrlDetail>http://example.com/nn_live/nn_x64/aWQ9SE5KU01QUDMlPTIwMTxMDk5ZXg9MQ,,/HNJSMPP360.ts</UrlDetail>\\r\\n\\t\\t\\t<VisitProportion>0.35</VisitProportion>\\r\\n\\t\\t\\t<Flow>460486880</Flow>\\r\\n\\t\\t\\t<FlowProportion>0.35</FlowProportion>\\r\\n\\t\\t</UrlList>\\r\\n\\t</Url200List>\\r\\n\\t<StartTime>2018-10-03T16:00:00Z</StartTime>\\r\\n\\t<Url500List>\\r\\n\\t\\t<UrlList>\\r\\n\\t\\t\\t<VisitData>161673</VisitData>\\r\\n\\t\\t\\t<UrlDetail>http://example.com/nn_live/nn_x64/aWQ9SE5KU0GNfbGl2ZQ,,/HNJSMPP360.m3u8</UrlDetail>\\r\\n\\t\\t\\t<VisitProportion>0.35</VisitProportion>\\r\\n\\t\\t\\t<Flow>460486880</Flow>\\r\\n\\t\\t\\t<FlowProportion>0.35</FlowProportion>\\r\\n\\t\\t</UrlList>\\r\\n\\t\\t<UrlList>\\r\\n\\t\\t\\t<VisitData>3</VisitData>\\r\\n\\t\\t\\t<UrlDetail>http://example.com/nn_live/nn_x64/aWQ9SE5KU01QUDZXg9MQ,,/HNJSMPP360.ts</UrlDetail>\\r\\n\\t\\t\\t<VisitProportion>0.35</VisitProportion>\\r\\n\\t\\t\\t<Flow>460486880</Flow>\\r\\n\\t\\t\\t<FlowProportion>0.35</FlowProportion>\\r\\n\\t\\t</UrlList>\\r\\n\\t</Url500List>\\r\\n</DescribeDcdnDomainTopUrlVisitResponse>\\r\\n\\t\\r\\n","errorExample":""}]', + ], + 'DescribeDcdnDomainTrafficData' => [ + 'summary' => '调用DescribeDcdnDomainTrafficData查询域名的网络流量监控数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ - 'name' => 'DeliverId', - 'in' => 'formData', - 'schema' => [ - 'description' => '待更新的订阅任务ID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '92', - ], + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '加速域名。'."\n" + ."\n" + .'多个域名用英文逗号(,)分隔,默认查询所有加速域名。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ - 'name' => 'Name', - 'in' => 'formData', - 'schema' => [ - 'description' => '订阅任务名称。', - 'type' => 'string', - 'required' => false, - 'example' => '域名订阅', - ], + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据的起始时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z'], ], [ - 'name' => 'Reports', - 'in' => 'formData', - 'schema' => [ - 'description' => '待订阅的报表列表,需进行JSON转义。', - 'type' => 'string', - 'required' => false, - 'example' => '[{\\"reportId\\":2,\\"conditions\\":[{\\"field\\":\\"prov\\",\\"op\\":\\"in\\",\\"value\\":[\\"黑龙江\\",\\"北京\\"]}]}]', - ], + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据的结束时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需晚于起始时间。'."\n", 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z'], ], [ - 'name' => 'DomainName', - 'in' => 'formData', - 'schema' => [ - 'description' => '待订阅的域名列表,多个域名用英文逗号(,)分隔。如果不传该参数,默认为账号下的所有域名订阅报表交付任务。', - 'type' => 'string', - 'required' => false, - 'example' => 'www.example.com', - ], + 'name' => 'Interval', + 'in' => 'query', + 'schema' => ['description' => '查询数据的时间粒度,单位为秒。'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。'."\n", 'type' => 'string', 'required' => false, 'example' => '300'], ], [ - 'name' => 'Deliver', - 'in' => 'formData', - 'schema' => [ - 'description' => '报表发送方式,仅支持邮件发送,需进行JSON转义。', - 'type' => 'string', - 'required' => false, - 'example' => '{"email":{"subject":"主题名称","to":["username@example.com","username@example.com"]}}', - ], + 'name' => 'IspNameEn', + 'in' => 'query', + 'schema' => ['description' => '运营商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有运营商。', 'type' => 'string', 'required' => false, 'example' => 'unicom'], ], [ - 'name' => 'Schedule', - 'in' => 'formData', - 'schema' => [ - 'description' => '订阅周期相关参数,需进行JSON转义。', - 'type' => 'string', - 'required' => false, - 'example' => '{"schedName":"订阅任务名称","description":"描述","crontab":"000**?","frequency":"d","status":"enable","effectiveFrom":"2020-09-17T00:00:00Z","effectiveEnd":"2020-11-17T00:00:00Z"}', - ], + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => ['description' => '地域英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有地域。', 'type' => 'string', 'required' => false, 'example' => 'beijing'], ], ], 'responses' => [ @@ -11607,178 +11272,88 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔,单位:秒。', 'type' => 'string', 'example' => '300'], + 'TrafficDataPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => '每个时间间隔的流量数据,单位:Byte。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'StaticHttpTraffic' => ['description' => '静态HTTP流量。', 'type' => 'number', 'format' => 'float', 'example' => '123'], + 'DynamicHttpsTraffic' => ['description' => '动态HTTPS流量。', 'type' => 'number', 'format' => 'float', 'example' => '0'], + 'Traffic' => ['description' => '总流量。', 'type' => 'number', 'format' => 'float', 'example' => '0'], + 'DynamicHttpTraffic' => ['description' => '动态HTTP流量。', 'type' => 'number', 'format' => 'float', 'example' => '0'], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z'], + 'StaticHttpsTraffic' => ['description' => '静态HTTPS流量。', 'type' => 'number', 'format' => 'float', 'example' => '132'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'TimeParseFailed', - 'errorMessage' => 'Failed to parse the time parameter.', - ], - [ - 'errorCode' => 'SubscriptionAlreadyExists', - 'errorMessage' => 'The subscription already exists.', - ], - [ - 'errorCode' => 'SubscriptionNotFound', - 'errorMessage' => 'The subscription is not found.', - ], - [ - 'errorCode' => 'NameAlreadyExists', - 'errorMessage' => 'The name already exists.', - ], - [ - 'errorCode' => 'DeliverExceedLimit', - 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateDcdnDeliverTaskResponse>\\r\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</UpdateDcdnDeliverTaskResponse>","errorExample":""}]', - 'title' => '更新已订阅的报表任务', - 'description' => '> 单用户调用频率:3次/秒。 ', - 'requestParamsDescription' => '**Reports数据说明**'."\n" - ."\n" - .'|参数|类型|是否必须|描述|'."\n" - .'|----|----|---------|---------|'."\n" - .'|reportId|String|是|报表ID。|'."\n" - .'|conditions|ConDatas[]|否|报表过滤条件。|'."\n" - ."\n" - .'**conditions数据说明**'."\n" - ."\n" - .'|参数|类型|是否必须|描述|'."\n" - .'|----|----|---------|---------|'."\n" - .'|field|String|否|过滤字段。|'."\n" - .'|op|String|否|过滤操作,目前只支持**in**。|'."\n" - .'|value|String[]|否|字段值数组。|'."\n" - ."\n" - .'**Deliver数据说明**'."\n" + 'title' => '查询网络流量监控数据', + 'description' => '- 不指定**StartTime**和**EndTime**,默认返回过去24小时的数据;指定**StartTime**和**EndTime**,返回指定起止时间的数据。'."\n" + .'- 单用户调用频率:100次/秒。'."\n" ."\n" - .'|参数|类型|是否必须|描述'."\n" - .'|--------|----|----|----------|'."\n" - .'|subject|String|否|订阅主题。|'."\n" - .'|to|String[]|是|收件邮箱列表。|'."\n" + .'**支持查询的时间粒度**'."\n" ."\n" - .'**Schedule数据说明**'."\n" - .'|参数|类型|是否必须|描述|'."\n" - .'|----|----|---------|---------|'."\n" - .'|schedName|String|否|订阅任务名称。|'."\n" - .'|description|String|否|订阅任务描述。|'."\n" - .'|crontab|String|是|订阅任务执行周期。|'."\n" - .'|frequency|String|是|执行频率。取值:<br>**h**:小时<br>**d**:天<br>**w**:周|'."\n" - .'|status|String|否|订阅任务状态。取值:<br>**enable**:启用。<br>**disable**:关闭。|'."\n" - .'|effectiveFrom|String|否|订阅交付任务开始时间。|'."\n" - .'|effectiveEnd|String|否|订阅交付任务结束时间。|', + .'根据单次查询的最大时间跨度不同,请求参数Interval支持不同的查询数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" + .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟 |'."\n" + .'| -------------- | -------------- | ------ | ------| '."\n" + .'| 5分钟 | 3天 | 93天 | 15分钟 |'."\n" + .'| 1小时 | 31天 | 186天 | 一般延迟3-4小时|'."\n" + .'| 1天 | 366天 | 366天 | 一般延迟4小时,不超过24小时 |', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteDcdnDeliverTask' => [ - 'summary' => '调用DeleteDcdnDeliverTask根据任务ID删除已订阅的报表任务。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - 'FEATUREdcdn2Z4HOI', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainTrafficData'], ], ], - 'parameters' => [ + 'ramActions' => [ [ - 'name' => 'DeliverId', - 'in' => 'query', - 'schema' => [ - 'description' => '待删除的订阅任务ID。您可以调用[DescribeDcdnDeliverList](~~270043~~)接口查询订阅任务ID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '92', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'TimeParseFailed', - 'errorMessage' => 'Failed to parse the time parameter.', - ], - [ - 'errorCode' => 'SubscriptionAlreadyExists', - 'errorMessage' => 'The subscription already exists.', - ], - [ - 'errorCode' => 'SubscriptionNotFound', - 'errorMessage' => 'The subscription is not found.', - ], - [ - 'errorCode' => 'NameAlreadyExists', - 'errorMessage' => 'The name already exists.', - ], - [ - 'errorCode' => 'DeliverExceedLimit', - 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDcdnDeliverTaskResponse>\\r\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</DeleteDcdnDeliverTaskResponse>","errorExample":""}]', - 'title' => '删除已订阅的报表任务', - 'description' => '> 单用户调用频率:3次/秒。 ', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"TrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"StaticHttpTraffic\\": 123,\\n \\"DynamicHttpsTraffic\\": 0,\\n \\"Traffic\\": 0,\\n \\"DynamicHttpTraffic\\": 0,\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\",\\n \\"StaticHttpsTraffic\\": 132\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainTrafficDataResponse>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>300</DataInterval>\\r\\n\\t<TrafficDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Traffic>423304182</Traffic>\\r\\n\\t\\t\\t<DynamicHttpTraffic>0</DynamicHttpTraffic>\\r\\n\\t\\t\\t<DynamicHttpsTraffic>423304182</DynamicHttpsTraffic>\\r\\n\\t\\t\\t<StaticHttpTraffic>0</StaticHttpTraffic>\\r\\n\\t\\t\\t<StaticHttpsTraffic>0</StaticHttpsTraffic>\\r\\n\\t\\t</DataModule>\\r\\n\\t</TrafficDataPerInterval>\\r\\n\\t<RequestId>B955107D-E658-4E77-B913-E0AC3D31693E</RequestId>\\r\\n\\t<StartTime>2017-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2017-12-10T21:00:00Z</EndTime>\\r\\n</DescribeDcdnDomainTrafficDataResponse>","errorExample":""}]', ], - 'DescribeDcdnDomainLog' => [ - 'summary' => '调用DescribeDcdnDomainLog查询指定域名的原始访问日志的下载地址。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnDomainUsageData' => [ + 'summary' => '调用DescribeDcdnDomainUsageData查询域名在特定计费区域的用量数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -11789,77 +11364,87 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111521', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '待查询的加速域名,只支持查询单个域名。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '需要查询的加速域名。支持批量查询,一次最多可以查询100个域名,多个域名用英文逗号(,)分隔。'."\n" + ."\n" + .'> 如果不传该参数,默认返回所有加速域名合并后的数据。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ - 'name' => 'PageSize', + 'name' => 'StartTime', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => '分页大小。'."\n" - ."\n" - .'取值:**1**~**1000**,默认值:**300**,最大值:**1000**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '1000', - 'example' => '300', - 'default' => '300', - ], + 'schema' => ['description' => '获取数据的起始时间点,日期格式按照ISO8601表示法,并使用UTC时间。格式为:yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 查询数据的最小粒度为5分钟。', 'type' => 'string', 'required' => true, 'example' => '2015-12-10T20:00:00Z'], ], [ - 'name' => 'PageNumber', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '取得第几页,取值范围:大于**1**的任意整数。'."\n" - ."\n" - .'默认值为**1**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => '获取数据的结束时间点,日期格式按照ISO8601表示法,并使用UTC时间。格式为:yyyy-MM-ddTHH:mm:ssZ'."\n" + ."\n" + .'> 结束时间需大于起始时间,且时间相差不能超过31天。', 'type' => 'string', 'required' => true, 'example' => '2015-12-10T22:00:00Z'], ], [ - 'name' => 'StartTime', + 'name' => 'Field', 'in' => 'query', - 'schema' => [ - 'description' => '获取日志起始时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2021-11-07T17:00:00Z', - ], + 'schema' => ['description' => '请求的数据类型。取值:'."\n" + .'- **bps**:带宽。'."\n" + .'- **traf**:流量。'."\n" + .'- **acc**:请求数。'."\n" + ."\n" + .'> **acc**不支持根据**Area**参数查询。', 'type' => 'string', 'required' => true, 'example' => 'bps'], ], [ - 'name' => 'EndTime', + 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'description' => '获取日志结束时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需大于起始时间。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2021-11-07T18:00:00Z', - ], + 'schema' => ['description' => '请求数类型,取值:'."\n" + ."\n" + .'- **static**:静态。'."\n" + .'- **dynamic**:动态。'."\n" + .'- **all**:全部。'."\n" + ."\n" + .'默认为**all**。', 'type' => 'string', 'required' => false, 'example' => 'dynamic', 'default' => 'all'], + ], + [ + 'name' => 'DataProtocol', + 'in' => 'query', + 'schema' => ['description' => '需要获取的数据的协议。取值:'."\n" + .'- **quic**:QUIC协议。'."\n" + .'- **https**:HTTPS协议。'."\n" + .'- **http**:HTTP协议。'."\n" + .'- **all**:以上全部协议。'."\n" + ."\n" + .'默认为**all**。', 'type' => 'string', 'required' => false, 'example' => 'all', 'default' => 'all'], + ], + [ + 'name' => 'Area', + 'in' => 'query', + 'schema' => ['description' => '区域代号。取值:'."\n" + .'- **CN**:中国内地。'."\n" + .'- **OverSeas**:全球(不包含中国内地)。'."\n" + .'- **AP1**:亚太1区。'."\n" + .'- **AP2**:亚太2区。'."\n" + .'- **AP3**:亚太3区。'."\n" + .'- **NA**:北美。'."\n" + .'- **SA**:南美。'."\n" + .'- **EU**:欧洲。'."\n" + .'- **MEAA**:中东、非洲。'."\n" + .'- **all**:以上全部区域。'."\n" + ."\n" + .'默认为**CN**。'."\n", 'type' => 'string', 'required' => false, 'example' => 'CN', 'default' => 'CN'], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => ['description' => '强制指定获取指定时间粒度的数据,单位为秒。'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。'."\n", 'type' => 'string', 'required' => false, 'example' => '300'], ], ], 'responses' => [ @@ -11868,442 +11453,271 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'DomainName' => [ - 'description' => '域名。'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '95594003-CAC5-5636-AF72-2A094364****', - ], - 'DomainLogDetails' => [ + 'DomainName' => ['description' => '查询到的加速域名。', 'type' => 'string', 'example' => 'example.com'], + 'EndTime' => ['description' => '查询数据的结束时间。', 'type' => 'string', 'example' => '2015-12-10T22:00:00Z'], + 'StartTime' => ['description' => '查询数据的开始时间。', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z'], + 'Type' => ['description' => '返回的用量类型。', 'type' => 'string', 'example' => 'bps'], + 'Area' => ['description' => '返回的用量区域。', 'type' => 'string', 'example' => 'CN'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E'], + 'DataInterval' => ['description' => '每条记录的时间间隔,单位为秒。', 'type' => 'string', 'example' => '/'], + 'UsageDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DomainLogDetail' => [ - 'description' => 'DomainLogDetail组成的数据。'."\n", + 'DataModule' => [ + 'description' => '每个时间间隔的流量数据。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'LogCount' => [ - 'description' => '本页返回的总条数。'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '4', - ], - 'LogInfos' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LogInfoDetail' => [ - 'description' => 'LogInfoDetail组成的数据。'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2021-11-07T18:00:00Z', - ], - 'LogSize' => [ - 'description' => '日志大小,单位:字节。'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '192', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2021-11-07T17:00:00Z', - ], - 'LogName' => [ - 'description' => '日志名称。'."\n", - 'type' => 'string', - 'example' => 'example.com_2021_11_08_010000_020000.gz', - ], - 'LogPath' => [ - 'description' => '日志路径。'."\n" - ."\n" - .'需要关注返回参数LogPath中的字段Expires(过期时间戳),过期后日志下载链接失效,需要重新获取。更多信息,请参见[LogPath字段信息](~~31952~~)', - 'type' => 'string', - 'example' => 'example.aliyundoc.com /v1.l1cache/105252530/example.com/2021_11_08/example.com_2021_11_08_010000_020000.gz?Expires=1636963354&OSSAccessKeyId=yourAccessKeyID&Signature=u0V6foRfZniHE8i%2BHUdxGOhZsK****', - ], - ], - ], - ], - ], - ], - 'PageInfos' => [ - 'description' => 'PageInfoDetail组成的数据。', - 'type' => 'object', - 'properties' => [ - 'PageIndex' => [ - 'description' => '返回数据的页码。'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '整页大小。'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'Total' => [ - 'description' => '总条数。'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '4', - ], - ], - ], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2015-12-10T21:30:00Z'], + 'PeakTime' => ['description' => '当**Field**为**bps**时,该值为峰值带宽时刻,否则值和**TimeStamp**相同。', 'type' => 'string', 'example' => '2015-12-10T21:30:00Z'], + 'Value' => ['description' => '用量。', 'type' => 'string', 'example' => '4233041**'], + 'SpecialValue' => ['description' => '特殊用量。'."\n" + ."\n" + .'> 用来标记特殊情况下的用量值,没有特殊计费可忽略该参数。', 'type' => 'string', 'example' => '4233041**'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The StartTime cannot exceed 31 days before the current time.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified StartTime or EndTime is malformed.', 'description' => '开始时间或结束时间格式错误。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidParameterField', 'errorMessage' => 'The specified Field is invalid.', 'description' => 'Field参数错误'], + ['errorCode' => 'InvalidParameterType', 'errorMessage' => 'The specified Type is invalid.', 'description' => 'Type参数错误,请确认后输入'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => '时间跨度超过限制,请参照接口文档,配置合理查询跨度。'], + ['errorCode' => 'InvalidParameterInterval', 'errorMessage' => 'The specified Interval is invalid.', 'description' => 'Interval参数错误'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"RequestId\\": \\"95594003-CAC5-5636-AF72-2A094364****\\",\\n \\"DomainLogDetails\\": {\\n \\"DomainLogDetail\\": [\\n {\\n \\"LogCount\\": 4,\\n \\"LogInfos\\": {\\n \\"LogInfoDetail\\": [\\n {\\n \\"EndTime\\": \\"2021-11-07T18:00:00Z\\",\\n \\"LogSize\\": 192,\\n \\"StartTime\\": \\"2021-11-07T17:00:00Z\\",\\n \\"LogName\\": \\"example.com_2021_11_08_010000_020000.gz\\",\\n \\"LogPath\\": \\"example.aliyundoc.com /v1.l1cache/105252530/example.com/2021_11_08/example.com_2021_11_08_010000_020000.gz?Expires=1636963354&OSSAccessKeyId=yourAccessKeyID&Signature=u0V6foRfZniHE8i%2BHUdxGOhZsK****\\"\\n }\\n ]\\n },\\n \\"PageInfos\\": {\\n \\"PageIndex\\": 1,\\n \\"PageSize\\": 10,\\n \\"Total\\": 4\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainLogResponse>\\n<RequestId>95594003-CAC5-5636-AF72-2A094364****</RequestId>\\n<DomainName>example.com</DomainName>\\n<DomainLogDetails>\\n <DomainLogDetail>\\n <LogInfos>\\n <LogInfoDetail>\\n <LogSize>192</LogSize>\\n <EndTime>2021-11-07T18:00:00Z</EndTime>\\n <StartTime>2021-11-07T17:00:00Z</StartTime>\\n <LogName>example.com_2021_11_08_010000_020000.gz</LogName>\\n <LogPath>example.aliyundoc.com /v1.l1cache/105252530/example.com/2021_11_08/example.com_2021_11_08_010000_020000.gz?Expires=1636963354&OSSAccessKeyId=LTAIviCc6zy8****&Signature=u0V6foRfZniHE8i%2BHUdxGOhZsK****</LogPath>\\n </LogInfoDetail>\\n <LogInfoDetail>\\n <LogSize>226</LogSize>\\n <EndTime>2021-11-07T20:00:00Z</EndTime>\\n <StartTime>2021-11-07T19:00:00Z</StartTime>\\n <LogName>example.com_2021_11_08_030000_040000.gz</LogName>\\n <LogPath>example.aliyundoc.com /v1.l1cache/105252530/example.com/2021_11_08/example.com_2021_11_08_030000_040000.gz?Expires=1636963354&OSSAccessKeyId=LTAIviCc6zy8****&Signature=GPETaV9ydedqtQxoEcVONxQvY****</LogPath>\\n </LogInfoDetail>\\n <LogInfoDetail>\\n <LogSize>260</LogSize>\\n <EndTime>2021-11-07T21:00:00Z</EndTime>\\n <StartTime>2021-11-07T20:00:00Z</StartTime>\\n <LogName>example.com_2021_11_08_040000_050000.gz</LogName>\\n <LogPath>example.aliyundoc.com /v1.l1cache/105252530/example.com/2021_11_08/example.com_2021_11_08_040000_050000.gz?Expires=1636963354&OSSAccessKeyId=LTAIviCc6zy8****&Signature=WIOGy%2BLRp86zpex%2FCGOETf6UUg****</LogPath>\\n </LogInfoDetail>\\n <LogInfoDetail>\\n <LogSize>413</LogSize>\\n <EndTime>2021-11-07T22:00:00Z</EndTime>\\n <StartTime>2021-11-07T21:00:00Z</StartTime>\\n <LogName>example.com_2021_11_08_050000_060000.gz</LogName>\\n <LogPath>example.aliyundoc.com /v1.l1cache/105252530/example.com/2021_11_08/example.com_2021_11_08_050000_060000.gz?Expires=1636963354&OSSAccessKeyId=LTAIviCc6zy8****&Signature=vZpNRaKuaFsOB7RT%2F%2BS8wjfmjO****</LogPath>\\n </LogInfoDetail>\\n </LogInfos>\\n <PageInfos>\\n <PageSize>10</PageSize>\\n <Total>4</Total>\\n <PageIndex>1</PageIndex>\\n </PageInfos>\\n <LogCount>4</LogCount>\\n </DomainLogDetail>\\n</DomainLogDetails>\\n</DescribeDcdnDomainLogResponse>","errorExample":""}]', - 'title' => '查询离线访问日志下载地址', - 'description' => '> - 当您不指定**StartTime**和**EndTime**时,默认读取过去24小时的日志数据;当指定**StartTime**和**EndTime**时,按指定的起止时间查询日志。'."\n" - .'> - 单用户调用频率:100次/秒。', - 'requestParamsDescription' => ' ', + 'title' => '查询用量数据', + 'description' => '- 单用户调用频率:10次/秒'."\n" + .'- 用量数据包括流量、带宽和请求数三大类,单位分别为Byte、bps和次数。'."\n" + ."\n" + .'**支持查询的时间粒度**:'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,请求参数Interval支持不同的查询数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" + ."\n" + .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟 |'."\n" + .'| -------------- | -------------- | ------ |-----|'."\n" + .'| 5分钟 | 3天 | 93天 | 15分钟 |'."\n" + .'| 1小时 | 31天 | 186天 | 一般延迟3-4小时 |'."\n" + .'| 1天 | 366天 | 366天 | 一般延迟4小时,最长不超过24小时 |', + 'requestParamsDescription' => ' **参数组合说明**'."\n" + ."\n" + .'计费数据和参数取值的对应关系如下表,具体调用方法请参见请求示例。'."\n" + ."\n" + .'| 计费数据 | DataProtocol参数取值 | Type参数取值 | Field参数取值 | Area参数取值 |'."\n" + .'|-----------------|----------------------|--------------|---------------|---------------------------------------|'."\n" + .'| 流量 | all或不传 | all或不传 | traf | CN <br>OverSeas <br>AP1<br>AP2<br>AP3<br>NA<br>SA<br>EU<br>MEAA |'."\n" + .'| 带宽 | all或不传 | all或不传 | bps | CN <br>OverSeas <br>AP1<br>AP2<br>AP3<br>NA<br>SA<br>EU<br>MEAA |'."\n" + .'| 静态HTTPS请求数 | https | static | acc | all |'."\n" + .'| 动态HTTP请求数 | http | dynamic | acc | all |'."\n" + .'| 动态HTTPS请求数 | https | dynamic | acc | all |', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnWafLogs' => [ - 'summary' => '调用DescribeDcdnWafLogs查询域名的离线WAF拦截日志下载地址。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2022-12-26T06:16:32.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainUsageData'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"EndTime\\": \\"2015-12-10T22:00:00Z\\",\\n \\"StartTime\\": \\"2015-12-10T20:00:00Z\\",\\n \\"Type\\": \\"bps\\",\\n \\"Area\\": \\"CN\\",\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"DataInterval\\": \\"/\\",\\n \\"UsageDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TimeStamp\\": \\"2015-12-10T21:30:00Z\\",\\n \\"PeakTime\\": \\"2015-12-10T21:30:00Z\\",\\n \\"Value\\": \\"4233041**\\",\\n \\"SpecialValue\\": \\"4233041**\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainUsageDataResponse>\\n<DomainName>example.com</DomainName>\\n<UsageDataPerInterval>\\n <DataModule>\\n <TimeStamp>2015-12-10T20:00:00Z</TimeStamp>\\n <PeakTime>2015-12-10T20:05:00Z</PeakTime>\\n <Value>4233041**</Value>\\n <SpecialValue>4233041**</SpecialValue>\\n </DataModule>\\n <DataModule>\\n <TimeStamp>2015-12-10T21:00:00Z</TimeStamp>\\n <PeakTime>2015-12-10T21:30:00Z</PeakTime>\\n <Value>4546807**</Value>\\n <SpecialValue>4233041**</SpecialValue>\\n </DataModule>\\n</UsageDataPerInterval>\\n<RequestId>B955107D-E658-4E77-B913-E0AC3D31693E</RequestId>\\n<StartTime>2015-12-10T20:00Z</StartTime>\\n<EndTime>2015-12-10T21:00Z</EndTime>\\n<Area>CN</Area>\\n<Type>traf</Type>\\n</DescribeDcdnDomainUsageDataResponse>","errorExample":""}]', + ], + 'DescribeDcdnDomainUvData' => [ + 'summary' => '调用DescribeDcdnDomainUvData获取加速域名1小时粒度的UV页面独立访问统计,支持获取最近90天的数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '域名,只支持单个查询。', - 'type' => 'string', - 'required' => true, - 'enumValueTitles' => [], - 'example' => 'example.com', - ], + 'schema' => ['description' => '加速域名,仅支持查询单个域名。'."\n" + ."\n" + .'默认查询所有域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '查询日志起始时间。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-21T08:00:00Z', - ], + 'schema' => ['description' => '获取数据起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2015-11-29T00:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '查询日志结束时间。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-22T08:00:00Z', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '分页大小,默认**300**,取值:**1~1000**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '300', - 'default' => '300', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => '查询页数,取值范围:大于0的任意整数。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'结束时间需大于起始时间。'."\n", 'type' => 'string', 'required' => false, 'example' => '2015-11-30T00:00:00Z'], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'DomainLogDetails' => [ - 'description' => 'DomainLogDetail组成的数据列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DomainName' => [ - 'description' => 'WAF域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'LogCount' => [ - 'description' => '本页返回的总条数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'LogInfos' => [ - 'description' => 'LogInfoDetail组成的数据列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2015-05-23T14:00:00Z', - ], - 'LogName' => [ - 'description' => '日志名称。', - 'type' => 'string', - 'example' => 'demo.aliyundoc.com_2015_05_23_2100_2200.xxxxxx.gz', - ], - 'LogPath' => [ - 'description' => '日志路径。', - 'type' => 'string', - 'example' => 'guide.aliyundoc.com-hangzhou.xxx', - ], - 'LogSize' => [ - 'description' => '日志大小,单位:字节。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '258', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2015-05-23T13:00:00Z', - ], - ], - ], - ], - 'PageInfos' => [ - 'description' => 'PageInfoDetail组成的数据。', + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2015-11-30T00:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2015-11-29T00:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'E9D3257A-1B7C-414C-90C1-8D07AC47BCAC'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔,以秒为单位。', 'type' => 'string', 'example' => '3600'], + 'UvDataInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'UsageData' => [ + 'description' => '每个时间间隔的页面独立访问次数。'."\n", + 'type' => 'array', + 'items' => [ 'type' => 'object', 'properties' => [ - 'PageIndex' => [ - 'description' => '返回数据的页码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - 'default' => '1', - ], - 'PageSize' => [ - 'description' => '整页大小。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - 'default' => '1000', - ], - 'Total' => [ - 'description' => '总条数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], + 'Value' => ['description' => '详细使用数据。', 'type' => 'string', 'example' => '326'], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2015-11-29T00:00:00Z'], ], + 'description' => '', ], ], ], - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0985A362-C81E-5A56-891D-90226BEECA7C', + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'IdempotentParameterMismatch', - 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainLogDetails\\": [\\n {\\n \\"DomainName\\": \\"example.com\\",\\n \\"LogCount\\": 10,\\n \\"LogInfos\\": [\\n {\\n \\"EndTime\\": \\"2015-05-23T14:00:00Z\\",\\n \\"LogName\\": \\"demo.aliyundoc.com_2015_05_23_2100_2200.xxxxxx.gz\\",\\n \\"LogPath\\": \\"guide.aliyundoc.com-hangzhou.xxx\\",\\n \\"LogSize\\": 258,\\n \\"StartTime\\": \\"2015-05-23T13:00:00Z\\"\\n }\\n ],\\n \\"PageInfos\\": {\\n \\"PageIndex\\": 1,\\n \\"PageSize\\": 20,\\n \\"Total\\": 20\\n }\\n }\\n ],\\n \\"RequestId\\": \\"0985A362-C81E-5A56-891D-90226BEECA7C\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafLogsResponse>\\n <DomainLogDetails>\\n <DomainName>example.com\\n</DomainName>\\n <LogCount>10</LogCount>\\n <LogInfos>\\n <EndTime>2015-05-23T14:00:00Z\\n</EndTime>\\n <LogName>demo.aliyundoc.com_2015_05_23_2100_2200.xxxxxx.gz</LogName>\\n <LogPath>guide.aliyundoc.com-hangzhou.xxx\\n</LogPath>\\n <LogSize>258</LogSize>\\n <StartTime>2015-05-23T13:00:00Z\\n</StartTime>\\n </LogInfos>\\n <PageInfos>\\n <PageIndex>1</PageIndex>\\n <PageSize>20</PageSize>\\n <Total>20</Total>\\n </PageInfos>\\n </DomainLogDetails>\\n <RequestId>0985A362-C81E-5A56-891D-90226BEECA7C</RequestId>\\n</DescribeDcdnWafLogsResponse>","errorExample":""}]', - 'title' => '查询离线WAF拦截日志下载地址', - 'description' => '> - 如果不指定StartTime和EndTime,该接口默认读取过去24小时的数据;指定StartTime和EndTime时,按指定的起止时间查询。'."\n" - .'> - 查询数据的时间粒度为一小时。'."\n" - .'> - 单个用户的调用频率为:100次/秒。', - ], - 'CreateDcdnSLSRealTimeLogDelivery' => [ - 'summary' => '调用CreateDcdnSLSRealTimeLogDelivery创建实时日志项目。', - 'methods' => [ - 'post', + 'title' => '查询UV页面访问统计', + 'description' => '- 不指定StartTime和EndTime时,默认读取过去24小时的数据;指定StartTime和EndTime时,按指定的起止时间查询。'."\n" + .'- 只支持查询一个域名或当前用户下所有域名。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainUvData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainUvData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-11-30T00:00:00Z\\",\\n \\"StartTime\\": \\"2015-11-29T00:00:00Z\\",\\n \\"RequestId\\": \\"E9D3257A-1B7C-414C-90C1-8D07AC47BCAC\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"3600\\",\\n \\"UvDataInterval\\": {\\n \\"UsageData\\": [\\n {\\n \\"Value\\": \\"326\\",\\n \\"TimeStamp\\": \\"2015-11-29T00:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainUvDataResponse>\\r\\n\\t<DataInterval>3600</DataInterval>\\r\\n\\t<RequestId>E9D3257A-1B7C-414C-90C1-8D07AC47BCAC</RequestId>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<EndTime>2015-11-30T00:00:00Z</EndTime>\\r\\n\\t<StartTime>2015-11-29T00:00:00Z</StartTime>\\r\\n\\t<UvDataInterval>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T20:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>318</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T18:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>318</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T03:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>329</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T21:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>316</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T07:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>319</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T00:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>326</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T11:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>321</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T10:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>313</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T08:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>331</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T01:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>324</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T04:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>330</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T14:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>335</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T12:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>318</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T23:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>310</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T17:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>309</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T22:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>320</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T16:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>309</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T02:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>317</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T06:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>309</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T19:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>308</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T13:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>347</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T15:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>341</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T05:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>347</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T09:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>312</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t</UvDataInterval>\\r\\n</DescribeDcdnDomainUvDataResponse>\\r\\n\\t\\r\\n","errorExample":""}]', + ], + 'DescribeDcdnDomainWebsocketBpsData' => [ + 'summary' => '调用DescribeDcdnDomainWebsocketBpsData查询域名WebSocket协议的网络带宽监控数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111450', - 'abilityTreeNodes' => [ - 'FEATUREdcdn9K10I1', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ - 'name' => 'ProjectName', - 'in' => 'formData', - 'schema' => [ - 'description' => '实时日志项目名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'example', - ], - ], - [ 'name' => 'DomainName', - 'in' => 'formData', - 'schema' => [ - 'description' => '域名列表,多个域名用半角逗号(,)隔开。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'SamplingRate', - 'in' => 'formData', - 'schema' => [ - 'description' => '采样率。', - 'type' => 'string', - 'required' => false, - 'example' => '1.0', - ], + 'in' => 'query', + 'schema' => ['description' => '加速域名。'."\n" + ."\n" + .'多个域名用英文逗号(,)分隔,默认查询所有加速域名。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ - 'name' => 'SLSRegion', - 'in' => 'formData', - 'schema' => [ - 'description' => 'SLS实时日志区域名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据的起始时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z'], ], [ - 'name' => 'SLSProject', - 'in' => 'formData', - 'schema' => [ - 'description' => 'SLS实时日志名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'aliyundoc', - ], + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据的结束时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z'], ], [ - 'name' => 'SLSLogStore', - 'in' => 'formData', - 'schema' => [ - 'description' => 'SLS实时日志库名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], + 'name' => 'Interval', + 'in' => 'query', + 'schema' => ['description' => '查询数据的时间粒度,单位为秒。'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。'."\n", 'type' => 'string', 'required' => false, 'example' => '300'], ], [ - 'name' => 'DataCenter', - 'in' => 'formData', - 'schema' => [ - 'description' => '数据中心。取值:'."\n" - ."\n" - .'- cn:中国'."\n" - .'- sg:新加坡'."\n" - .'- eu:欧洲'."\n" - .'- us:美国', - 'type' => 'string', - 'required' => true, - 'example' => 'cn', - ], + 'name' => 'IspNameEn', + 'in' => 'query', + 'schema' => ['description' => '运营商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有运营商。', 'type' => 'string', 'required' => false, 'example' => 'unicom'], ], [ - 'name' => 'BusinessType', - 'in' => 'formData', - 'schema' => [ - 'description' => '业务类型,取值:'."\n" - ."\n" - .'- **cdn_log_access_l1**(默认值):用户访问日志。'."\n" - .'- **cdn_log_er**:边缘程序日志。'."\n" - .'- **cdn_log_waf**:WAF拦截日志。', - 'type' => 'string', - 'required' => false, - 'example' => 'cdn_log_access_l1', - 'default' => 'dcdn_log_access_l1', - ], + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => ['description' => '地域商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有地域。', 'type' => 'string', 'required' => false, 'example' => 'beijing'], ], ], 'responses' => [ @@ -12311,78 +11725,84 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'F32C57AA-7BF8-49AE-A2CC-9F42390F5A19', - ], - 'Content' => [ + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔,以秒为单位。', 'type' => 'string', 'example' => '300'], + 'BpsDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Domains' => [ - 'description' => '域名配置结果信息。', + 'DataModule' => [ + 'description' => '每个时间间隔的网络带宽数据。'."\n", 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => 'SLS实时日志状态。', - 'type' => 'string', - 'example' => 'success', - ], - 'DomainName' => [ - 'description' => 'SLS实时日志域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'Region' => [ - 'description' => 'SLS实时日志区域。', - 'type' => 'string', - 'example' => 'cn', - ], - 'Desc' => [ - 'description' => 'SLS实时日志描述。', - 'type' => 'string', - 'example' => 'ok', - ], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z'], + 'WebsocketBps' => ['description' => 'bps数据值,单位:bit/s。', 'type' => 'number', 'format' => 'float', 'example' => '11288111'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid.Parameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], - 500 => [ - [ - 'errorCode' => 'Internal Exception', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + 'title' => '查询WebSocket的带宽数据', + 'description' => '- 单用户调用频率:100次/秒。'."\n" + .'- 不指定**StartTime**和**EndTime**,默认返回过去24小时的数据;指定**StartTime**和**EndTime**,返回指定起止时间的数据。'."\n" + ."\n" + .'**支持查询的时间粒度**'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,请求参数Interval支持不同的查询数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" + .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟 |'."\n" + .'| -------------- | -------------- | ------ | ------ |'."\n" + .'| 5分钟 | 3天 | 93天 | 15分钟 |'."\n" + .'| 1小时 | 31天 | 186天 | 一般延迟3-4小时 |'."\n" + .'| 1天 | 366天 | 366天 | 一般延迟4小时,不超过24小时 |', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainWebsocketBpsData'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainWebsocketBpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F32C57AA-7BF8-49AE-A2CC-9F42390F5A19\\",\\n \\"Content\\": {\\n \\"Domains\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Region\\": \\"cn\\",\\n \\"Desc\\": \\"ok\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<CreateDcdnSLSRealTimeLogDeliveryResponse>\\n<RequestId>F32C57AA-7BF8-49AE-A2CC-9F42390F5A19</RequestId>\\n<Content>\\n <Domains>\\n <DomainName>example.com</DomainName>\\n <Region>cn</Region>\\n <Status>success</Status>\\n <Desc>ok</Desc>\\n </Domains>\\n <Domains>\\n <DomainName>example.org</DomainName>\\n <Region>sg</Region>\\n <Status>success</Status>\\n <Desc>ok</Desc>\\n </Domains>\\n</Content>\\n</CreateDcdnSLSRealTimeLogDeliveryResponse>","errorExample":""}]', - 'title' => '创建实时日志项目', - 'description' => '> 单用户调用频率:100次/秒。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"BpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\",\\n \\"WebsocketBps\\": 11288111\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainWebsocketBpsDataResponse>\\r\\n\\t<BpsDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<WebsocketBps>11288111</WebsocketBps>\\r\\n\\t\\t</DataModule>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T20:05:00Z</TimeStamp>\\r\\n\\t\\t\\t<WebsocketBps>11288111</WebsocketBps>\\r\\n\\t\\t</DataModule>\\r\\n\\t</BpsDataPerInterval>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>300</DataInterval>\\r\\n\\t<RequestId>3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F</RequestId>\\r\\n\\t<StartTime>2017-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2017-12-10T21:00:00Z</EndTime>\\r\\n</DescribeDcdnDomainWebsocketBpsDataResponse>","errorExample":""}]', ], - 'DescribeDcdnSLSRealtimeLogDelivery' => [ - 'summary' => '调用DescribeDcdnSLSRealtimeLogDelivery查看实时日志项目。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnDomainWebsocketHttpCodeData' => [ + 'summary' => '调用DescribeDcdnDomainWebsocketHttpCodeData查询域名WebSocket协议的HTTP返回码总数和占比数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -12393,100 +11813,100 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111547', - 'abilityTreeNodes' => [ - 'FEATUREdcdn9K10I1', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ - 'name' => 'ProjectName', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '日志服务(SLS)项目名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'example', - ], + 'schema' => ['description' => '加速域名,多个域名用半角逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据的起始时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2018-03-01T05:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据的结束时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2018-03-01T06:00:00Z'], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => ['description' => '查询数据的时间粒度,单位为秒。'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。'."\n", 'type' => 'string', 'required' => false, 'example' => '300'], + ], + [ + 'name' => 'IspNameEn', + 'in' => 'query', + 'schema' => ['description' => '运营商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有运营商。', 'type' => 'string', 'required' => false, 'example' => 'unicom'], + ], + [ + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => ['description' => '地域商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有地域。', 'type' => 'string', 'required' => false, 'example' => 'beijing'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '参数解释。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'F32C57AA-7BF8-49AE-A2CC-9F42390F5A19', - ], - 'Content' => [ - 'description' => '域名配置结果信息。', + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2018-03-01T13:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2018-03-01T05:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '91FC2D9D-B042-4634-8A5C-7B8E7482C22D'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔,以秒为单位。', 'type' => 'string', 'example' => '3600'], + 'HttpCodeDataPerInterval' => [ 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'Status' => [ - 'description' => 'SLS实时日志状态。'."\n" - ."\n" - .'- **success**:成功。'."\n" - .'- **fail**:失败。', - 'type' => 'string', - 'example' => 'success', - ], - 'Type' => [ - 'description' => '投递类型。目前仅支持**SLS_POST**(SLS投递)类型。', - 'type' => 'string', - 'example' => 'SLS_POST', - ], - 'SLSLogStore' => [ - 'description' => '日志库名称。', - 'type' => 'string', - 'example' => 'example-cn', - ], - 'DataCenter' => [ - 'description' => '数据中心。', - 'type' => 'string', - 'example' => 'cn', - ], - 'FieldName' => [ - 'description' => '字段名称。所有字段请参见[实时日志采集字段说明](~~324199~~)。', - 'type' => 'string', - 'example' => 'field1,field2', - ], - 'ProjectName' => [ - 'description' => '项目名称。', - 'type' => 'string', - 'example' => 'example', - ], - 'SamplingRate' => [ - 'description' => '采样率。', - 'type' => 'string', - 'example' => '1.0', - ], - 'SLSProject' => [ - 'description' => '日志名称。', - 'type' => 'string', - 'example' => 'example-cn', - ], - 'DomainName' => [ - 'description' => '域名列表,多个域名用半角逗号(,)隔开。', - 'type' => 'string', - 'example' => 'example.com,example.org', - ], - 'BusinessType' => [ - 'description' => '业务类型,取值:'."\n" - ."\n" - .'- **cdn_log_access_l1**(默认值):用户访问日志。'."\n" - .'- **cdn_log_er**:边缘程序日志。'."\n" - .'- **cdn_log_waf**:WAF拦截日志。', - 'type' => 'string', - 'example' => 'cdn_log_access_l1', - ], - 'SLSRegion' => [ - 'description' => '日志区域名称。', - 'type' => 'string', - 'example' => 'cn-hangzhou', + 'DataModule' => [ + 'description' => '返回码。', + 'type' => 'array', + 'items' => [ + 'description' => '返回码。', + 'type' => 'object', + 'properties' => [ + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2018-03-01T13:00:00Z'], + 'WebsocketHttpCode' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'HttpCodeDataModule' => [ + 'description' => '各返回码占比使用数据列表。', + 'type' => 'array', + 'items' => [ + 'description' => '各返回码占比使用数据描述。', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => 'HTTP返回码。', 'type' => 'integer', 'format' => 'int32', 'example' => '404'], + 'Proportion' => ['description' => '占比使用数据。', 'type' => 'number', 'format' => 'float', 'example' => '100'], + 'Count' => ['description' => '总数。', 'type' => 'number', 'format' => 'float', 'example' => '16'], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], ], ], + 'description' => '', ], ], ], @@ -12494,129 +11914,104 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'ProjectNotFound', - 'errorMessage' => 'The project provided does not belong to you.', - ], - ], - 500 => [ - [ - 'errorCode' => 'Internal Exception', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F32C57AA-7BF8-49AE-A2CC-9F42390F5A19\\",\\n \\"Content\\": {\\n \\"Status\\": \\"success\\",\\n \\"Type\\": \\"SLS_POST\\",\\n \\"SLSLogStore\\": \\"example-cn\\",\\n \\"DataCenter\\": \\"cn\\",\\n \\"FieldName\\": \\"field1,field2\\",\\n \\"ProjectName\\": \\"example\\",\\n \\"SamplingRate\\": \\"1.0\\",\\n \\"SLSProject\\": \\"example-cn\\",\\n \\"DomainName\\": \\"example.com,example.org\\",\\n \\"BusinessType\\": \\"cdn_log_access_l1\\",\\n \\"SLSRegion\\": \\"cn-hangzhou\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnSLSRealtimeLogDeliveryResponse>\\n<RequestId>F32C57AA-7BF8-49AE-A2CC-9F42390F5A19</RequestId>\\n<Content>\\n <ProjectName>example</ProjectName>\\n <DomainName>example.com,example.org</DomainName>\\n <FieldName>field1,field2</FieldName>\\n <SamplingRate>1.0</SamplingRate>\\n <DataCenter>cn</DataCenter>\\n <SLSRegion>cn-hangzhou</SLSRegion>\\n <SLSProject>example-cn</SLSProject>\\n <SLSLogStore>example-cn</SLSLogStore>\\n <BusinessType>cdn_log_access_l1</BusinessType>\\n <Type>SLS_POST</Type>\\n</Content>\\n</DescribeDcdnSLSRealtimeLogDeliveryResponse>","errorExample":""}]', - 'title' => '查询实时日志项目', - 'description' => '> 单用户调用频率:100次/秒。', + 'title' => '查询WebSocket返回码数据', + 'description' => '单用户调用频率:100次/秒。 '."\n" + ."\n" + .'**支持查询的时间粒度**'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,请求参数Interval支持不同的查询数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" + .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟 |'."\n" + .'| -------------- | -------------- | ------ | ---------|'."\n" + .'| 5分钟 | 3天 | 93天 | 15分钟 |'."\n" + .'| 1小时 | 31天 | 186天 | 4小时 |'."\n" + .'| 1天 | 366天 | 366天 | 次日凌晨4点 |', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateDcdnSLSRealtimeLogDelivery' => [ - 'summary' => '调用UpdateDcdnSLSRealtimeLogDelivery更新实时日志项目。', - 'methods' => [ - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainWebsocketHttpCodeData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainWebsocketHttpCodeData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2018-03-01T13:00:00Z\\",\\n \\"StartTime\\": \\"2018-03-01T05:00:00Z\\",\\n \\"RequestId\\": \\"91FC2D9D-B042-4634-8A5C-7B8E7482C22D\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"3600\\",\\n \\"HttpCodeDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TimeStamp\\": \\"2018-03-01T13:00:00Z\\",\\n \\"WebsocketHttpCode\\": {\\n \\"HttpCodeDataModule\\": [\\n {\\n \\"Code\\": 404,\\n \\"Proportion\\": 100,\\n \\"Count\\": 16\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainWebsocketHttpCodeDataResponse>\\r\\n\\t<DataInterval>3600</DataInterval>\\r\\n\\t<RequestId>91FC2D9D-B042-4634-8A5C-7B8E7482C22D</RequestId>\\r\\n\\t<EndTime>2018-03-01T13:00:00Z</EndTime>\\r\\n\\t<StartTime>2018-03-01T05:00:00Z</StartTime>\\r\\n\\t<HttpCodeDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2018-03-01T13:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<WebsocketHttpCode></WebsocketHttpCode>\\r\\n\\t\\t</DataModule>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2018-03-01T12:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<WebsocketHttpCode>\\r\\n\\t\\t\\t\\t<HttpCodeDataModule>\\r\\n\\t\\t\\t\\t\\t<Count>16</Count>\\r\\n\\t\\t\\t\\t\\t<Proportion>100</Proportion>\\r\\n\\t\\t\\t\\t\\t<Code>404</Code>\\r\\n\\t\\t\\t\\t</HttpCodeDataModule>\\r\\n\\t\\t\\t</WebsocketHttpCode>\\r\\n\\t\\t</DataModule>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2018-03-01T11:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<WebsocketHttpCode>\\r\\n\\t\\t\\t\\t<HttpCodeDataModule>\\r\\n\\t\\t\\t\\t\\t<Count>9</Count>\\r\\n\\t\\t\\t\\t\\t<Proportion>50</Proportion>\\r\\n\\t\\t\\t\\t\\t<Code>403</Code>\\r\\n\\t\\t\\t\\t</HttpCodeDataModule>\\r\\n\\t\\t\\t\\t<HttpCodeDataModule>\\r\\n\\t\\t\\t\\t\\t<Count>9</Count>\\r\\n\\t\\t\\t\\t\\t<Proportion>50</Proportion>\\r\\n\\t\\t\\t\\t\\t<Code>504</Code>\\r\\n\\t\\t\\t\\t</HttpCodeDataModule>\\r\\n\\t\\t\\t</WebsocketHttpCode>\\r\\n\\t\\t</DataModule>\\r\\n\\t</HttpCodeDataPerInterval>\\r\\n</DescribeDcdnDomainWebsocketHttpCodeDataResponse>\\r\\n\\t\\r\\n","errorExample":""}]', + ], + 'DescribeDcdnDomainWebsocketTrafficData' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111621', - 'abilityTreeNodes' => [ - 'FEATUREdcdn9K10I1', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ - 'name' => 'ProjectName', - 'in' => 'formData', - 'schema' => [ - 'description' => '项目名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'example', - ], - ], - [ 'name' => 'DomainName', - 'in' => 'formData', - 'schema' => [ - 'description' => '域名列表,多个域名用半角逗号(,)隔开。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'in' => 'query', + 'schema' => ['description' => '加速域名。'."\n" + ."\n" + .'多个域名用英文逗号(,)分隔,默认查询所有加速域名。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ - 'name' => 'SamplingRate', - 'in' => 'formData', - 'schema' => [ - 'description' => '采样率。', - 'type' => 'string', - 'required' => false, - 'example' => '1.0', - ], + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据的起始时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z'], ], [ - 'name' => 'SLSRegion', - 'in' => 'formData', - 'schema' => [ - 'description' => '日志区域名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据的结束时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z'], ], [ - 'name' => 'SLSProject', - 'in' => 'formData', - 'schema' => [ - 'description' => '日志名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'example-cn', - ], + 'name' => 'Interval', + 'in' => 'query', + 'schema' => ['description' => '查询数据的时间粒度,单位为秒。'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。', 'type' => 'string', 'required' => false, 'example' => '300'], ], [ - 'name' => 'SLSLogStore', - 'in' => 'formData', - 'schema' => [ - 'description' => '日志库名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'example-cn', - ], + 'name' => 'IspNameEn', + 'in' => 'query', + 'schema' => ['description' => '运营商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有运营商。', 'type' => 'string', 'required' => false, 'example' => 'unicom'], ], [ - 'name' => 'DataCenter', - 'in' => 'formData', - 'schema' => [ - 'description' => '数据中心,取值:'."\n" - ."\n" - .'- **cn**:中国。'."\n" - .'- **sg**:新加坡。'."\n" - .'- **in**:印度。'."\n" - .'- **eu**:欧洲。'."\n" - .'- **us**:美国。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn', - ], + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => ['description' => '地域商英文名。'."\n" + ."\n" + .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有地域。', 'type' => 'string', 'required' => false, 'example' => 'beijing'], ], ], 'responses' => [ @@ -12624,202 +12019,105 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'F32C57AA-7BF8-49AE-A2CC-9F42390F5A19', - ], - 'Content' => [ + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E'], + 'DomainName' => ['description' => '加速域名信息。', 'type' => 'string', 'example' => 'example.com'], + 'DataInterval' => ['description' => '每条记录的时间间隔,以秒为单位。', 'type' => 'string', 'example' => '300'], + 'TrafficDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Domains' => [ - 'description' => '域名配置结果信息。', + 'DataModule' => [ + 'description' => '每个时间间隔的流量数据,单位:Byte。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => '日志状态,取值:'."\n" - ."\n" - .'- **success**:成功。'."\n" - .'- **fail**:失败。', - 'type' => 'string', - 'example' => 'success', - ], - 'DomainName' => [ - 'description' => '域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'Region' => [ - 'description' => '区域名称。', - 'type' => 'string', - 'example' => 'cn', - ], - 'Desc' => [ - 'description' => '日志描述。', - 'type' => 'string', - 'example' => 'updated', - ], + 'WebsocketTraffic' => ['description' => '总流量。', 'type' => 'number', 'format' => 'float', 'example' => '423304182'], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid.Parameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'ProjectNotFound', - 'errorMessage' => 'The project provided does not belong to you.', - ], - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal exception occurred, please try again later.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F32C57AA-7BF8-49AE-A2CC-9F42390F5A19\\",\\n \\"Content\\": {\\n \\"Domains\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Region\\": \\"cn\\",\\n \\"Desc\\": \\"updated\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<UpdateDcdnSLSRealtimeLogDeliveryResponse>\\n<RequestId>F32C57AA-7BF8-49AE-A2CC-9F42390F5A19</RequestId>\\n<Content>\\n <Domains>\\n <DomainName>example.com</DomainName>\\n <Region>cn</Region>\\n <Status>success</Status>\\n <Desc>created</Desc>\\n </Domains>\\n <Domains>\\n <DomainName>example.org</DomainName>\\n <Region>sg</Region>\\n <Status>success</Status>\\n <Desc>created</Desc>\\n </Domains>\\n</Content>\\n</UpdateDcdnSLSRealtimeLogDeliveryResponse>","errorExample":""}]', - 'title' => '更新实时日志项目', - 'description' => '> 单用户调用频率:100次/秒。', + 'title' => '查询WebSocket流量数据', + 'summary' => '调用DescribeDcdnDomainWebsocketTrafficData查询域名的WebSocket网络流量监控数据。', + 'description' => '- 单用户调用频率:100次/秒。 '."\n" + .'- 不指定**StartTime**和**EndTime**,默认返回过去24小时的数据;指定**StartTime**和**EndTime**,返回指定起止时间的数据。'."\n" + ."\n" + .'**支持查询的时间粒度**'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,请求参数Interval支持不同的查询数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" + .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟'."\n" + .'| -------------- | -------------- | ------|-----|'."\n" + .'| 5分钟 | 3天 | 93天 | 15分钟 |'."\n" + .'| 1小时 | 31天 | 186天 | 一般延迟3-4小时|'."\n" + .'| 1天 | 366天 | 366天 | 一般延迟4小时,不超过24小时 |', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteDcdnRealTimeLogProject' => [ - 'summary' => '调用DeleteDcdnRealTimeLogProject删除整个项目的实时日志。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainWebsocketTrafficData'], ], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '111462', - 'abilityTreeNodes' => [ - 'FEATUREdcdn9K10I1', - ], - ], - 'parameters' => [ + 'ramActions' => [ [ - 'name' => 'ProjectName', - 'in' => 'query', - 'schema' => [ - 'description' => '实时投递的日志项目名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'example', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7', - ], + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainWebsocketTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Unauthorized', - 'errorMessage' => 'RealtimeLogDelivery service is not authorized.', - ], - [ - 'errorCode' => 'ProjectNotFound', - 'errorMessage' => 'The project provided does not belong to you.', - ], - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal exception occurred, please try again later.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB87556CA7\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDcdnRealTimeLogProjectResponse>\\r\\n<RequestId>9732E117-8A37-49FD-A36F-ABBB87556CA7</RequestId>\\r\\n</DeleteDcdnRealTimeLogProjectResponse>","errorExample":""}]', - 'title' => '删除实时日志项目', - 'description' => '> 单用户调用频率:100次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"TrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"WebsocketTraffic\\": 423304182,\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainWebsocketTrafficDataResponse>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>300</DataInterval>\\r\\n\\t<TrafficDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<WebsocketTraffic>423304182</WebsocketTraffic>\\r\\n\\t\\t</DataModule>\\r\\n\\t</TrafficDataPerInterval>\\r\\n\\t<RequestId>B955107D-E658-4E77-B913-E0AC3D31693E</RequestId>\\r\\n\\t<StartTime>2017-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2017-12-10T21:00:00Z</EndTime>\\r\\n</DescribeDcdnDomainWebsocketTrafficDataResponse>","errorExample":""}]', ], - 'UpdateDcdnUserRealTimeDeliveryField' => [ - 'summary' => '调用UpdateDcdnUserRealTimeDeliveryField更新实时日志字段。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnDomainsBySource' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111623', - 'abilityTreeNodes' => [ - 'FEATUREdcdn9K10I1', - ], + 'abilityTreeCode' => '196998', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], + 'autoTest' => true, 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'BusinessType', - 'in' => 'query', - 'schema' => [ - 'description' => '业务类型,取值:'."\n" - ."\n" - .'- **cdn_log_access_l1**(默认值):用户访问日志。'."\n" - .'- **cdn_log_er**:边缘程序日志。'."\n" - .'- **cdn_log_waf**:WAF拦截日志。', - 'type' => 'string', - 'required' => false, - 'example' => 'cdn_log_access_l1', - 'default' => 'dcdn_log_access_l1', - ], - ], - [ - 'name' => 'Fields', + 'name' => 'Sources', 'in' => 'query', - 'schema' => [ - 'description' => '字段列表,多个字段用半角逗号(,)隔开。取值请参见[实时日志采集字段说明](~~324199~~)。', - 'type' => 'string', - 'required' => true, - 'example' => 'body_bytes_sent,client_ip,content_type', - ], + 'schema' => ['title' => '源站列表,可支持多个(用,分割,最多20个)', 'description' => '源站列表,多个用半角逗号(,)分隔,最多20个,不支持模糊匹配。', 'type' => 'string', 'required' => true, 'example' => 'example.org'], ], ], 'responses' => [ @@ -12827,49 +12125,76 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'F61CDR30-E83C-4FDA-BF73-9A94CDD44229'], + 'DomainInfo' => [ + 'description' => '各个源站及对应域名列表信息。', + 'type' => 'array', + 'items' => [ + 'description' => '单个源站及对应域名列表信息。', + 'type' => 'object', + 'properties' => [ + 'DomainList' => [ + 'description' => '域名信息列表。', + 'type' => 'array', + 'items' => [ + 'description' => '域名信息。', + 'type' => 'object', + 'properties' => [ + 'CreateTime' => ['description' => '创建时间。', 'type' => 'string', 'example' => '2021-08-21T03:05:20+08:00'], + 'DomainCname' => ['description' => 'CNAME。', 'type' => 'string', 'example' => 'example.org.alikunlun.com'], + 'Status' => ['description' => '域名状态。取值:'."\n" + ."\n" + .'- **applying**:审核中'."\n" + .'- **configuring**:配置中'."\n" + .'- **online**:正常运行'."\n" + .'- **stopping**:停止中'."\n" + .'- **offline**:停止'."\n" + .'- **disabling**:删除中', 'type' => 'string', 'example' => 'online'], + 'DomainName' => ['description' => '加速域名名称。', 'type' => 'string', 'example' => 'example.org'], + 'UpdateTime' => ['description' => '更新时间。', 'type' => 'string', 'example' => '2022-12-01T03:26:55+08:00'], + 'DomainType' => ['description' => '加速域名的业务类型。取值:'."\n" + ."\n" + .'- **ipa**:四层加速'."\n" + .'- **dynamic**:七层加速', 'type' => 'string', 'example' => 'dynamic'], + ], + ], + ], + 'Source' => ['description' => '请求的一个源站。', 'type' => 'string', 'example' => 'example.com'], + ], + ], + 'required' => true, ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => 'The specified parameters are invalid.', - ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询域名-按源站', + 'summary' => '调用DescribeDcdnDomainsBySource按源站查询DCDN加速域名。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainsBySource'], ], - 500 => [ - [ - 'errorCode' => 'Internal Exception', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainsBySource', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateDcdnUserRealTimeDeliveryFieldResponse>\\r\\n<RequestId>3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4</RequestId>\\r\\n</UpdateDcdnUserRealTimeDeliveryFieldResponse>","errorExample":""}]', - 'title' => '更新实时日志字段', - 'description' => '> 单用户调用频率:100次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F61CDR30-E83C-4FDA-BF73-9A94CDD44229\\",\\n \\"DomainInfo\\": [\\n {\\n \\"DomainList\\": [\\n {\\n \\"CreateTime\\": \\"2021-08-21T03:05:20+08:00\\",\\n \\"DomainCname\\": \\"example.org.alikunlun.com\\",\\n \\"Status\\": \\"online\\",\\n \\"DomainName\\": \\"example.org\\",\\n \\"UpdateTime\\": \\"2022-12-01T03:26:55+08:00\\",\\n \\"DomainType\\": \\"dynamic\\"\\n }\\n ],\\n \\"Source\\": \\"example.com\\"\\n }\\n ]\\n}","type":"json"}]', ], - 'DescribeDcdnRealTimeDeliveryField' => [ - 'summary' => '调用DescribeDcdnRealTimeDeliveryField查询实时日志所有字段。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnErUsageData' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -12880,25 +12205,42 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn9K10I1', - ], + 'abilityTreeNodes' => ['FEATUREdcdn75UYDO'], ], 'parameters' => [ [ - 'name' => 'BusinessType', + 'name' => 'RoutineID', 'in' => 'query', - 'schema' => [ - 'description' => '业务类型,取值:'."\n" - ."\n" - .'- **cdn_log_access_l1**(默认值):全站加速 L1 节点访问日志。'."\n" - .'- **cdn_log_origin**:回源日志。'."\n" - .'- **cdn_log_er**:ER日志。', - 'type' => 'string', - 'required' => false, - 'example' => 'cdn_log_access_l1', - 'default' => 'dcdn_log_access_l1', - ], + 'schema' => ['description' => '查询指定的边缘函数ID。', 'type' => 'string', 'required' => false, 'example' => 'routine1.test'], + ], + [ + 'name' => 'Spec', + 'in' => 'query', + 'schema' => ['description' => '查询指定的边缘函数规格。取值:'."\n" + ."\n" + .'- 5ms'."\n" + ."\n" + .'- 50ms'."\n" + ."\n" + .'- 100ms', 'type' => 'string', 'required' => false, 'example' => '50ms'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据起始时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2018-10-30T16:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据结束时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + .'> 结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2018-10-31T16:00:00Z'], + ], + [ + 'name' => 'SplitBy', + 'in' => 'query', + 'schema' => ['description' => '查询结果分组输出,可以按照函数ID(routine)或函数规格(spec)分组输出。'."\n" + ."\n" + .'>若参数为空,查询结果不分组。', 'type' => 'string', 'required' => false, 'example' => 'routine'], ], ], 'responses' => [ @@ -12906,218 +12248,266 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4', - ], - 'Content' => [ + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2018-10-31T16:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2018-10-30T16:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'C370DAF1-C838-4288-A1A0-9A87633D248E'], + 'ErAccData' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Fields' => [ - 'description' => '返回参数内容。', + 'ErAccItem' => [ + 'description' => '数据列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Description' => [ - 'description' => '字段描述。', - 'type' => 'string', - 'example' => '访问时间', - ], - 'FieldName' => [ - 'description' => '字段名称。所有字段请参见[实时日志采集字段说明](~~324199~~)。', - 'type' => 'string', - 'example' => 'unixtime', - ], + 'ErAcc' => ['description' => '边缘函数ER请求数。', 'type' => 'integer', 'format' => 'int64', 'example' => '125'], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2018-10-30T13:00:00Z'], + 'Spec' => ['description' => '函数规格,默认为空。请求参数SplitBy指定spec时分组输出。', 'type' => 'string', 'example' => '50ms'], + 'Routine' => ['description' => '边缘函数ID,默认为空。请求参数SplitBy指定routine时分组输出。', 'type' => 'string', 'example' => 'routine1.test'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Unauthorized', - 'errorMessage' => 'RealtimeLogDelivery service is not authorized.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4\\",\\n \\"Content\\": {\\n \\"Fields\\": [\\n {\\n \\"Description\\": \\"访问时间\\",\\n \\"FieldName\\": \\"unixtime\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnRealTimeDeliveryFieldResponse>\\n<RequestId>3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4</RequestId>\\n<Content>\\n <Fields>\\n <FieldName>unixtime</FieldName>\\n <Description>访问时间</Description>\\n </Fields>\\n <Fields>\\n <FieldName>client_ip</FieldName>\\n <Description>用户真实IP</Description>\\n </Fields>\\n</Content>\\n</DescribeDcdnRealTimeDeliveryFieldResponse>","errorExample":""}]', - 'title' => '查询实时日志所有字段', - 'description' => '> 单用户调用频率:100次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CheckDcdnProjectExist' => [ - 'summary' => '调用CheckDcdnProjectExist检查实时日志项目是否存在。', - 'methods' => [ - 'get', + 'title' => '查询边缘函数ER的执行次数', + 'summary' => '调用DescribeDcdnErUsageData查询边缘函数ER的执行次数。', + 'description' => '> '."\n" + .'> - 单用户调用频率:10次/秒。'."\n" + .'> - 支持查询的最小时间粒度为1小时;查询的最大时间跨度为24小时;可查询最大历史数据时间范围为366天。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnErUsageData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnErUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2018-10-31T16:00:00Z\\",\\n \\"StartTime\\": \\"2018-10-30T16:00:00Z\\",\\n \\"RequestId\\": \\"C370DAF1-C838-4288-A1A0-9A87633D248E\\",\\n \\"ErAccData\\": {\\n \\"ErAccItem\\": [\\n {\\n \\"ErAcc\\": 125,\\n \\"TimeStamp\\": \\"2018-10-30T13:00:00Z\\",\\n \\"Spec\\": \\"50ms\\",\\n \\"Routine\\": \\"routine1.test\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnErUsageDataResponse>\\n <EndTime>2018-10-31T16:00:00Z</EndTime>\\n <StartTime>2018-10-30T16:00:00Z</StartTime>\\n <RequestId>C370DAF1-C838-4288-A1A0-9A87633D248E</RequestId>\\n <ErAccData>\\n <ErAcc>125</ErAcc>\\n <TimeStamp>2018-10-30T13:00:00Z</TimeStamp>\\n <Spec>50ms</Spec>\\n <Routine>routine1.test</Routine>\\n </ErAccData>\\n <ErAccData>\\n <ErAcc>123</ErAcc>\\n <Spec>50ms</Spec>\\n <RoutineID>routine1.test</RoutineID>\\n <TimeStamp>2018-10-30T14:00:00Z</TimeStamp>\\n </ErAccData>\\n</DescribeDcdnErUsageDataResponse>","errorExample":""}]', + ], + 'DescribeDcdnFullDomainsBlockIPConfig' => [ + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111444', - 'abilityTreeNodes' => [ - 'FEATUREdcdn9K10I1', - ], + 'abilityTreeNodes' => ['FEATUREdcdn2JMMUY'], ], 'parameters' => [ [ - 'name' => 'ProjectName', + 'name' => 'IPList', 'in' => 'query', - 'schema' => [ - 'description' => '实时日志项目名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'example', - ], + 'schema' => ['description' => '查询IP/IP段列表,多个IP请用半角逗号(,)分隔,最大支持50个。', 'type' => 'string', 'required' => false, 'example' => '10.XX.XX.10/24'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'b021e538-9dde-46ed-a1f2-9469da8f3e77', - ], - 'Content' => [ - 'description' => '返回结果内容。', - 'type' => 'object', - 'properties' => [ - 'Exist' => [ - 'description' => '是否存在,取值:'."\n" - .'- **false**:不存在。'."\n" - .'- **true**:存在。', - 'type' => 'string', - 'example' => 'false', - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '0C58632F-BA12-1A1E-986D-09285752B42C'], + 'Message' => ['description' => '结果信息,返回正常是为OSS链接,异常是为错误信息。', 'type' => 'string', 'example' => 'http://xxxx-api.oss-cn-hangzhou.aliyuncs.com/blocklist%2Fxxxxxxxxxxxx.txt?Expires=1682663947&OSSAccessKeyId=xxxxxxxxxx&Signature=xxxxxx'], + 'Code' => ['description' => '结果信息码。'."\n" + ."\n" + .'Code不为0可能有以下三种情况:'."\n" + .'- IP格式不正确'."\n" + .'- IP个数超出限制'."\n" + .'- 其他', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], ], ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ], + 406 => [ + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'key个数超过quota限制'], + ], 500 => [ - [ - 'errorCode' => 'Internal Exception', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => '内部错误,请重试,如果多次重试报错请提交工单。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"b021e538-9dde-46ed-a1f2-9469da8f3e77\\",\\n \\"Content\\": {\\n \\"Exist\\": \\"false\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<CheckDcdnProjectExistResponse>\\n <RequestId>b021e538-9dde-46ed-a1f2-9469da8f3e77</RequestId>\\n <Content>\\n <Exist>false</Exist>\\n </Content>\\n</CheckDcdnProjectExistResponse>","errorExample":""}]', - 'title' => '检查实时日志项目是否存在', - 'description' => '> 单用户调用频率:100次/秒。', - ], - 'DescribeDcdnSLSRealTimeLogType' => [ - 'summary' => '调用DescribeDcdnSLSRealTimeLogType查询实时日志支持的业务类型列表。', - 'methods' => [ - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询全量封禁配置', + 'summary' => '调用DescribeDcdnFullDomainsBlockIPConfig查询全量封禁的相关配置。', + 'description' => '>'."\n" + .'> - 对用户给定的IP/IP段,给出该用户当前时间生效的IP和对应过期时间;用户不指定IP时,返回当前全量生效的IP和对应过期时间。'."\n" + .'> - 结果写入OSS,以OSS链接返回 ,OSS文件中内容格式为`ip-对应过期时间,时间格式为YYYY-MM-DD hh:mm:ss `。'."\n" + .'> - OSS文件分享链接有效期为3天。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnFullDomainsBlockIPConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnFullDomainsBlockIPConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0C58632F-BA12-1A1E-986D-09285752B42C\\",\\n \\"Message\\": \\"http://xxxx-api.oss-cn-hangzhou.aliyuncs.com/blocklist%2Fxxxxxxxxxxxx.txt?Expires=1682663947&OSSAccessKeyId=xxxxxxxxxx&Signature=xxxxxx\\",\\n \\"Code\\": 0\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnFullDomainsBlockIPConfigResponse>\\n <RequestId>0C58632F-BA12-1A1E-986D-09285752B42C</RequestId>\\n <Message>http://xxxx-api.oss-cn-hangzhou.aliyuncs.com/blocklist%2Fxxxxxxxxxxxx.txt?Expires=1682663947&OSSAccessKeyId=xxxxxxxxxx&Signature=xxxxxx</Message>\\n <Code>0</Code>\\n</DescribeDcdnFullDomainsBlockIPConfigResponse>","errorExample":""}]', + ], + 'DescribeDcdnFullDomainsBlockIPHistory' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '140562', - 'abilityTreeNodes' => [ - 'FEATUREdcdn9K10I1', - ], + 'abilityTreeCode' => '176189', + 'abilityTreeNodes' => ['FEATUREdcdnSU2QP6'], 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [], + 'parameters' => [ + [ + 'name' => 'IPList', + 'in' => 'formData', + 'schema' => ['title' => 'A short description of struct', 'description' => '查询IP/IP段。', 'type' => 'string', 'required' => true, 'example' => '10.XX.XX.10/24'], + ], + [ + 'name' => 'StartTime', + 'in' => 'formData', + 'schema' => ['description' => '查询获取数据起始时间点,时间格式为:YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'required' => true, 'example' => '2023-04-24T17:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'formData', + 'schema' => ['description' => '查询获取数据结束时间点,时间格式为:YYYY-MM-DDThh:mm:ssZ;结束时间需大于起始时间。', 'type' => 'string', 'required' => true, 'example' => '2023-04-24T19:00:00Z'], + ], + ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', - ], - 'Content' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Business' => [ - 'description' => '返回结果内容。', - 'type' => 'array', - 'items' => [ - 'description' => '业务类型描述。', - 'type' => 'object', - 'properties' => [ - 'Desc' => [ - 'description' => '业务类型描述。', - 'type' => 'string', - 'example' => '用户访问日志', - ], - 'BusinessType' => [ - 'description' => '业务类型。取值如下:'."\n" - .'- **dcdn_log_access_l1**:用户访问日志。'."\n" - .'- **dcdn_log_er**:边缘程序日志。'."\n" - .'- **dcdn_log_waf**:WAF拦截日志。', - 'type' => 'string', - 'example' => 'dcdn_log_access_l1', - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '13A2B792-9212-1CC9-8525-59EBEF3FFE01'], + 'IPBlockInfo' => [ + 'description' => '操作结果。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'BlockIP' => ['description' => '下发的IP/IP段。', 'type' => 'string', 'example' => '1.XXX.XXX.0~1.XXX.XXX.255'], + 'DeliverTime' => ['description' => '下发时间。', 'type' => 'string', 'example' => '2023-04-24 18:49:37'], + 'Status' => ['description' => '下发状态。'."\n" + ."\n" + .'- Success:下发成功。'."\n" + .'- Failed:下发失败,或未有下发记录。', 'type' => 'string', 'example' => 'Success'], + 'OperationType' => ['type' => 'string', 'description' => ''], + 'BlockInterval' => ['type' => 'string', 'description' => ''], + 'UpdateType' => ['type' => 'string', 'description' => ''], ], + 'description' => '', ], ], + 'Code' => ['description' => '结果信息码。'."\n" + ."\n" + .'Code不为0可能有以下三种情况:'."\n" + .'- IP格式不正确'."\n" + .'- 时间格式不正确'."\n" + .'- 其他', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Description' => ['description' => '接口返回状态描述。', 'type' => 'string', 'example' => 'OK'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ], + 406 => [ + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'key个数超过quota限制'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => '内部错误,请重试,如果多次重试报错请提交工单。'], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\",\\n \\"Content\\": {\\n \\"Business\\": [\\n {\\n \\"Desc\\": \\"用户访问日志\\",\\n \\"BusinessType\\": \\"dcdn_log_access_l1\\"\\n }\\n ]\\n }\\n}","type":"json"}]', - 'title' => '查询实时日志支持的业务类型', - ], - 'ListDcdnRealTimeDeliveryProject' => [ - 'summary' => '调用ListDcdnRealTimeDeliveryProject查询用户开通的项目信息。', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询封禁历史', + 'summary' => '调用DescribeDcdnFullDomainsBlockIPHistory获取封禁历史记录。', + 'description' => '- 对用户指定的IP和时间段,返回用户在该时间段对该IP的下发时间和对应结果。'."\n" + .'- 当指定的IP/IP段在指定时间段存在多条下发记录时,会按下发时间降序排列。'."\n" + .'- 查询时间段支持的最大范围为90天。'."\n" + .'- 给定IP和时间段不存在下发记录或下发失败时,下发时间为空。', + 'changeSet' => [ + ['createdAt' => '2024-12-18T07:47:28.000Z', 'description' => '响应参数发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnFullDomainsBlockIPHistory'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnFullDomainsBlockIPHistory', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"13A2B792-9212-1CC9-8525-59EBEF3FFE01\\",\\n \\"IPBlockInfo\\": [\\n {\\n \\"BlockIP\\": \\"1.XXX.XXX.0~1.XXX.XXX.255\\",\\n \\"DeliverTime\\": \\"2023-04-24 18:49:37\\",\\n \\"Status\\": \\"Success\\",\\n \\"OperationType\\": \\"\\",\\n \\"BlockInterval\\": \\"\\",\\n \\"UpdateType\\": \\"\\"\\n }\\n ],\\n \\"Code\\": 0,\\n \\"Description\\": \\"OK\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnFullDomainsBlockIPHistoryResponse>\\n <Description>OK</Description>\\n <RequestId>13A2B792-9212-1CC9-8525-59EBEF3FFE01</RequestId>\\n <IPBlockInfo>\\n <Status>Success</Status>\\n <BlockIP>1.XXX.XX.0~1.XXX.XX.255</BlockIP>\\n <DeliverTime>2023-04-24 18:49:37</DeliverTime>\\n </IPBlockInfo>\\n <IPBlockInfo>\\n <Status>Success</Status>\\n <BlockIP>1.XXX.XX.0~1.XXX.XX.255</BlockIP>\\n <DeliverTime>2023-04-24 18:49:05</DeliverTime>\\n </IPBlockInfo>\\n <IPBlockInfo>\\n <Status>Success</Status>\\n <BlockIP>1.XXX.XX.0~1.XXX.XX.255</BlockIP>\\n <DeliverTime>2023-04-24 17:59:36</DeliverTime>\\n </IPBlockInfo>\\n <IPBlockInfo>\\n <Status>Success</Status>\\n <BlockIP>1.XXX.XX.0~1.XXX.XX.255</BlockIP>\\n <DeliverTime>2023-04-24 17:59:06</DeliverTime>\\n </IPBlockInfo>\\n <Code>0</Code>\\n</DescribeDcdnFullDomainsBlockIPHistoryResponse>","errorExample":""}]', + ], + 'DescribeDcdnHttpsDomainList' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -13125,62 +12515,26 @@ ], 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111590', - 'abilityTreeNodes' => [ - 'FEATUREdcdn9K10I1', - ], + 'abilityTreeNodes' => ['FEATUREdcdnX7NWEB'], ], 'parameters' => [ [ - 'name' => 'BusinessType', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => '业务类型,取值:'."\n" - ."\n" - .'- **dcdn_log_access_l1**(默认值):用户访问日志。'."\n" - .'- **dcdn_log_er**:边缘程序日志。'."\n" - .'- **dcdn_log_waf**:WAF拦截日志。', - 'type' => 'string', - 'required' => false, - 'example' => 'cdn_log_access_l1', - ], + 'schema' => ['description' => '页数。取值范围:**1~100000**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], ], [ - 'name' => 'DomainName', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '域名,仅支持单个域名查询。不填为空则表示查询所有域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '分页大小。取值:**1~500**,默认为**20**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'default' => '20'], ], [ - 'name' => 'PageNumber', + 'name' => 'Keyword', 'in' => 'query', - 'schema' => [ - 'description' => '第几页,取值范围为:**1**~**100000**,默认1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '分页大小,默认20。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - 'default' => '20', - ], + 'schema' => ['description' => '搜索关键字。', 'type' => 'string', 'required' => false, 'example' => 'cert'], ], ], 'responses' => [ @@ -13188,251 +12542,98 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'TotalCount' => [ - 'description' => '查询总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4', - ], - 'Content' => [ + 'TotalCount' => ['description' => '总条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '16'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'F5E8DF64-7175-4186-9B06-F002C0BBD0C5'], + 'CertInfos' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Projects' => [ - 'description' => '域名配置结果信息。', + 'CertInfo' => [ + 'description' => '证书信息。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Type' => [ - 'description' => '投递类型,目前仅支持**SLS_POST**(SLS投递)。', - 'type' => 'string', - 'example' => 'SLS_POST', - ], - 'SLSLogStore' => [ - 'description' => '日志库名称。', - 'type' => 'string', - 'example' => 'example-cn', - ], - 'DataCenter' => [ - 'description' => '数据中心。', - 'type' => 'string', - 'example' => 'cn', - ], - 'FieldName' => [ - 'description' => '字段名称。所有字段请参见[实时日志采集字段说明](~~324199~~)。', - 'type' => 'string', - 'example' => 'field1,field2', - ], - 'ProjectName' => [ - 'description' => '项目名称。', - 'type' => 'string', - 'example' => 'example', - ], - 'SamplingRate' => [ - 'description' => '采样率。', - 'type' => 'number', - 'format' => 'float', - 'example' => '1', - ], - 'SLSProject' => [ - 'description' => '日志名称。', - 'type' => 'string', - 'example' => 'example-cn', - ], - 'DomainName' => [ - 'description' => '域名列表,多个域名用半角逗号(,)隔开。', - 'type' => 'string', - 'example' => 'example.com,example.org', - ], - 'BusinessType' => [ - 'description' => '业务类型,取值:'."\n" - ."\n" - .'- **dcdn_log_access_l1**(默认值):用户访问日志。'."\n" - .'- **dcdn_log_er**:边缘程序日志。'."\n" - .'- **dcdn_log_waf**:WAF拦截日志。', - 'type' => 'string', - 'example' => 'cdn_log_access_l1', - ], - 'SLSRegion' => [ - 'description' => '日志区域名称。', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], + 'CertStartTime' => ['description' => '证书开始时间。', 'type' => 'string', 'example' => '2018-11-26 14:45:09'], + 'CertExpireTime' => ['description' => '证书过期时间。', 'type' => 'string', 'example' => '2018-12-26 14:45:09'], + 'CertUpdateTime' => ['description' => '证书更新时间。', 'type' => 'string', 'example' => '2019-01-08 18:33:16'], + 'CertType' => ['description' => '证书类型。取值:'."\n" + .'- **cas**:云盾证书。'."\n" + .'- **upload**:自定义上传。', 'type' => 'string', 'example' => 'upload'], + 'CertName' => ['description' => '证书名称。', 'type' => 'string', 'example' => 'cert'], + 'CertStatus' => ['description' => '证书状态。取值:'."\n" + .'- **ok**:正常。'."\n" + .'- **mismatch**:域名与证书不匹配。'."\n" + .'- **expired**:证书已过期。'."\n" + .'- **expire_soon**:证书即将过期。', 'type' => 'string', 'example' => 'mismatch'], + 'DomainName' => ['description' => '加速域名。', 'type' => 'string', 'example' => '*.com'], + 'CertCommonName' => ['description' => '证书主域名。', 'type' => 'string', 'example' => '*.com'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ - 500 => [ - [ - 'errorCode' => 'Internal Exception', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + 400 => [ + ['errorCode' => 'NoHttpsDomain', 'errorMessage' => 'Your account does not have any HTTPS domain.', 'description' => '您的账号没有HTTPS域名。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 2,\\n \\"RequestId\\": \\"3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4\\",\\n \\"Content\\": {\\n \\"Projects\\": [\\n {\\n \\"Type\\": \\"SLS_POST\\",\\n \\"SLSLogStore\\": \\"example-cn\\",\\n \\"DataCenter\\": \\"cn\\",\\n \\"FieldName\\": \\"field1,field2\\",\\n \\"ProjectName\\": \\"example\\",\\n \\"SamplingRate\\": 1,\\n \\"SLSProject\\": \\"example-cn\\",\\n \\"DomainName\\": \\"example.com,example.org\\",\\n \\"BusinessType\\": \\"cdn_log_access_l1\\",\\n \\"SLSRegion\\": \\"cn-hangzhou\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<ListDcdnRealTimeDeliveryProjectResponse>\\n<RequestId>3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4</RequestId>\\n<Content>\\n <Projects>\\n <ProjectName>example</ProjectName>\\n <Type>SLS_POST</Type>\\n <DomainName>example.com,example.org</DomainName>\\n <FieldName>field1,field2</FieldName>\\n <SamplingRate>1</SamplingRate>\\n <DataCenter>cn</DataCenter>\\n <SLSRegion>cn-hangzhou</SLSRegion>\\n <SLSProject>example-cn</SLSProject>\\n <SLSLogStore>example-cn</SLSLogStore>\\n <BusinessType>cdn_log_access_l1</BusinessType>\\n </Projects>\\n <Projects>\\n <ProjectName>aliyundoc</ProjectName>\\n <Type>SLS_POST</Type>\\n <DomainName>example.org</DomainName>\\n <FieldName>field1,field2</FieldName>\\n <SamplingRate>1</SamplingRate>\\n <DataCenter>cn</DataCenter>\\n <SLSRegion>cn-hangzhou</SLSRegion>\\n <SLSProject>aliyundoc-cn</SLSProject>\\n <SLSLogStore>aliyundoc-cn</SLSLogStore>\\n <BusinessType>cdn_log_access_l1</BusinessType>\\n </Projects>\\n</Content>\\n<TotalCount>2</TotalCount>\\n</ListDcdnRealTimeDeliveryProjectResponse>","errorExample":""}]', - 'title' => '查询用户开通的项目信息', - 'description' => '> 单用户调用频率:100次/秒。', + 'title' => '查询证书列表', + 'summary' => '调用DescribeDcdnHttpsDomainList查询用户所有证书信息。', + 'description' => '> 单用户调用频率:100次/秒。 ', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeUserLogserviceStatus' => [ - 'summary' => '调用DescribeUserLogserviceStatus查看Logservice服务是否开通或者欠费。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnHttpsDomainList'], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '111580', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZA9EPX', - ], - 'tenantRelevance' => 'publicInformation', - ], - 'parameters' => [], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'InDebt' => [ - 'description' => 'Logservice服务是否欠费。'."\n" - ."\n" - .'- true:欠费。'."\n" - .'- false:未欠费。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'OnService' => [ - 'description' => 'Logservice服务是否可用。'."\n" - ."\n" - .'- true:可用。'."\n" - .'- false:不可用。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4F51E9C3-728F-4E35-952D-0ED87A06A8A1', - ], - 'InDebtOverdue' => [ - 'description' => 'Logservice服务是否欠费超时。'."\n" - ."\n" - .'- true:超时。'."\n" - .'- false:未超时。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Enabled' => [ - 'description' => '是否开通Logservice服务。'."\n" - ."\n" - .'- true:开通。'."\n" - .'- false:未开通。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnHttpsDomainList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"InDebt\\": false,\\n \\"OnService\\": true,\\n \\"RequestId\\": \\"4F51E9C3-728F-4E35-952D-0ED87A06A8A1\\",\\n \\"InDebtOverdue\\": false,\\n \\"Enabled\\": true\\n}","errorExample":""},{"type":"xml","example":"<DescribeUserLogserviceStatusResponse>\\n<Enabled>true</Enabled>\\n<InDebtOverdue>false</InDebtOverdue>\\n<InDebt>false</InDebt>\\n<OnService>true</OnService>\\n<RequestId>4F51E9C3-728F-4E35-952D-0ED87A06A\\n</DescribeUserLogserviceStatusResponse>","errorExample":""}]', - 'title' => '查看Logservice服务是否开通或者欠费', - 'description' => '> 单用户调用频率:20次/秒。 ', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 16,\\n \\"RequestId\\": \\"F5E8DF64-7175-4186-9B06-F002C0BBD0C5\\",\\n \\"CertInfos\\": {\\n \\"CertInfo\\": [\\n {\\n \\"CertStartTime\\": \\"2018-11-26 14:45:09\\",\\n \\"CertExpireTime\\": \\"2018-12-26 14:45:09\\",\\n \\"CertUpdateTime\\": \\"2019-01-08 18:33:16\\",\\n \\"CertType\\": \\"upload\\",\\n \\"CertName\\": \\"cert\\",\\n \\"CertStatus\\": \\"mismatch\\",\\n \\"DomainName\\": \\"*.com\\",\\n \\"CertCommonName\\": \\"*.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnHttpsDomainListResponse>\\n<CertInfos>\\n <CertInfo>\\n <CertUpdateTime>2019-01-08 18:33:16</CertUpdateTime>\\n <CertType>upload</CertType>\\n <CertName>cert</CertName>\\n <DomainName>*.com</DomainName>\\n <CertStatus>mismatch</CertStatus>\\n <CertExpireTime>2018-12-26 14:45:09</CertExpireTime>\\n <CertStartTime>2018-11-26 14:45:09</CertStartTime>\\n <CertCommonName>*.com</CertCommonName>\\n </CertInfo>\\n</CertInfos>\\n<TotalCount>16</TotalCount>\\n<RequestId>F5E8DF64-7175-4186-9B06-F002C0BBD0C5</RequestId>\\n</DescribeDcdnHttpsDomainListResponse>","errorExample":""}]', ], - 'CreateSlrAndSlsProject' => [ - 'summary' => '调用CreateSlrAndSlsProject创建服务关联角色(SLR)以及日志服务(SLS)项目。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnIpInfo' => [ + 'summary' => '调用DescribeDcdnIpInfo验证指定的IP是否为阿里云DCDN节点的IP地址。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111453', - 'abilityTreeNodes' => [ - 'FEATUREdcdn9K10I1', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeCode' => '111531', + 'abilityTreeNodes' => ['FEATUREdcdn33QGRH'], ], 'parameters' => [ [ - 'name' => 'Region', - 'in' => 'formData', - 'schema' => [ - 'description' => '日志服务所在区域,取值范围:'."\n" - ."\n" - .'- **cn-hangzhou**'."\n" - .'- **cn-shanghai**'."\n" - .'- **cn-qingdao**'."\n" - .'- **cn-beijing**'."\n" - .'- **cn-zhangjiakou**'."\n" - .'- **cn-shenzhen**'."\n" - .'- **eu-central-1**'."\n" - .'- **us-west-1**'."\n" - .'- **ap-south-1**'."\n" - .'- **ap-southeast-1**', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'BusinessType', - 'in' => 'formData', - 'schema' => [ - 'description' => '业务类型,取值:'."\n" - ."\n" - .'- **cdn_log_access_l1**(默认值):用户访问日志。'."\n" - .'- **cdn_log_er**:边缘程序日志。'."\n" - .'- **cdn_log_waf**:WAF拦截日志。', - 'type' => 'string', - 'required' => false, - 'example' => 'cdn_log_access_l1', - 'default' => 'dcdn_log_access_l1', - ], + 'name' => 'IP', + 'in' => 'query', + 'schema' => ['description' => '指定IP地址,仅支持单个。', 'type' => 'string', 'required' => true, 'example' => '10.XXX.XXX.10'], ], ], 'responses' => [ @@ -13440,79 +12641,55 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'fe33a379-5053-4f22-a73c-826e2b44355d', - ], - 'SlsInfo' => [ - 'description' => '创建的日志服务(SLS)信息。', - 'type' => 'object', - 'properties' => [ - 'Project' => [ - 'description' => '日志服务(SLS)项目。', - 'type' => 'string', - 'example' => 'dcdn-edge-rtlog-cn-cfc7****', - ], - 'LogStore' => [ - 'description' => '日志服务(SLS)日志库。', - 'type' => 'string', - 'example' => 'dcdn-edge-trlog', - ], - 'EndPoint' => [ - 'description' => '日志服务(SLS)接入点。', - 'type' => 'string', - 'example' => 'cn-shanghai.log.*.com', - ], - 'Region' => [ - 'description' => '日志服务(SLS)区域。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '1B1D0EE7-9559-489D-BC4E-279495EB8FB8'], + 'RegionEname' => ['description' => '所属地区英文名称。', 'type' => 'string', 'example' => 'China-Guizhou-guiyang'], + 'Region' => ['description' => '所属地区。', 'type' => 'string', 'example' => '中国-贵州省-贵阳市'], + 'IspEname' => ['description' => '所属运营商英文名称。', 'type' => 'string', 'example' => 'telecom'], + 'DcdnIp' => ['description' => '是否属于阿里云DCDN节点。'."\n" + .'- True:属于阿里云DCDN节点。'."\n" + .'- False:不属于阿里云DCDN节点。', 'type' => 'string', 'example' => 'True'], + 'ISP' => ['description' => '所属运营商。', 'type' => 'string', 'example' => 'China Telecom'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'CreateSlr.PermissionDenied', - 'errorMessage' => 'You are not authorized to create service-linked roles. Contact your Alibaba Cloud account or an administrator to grant you the AliyunDCDNFullAccess policy or the custom policy used to create service-linked roles. Service name: realtimelogdelivery.dcdn.aliyuncs.com. Action: ram:CreateServiceLinkedRole.', - ], - [ - 'errorCode' => 'CreateSlsProjectError', - 'errorMessage' => 'Failed to create a Log Service project. Make sure that you have activated Log Service and the service is in the available state.', - ], - [ - 'errorCode' => 'InvaildParameter', - 'errorMessage' => 'The specified parameters are invalid.', - ], - ], - 500 => [ - [ - 'errorCode' => 'Internal Exception', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + ['errorCode' => 'InvalidIP.ValueNotSupported', 'errorMessage' => 'The specified value of parameter IP is not supported.', 'description' => 'IP格式不正确。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"fe33a379-5053-4f22-a73c-826e2b44355d\\",\\n \\"SlsInfo\\": {\\n \\"Project\\": \\"dcdn-edge-rtlog-cn-cfc7****\\",\\n \\"LogStore\\": \\"dcdn-edge-trlog\\",\\n \\"EndPoint\\": \\"cn-shanghai.log.*.com\\",\\n \\"Region\\": \\"cn-shanghai\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<CreateSlrAndSlsProjectResponse>\\n<SlsInfo>\\n <Project>dcdn-edge-rtlog-cn-cfc7****</Project>\\n <LogStore>dcdn-edge-trlog</LogStore>\\n <EndPoint>cn-shanghai.log.*.com</EndPoint>\\n <Region>cn-shanghai</Region>\\n</SlsInfo>\\n<RequestId>fe33a379-5053-4f22-a73c-826e2b44355d</RequestId>\\n</CreateSlrAndSlsProjectResponse>","errorExample":""}]', - 'title' => '创建服务关联角色以及日志服务项目', - 'description' => '> 单用户调用频率:100次/秒。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"1B1D0EE7-9559-489D-BC4E-279495EB8FB8\\",\\n \\"RegionEname\\": \\"China-Guizhou-guiyang\\",\\n \\"Region\\": \\"中国-贵州省-贵阳市\\",\\n \\"IspEname\\": \\"telecom\\",\\n \\"DcdnIp\\": \\"True\\",\\n \\"ISP\\": \\"China Telecom\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnIpInfoResponse>\\n<RegionEname>China-Guizhou-guiyang</RegionEname>\\n<Region>中国-贵州省-贵阳市</Region>\\n<IspEname>telecom</IspEname>\\n<RequestId>1B1D0EE7-9559-489D-BC4E-279495EB8FB8</RequestId>\\n<ISP>电信</ISP>\\n<DcdnIp>True</DcdnIp>\\n</DescribeDcdnIpInfoResponse>","errorExample":""}]', + 'title' => '验证IP节点', + 'description' => '> 单用户调用频率:50次/秒。 ', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnUserRealTimeDeliveryField' => [ - 'summary' => '调用DescribeDcdnUserRealTimeDeliveryField查询用户选择的字段列表。', - 'methods' => [ - 'get', + 'changeSet' => [ + ['createdAt' => '2022-11-15T06:37:30.000Z', 'description' => '请求参数发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnIpInfo'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnIpInfo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeDcdnIpaDomainCidr' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -13521,103 +12698,72 @@ 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111561', - 'abilityTreeNodes' => [ - 'FEATUREdcdn9K10I1', - ], + 'abilityTreeNodes' => ['FEATUREdcdn2JMMUY'], ], 'parameters' => [ [ - 'name' => 'BusinessType', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '业务类型,取值:'."\n" - ."\n" - .'- **cdn_log_access_l1**(默认值):用户访问日志。'."\n" - .'- **cdn_log_er**:边缘程序日志。'."\n" - .'- **cdn_log_waf**:WAF拦截日志。', - 'type' => 'string', - 'required' => false, - 'example' => 'cdn_log_access_l1', - 'default' => 'dcdn_log_access_l1', - ], + 'schema' => ['title' => 'A short description of struct', 'description' => '您的加速域名,仅支持单个域名设置。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4', - ], - 'Content' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Fields' => [ - 'description' => '域名配置结果信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Description' => [ - 'description' => '字段描述。', - 'type' => 'string', - 'example' => '访问时间', - ], - 'Selected' => [ - 'description' => '是否选择该字段。'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'FieldName' => [ - 'description' => '字段名称。', - 'type' => 'string', - 'example' => 'unixtime', - ], - ], - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], + 'Cidr' => [ + 'description' => '查询域名对应的回源IP段列表,以CIDR形式表示,包含IPv4与IPv6。', + 'type' => 'array', + 'items' => ['description' => '具体IP段信息。', 'type' => 'string', 'example' => '1.1.1.0/24'], + 'example' => '["1.1.1.0/24","2.2.2.0/24","1111:2222:3333:4444:5555:0:0:0/80"]', ], ], ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal exception occurred, please try again later.', - ], + 404 => [ + ['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'The domain does not exist, or it does not belong to you.', 'description' => '域名不存在或不属于当前用户。请检查您填写的域名书写是否正确,或者域名是否在当前账号中,查看域名是否过期。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4\\",\\n \\"Content\\": {\\n \\"Fields\\": [\\n {\\n \\"Description\\": \\"访问时间\\",\\n \\"Selected\\": true,\\n \\"FieldName\\": \\"unixtime\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnUserRealTimeDeliveryFieldResponse>\\n<RequestId>3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4</RequestId>\\n<Content>\\n <Fields>\\n <FieldName>unixtime</FieldName>\\n <Description>访问时间</Description>\\n <Selected>true</Selected>\\n </Fields>\\n <Fields>\\n <FieldName>client_ip</FieldName>\\n <Description>用户真实IP</Description>\\n <Selected>false</Selected>\\n </Fields>\\n</Content>\\n</DescribeDcdnUserRealTimeDeliveryFieldResponse>","errorExample":""}]', - 'title' => '查询用户选择的字段列表', - 'description' => '> 单用户调用频率:100次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnUserBillHistory' => [ - 'summary' => '调用DescribeDcdnUserBillHistory查询用户历史账单,最多查询一个月的数据。', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询IPA加速域名的回源节点IP段', + 'summary' => '调用DescribeDcdnIpaDomainCidr查询IPA加速域名的回源节点IP段。'."\n" + .'此API需要申请访问权限,如需使用请提交工单。', + 'description' => '> 全局调用频率限制:50次/秒;单用户调用频率限制:10次/秒', + 'changeSet' => [ + ['createdAt' => '2023-08-30T06:54:07.000Z', 'description' => '错误码发生变更、响应参数发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnIpaDomainCidr'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnIpaDomainCidr', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\",\\n \\"Cidr\\": [\\n \\"1.1.1.0/24\\"\\n ]\\n}","type":"json"}]', + ], + 'DescribeDcdnIpaDomainConfigs' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -13628,34 +12774,18 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdn2JMMUY'], ], 'parameters' => [ [ - 'name' => 'StartTime', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'最小数据粒度为5分钟。', - 'type' => 'string', - 'required' => true, - 'example' => '2018-09-30T16:00:00Z', - ], + 'schema' => ['description' => '您的加速域名,多个域名用英文逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'EndTime', + 'name' => 'FunctionNames', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'结束时间需大于起始时间。', - 'type' => 'string', - 'required' => true, - 'example' => '2018-10-31T16:00:00Z', - ], + 'schema' => ['description' => '功能列表名称。仅支持protogw,表示IP应用加速。', 'type' => 'string', 'required' => true, 'example' => 'protogw'], ], ], 'responses' => [ @@ -13663,79 +12793,44 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'ED61C6C3-8241-4187-AAA7-5157AE175CEC', - ], - 'BillHistoryData' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED'], + 'DomainConfigs' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'BillHistoryDataItem' => [ - 'description' => '历史计费数据。', + 'DomainConfig' => [ + 'description' => '域名配置。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Dimension' => [ - 'description' => '维度。', - 'type' => 'string', - 'example' => 'vas', - ], - 'BillType' => [ - 'description' => '计费模式。', - 'type' => 'string', - 'example' => 'month_4th_day_bandwidth', - ], - 'BillTime' => [ - 'description' => '计费周期起始时间。', - 'type' => 'string', - 'example' => '2018-09-30T17:00:00Z', - ], - 'BillingData' => [ + 'Status' => ['description' => '功能配置状态。'."\n" + .'- **success**:成功。'."\n" + ."\n" + .'- **testing**:测试中。'."\n" + ."\n" + .'- **failed**:失败。'."\n" + ."\n" + .'- **configuring**:配置中。'."\n", 'type' => 'string', 'example' => 'success'], + 'FunctionName' => ['description' => '功能名称。', 'type' => 'string', 'example' => 'protogw'], + 'FunctionArgs' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'BillingDataItem' => [ - 'description' => '计费数据。', + 'FunctionArg' => [ + 'description' => '功能列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Flow' => [ - 'description' => '流量,单位为字节。', - 'type' => 'number', - 'format' => 'float', - 'example' => '2456', - ], - 'Bandwidth' => [ - 'description' => '带宽,单位为Bps。', - 'type' => 'number', - 'format' => 'float', - 'example' => '4839', - ], - 'Count' => [ - 'description' => '个数,单位为个。', - 'type' => 'number', - 'format' => 'float', - 'example' => '205624', - ], - 'CdnRegion' => [ - 'description' => '计费大区,取值: **CN**、**OverSeas**、**AP1**、**AP2**、**AP3**、**NA**、**SA** 、**EU**、**MEAA**。', - 'type' => 'string', - 'example' => 'AP1', - ], - 'ChargeType' => [ - 'description' => '计费类型。取值:**StaticHttp**、**DynamicHttp**、**DynamicHttps**。', - 'type' => 'string', - 'example' => 'DynamicHttp', - ], + 'ArgValue' => ['description' => '配置值。', 'type' => 'string', 'example' => 'txt'], + 'ArgName' => ['description' => '配置名称。', 'type' => 'string', 'example' => 'file_type'], ], ], ], ], ], + 'ConfigId' => ['description' => '配置ID。', 'type' => 'string', 'example' => '5003576'], ], ], ], @@ -13747,49 +12842,39 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => 'The specified parameters are invalid.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidTimeSpan', - 'errorMessage' => 'The time span exceeds the limit.', - ], - [ - 'errorCode' => 'InvalidTime.Malformed', - 'errorMessage' => 'Specified StartTime or EndTime is malformed.', - ], + ['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => 'FunctionName [%s] is not supported.', 'description' => '不支持该配置,请重新查询。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"ED61C6C3-8241-4187-AAA7-5157AE175CEC\\",\\n \\"BillHistoryData\\": {\\n \\"BillHistoryDataItem\\": [\\n {\\n \\"Dimension\\": \\"vas\\",\\n \\"BillType\\": \\"month_4th_day_bandwidth\\",\\n \\"BillTime\\": \\"2018-09-30T17:00:00Z\\",\\n \\"BillingData\\": {\\n \\"BillingDataItem\\": [\\n {\\n \\"Flow\\": 2456,\\n \\"Bandwidth\\": 4839,\\n \\"Count\\": 205624,\\n \\"CdnRegion\\": \\"AP1\\",\\n \\"ChargeType\\": \\"DynamicHttp\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnUserBillHistoryResponse>\\n<BillHistoryData>\\n <BillHistoryDataItem>\\n <BillType>month_4th_day_bandwidth</BillType>\\n <BillingData>\\n <BillingDataItem>\\n <Bandwidth>4041</Bandwidth>\\n <CdnRegion>AP1</CdnRegion>\\n <Flow>2456</Flow>\\n </BillingDataItem>\\n <BillingDataItem>\\n <Bandwidth>3819</Bandwidth>\\n <CdnRegion>NA</CdnRegion>\\n </BillingDataItem>\\n <BillingDataItem>\\n <Bandwidth>272113</Bandwidth>\\n <CdnRegion>CN</CdnRegion>\\n </BillingDataItem>\\n </BillingData>\\n <Dimension>flow</Dimension>\\n <BillTime>2018-09-30T16:00:00Z</BillTime>\\n </BillHistoryDataItem>\\n <BillHistoryDataItem>\\n <BillType>month_avg_day_bandwidth</BillType>\\n <BillingData>\\n <BillingDataItem>\\n <Bandwidth>4389</Bandwidth>\\n <CdnRegion>AP1</CdnRegion>\\n </BillingDataItem>\\n <BillingDataItem>\\n <Bandwidth>4302</Bandwidth>\\n <CdnRegion>NA</CdnRegion>\\n </BillingDataItem>\\n <BillingDataItem>\\n <Bandwidth>291641</Bandwidth>\\n <CdnRegion>CN</CdnRegion>\\n </BillingDataItem>\\n </BillingData>\\n <Dimension>flow</Dimension>\\n <BillTime>2018-09-30T16:00:00Z</BillTime>\\n </BillHistoryDataItem>\\n <BillHistoryDataItem>\\n <BillType>hour_vas</BillType>\\n <BillingData>\\n <BillingDataItem>\\n <Count>205624</Count>\\n <ChargeType>DynamicHttp</ChargeType>\\n </BillingDataItem>\\n </BillingData>\\n <Dimension>vas</Dimension>\\n <BillTime>2018-09-30T16:00:00Z</BillTime>\\n </BillHistoryDataItem>\\n <BillHistoryDataItem>\\n <BillType>hour_vas</BillType>\\n <BillingData>\\n <BillingDataItem>\\n <Count>203601</Count>\\n <ChargeType>DynamicHttp</ChargeType>\\n </BillingDataItem>\\n </BillingData>\\n <Dimension>vas</Dimension>\\n <BillTime>2018-09-30T17:00:00Z</BillTime>\\n </BillHistoryDataItem>\\n</BillHistoryData>\\n<RequestId>ED61C6C3-8241-4187-AAA7-5157AE175CEC</RequestId>\\n</DescribeDcdnUserBillHistoryResponse>","errorExample":""}]', - 'title' => '查询历史账单', - 'description' => '> 单用户调用频率:100次/秒。 ', + 'title' => '获取IPA层加速域名配置信息', + 'summary' => '调用DescribeDcdnIpaDomainConfigs查询域名配置。', + 'description' => '> 单用户调用频率:20次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnUserBillType' => [ - 'summary' => '调用DescribeDcdnUserBillType查询用户的计费类型。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnIpaDomainConfigs'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnIpaDomainConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED\\",\\n \\"DomainConfigs\\": {\\n \\"DomainConfig\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"FunctionName\\": \\"protogw\\",\\n \\"FunctionArgs\\": {\\n \\"FunctionArg\\": [\\n {\\n \\"ArgValue\\": \\"txt\\",\\n \\"ArgName\\": \\"file_type\\"\\n }\\n ]\\n },\\n \\"ConfigId\\": \\"5003576\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnIpaDomainConfigsResponse>\\n<RequestId>F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED</RequestId>\\n<DomainConfigs>\\n <DomainConfig>\\n <FunctionArgs>\\n <FunctionArg>\\n <ArgName>file_type</ArgName>\\n <ArgValue>txt</ArgValue>\\n </FunctionArg>\\n </FunctionArgs>\\n <ConfigId>5003576</ConfigId>\\n <FunctionName>protogw</FunctionName>\\n </DomainConfig>\\n</DomainConfigs>\\n</DescribeDcdnIpaDomainConfigsResponse>","errorExample":""}]', + ], + 'DescribeDcdnIpaDomainDetail' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -13800,38 +12885,13 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111555', - 'abilityTreeNodes' => [ - 'FEATUREdcdnTP4C37', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的起始时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间。'."\n" - .'格式为YYYY-MM-DDThh:mm:ssZ。', - 'type' => 'string', - 'required' => true, - 'example' => '2018-09-30T16:00:00Z', - ], - ], - [ - 'name' => 'EndTime', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的结束时间点。'."\n" - ."\n" - .'结束时间需大于起始时间,日期格式按照ISO8601表示法,并使用UTC时间。'."\n" - .'格式为YYYY-MM-DDThh:mm:ssZ。', - 'type' => 'string', - 'required' => true, - 'example' => '2018-10-31T16:00:00Z', - ], + 'schema' => ['description' => '接入全站加速IPA进行加速的域名,仅支持单个查询。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ @@ -13839,68 +12899,65 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'C370DAF1-C838-4288-A1A0-9A87633D248E', - ], - 'BillTypeData' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '09ABE829-6CD3-4FE0-AFEE-556113E29727'], + 'DomainDetail' => [ + 'description' => '域名详情。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'BillTypeDataItem' => [ - 'description' => '用户计费数据列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'EndTime' => [ - 'description' => '计费模式结束时间。', - 'type' => 'string', - 'example' => '2018-10-31T16:00:00Z', - ], - 'StartTime' => [ - 'description' => '计费模式起始时间。', - 'type' => 'string', - 'example' => '2018-10-30T16:00:00Z', - ], - 'BillingCycle' => [ - 'description' => '计费周期。', - 'type' => 'string', - 'example' => 'month', - ], - 'Product' => [ - 'description' => '产品。', - 'type' => 'string', - 'example' => 'dcdn', - ], - 'BillType' => [ - 'description' => '计费模式。取值:'."\n" - ."\n" - .'- **hour_flow**:小时流量。'."\n" - .'- **day_bandwidth**:日带宽。'."\n" - .'- **month_95**:月95。'."\n" - .'- **month_avg_day_bandwidth**:月均日峰值。'."\n" - .'- **month_4th_day_bandwidth**:月第四日峰值。'."\n" - .'- **month_avg_day_95**:月均日95。'."\n" - .'- **month_95_night_half**:夜间半价95。'."\n" - .'- **hour_vas**:小时增值服务。'."\n" - .'- **quic_hour_count**:小时QUIC请求数。'."\n" - .'- **hour_count**:小时请求次数。'."\n" - .'- **rtlog_count_day**:实时日志。', - 'type' => 'string', - 'example' => 'month_avg_day_bandwidth_overseas', - ], - 'Dimension' => [ - 'description' => '维度。取值:'."\n" - ."\n" - .'- **flow**:流量带宽。'."\n" - .'- **vas**:增值服务(HTTPS、动态请求)。'."\n" - .'- **websocket**:网络套接字。'."\n" - .'- **quic**:QUIC请求数。'."\n" - .'- **rtlog2sls**:实时日志推送SLS。', - 'type' => 'string', - 'example' => 'flow', + 'GmtCreated' => ['description' => '创建时间。', 'type' => 'string', 'example' => '2017-11-27T06:51:26Z'], + 'SSLPub' => ['description' => '如果开启HTTPS,此处为证书公钥。', 'type' => 'string', 'example' => 'SSLPub'], + 'Description' => ['description' => '描述。', 'type' => 'string', 'example' => 'audit failed'], + 'SSLProtocol' => ['description' => '是否开启SSL证书。取值:'."\n" + .'- **on**:开启。'."\n" + .'- **off**:关闭。', 'type' => 'string', 'example' => 'on'], + 'ResourceGroupId' => ['description' => '资源组ID。', 'type' => 'string', 'example' => 'rg-acfmyuji4b6xxxx'], + 'CertName' => ['description' => '如果开启HTTPS,此处为证书名称。', 'type' => 'string', 'example' => 'yourCertName'], + 'Scope' => ['description' => '加速区域。取值:'."\n" + ."\n" + .'- domestic:仅中国内地。'."\n" + ."\n" + .'- overseas:全球(不包含中国内地)。'."\n" + ."\n" + .'- global:全球。', 'type' => 'string', 'example' => 'overseas'], + 'Cname' => ['description' => 'CNAME。', 'type' => 'string', 'example' => 'example.com'], + 'DomainStatus' => ['description' => '加速域名运行状态。取值:'."\n" + ."\n" + .'- **online**:启用。'."\n" + ."\n" + .'- **offline**:停用。'."\n" + ."\n" + .'- **configuring**:配置中。'."\n" + ."\n" + .'- **configure_failed**:配置失败。'."\n" + ."\n" + .'- **checking**:正在审核。'."\n" + ."\n" + .'- **check_failed**:审核失败。', 'type' => 'string', 'example' => 'online'], + 'GmtModified' => ['description' => '最近修改时间。', 'type' => 'string', 'example' => '2017-11-27T06:51:26Z'], + 'DomainName' => ['description' => '接入全站加速IPA进行加速的域名。'."\n", 'type' => 'string', 'example' => 'example.com'], + 'Sources' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Source' => [ + 'description' => '源站信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => '源站类型。取值:'."\n" + ."\n" + .'- **ipaddr**:IP源站。'."\n" + ."\n" + .'- **domain**:域名源站。'."\n" + ."\n" + .'- **oss**:不支持OSS。'."\n", 'type' => 'string', 'example' => 'oss'], + 'Weight' => ['description' => '回源权重。', 'type' => 'string', 'example' => '10'], + 'Enabled' => ['description' => '状态。', 'type' => 'string', 'example' => 'online'], + 'Priority' => ['description' => '优先级。', 'type' => 'string', 'example' => '50'], + 'Port' => ['description' => '自定义端口,范围:**0**~**65535**。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'Content' => ['description' => '回源地址。', 'type' => 'string', 'example' => 'xxx.oss-cn-hangzhou.aliyuncs.com'], + ], ], ], ], @@ -13911,50 +12968,39 @@ ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidParameterProduct', - 'errorMessage' => 'The specified Product is invalid.', - ], - [ - 'errorCode' => 'InvalidParameterAliuid', - 'errorMessage' => 'The specified Aliuid is invalid.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C370DAF1-C838-4288-A1A0-9A87633D248E\\",\\n \\"BillTypeData\\": {\\n \\"BillTypeDataItem\\": [\\n {\\n \\"EndTime\\": \\"2018-10-31T16:00:00Z\\",\\n \\"StartTime\\": \\"2018-10-30T16:00:00Z\\",\\n \\"BillingCycle\\": \\"month\\",\\n \\"Product\\": \\"dcdn\\",\\n \\"BillType\\": \\"month_avg_day_bandwidth_overseas\\",\\n \\"Dimension\\": \\"flow\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnUserBillTypeResponse>\\n<RequestId>C370DAF1-C838-4288-A1A0-9A87633D248E</RequestId>\\n<BillTypeData>\\n <BillTypeDataItem>\\n <BillingCycle>month</BillingCycle>\\n <Product>dcdn</Product>\\n <Dimension>flow</Dimension>\\n <EndTime>2018-10-31T16:00:00Z</EndTime>\\n <StartTime>2018-10-30T16:00:00Z</StartTime>\\n <BillType>month_avg_day_bandwidth_overseas</BillType>\\n </BillTypeDataItem>\\n <BillTypeDataItem>\\n <BillingCycle>hour</BillingCycle>\\n <Product>dcdn</Product>\\n <Dimension>flow</Dimension>\\n <EndTime>2018-10-30T16:00:00Z</EndTime>\\n <StartTime>2018-10-10T16:00:00Z</StartTime>\\n <BillType>hour_flow</BillType>\\n </BillTypeDataItem>\\n <BillTypeDataItem>\\n <BillingCycle>hour</BillingCycle>\\n <Product>dcdn</Product>\\n <Dimension>vas</Dimension>\\n <EndTime>2018-10-31T16:00:00Z</EndTime>\\n <StartTime>2018-09-30T16:00:00Z</StartTime>\\n <BillType>hour_vas</BillType>\\n </BillTypeDataItem>\\n <BillTypeDataItem>\\n <BillingCycle>day</BillingCycle>\\n <Product>dcdn</Product>\\n <Dimension>flow</Dimension>\\n <EndTime>2018-10-10T16:00:00Z</EndTime>\\n <StartTime>2018-09-30T16:00:00Z</StartTime>\\n <BillType>day_bandwidth</BillType>\\n </BillTypeDataItem>\\n</BillTypeData>\\n</DescribeDcdnUserBillTypeResponse>","errorExample":""}]', - 'title' => '查询计费类型', + 'title' => '获取IPA层的基本配置信息', + 'summary' => '调用DescribeDcdnIpaDomainDetail获取指定加速域名配置的基本信息。', + 'description' => '> 单用户调用频率:30次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnUserResourcePackage' => [ - 'summary' => '调用DescribeDcdnUserResourcePackage查询您所有资源包信息,包括资源包总量、余量、生效时间、失效时间、状态等。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2022-10-27T02:41:56.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnIpaDomainDetail'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnIpaDomainDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"09ABE829-6CD3-4FE0-AFEE-556113E29727\\",\\n \\"DomainDetail\\": {\\n \\"GmtCreated\\": \\"2017-11-27T06:51:26Z\\",\\n \\"SSLPub\\": \\"SSLPub\\",\\n \\"Description\\": \\"audit failed\\",\\n \\"SSLProtocol\\": \\"on\\",\\n \\"ResourceGroupId\\": \\"rg-acfmyuji4b6xxxx\\",\\n \\"CertName\\": \\"yourCertName\\",\\n \\"Scope\\": \\"overseas\\",\\n \\"Cname\\": \\"example.com\\",\\n \\"DomainStatus\\": \\"online\\",\\n \\"GmtModified\\": \\"2017-11-27T06:51:26Z\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Sources\\": {\\n \\"Source\\": [\\n {\\n \\"Type\\": \\"oss\\",\\n \\"Weight\\": \\"10\\",\\n \\"Enabled\\": \\"online\\",\\n \\"Priority\\": \\"50\\",\\n \\"Port\\": 80,\\n \\"Content\\": \\"xxx.oss-cn-hangzhou.aliyuncs.com\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnIpaDomainDetailResponse>\\n<RequestId>09ABE829-6CD3-4FE0-AFEE-556113E29727</RequestId>\\n<DomainDetail>\\n <Cname>example.com.dcdn7mhp.com</Cname>\\n <ResourceGroupId>rg-acfmyuji4b6xxxx</ResourceGroupId>\\n <DomainStatus>online</DomainStatus>\\n <DomainName>example.com</DomainName>\\n <Sources>\\n <Source>\\n <Enabled>online</Enabled>\\n <Port>80</Port>\\n <Type>oss</Type>\\n <Content>xxx.oss-cn-hangzhou.aliyuncs.com</Content>\\n <Priority>50</Priority>\\n <Weight>10</Weight>\\n </Source>\\n </Sources>\\n <GmtModified>2017-11-27T06:51:26Z</GmtModified>\\n <GmtCreated>2017-11-27T06:51:25Z</GmtCreated>\\n</DomainDetail>\\n</DescribeDcdnIpaDomainDetailResponse>","errorExample":""}]', + ], + 'DescribeDcdnIpaService' => [ + 'summary' => '调用DescribeDcdnIpaService查询全站加速IPA服务状态。包括:当前计费类型、服务开通时间、下次生效的计费类型、当前业务状态等。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -13965,148 +13011,61 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111562', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeCode' => '111529', + 'abilityTreeNodes' => ['FEATUREdcdnZA9EPX'], 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [ - [ - 'name' => 'Status', - 'in' => 'query', - 'schema' => [ - 'description' => '资源包状态,默认值为valid。取值:'."\n" - ."\n" - .'- **valid**:有效。'."\n" - ."\n" - .'- **closed**:无效。'."\n" - ."\n" - .'- **exhaust**:耗尽。', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => 'valid', - 'default' => 'valid', - ], - ], - ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '请求ID。'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。'."\n", - 'type' => 'string', - 'example' => '96ED3127-EC7A-57C5-AFA6-A689B24B2530', - ], - 'ResourcePackageInfos' => [ + 'ChangingAffectTime' => ['description' => 'GMT时间,变配生效时间,需要与当前时间比较,晚于当前时间才能在前端页面显示。'."\n", 'type' => 'string', 'example' => '2018-03-31T16:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'EF2AEBC2-EDBD-41CF-BF64-7E095D42D6EF'], + 'ChangingChargeType' => ['description' => '下次生效的计费类型:'."\n" + ."\n" + .'- **PayByTraffic**:流量。'."\n" + ."\n" + .'- **PayByBandwidth**:带宽。'."\n" + ."\n" + .'- **PayByBandwidth95**:月95。'."\n" + ."\n" + .'- **PayByBandwidth_monthavg**:月平均带宽。'."\n" + ."\n" + .'- **PayByBandwidth_month4th**:月第四峰值。'."\n" + ."\n" + .'- **PayByBandwidth_monthday95avg**:月平均95。'."\n" + ."\n" + .'- **PayByBandwidth_nighthalf95**:月95夜间减半。'."\n", 'type' => 'string', 'example' => 'PayByBandwidth'], + 'OpeningTime' => ['description' => '开通服务时间,ISO 8601时间格式。'."\n", 'type' => 'string', 'example' => '2018-03-19T11:16:11Z'], + 'InternetChargeType' => ['description' => '计费类型:'."\n" + ."\n" + .'- **PayByTraffic**:流量。'."\n" + ."\n" + .'- **PayByBandwidth**:带宽。'."\n" + ."\n" + .'- **PayByBandwidth95**:月95。'."\n" + ."\n" + .'- **PayByBandwidth_monthavg**:月平均带宽。'."\n" + ."\n" + .'- **PayByBandwidth_month4th**:月第四峰值。'."\n" + ."\n" + .'- **PayByBandwidth_monthday95avg**:月平均95。'."\n" + ."\n" + .'- **PayByBandwidth_nighthalf95**:月95夜间减半。'."\n", 'type' => 'string', 'example' => 'PayByBandwidth'], + 'InstanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => '1883927335936173'], + 'OperationLocks' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'ResourcePackageInfo' => [ - 'description' => '由ResourcePackageInfo组成的数组格式。'."\n", + 'LockReason' => [ + 'description' => '业务锁定状态。'."\n", 'type' => 'array', 'items' => [ - 'description' => '由ResourcePackageInfo组成的数组格式。'."\n", 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '失效时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'example' => '2022-08-24T16:00:00Z', - ], - 'Status' => [ - 'description' => '资源包状态。取值:'."\n" - ."\n" - .'- **valid**:有效。'."\n" - ."\n" - .'- **closed**:无效。'."\n" - ."\n" - .'- **exhaust**:耗尽。', - 'type' => 'string', - 'example' => 'valid', - ], - 'DisplayName' => [ - 'description' => '资源包名称。', - 'type' => 'string', - 'example' => 'Downstream Data Package (Australia Sydney)', - ], - 'StartTime' => [ - 'description' => '生效时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n", - 'type' => 'string', - 'example' => '2021-08-24T04:09:22Z', - ], - 'CommodityCode' => [ - 'description' => '资源包商品代码。', - 'type' => 'string', - 'example' => 'dcdnpaybag', - ], - 'InstanceId' => [ - 'description' => '资源包ID。', - 'type' => 'string', - 'example' => 'CDNFLOWBAG-cn-7pp2bihrb01ii0', - ], - 'TemplateName' => [ - 'description' => '模板名。', - 'type' => 'string', - 'example' => 'FPT_dcdnpaybag_deadlineAcc_1541151058', - ], - 'CurrCapacity' => [ - 'description' => '资源包余量。'."\n" - ."\n" - .'- 流量包单位:byte。'."\n" - ."\n" - .'- 请求包单位:次。', - 'type' => 'string', - 'example' => '10000000', - ], - 'InitCapacity' => [ - 'description' => '资源包总量。'."\n" - ."\n" - .'- 流量包单位:byte。'."\n" - ."\n" - .'- 请求包单位:次。', - 'type' => 'string', - 'example' => '10000000', - ], - 'Region' => [ - 'description' => '地域。', - 'type' => 'string', - 'example' => 'CN', - ], - 'CurrCapacityShowValue' => [ - 'description' => '实例当前显示剩余容量。', - 'type' => 'string', - 'example' => '49.975789'."\n", - ], - 'CurrCapacityShowUnit' => [ - 'description' => '实例当前显示剩余容量单位。', - 'type' => 'string', - 'example' => 'GB'."\n", - ], - 'CurrCapacityBaseUnit' => [ - 'description' => '实例当前剩余容量单位。', - 'type' => 'string', - 'example' => 'Byte', - ], - 'InitCapacityShowValue' => [ - 'description' => '资源包显示总量。', - 'type' => 'string', - 'example' => '100.000000'."\n", - ], - 'InitCapacityShowUnit' => [ - 'description' => '资源包显示总量单位。', - 'type' => 'string', - 'example' => 'GB'."\n", - ], - 'InitCapacityBaseUnit' => [ - 'description' => '资源包总量单位。', - 'type' => 'string', - 'example' => 'Byte', - ], + 'LockReason' => ['description' => '锁定原因。例如:**financial**(欠费)。', 'type' => 'string', 'example' => 'financial'], ], ], ], @@ -14118,29 +13077,39 @@ ], 'errorCodes' => [ 403 => [ - [ - 'errorCode' => 'DcdnServiceNotFound', - 'errorMessage' => 'The DCDN service is not activated.', - ], + ['errorCode' => 'DcdnIpaServiceNotFound', 'errorMessage' => 'The DCDN IPA service has not been activated.', 'description' => '没有开通DCDN IPA服务。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"96ED3127-EC7A-57C5-AFA6-A689B24B2530\\",\\n \\"ResourcePackageInfos\\": {\\n \\"ResourcePackageInfo\\": [\\n {\\n \\"EndTime\\": \\"2022-08-24T16:00:00Z\\",\\n \\"Status\\": \\"valid\\",\\n \\"DisplayName\\": \\"Downstream Data Package (Australia Sydney)\\",\\n \\"StartTime\\": \\"2021-08-24T04:09:22Z\\",\\n \\"CommodityCode\\": \\"dcdnpaybag\\",\\n \\"InstanceId\\": \\"CDNFLOWBAG-cn-7pp2bihrb01ii0\\",\\n \\"TemplateName\\": \\"FPT_dcdnpaybag_deadlineAcc_1541151058\\",\\n \\"CurrCapacity\\": \\"10000000\\",\\n \\"InitCapacity\\": \\"10000000\\",\\n \\"Region\\": \\"CN\\",\\n \\"CurrCapacityShowValue\\": \\"49.975789\\\\n\\",\\n \\"CurrCapacityShowUnit\\": \\"GB\\\\n\\",\\n \\"CurrCapacityBaseUnit\\": \\"Byte\\",\\n \\"InitCapacityShowValue\\": \\"100.000000\\\\n\\",\\n \\"InitCapacityShowUnit\\": \\"GB\\\\n\\",\\n \\"InitCapacityBaseUnit\\": \\"Byte\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnUserResourcePackageResponse>\\n<RequestId>96ED3127-EC7A-57C5-AFA6-A689B24B2530</RequestId>\\n<ResourcePackageInfos>\\n <ResourcePackageInfo>\\n <Status>valid</Status>\\n <InitCapacity>10000000</InitCapacity>\\n <EndTime>2022-08-24T16:00:00Z</EndTime>\\n <InstanceId>CDNFLOWBAG-cn-7pp2bihrb01ii0</InstanceId>\\n <CommodityCode>dcdnpaybag</CommodityCode>\\n <DisplayName>静态HTTPS请求包</DisplayName>\\n <StartTime>2021-08-24T04:09:22Z</StartTime>\\n <TemplateName>FPT_dcdnpaybag_deadlineAcc_1541151058</TemplateName>\\n <CurrCapacity>10000000</CurrCapacity>\\n </ResourcePackageInfo>\\n <ResourcePackageInfo>\\n <Status>valid</Status>\\n <InitCapacity>1000000</InitCapacity>\\n <EndTime>2021-08-31T16:00:00Z</EndTime>\\n <InstanceId>CDNFLOWBAG-cn-z2q1t3xre0001x</InstanceId>\\n <CommodityCode>dcdnpaybag</CommodityCode>\\n <DisplayName>动态加速请求包</DisplayName>\\n <StartTime>2020-08-31T09:26:20Z</StartTime>\\n <TemplateName>FPT_dcdnpaybag_deadlineAcc_1541404502</TemplateName>\\n <CurrCapacity>1000000</CurrCapacity>\\n </ResourcePackageInfo>\\n <ResourcePackageInfo>\\n <Status>valid</Status>\\n <InitCapacity>1000000</InitCapacity>\\n <EndTime>2022-08-24T16:00:00Z</EndTime>\\n <InstanceId>CDNFLOWBAG-cn-7pp2bihrb01ijf</InstanceId>\\n <CommodityCode>dcdnpaybag</CommodityCode>\\n <DisplayName>动态加速请求包</DisplayName>\\n <StartTime>2021-08-24T04:09:22Z</StartTime>\\n <TemplateName>FPT_dcdnpaybag_deadlineAcc_1541404502</TemplateName>\\n <CurrCapacity>1000000</CurrCapacity>\\n </ResourcePackageInfo>\\n <ResourcePackageInfo>\\n <Status>closed</Status>\\n <InitCapacity>107374182400</InitCapacity>\\n <EndTime>2021-02-12T16:00:00Z</EndTime>\\n <InstanceId>CDNFLOWBAG-cn-mp91irkf600q2d</InstanceId>\\n <CommodityCode>dcdnpaybag</CommodityCode>\\n <DisplayName>下行流量(中国内地)</DisplayName>\\n <StartTime>2020-02-12T07:31:08Z</StartTime>\\n <TemplateName>FPT_dcdnpaybag_deadlineAcc_1541405199</TemplateName>\\n <CurrCapacity>0</CurrCapacity>\\n </ResourcePackageInfo>\\n <ResourcePackageInfo>\\n <Status>valid</Status>\\n <InitCapacity>1000000</InitCapacity>\\n <EndTime>2022-08-24T16:00:00Z</EndTime>\\n <InstanceId>CDNFLOWBAG-cn-7pp2bihrb01ik9</InstanceId>\\n <CommodityCode>dcdn_waf_bag</CommodityCode>\\n <DisplayName>边缘WAF请求数资源包</DisplayName>\\n <StartTime>2021-08-24T04:09:22Z</StartTime>\\n <TemplateName>FPT_dcdn_waf_bag_deadlineAcc_1612705404</TemplateName>\\n <CurrCapacity>1000000</CurrCapacity>\\n </ResourcePackageInfo>\\n</ResourcePackageInfos>\\n</DescribeDcdnUserResourcePackageResponse>","errorExample":""}]', - 'title' => '查询资源包信息', - 'description' => '> 单用户调用频率:30次/秒。 ', + 'title' => '获取DCDN的IPA服务状态', + 'description' => '> 单用户调用频率:20次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainUsageData' => [ - 'summary' => '调用DescribeDcdnDomainUsageData查询域名在特定计费区域的用量数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnIpaService'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnIpaService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ChangingAffectTime\\": \\"2018-03-31T16:00:00Z\\",\\n \\"RequestId\\": \\"EF2AEBC2-EDBD-41CF-BF64-7E095D42D6EF\\",\\n \\"ChangingChargeType\\": \\"PayByBandwidth\\",\\n \\"OpeningTime\\": \\"2018-03-19T11:16:11Z\\",\\n \\"InternetChargeType\\": \\"PayByBandwidth\\",\\n \\"InstanceId\\": \\"1883927335936173\\",\\n \\"OperationLocks\\": {\\n \\"LockReason\\": [\\n {\\n \\"LockReason\\": \\"financial\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnIpaServiceResponse>\\r\\n\\t<ChangingChargeType>PayByBandwidth</ChangingChargeType>\\r\\n\\t<OpeningTime>2018-03-19T11:16:11Z</OpeningTime>\\r\\n\\t<InstanceId>1883927335936173</InstanceId>\\r\\n\\t<RequestId>EF2AEBC2-EDBD-41CF-BF64-7E095D42D6EF</RequestId>\\r\\n\\t<ChangingAffectTime>2018-03-31T16:00:00Z</ChangingAffectTime>\\r\\n\\t<OperationLocks>\\r\\n\\t\\t<LockReason>\\r\\n\\t\\t\\t<LockReason>financial</LockReason>\\r\\n\\t\\t</LockReason>\\r\\n\\t</OperationLocks>\\r\\n\\t<InternetChargeType>PayByTraffic</InternetChargeType>\\r\\n</DescribeDcdnIpaServiceResponse>\\r\\n\\t\\r\\n","errorExample":""}]', + ], + 'DescribeDcdnIpaUserDomains' => [ + 'summary' => '调用DescribeDcdnIpaUserDomains查询用户名下所有的IPA层应用加速域名,支持模糊搜索或者按域名状态过滤。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -14151,294 +13120,218 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111521', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每个页面显示的域名数,默认**20**,最大**500**。'."\n" + .'取值范围:**1**~**500**之间的任意整数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'example' => '5', 'default' => '20'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '页码。取值范围为:**1**~**100000**。'."\n" + .'默认值为**1**。'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], + ], + [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的加速域名。支持批量查询,一次最多可以查询100个域名,多个域名用英文逗号(,)分隔。'."\n" - ."\n" - .'> 如果不传该参数,默认返回所有加速域名合并后的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '根据域名匹配过滤。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ - 'name' => 'StartTime', + 'name' => 'DomainStatus', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的起始时间点,日期格式按照ISO8601表示法,并使用UTC时间。格式为:yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 查询数据的最小粒度为5分钟。', - 'type' => 'string', - 'required' => true, - 'example' => '2015-12-10T20:00:00Z', - ], + 'schema' => ['description' => '域名状态过滤。取值:'."\n" + .'- **online**:启用。'."\n" + ."\n" + .'- **offline**:停用。'."\n" + ."\n" + .'- **configuring**:配置中。'."\n" + ."\n" + .'- **configure_failed**:配置失败。'."\n" + ."\n" + .'- **checking**:正在审核。'."\n" + ."\n" + .'- **check_failed**:审核失败。', 'type' => 'string', 'required' => false, 'example' => 'online'], ], [ - 'name' => 'EndTime', + 'name' => 'DomainSearchType', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的结束时间点,日期格式按照ISO8601表示法,并使用UTC时间。格式为:yyyy-MM-ddTHH:mm:ssZ'."\n" - ."\n" - .'> 结束时间需大于起始时间,且时间相差不能超过31天。', - 'type' => 'string', - 'required' => true, - 'example' => '2015-12-10T22:00:00Z', - ], + 'schema' => ['description' => '域名查询类型。取值:'."\n" + .'- **full_match**(默认值):完全匹配。'."\n" + ."\n" + .'- **fuzzy_match**:模糊匹配。'."\n" + ."\n" + .'- **pre_match**:前匹配。'."\n" + ."\n" + .'- **suf_match**:后匹配。', 'type' => 'string', 'required' => false, 'example' => 'fuzzy_match'], ], [ - 'name' => 'Field', + 'name' => 'CheckDomainShow', 'in' => 'query', - 'schema' => [ - 'description' => '请求的数据类型。取值:'."\n" - .'- **bps**:带宽。'."\n" - .'- **traf**:流量。'."\n" - .'- **acc**:请求数。'."\n" - ."\n" - .'> **acc**不支持根据**Area**参数查询。', - 'type' => 'string', - 'required' => true, - 'example' => 'bps', - ], + 'schema' => ['description' => '是否展示审核中、审核失败、配置失败的域名。取值:'."\n" + ."\n" + .'- **true**:显示。'."\n" + .'- **false**:不显示。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'Type', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => '请求数类型,取值:'."\n" - ."\n" - .'- **static**:静态。'."\n" - .'- **dynamic**:动态。'."\n" - .'- **all**:全部。'."\n" - ."\n" - .'默认为**all**。', - 'type' => 'string', - 'required' => false, - 'example' => 'dynamic', - 'default' => 'all', - ], + 'schema' => ['description' => '资源组ID。'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-acfmyuji4b6r4**'], ], [ - 'name' => 'DataProtocol', + 'name' => 'FuncId', 'in' => 'query', - 'schema' => [ - 'description' => '需要获取的数据的协议。取值:'."\n" - .'- **quic**:QUIC协议。'."\n" - .'- **https**:HTTPS协议。'."\n" - .'- **http**:HTTP协议。'."\n" - .'- **all**:以上全部协议。'."\n" - ."\n" - .'默认为**all**。', - 'type' => 'string', - 'required' => false, - 'example' => 'all', - 'default' => 'all', - ], + 'schema' => ['description' => '功能ID。 例如:7表示路径过期时间。更多功能ID,请参见[域名配置功能函数](~~410622~~)。', 'type' => 'string', 'required' => false, 'example' => '7'], ], [ - 'name' => 'Area', + 'name' => 'FuncFilter', 'in' => 'query', - 'schema' => [ - 'description' => '区域代号。取值:'."\n" - .'- **CN**:中国内地。'."\n" - .'- **OverSeas**:全球(不包含中国内地)。'."\n" - .'- **AP1**:亚太1区。'."\n" - .'- **AP2**:亚太2区。'."\n" - .'- **AP3**:亚太3区。'."\n" - .'- **NA**:北美。'."\n" - .'- **SA**:南美。'."\n" - .'- **EU**:欧洲。'."\n" - .'- **MEAA**:中东、非洲。'."\n" - .'- **all**:以上全部区域。'."\n" - ."\n" - .'默认为**CN**。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'CN', - 'default' => 'CN', - ], + 'schema' => ['description' => 'Func开关设置。'."\n" + ."\n" + .'- config:代表开通Func。'."\n" + .'- unconfig:代表没有开通Func。', 'type' => 'string', 'required' => false, 'example' => 'config'], ], [ - 'name' => 'Interval', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '强制指定获取指定时间粒度的数据,单位为秒。'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值,具体请参见**使用说明**中支持查询的时间粒度。'."\n", - 'type' => 'string', + 'description' => '标签列表。', + 'type' => 'array', + 'items' => [ + 'description' => '标签解释。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签键,N的取值范围1~20。通过TagDcdnResources接口可以给域名设置Tag。', 'type' => 'string', 'required' => false, 'example' => '1'], + 'Value' => ['description' => '标签值,N的取值范围1~20。', 'type' => 'string', 'required' => false, 'example' => '1'], + ], + 'required' => false, + ], 'required' => false, - 'example' => '300', + 'maxItems' => 20, ], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'DomainName' => [ - 'description' => '查询到的加速域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'EndTime' => [ - 'description' => '查询数据的结束时间。', - 'type' => 'string', - 'example' => '2015-12-10T22:00:00Z', - ], - 'StartTime' => [ - 'description' => '查询数据的开始时间。', - 'type' => 'string', - 'example' => '2015-12-10T20:00:00Z', - ], - 'Type' => [ - 'description' => '返回的用量类型。', - 'type' => 'string', - 'example' => 'bps', - ], - 'Area' => [ - 'description' => '返回的用量区域。', - 'type' => 'string', - 'example' => 'CN', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,单位为秒。', - 'type' => 'string', - 'example' => '/', - ], - 'UsageDataPerInterval' => [ + 'RequestId' => ['description' => '请求ID。'."\n", 'type' => 'string', 'example' => 'AA75AADB-5E25-4970-B480-EAA1F5658483'], + 'PageNumber' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'PageSize' => ['description' => '单页显示的域名总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '20'], + 'TotalCount' => ['description' => '查询到的域名总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'Domains' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DataModule' => [ - 'description' => '每个时间间隔的流量数据。', + 'PageData' => [ + 'description' => '由PageData组成的数组格式,返回加速域名的状态信息。'."\n", 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2015-12-10T21:30:00Z', - ], - 'PeakTime' => [ - 'description' => '当**Field**为**bps**时,该值为峰值带宽时刻,否则值和**TimeStamp**相同。', - 'type' => 'string', - 'example' => '2015-12-10T21:30:00Z', - ], - 'Value' => [ - 'description' => '用量。', - 'type' => 'string', - 'example' => '4233041**', - ], - 'SpecialValue' => [ - 'description' => '特殊用量。'."\n" - ."\n" - .'> 用来标记特殊情况下的用量值,没有特殊计费可忽略该参数。', - 'type' => 'string', - 'example' => '4233041**', + 'GmtCreated' => ['description' => '加速域名创建时间。', 'type' => 'string', 'example' => '2015-10-28T09:32:51Z'], + 'Description' => ['description' => '审核失败原因。', 'type' => 'string', 'example' => 'audit failed'], + 'SSLProtocol' => ['description' => 'HTTPS开关。'."\n" + ."\n" + .'- **on**表示已开启。'."\n" + .'- **off**表示未开启。', 'type' => 'string', 'example' => 'on'], + 'ResourceGroupId' => ['description' => '资源组ID。', 'type' => 'string', 'example' => 'abcd1234abcd****'], + 'Sandbox' => ['description' => '沙箱。', 'type' => 'string', 'example' => 'normal'], + 'DomainStatus' => ['description' => '加速域名状态,取值:'."\n" + ."\n" + .'- **online**:启用。'."\n" + ."\n" + .'- **offline**:停用。'."\n" + ."\n" + .'- **configuring**:配置中。'."\n" + ."\n" + .'- **configure_failed**:配置失败。'."\n" + ."\n" + .'- **checking**:正在审核。'."\n" + ."\n" + .'- **check_failed**:审核失败。'."\n", 'type' => 'string', 'example' => 'online'], + 'Cname' => ['description' => '加速域名对应的CNAME域名。', 'type' => 'string', 'example' => 'example.com.*.com'], + 'GmtModified' => ['description' => '加速域名修改时间。'."\n", 'type' => 'string', 'example' => '2015-10-28T11:05:52Z'], + 'DomainName' => ['description' => '加速域名名称。', 'type' => 'string', 'example' => 'example.com'], + 'Sources' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Source' => [ + 'description' => '源站信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => '源站类型。', 'type' => 'string', 'example' => 'OSS domain name'], + 'Weight' => ['description' => '回源权重。', 'type' => 'string', 'example' => '20'], + 'Priority' => ['description' => '优先级。', 'type' => 'string', 'example' => '20'], + 'Port' => ['description' => '源站端口。', 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'Content' => ['description' => '源站地址。', 'type' => 'string', 'example' => '*.aliyuncs.com'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidTime.Malformed', - 'errorMessage' => 'Specified StartTime or EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidParameterField', - 'errorMessage' => 'The specified Field is invalid.', - ], - [ - 'errorCode' => 'InvalidParameterType', - 'errorMessage' => 'The specified Type is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidTimeSpan', - 'errorMessage' => 'The time span exceeds the limit.', - ], - [ - 'errorCode' => 'InvalidParameterInterval', - 'errorMessage' => 'The specified Interval is invalid.', - ], + ['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' => 'PageSize参数错误,请重新填写。'], + ['errorCode' => 'InvalidDomainStatus.ValueNotSupported', 'errorMessage' => 'The specified value of DomainStatus is invalid.', 'description' => 'DomainStatus值错误,请重新填写。'], + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => '域名格式错误。'], + ['errorCode' => 'InvalidDomainSearchType.ValueNotSupported', 'errorMessage' => 'The specified value of DomainSearchType is invalid.', 'description' => 'DomainSearchType值错误,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"EndTime\\": \\"2015-12-10T22:00:00Z\\",\\n \\"StartTime\\": \\"2015-12-10T20:00:00Z\\",\\n \\"Type\\": \\"bps\\",\\n \\"Area\\": \\"CN\\",\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"DataInterval\\": \\"/\\",\\n \\"UsageDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TimeStamp\\": \\"2015-12-10T21:30:00Z\\",\\n \\"PeakTime\\": \\"2015-12-10T21:30:00Z\\",\\n \\"Value\\": \\"4233041**\\",\\n \\"SpecialValue\\": \\"4233041**\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainUsageDataResponse>\\n<DomainName>example.com</DomainName>\\n<UsageDataPerInterval>\\n <DataModule>\\n <TimeStamp>2015-12-10T20:00:00Z</TimeStamp>\\n <PeakTime>2015-12-10T20:05:00Z</PeakTime>\\n <Value>4233041**</Value>\\n <SpecialValue>4233041**</SpecialValue>\\n </DataModule>\\n <DataModule>\\n <TimeStamp>2015-12-10T21:00:00Z</TimeStamp>\\n <PeakTime>2015-12-10T21:30:00Z</PeakTime>\\n <Value>4546807**</Value>\\n <SpecialValue>4233041**</SpecialValue>\\n </DataModule>\\n</UsageDataPerInterval>\\n<RequestId>B955107D-E658-4E77-B913-E0AC3D31693E</RequestId>\\n<StartTime>2015-12-10T20:00Z</StartTime>\\n<EndTime>2015-12-10T21:00Z</EndTime>\\n<Area>CN</Area>\\n<Type>traf</Type>\\n</DescribeDcdnDomainUsageDataResponse>","errorExample":""}]', - 'title' => '查询用量数据', - 'description' => '- 单用户调用频率:10次/秒'."\n" - .'- 用量数据包括流量、带宽和请求数三大类,单位分别为Byte、bps和次数。'."\n" - ."\n" - .'**支持查询的时间粒度**:'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,请求参数Interval支持不同的查询数据时间粒度,对应的可查询历史数据时间范围和数据延迟如下:'."\n" - ."\n" - .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟 |'."\n" - .'| -------------- | -------------- | ------ |-----|'."\n" - .'| 5分钟 | 3天 | 93天 | 15分钟 |'."\n" - .'| 1小时 | 31天 | 186天 | 一般延迟3-4小时 |'."\n" - .'| 1天 | 366天 | 366天 | 一般延迟4小时,最长不超过24小时 |', - 'requestParamsDescription' => ' **参数组合说明**'."\n" - ."\n" - .'计费数据和参数取值的对应关系如下表,具体调用方法请参见请求示例。'."\n" - ."\n" - .'| 计费数据 | DataProtocol参数取值 | Type参数取值 | Field参数取值 | Area参数取值 |'."\n" - .'|-----------------|----------------------|--------------|---------------|---------------------------------------|'."\n" - .'| 流量 | all或不传 | all或不传 | traf | CN <br>OverSeas <br>AP1<br>AP2<br>AP3<br>NA<br>SA<br>EU<br>MEAA |'."\n" - .'| 带宽 | all或不传 | all或不传 | bps | CN <br>OverSeas <br>AP1<br>AP2<br>AP3<br>NA<br>SA<br>EU<br>MEAA |'."\n" - .'| 静态HTTPS请求数 | https | static | acc | all |'."\n" - .'| 动态HTTP请求数 | http | dynamic | acc | all |'."\n" - .'| 动态HTTPS请求数 | https | dynamic | acc | all |', + 'staticInfo' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"AA75AADB-5E25-4970-B480-EAA1F5658483\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 20,\\n \\"TotalCount\\": 1,\\n \\"Domains\\": {\\n \\"PageData\\": [\\n {\\n \\"GmtCreated\\": \\"2015-10-28T09:32:51Z\\",\\n \\"Description\\": \\"audit failed\\",\\n \\"SSLProtocol\\": \\"on\\",\\n \\"ResourceGroupId\\": \\"abcd1234abcd****\\",\\n \\"Sandbox\\": \\"normal\\",\\n \\"DomainStatus\\": \\"online\\",\\n \\"Cname\\": \\"example.com.*.com\\",\\n \\"GmtModified\\": \\"2015-10-28T11:05:52Z\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Sources\\": {\\n \\"Source\\": [\\n {\\n \\"Type\\": \\"OSS domain name\\",\\n \\"Weight\\": \\"20\\",\\n \\"Priority\\": \\"20\\",\\n \\"Port\\": 80,\\n \\"Content\\": \\"*.aliyuncs.com\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnIpaUserDomainsResponse>\\n <RequestId>AA75AADB-5E25-4970-B480-EAA1F5658483</RequestId>\\n <PageNumber>1</PageNumber>\\n <PageSize>20</PageSize>\\n <TotalCount>1</TotalCount>\\n <Domains>\\n <GmtCreated>2015-10-28T09:32:51Z</GmtCreated>\\n <Description>audit failed</Description>\\n <SSLProtocol>on</SSLProtocol>\\n <ResourceGroupId>abcd1234abcd****</ResourceGroupId>\\n <Sandbox>normal</Sandbox>\\n <DomainStatus>online</DomainStatus>\\n <Cname>example.com.*.com</Cname>\\n <GmtModified>2015-10-28T11:05:52Z</GmtModified>\\n <DomainName>example.com</DomainName>\\n <Sources>\\n <Type>OSS域名</Type>\\n <Weight>20</Weight>\\n <Priority>20</Priority>\\n <Port>80</Port>\\n <Content>*.aliyuncs.com</Content>\\n </Sources>\\n </Domains>\\n</DescribeDcdnIpaUserDomainsResponse>","errorExample":""}]', + 'title' => '获取用户IPA层应用加速域名', + 'description' => '> 单用户调用频率:30次/秒。', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnBgpBpsData' => [ - 'summary' => '调用DescribeDcdnBgpBpsData查询BGP加速五分钟粒度带宽数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnIpaUserDomains'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnIpaUserDomains', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/*'], + ], + ], + ], ], + ], + 'DescribeDcdnKvAccount' => [ + 'summary' => '调用DescribeDcdnKvAccount查询账户信息和所拥有的Namespace信息。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -14449,179 +13342,200 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111473', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeCode' => '121116', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], - 'parameters' => [ - [ - 'name' => 'Isp', - 'in' => 'query', + 'parameters' => [], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '需要查询的线路,查询多条路线用英文逗号(,)分隔。指定多条线路时进行聚合处理,默认为所有线路.。'."\n" - ."\n" - .'可选值:'."\n" - .'- cu:联通。'."\n" - .'- cmi:移动。'."\n" - .'- ct:电信。', - 'type' => 'string', - 'required' => false, - 'example' => 'cu', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '账户状态。'."\n" + ."\n" + .'- **online**:开启。'."\n" + .'- **offline**:关闭。', 'type' => 'string', 'example' => 'online'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C'], + 'NamespaceUsed' => ['description' => '账号下已申请namespace数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'NamespaceQuota' => ['description' => '账号下最多可申请的Namespace数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'CapacityString' => ['description' => '账户下所有Namespace可用容量。', 'type' => 'string', 'example' => '1 GB'], + 'CapacityUsedString' => ['description' => '账户下所有Namespace已用容量。', 'type' => 'string', 'example' => '100 MB'], + 'NamespaceList' => [ + 'description' => '账号命名空间列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'Namespace状态,取值:'."\n" + ."\n" + .'- **online**:正常。'."\n" + ."\n" + .'- **delete**:待删除。'."\n" + ."\n" + .'- **deleting**:删除中。'."\n" + ."\n" + .'- **deleted**:已删除。', 'type' => 'string', 'example' => 'online'], + 'Namespace' => ['description' => 'Namespace名称。', 'type' => 'string', 'example' => 'ns1'], + 'NamespaceId' => ['description' => 'Namespace ID。', 'type' => 'string', 'example' => '12423131231****'], + 'Description' => ['description' => 'Namespace描述信息。', 'type' => 'string', 'example' => 'the first namespace'], + 'CapacityString' => ['description' => 'Namespace可用容量。', 'type' => 'string', 'example' => '1 GB'], + 'CapacityUsedString' => ['description' => 'Namespace已用容量。', 'type' => 'string', 'example' => '100 MB'], + 'Capacity' => ['description' => 'Namespace可用容量,单位为字节。', 'type' => 'integer', 'format' => 'int64', 'example' => '1073741824'], + 'CapacityUsed' => ['description' => 'Namespace已用容量,单位为字节。', 'type' => 'integer', 'format' => 'int64', 'example' => '10048576'], + ], + ], + ], + 'Capacity' => ['description' => '账户下所有Namespace的可用容量,单位为字节。', 'type' => 'integer', 'format' => 'int64', 'example' => '1073741824'], + 'CapacityUsed' => ['description' => '账户下所有Namespace的已用容量,单位为字节。', 'type' => 'integer', 'format' => 'int64', 'example' => '10048576'], + ], ], ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据开始时间点。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'最小数据粒度为1小时。'."\n" - ."\n" - .'默认读取过去24小时数据。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-11-29T00:00:00Z', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '输入参数无效'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => '账号输入不对,比如输入为空'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'namespace输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'key输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'key长度不能超过512B'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'value长度不能越过2000000B'], ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-11-30T00:00:00Z', - ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'namespace容量超过限制,单个namespace最大容量为1G'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => '鉴权参数输入错误'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => '您输入的鉴权时间参数无效,请检查参数值后重试。'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => '您输入的token无效,请检查并输入正确的token后进行重试。'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => '资源校验失败'], ], [ - 'name' => 'Interval', - 'in' => 'query', - 'schema' => [ - 'description' => '数据粒度,支持300秒和3600秒,默认为300秒即五分钟,但需要和时间跨度综合判定。', - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account does not exist.', 'description' => '账号不存在,未创建'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'namespace不存在'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => '请求的key不存在'], + ], + 406 => [ + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'namespace已存在'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'namespace个数超过quota限制'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'key个数超过quota限制'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests are submitted.', 'description' => '请求速率过快'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'key put/delete操作太频繁'], ], + ], + 'title' => '查询KV信息', + 'changeSet' => [ + ['createdAt' => '2024-08-21T05:56:51.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2024-08-20T08:19:40.000Z', 'description' => '响应参数发生变更、响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnKvAccount'], + ], + ], + 'ramActions' => [ [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '设备名称。若指定则返回对应设备的数据,,不指定则为所有设备合并。', - 'type' => 'string', - 'required' => false, - 'example' => 'devicename', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnKvAccount', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Status\\": \\"online\\",\\n \\"RequestId\\": \\"D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C\\",\\n \\"NamespaceUsed\\": 1,\\n \\"NamespaceQuota\\": 10,\\n \\"CapacityString\\": \\"1 GB\\",\\n \\"CapacityUsedString\\": \\"100 MB\\",\\n \\"NamespaceList\\": [\\n {\\n \\"Status\\": \\"online\\",\\n \\"Namespace\\": \\"ns1\\",\\n \\"NamespaceId\\": \\"12423131231****\\",\\n \\"Description\\": \\"the first namespace\\",\\n \\"CapacityString\\": \\"1 GB\\",\\n \\"CapacityUsedString\\": \\"100 MB\\",\\n \\"Capacity\\": 1073741824,\\n \\"CapacityUsed\\": 10048576\\n }\\n ],\\n \\"Capacity\\": 1073741824,\\n \\"CapacityUsed\\": 10048576\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnKvAccountResponse>\\n <Status>online,offline</Status>\\n <RequestId>D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C</RequestId>\\n <NamespaceUsed>1</NamespaceUsed>\\n <NamespaceQuota>10</NamespaceQuota>\\n <CapacityString>1 GB</CapacityString>\\n <CapacityUsedString>100 MB</CapacityUsedString>\\n <NamespaceList>\\n <Status>online</Status>\\n <Namespace>ns1</Namespace>\\n <NamespaceId>12423131231****</NamespaceId>\\n <Description>the first namespace</Description>\\n <CapacityString>1 GB</CapacityString>\\n <CapacityUsedString>100 MB</CapacityUsedString>\\n </NamespaceList>\\n</DescribeDcdnKvAccountResponse>","errorExample":""}]', + ], + 'DescribeDcdnKvAccountStatus' => [ + 'summary' => '查询账户的KV状态信息。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'DevicePort', - 'in' => 'query', - 'schema' => [ - 'description' => '设备端口。若指定则返回对应设备端口的数据,不指定则为所有端口。该字段必须在指定了**DeviceName**的时候才可以生效。', - 'type' => 'string', - 'required' => false, - 'example' => '123', - ], + 'AK' => [], ], ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '138504', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2018-11-30T00:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2018-11-29T00:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'E9D3257A-1B7C-414C-90C1-8D07AC47BCAC', - ], - 'BgpDataInterval' => [ - 'description' => '每个时间间隔的BGP带宽情况。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Out' => [ - 'description' => '出向带宽,单位:Bps。', - 'type' => 'number', - 'format' => 'float', - 'example' => '183', - ], - 'In' => [ - 'description' => '入向带宽,单位:Bps。', - 'type' => 'number', - 'format' => 'float', - 'example' => '318', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2018-11-29T20:00:00Z', - ], - ], - ], - ], + 'Status' => ['description' => '账户状态。'."\n" + ."\n" + .'- **online**:开启。'."\n" + .'- **offline**:关闭。', 'type' => 'string', 'example' => 'online'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '5C1E43DC-9E51-4771-82C0-7D5ECEB547A1'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '输入参数无效'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => '账号输入不对,比如输入为空'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'namespace输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'key输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'key长度不能超过512B'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'value长度不能越过2000000B'], + ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'namespace容量超过限制,单个namespace最大容量为1G'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => '鉴权参数输入错误'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => '您输入的鉴权时间参数无效,请检查参数值后重试。'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => '您输入的token无效,请检查并输入正确的token后进行重试。'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => '资源校验失败'], + ], + [ + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account does not exist.', 'description' => '账号不存在,未创建'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'namespace不存在'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => '请求的key不存在'], + ], + 406 => [ + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'namespace已存在'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'namespace个数超过quota限制'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'key个数超过quota限制'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests are submitted.', 'description' => '请求速率过快'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'key put/delete操作太频繁'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2018-11-30T00:00:00Z\\",\\n \\"StartTime\\": \\"2018-11-29T00:00:00Z\\",\\n \\"RequestId\\": \\"E9D3257A-1B7C-414C-90C1-8D07AC47BCAC\\",\\n \\"BgpDataInterval\\": [\\n {\\n \\"Out\\": 183,\\n \\"In\\": 318,\\n \\"TimeStamp\\": \\"2018-11-29T20:00:00Z\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnBgpBpsDataResponse>\\n<RequestId>E9D3257A-1B7C-414C-90C1-8D07AC47BCAC</RequestId>\\n<EndTime>2015-11-30T00:00:00Z</EndTime>\\n<StartTime>2015-11-29T00:00:00Z</StartTime>\\n<BgpDataInterval>\\n <TimeStamp>2015-11-29T20:00:00Z</TimeStamp>\\n <In>318</In>\\n <Out>183</Out>\\n</BgpDataInterval>\\n<BgpDataInterval>\\n <TimeStamp>2015-11-29T20:05:00Z</TimeStamp>\\n <In>312</In>\\n <Out>331</Out>\\n</BgpDataInterval>\\n</DescribeDcdnBgpBpsDataResponse>","errorExample":""}]', - 'title' => '查询BGP带宽数据', - 'description' => '- 不指定StartTime和EndTime时,该接口默认读取过去24小时的数据,同时支持按指定的起止时间查询,两者需要同时指定。'."\n" - .'- 指定多条线路时数据聚合处理。'."\n" - .'- 最多可获取最近90天的数据。'."\n" - .'- StartTime和EndTime最大支持31天跨度。'."\n" - .'- 数据跨度72小时内(包含)可以支持5分钟粒度,72小时以上只支持小时粒度。'."\n" - .'- 单用户调用频率:5次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnBgpTrafficData' => [ - 'summary' => '调用DescribeDcdnBgpTrafficData查询BGP加速五分钟粒度流量数据。', - 'methods' => [ - 'get', - 'post', + 'title' => '查询账户的KV状态信息', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnKvAccountStatus'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnKvAccountStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Status\\": \\"online\\",\\n \\"RequestId\\": \\"5C1E43DC-9E51-4771-82C0-7D5ECEB547A1\\"\\n}","type":"json"}]', + ], + 'DescribeDcdnKvNamespace' => [ + 'summary' => '调用DescribeDcdnKvNamespace查询某个Namespace的信息。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -14632,106 +13546,133 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '121114', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Isp', + 'name' => 'Namespace', 'in' => 'query', + 'schema' => ['description' => 'Namespace名称。', 'type' => 'string', 'required' => true, 'example' => 'ns1', 'maxLength' => 64, 'pattern' => '^[0-9a-zA-Z_-]+$'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '需要查询的线路,查询多条路线用英文逗号(,)分隔。指定多条线路时进行聚合处理,默认为所有线路.。'."\n" - ."\n" - .'可选值:'."\n" - .'- cu:联通。'."\n" - .'- cmi:移动。'."\n" - .'- ct:电信。', - 'type' => 'string', - 'required' => false, - 'example' => 'cu', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'Namespace状态,取值:'."\n" + ."\n" + .'- **online**:正常。'."\n" + .'- **delete**:待删除。'."\n" + .'- **deleting**:删除中。'."\n" + .'- **deleted**:已删除。', 'type' => 'string', 'example' => 'online'], + 'Namespace' => ['description' => 'Namespace名称。', 'type' => 'string', 'example' => 'ns1'], + 'NamespaceId' => ['description' => 'Namespace ID。', 'type' => 'string', 'example' => '12423131231****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C'], + 'Description' => ['description' => 'Namespace描述信息。', 'type' => 'string', 'example' => 'the first namespace'], + 'CapacityString' => ['description' => 'Namespace可用容量。', 'type' => 'string', 'example' => '1 GB'], + 'CapacityUsedString' => ['description' => 'Namespace已用容量。', 'type' => 'string', 'example' => '100 MB'], + 'Mode' => ['description' => '模式(Mode)'."\n" + .'- 普通模式(Normal):默认模式,在边缘未获取到KV时,尝试从中心查询KV信息,从而保证全局数据一致性。'."\n" + ."\n" + .'- 快速模式(Rapid):在边缘未获取到KV时,不再向中心查询,而是直接返回“key不存在”。开启该模式将提升KV查询性能。但可能造成KV查询命中率下降,若有需求请通过工单申请开通。', 'type' => 'string', 'example' => 'Normal'], + 'Capacity' => ['description' => 'Namespace可用容量,单位为字节。', 'type' => 'integer', 'format' => 'int64', 'example' => '1073741824'], + 'CapacityUsed' => ['description' => 'Namespace已用容量,单位为字节。', 'type' => 'integer', 'format' => 'int64', 'example' => '10048576'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '输入参数无效'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => '账号输入不对,比如输入为空'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'namespace输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'key输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'key长度不能超过512B'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'value长度不能越过2000000B'], + ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'namespace容量超过限制,单个namespace最大容量为1G'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => '鉴权参数输入错误'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => '您输入的鉴权时间参数无效,请检查参数值后重试。'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => '您输入的token无效,请检查并输入正确的token后进行重试。'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => '资源校验失败'], + ], [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据开始时间点。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'最小数据粒度为1小时。'."\n" - ."\n" - .'默认读取过去24小时数据。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-11-29T00:00:00Z', - ], + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account does not exist.', 'description' => '账号不存在,未创建'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'namespace不存在'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => '请求的key不存在'], + ], + 406 => [ + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'namespace已存在'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'namespace个数超过quota限制'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'key个数超过quota限制'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests are submitted.', 'description' => '请求速率过快'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'key put/delete操作太频繁'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询Namespace信息', + 'changeSet' => [ + ['createdAt' => '2025-04-02T06:58:00.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-08-20T09:12:55.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2024-03-21T09:43:49.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnKvNamespace'], ], + ], + 'ramActions' => [ [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-11-30T00:00:00Z', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnKvNamespace', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Status\\": \\"online\\",\\n \\"Namespace\\": \\"ns1\\",\\n \\"NamespaceId\\": \\"12423131231****\\",\\n \\"RequestId\\": \\"D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C\\",\\n \\"Description\\": \\"the first namespace\\",\\n \\"CapacityString\\": \\"1 GB\\",\\n \\"CapacityUsedString\\": \\"100 MB\\",\\n \\"Mode\\": \\"Normal\\",\\n \\"Capacity\\": 1073741824,\\n \\"CapacityUsed\\": 10048576\\n}","type":"json"}]', + ], + 'DescribeDcdnL2Ips' => [ + 'methods' => ['get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Interval', - 'in' => 'query', - 'schema' => [ - 'description' => '数据粒度,支持300秒和3600秒,默认为300秒即五分钟,但需要和时间跨度综合判定。', - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'AK' => [], ], ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '162185', + 'abilityTreeNodes' => ['FEATUREdcdnL8HX1L'], + 'autoTest' => true, + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2018-11-30T00:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2018-11-29T00:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'E9D3257A-1B7C-414C-90C1-8D07AC47BCAC', - ], - 'BgpDataInterval' => [ - 'description' => '每个时间间隔的BGP流量情况。', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'C370DAF1-C838-4288-A1A0-9A87633D248E'], + 'Vips' => [ + 'description' => '节点IP段列表,IP段以CIDR形式表示。', 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Out' => [ - 'description' => '出向流量,单位:Byte。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '183', - ], - 'In' => [ - 'description' => '入向流量,单位:Byte。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '318', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2018-11-29T20:00:00Z', - ], - ], - ], + 'items' => ['description' => '具体IP段信息。', 'type' => 'string', 'example' => '111.XXX.XXX.111/25'], ], ], ], @@ -14739,50 +13680,41 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'UserWithoutConfLabel', 'errorMessage' => 'the user has not configured the required label information, such as L2IpGroup.', 'description' => '用户没有配置需要的配置标签信息'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2018-11-30T00:00:00Z\\",\\n \\"StartTime\\": \\"2018-11-29T00:00:00Z\\",\\n \\"RequestId\\": \\"E9D3257A-1B7C-414C-90C1-8D07AC47BCAC\\",\\n \\"BgpDataInterval\\": [\\n {\\n \\"Out\\": 183,\\n \\"In\\": 318,\\n \\"TimeStamp\\": \\"2018-11-29T20:00:00Z\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<RequestId>E9D3257A-1B7C-414C-90C1-8D07AC47BCAC</RequestId>\\n<EndTime>2015-11-30T00:00:00Z</EndTime>\\n<StartTime>2015-11-29T00:00:00Z</StartTime>\\n<BgpDataInterval>\\n <TimeStamp>2015-11-29T20:00:00Z</TimeStamp>\\n <In>318</In>\\n <Out>183</Out>\\n</BgpDataInterval>\\n<BgpDataInterval>\\n <TimeStamp>2015-11-29T20:05:00Z</TimeStamp>\\n <In>312</In>\\n <Out>331</Out>\\n</BgpDataInterval>","errorExample":""}]', - 'title' => '查询BGP流量数据', - 'description' => '- 不指定StartTime和EndTime时,该接口默认读取过去24小时的数据,同时支持按指定的起止时间查询,两者需要同时指定。'."\n" - .'- 指定多条线路时数据聚合处理。'."\n" - .'- 最多可获取最近90天的数据。'."\n" - .'- StartTime和EndTime最大支持31天跨度。'."\n" - .'- 数据跨度72小时内(包含)可以支持5分钟粒度,72小时以上只支持小时粒度。'."\n" - .'- 单用户调用频率:5次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainMultiUsageData' => [ - 'summary' => '调用DescribeDcdnDomainMultiUsageData批量查询DCDN域名的各计量口径计费数据(最小粒度为5分钟), 不包含非请求类的计费项。', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询L2节点IP地址', + 'summary' => '调用DescribeDcdnL2Ips查询动态加速回客户域名源站DCDN L2节点IP段。', + 'description' => '>- 该功能测试中,仅向部分客户开放。'."\n" + .'>- 该接口需要<props="china"><ph>[提交工单](https://selfservice.console.aliyun.com/ticket/createIndex)</ph></props><props="intl"><ph>[提交工单](https://workorder-intl.console.aliyun.com/?spm=5176.2020520001.aliyun_topbar.18.dbd44bd3e4f845#/ticket/createIndex)</ph></props>申请后使用。带宽超过5Gbps或者QPS大于20万的域名业务请勿申请该接口权限,同时该接口需要用户实时调用更新IP列表,如未能及时更新,可能会造成服务中断,请谨慎申请。'."\n" + .'>- 单用户调用频率:100次/秒。', + 'changeSet' => [ + ['createdAt' => '2024-09-24T06:24:57.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnL2Ips'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnL2Ips', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C370DAF1-C838-4288-A1A0-9A87633D248E\\",\\n \\"Vips\\": [\\n \\"111.XXX.XXX.111/25\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnL2IpsResponse>\\n <RequestId>C370DAF1-C838-4288-A1A0-9A87633D248E</RequestId>\\n <Vips>111.XXX.XXX.111/25</Vips>\\n</DescribeDcdnL2IpsResponse>","errorExample":""}]', + ], + 'DescribeDcdnOriginSiteHealthStatus' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -14794,52 +13726,13 @@ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111499', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], - 'autoTest' => true, + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '若参数为空,默认返回所有加速域名分组数据。'."\n" - ."\n" - .'可输入需要查询的加速域名,支持批量域名查询,多个域名用半角逗号(,)分隔。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间点。'."\n" - .'- 日期格式按照ISO8601表示法,并使用UTC时间。'."\n" - .'- 格式为:YYYY-MM-DDThh:mm:ssZ。'."\n" - .'- 最小数据粒度为5分钟。'."\n" - .'- 不写默认读取过去24小时数据。'."\n" - .'- 需要和EndTime搭配使用', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间需大于起始时间。'."\n" - .'- 日期格式按照ISO8601表示法,并使用UTC时间。'."\n" - .'- 格式为:YYYY-MM-DDThh:mm:ssZ。'."\n" - .'- 需要和StartTime配合使用', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], + 'schema' => ['title' => 'A short description of struct', 'description' => '您的加速域名,仅支持单个域名设置。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ @@ -14847,153 +13740,61 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => '该条任务请求Id。', - 'type' => 'string', - 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', - ], - 'RequestPerInterval' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RequestDataModule' => [ - 'description' => '每五分钟各请求计量数据。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => '请求数类型,可以是StaticHttps,DynamicHttps,DynamicHttp,StaticQuic,DynamicQuic之一。', - 'type' => 'string', - 'example' => 'DynamicHttp', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'Domain' => [ - 'description' => '域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'Request' => [ - 'description' => '请求数,单位个。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1128', - ], - ], - ], - ], - ], - ], - 'TrafficPerInterval' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'TrafficDataModule' => [ - 'description' => '每五分钟的各流量计量数据。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => '类型,可以是Simple,IPA,WebSocket 之一。', - 'type' => 'string', - 'example' => 'Simple', - ], - 'Domain' => [ - 'description' => '域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'Area' => [ - 'description' => '大区名称。', - 'type' => 'string', - 'example' => 'CN', - ], - 'Bps' => [ - 'description' => 'BPS数据值,单位:bit/second', - 'type' => 'number', - 'format' => 'float', - 'example' => '11288111.1', - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], + 'OriginSiteStatus' => [ + 'description' => '加速域名对应的源站运行情况列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Host' => ['description' => '您在DCDN控制台上配置的源站域名,包括IPv4地址、IPv6地址、普通域名、OSS域名。', 'type' => 'string', 'example' => 'host.com'], + 'HealthStatus' => ['description' => 'DCDN的各个节点会定期对您配置的源站域名发起探测请求,若在5秒之内收到源站响应则认为探测成功。通过汇总各个节点的探测数据,根据成功比例计算出源站的运行状态。各个运行状态的说明如下:'."\n" + .'- unknown(未知):未能获取到对应源站的探测数据,这是由于该源站的配置短期内发生过变更,请您稍后重试。'."\n" + .'- healthy(健康):成功探测的比例高于80%。'."\n" + .'- degraded(部分健康):成功探测的比例小于等于80%,但高于0%。'."\n" + .'- critical(异常):对该源站的所有探测请求均失败。', 'type' => 'string', 'example' => 'healthy'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidTimeSpan', - 'errorMessage' => 'The time span exceeds the limit.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + 404 => [ + ['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'The domain does not exist, or it does not belong to you.', 'description' => '域名不存在或不属于当前用户。请检查您填写的域名书写是否正确,或者域名是否在当前账号中,查看域名是否过期。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\",\\n \\"RequestPerInterval\\": {\\n \\"RequestDataModule\\": [\\n {\\n \\"Type\\": \\"DynamicHttp\\",\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\",\\n \\"Domain\\": \\"example.com\\",\\n \\"Request\\": 1128\\n }\\n ]\\n },\\n \\"TrafficPerInterval\\": {\\n \\"TrafficDataModule\\": [\\n {\\n \\"Type\\": \\"Simple\\",\\n \\"Domain\\": \\"example.com\\",\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\",\\n \\"Area\\": \\"CN\\",\\n \\"Bps\\": 11288111.1\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainMultiUsageDataResponse>\\n<TrafficPerInterval>\\n <TrafficDataModule>\\n <TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\n <Domain>example.com</Domain>\\n <Bps>11288111.1</Bps>\\n <Type>Simple</Type>\\n <Area>CN</Area>\\n </TrafficDataModule>\\n <TrafficDataModule>\\n <TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\n <Domain>example.com</Domain>\\n <Bps>11288111.1</Bps>\\n <Type>IPA</Type>\\n <Area>CN</Area>\\n </TrafficDataModule>\\n</TrafficPerInterval>\\n<RequestPerInterval>\\n <RequestDataModule>\\n <TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\n <Domain>example.com</Domain>\\n <Request>1128</Request>\\n <Type>DynamicHttp</Type>\\n </RequestDataModule>\\n <RequestDataModule>\\n <TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\n <Domain>example.com</Domain>\\n <Request>1128</Request>\\n <Type>StaticHttps</Type>\\n </RequestDataModule>\\n</RequestPerInterval>\\n<RequestId>3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F</RequestId>\\n<StartTime>2017-12-10T20:00:00Z</StartTime>\\n<EndTime>2017-12-10T21:00:00Z</EndTime>\\n</DescribeDcdnDomainMultiUsageDataResponse>","errorExample":""}]', - 'title' => '批量查询用量数据', - 'description' => '- 不指定StartTime和EndTime时,默认读取过去 10 分钟的数据,同时支持按指定的起止时间查询,两者需要同时指定。'."\n" - .'- 支持批量域名查询,多个域名用逗号(半角)分隔, 多个域名会分开返回。'."\n" - .'- 最多可获取最近90天的数据。'."\n" - .'- 查询时间跨度不超过1小时', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainPvData' => [ - 'summary' => '调用DescribeDcdnDomainPvData查询域名最小1小时粒度的PV页面访问统计。', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询DCDN源站运行状态', + 'summary' => '调用DescribeDcdnOriginSiteHealthStatus查询DCDN加速域名的源站运行状态。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnOriginSiteHealthStatus'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnOriginSiteHealthStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\",\\n \\"OriginSiteStatus\\": [\\n {\\n \\"Host\\": \\"host.com\\",\\n \\"HealthStatus\\": \\"healthy\\"\\n }\\n ]\\n}","type":"json"}]', + ], + 'DescribeDcdnRealTimeDeliveryField' => [ + 'summary' => '调用DescribeDcdnRealTimeDeliveryField查询实时日志所有字段。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -15004,40 +13805,17 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdn9K10I1'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,仅支持查询单个域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2019-11-28T00:00:00Z', - ], - ], - [ - 'name' => 'EndTime', + 'name' => 'BusinessType', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2019-11-29T00:00:00Z', - ], + 'schema' => ['description' => '业务类型,取值:'."\n" + ."\n" + .'- **cdn_log_access_l1**(默认值):全站加速 L1 节点访问日志。'."\n" + .'- **cdn_log_origin**:回源日志。'."\n" + .'- **cdn_log_er**:ER日志。', 'type' => 'string', 'required' => false, 'example' => 'cdn_log_access_l1', 'default' => 'dcdn_log_access_l1'], ], ], 'responses' => [ @@ -15045,96 +13823,67 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2019-11-29T00:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2019-11-28T00:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BCD7D917-76F1-442F-BB75-C810DE34C761', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,单位:秒。', - 'type' => 'string', - 'example' => '3600', - ], - 'PvDataInterval' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4'], + 'Content' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'UsageData' => [ - 'description' => '每个时间间隔的页面访问次数。', + 'Fields' => [ + 'description' => '返回参数内容。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Value' => [ - 'description' => '详细使用数据。', - 'type' => 'string', - 'example' => '9292', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2015-11-28T03:00:00Z', - ], + 'Description' => ['description' => '字段描述。', 'type' => 'string', 'example' => 'Access time'], + 'FieldName' => ['description' => '字段名称。所有字段请参见[实时日志采集字段说明](~~324199~~)。', 'type' => 'string', 'example' => 'unixtime'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], + ['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery service is not authorized.', 'description' => '实时日志投递没有授权。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2019-11-29T00:00:00Z\\",\\n \\"StartTime\\": \\"2019-11-28T00:00:00Z\\",\\n \\"RequestId\\": \\"BCD7D917-76F1-442F-BB75-C810DE34C761\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"3600\\",\\n \\"PvDataInterval\\": {\\n \\"UsageData\\": [\\n {\\n \\"Value\\": \\"9292\\",\\n \\"TimeStamp\\": \\"2015-11-28T03:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainPvDataResponse>\\n<DataInterval>3600</DataInterval>\\n<RequestId>BCD7D917-76F1-442F-BB75-C810DE34C761</RequestId>\\n<DomainName>example.com</DomainName>\\n<EndTime>2019-11-29T00:00:00Z</EndTime>\\n<PvDataInterval>\\n <UsageData>\\n <TimeStamp>2015-11-29T03:00:00Z</TimeStamp>\\n <Value>9292</Value>\\n </UsageData>\\n <UsageData>\\n <TimeStamp>2015-11-29T23:00:00Z</TimeStamp>\\n <Value>9239</Value>\\n </UsageData>\\n</PvDataInterval>\\n<StartTime>2019-11-28T00:00:00Z</StartTime>\\n</DescribeDcdnDomainPvDataResponse>","errorExample":""}]', - 'title' => '查询PV页面访问统计', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4\\",\\n \\"Content\\": {\\n \\"Fields\\": [\\n {\\n \\"Description\\": \\"Access time\\",\\n \\"FieldName\\": \\"unixtime\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnRealTimeDeliveryFieldResponse>\\n<RequestId>3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4</RequestId>\\n<Content>\\n <Fields>\\n <FieldName>unixtime</FieldName>\\n <Description>访问时间</Description>\\n </Fields>\\n <Fields>\\n <FieldName>client_ip</FieldName>\\n <Description>用户真实IP</Description>\\n </Fields>\\n</Content>\\n</DescribeDcdnRealTimeDeliveryFieldResponse>","errorExample":""}]', + 'title' => '查询实时日志所有字段', + 'description' => '> 单用户调用频率:100次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainTopReferVisit' => [ - 'summary' => '调用DescribeDcdnDomainTopReferVisit查询域名某天的热门页面引用次数排名,支持获取最近90天的数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnRealTimeDeliveryField'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnRealTimeDeliveryField', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeDcdnRefreshQuota' => [ + 'summary' => '调用DescribeDcdnRefreshQuota查询当日刷新URL、预热URL及刷新目录的上限和剩余次数。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -15145,150 +13894,67 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], - ], - 'parameters' => [ - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '加速域名信息,只支持一个域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '开始获取数据的时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'查询某天的数据,建议传yyyy-MM-ddT16:00:00Z。'."\n" - ."\n" - .'默认读取过去24小时数据。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-10-03T16:00:00Z', - ], - ], - [ - 'name' => 'SortBy', - 'in' => 'query', - 'schema' => [ - 'description' => '排序方式。取值:'."\n" - .'- **traf**:流量。'."\n" - .'- **pv**:访问次数。'."\n" - ."\n" - .'默认取值为**pv**。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'pv', - ], - ], + 'abilityTreeCode' => '111537', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'StartTime' => [ - 'description' => '查询指定日期。', - 'type' => 'string', - 'example' => '2018-10-03T16:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '95994621-8382-464B-8762-C708E73568D1', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'TopReferList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ReferList' => [ - 'description' => '全部热门ReferUrl列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Flow' => [ - 'description' => '流量。单位:byte。', - 'type' => 'string', - 'example' => '460486880', - ], - 'FlowProportion' => [ - 'description' => '流量占比。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - 'VisitData' => [ - 'description' => '访问次数。', - 'type' => 'string', - 'example' => '229567', - ], - 'ReferDetail' => [ - 'description' => '完整的ReferUrl地址。', - 'type' => 'string', - 'example' => '192.XXX.XXX.1', - ], - 'VisitProportion' => [ - 'description' => '访问占比。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - ], - ], - ], - ], - ], + 'BlockQuota' => ['description' => '封禁上限,单位:个。', 'type' => 'string', 'example' => '100'], + 'RegexRemain' => ['description' => '当天剩余正则刷新数量,单位:个。', 'type' => 'string', 'example' => '100'], + 'BlockRemain' => ['description' => '当天剩余封禁数量,单位:个。', 'type' => 'string', 'example' => '100'], + 'PreloadRemain' => ['description' => '当天剩余预热URL数量,单位:个。', 'type' => 'string', 'example' => '500'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '42E0554B-80F4-4921-AED6-ACFB22CAAAD0'], + 'DirRemain' => ['description' => '当天剩余刷新目录数量,单位:个。', 'type' => 'string', 'example' => '100'], + 'UrlRemain' => ['description' => '当天剩余刷新URL数量,单位:个。', 'type' => 'string', 'example' => '2000'], + 'DirQuota' => ['description' => '当天刷新目录数量上限,单位:个。', 'type' => 'string', 'example' => '100'], + 'UrlQuota' => ['description' => '当天刷新URL数量上限,单位:个。', 'type' => 'string', 'example' => '2000'], + 'PreloadQuota' => ['description' => '当天预热URL数量上限,单位:个。', 'type' => 'string', 'example' => '500'], + 'RegexQuota' => ['description' => '当天正则刷新数量上限,单位:个。', 'type' => 'string', 'example' => '100'], + 'IgnoreParamsQuota' => ['description' => '当天忽略参数刷新数量上限,单位:个。', 'type' => 'string', 'example' => '100'], + 'IgnoreParamsRemain' => ['description' => '当天剩余忽略参数刷新数量,单位:个。', 'type' => 'string', 'example' => '10'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"StartTime\\": \\"2018-10-03T16:00:00Z\\",\\n \\"RequestId\\": \\"95994621-8382-464B-8762-C708E73568D1\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"TopReferList\\": {\\n \\"ReferList\\": [\\n {\\n \\"Flow\\": \\"460486880\\",\\n \\"FlowProportion\\": 0.35,\\n \\"VisitData\\": \\"229567\\",\\n \\"ReferDetail\\": \\"192.XXX.XXX.1\\",\\n \\"VisitProportion\\": 0.35\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainTopReferVisitResponse>\\n<TopReferList>\\n <ReferList>\\n <VisitData>229567</VisitData>\\n <ReferDetail>192.168.0.1</ReferDetail>\\n <VisitProportion>0.35</VisitProportion>\\n <Flow>460486880</Flow>\\n <FlowProportion>0.35</FlowProportion>\\n </ReferList>\\n <ReferList>\\n <VisitData>2496</VisitData>\\n <ReferDetail>10.10.10.10</ReferDetail>\\n <VisitProportion>0.35</VisitProportion>\\n <Flow>460486880</Flow>\\n <FlowProportion>0.35</FlowProportion>\\n </ReferList>\\n <ReferList>\\n <VisitData>448</VisitData>\\n <ReferDetail>demo.aliyundoc.com</ReferDetail>\\n <VisitProportion>0.35</VisitProportion>\\n <Flow>460486880</Flow>\\n <FlowProportion>0.35</FlowProportion>\\n </ReferList>\\n <ReferList>\\n <VisitData>3</VisitData>\\n <ReferDetail>example.aliyundoc.com</ReferDetail>\\n <VisitProportion>0.35</VisitProportion>\\n <Flow>460486880</Flow>\\n <FlowProportion>0.35</FlowProportion>\\n </ReferList>\\n</TopReferList>\\n<RequestId>95994621-8382-464B-8762-C708E73568D1</RequestId>\\n<DomainName>example.com</DomainName>\\n<StartTime>2018-10-03T16:00:00Z</StartTime>\\n</DescribeDcdnDomainTopReferVisitResponse>","errorExample":""}]', - 'title' => '查询热门页面引用次数排名', - 'description' => '- 不指定StartTime时,默认读取过去1天的数据。'."\n" - .'- 只支持查询一个域名。', + 'title' => '查询缓存刷新预热数量信息', + 'description' => '> - 刷新预热类接口包含**RefreshDcdnObjectCaches**刷新接口和**PreloadDcdnObjectCaches**预热接口。'."\n" + .'> - 单用户调用频率:20次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainTopUrlVisit' => [ - 'summary' => '调用DescribeDcdnDomainTopUrlVisit获取加速域名某天内的热门URL列表。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2023-03-23T06:40:22.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2022-10-27T03:07:45.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnRefreshQuota'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnRefreshQuota', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"BlockQuota\\": \\"100\\",\\n \\"RegexRemain\\": \\"100\\",\\n \\"BlockRemain\\": \\"100\\",\\n \\"PreloadRemain\\": \\"500\\",\\n \\"RequestId\\": \\"42E0554B-80F4-4921-AED6-ACFB22CAAAD0\\",\\n \\"DirRemain\\": \\"100\\",\\n \\"UrlRemain\\": \\"2000\\",\\n \\"DirQuota\\": \\"100\\",\\n \\"UrlQuota\\": \\"2000\\",\\n \\"PreloadQuota\\": \\"500\\",\\n \\"RegexQuota\\": \\"100\\",\\n \\"IgnoreParamsQuota\\": \\"100\\",\\n \\"IgnoreParamsRemain\\": \\"10\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnRefreshQuotaResponse>\\n <BlockQuota>100</BlockQuota>\\n <RegexRemain>100</RegexRemain>\\n <BlockRemain>100</BlockRemain>\\n <PreloadRemain>500</PreloadRemain>\\n <RequestId>42E0554B-80F4-4921-AED6-ACFB22CAAAD0</RequestId>\\n <DirRemain>100</DirRemain>\\n <UrlRemain>2000</UrlRemain>\\n <DirQuota>100</DirQuota>\\n <UrlQuota>2000</UrlQuota>\\n <PreloadQuota>500</PreloadQuota>\\n <RegexQuota>100</RegexQuota>\\n <IgnoreParamsQuota>100</IgnoreParamsQuota>\\n <IgnoreParamsRemain>10</IgnoreParamsRemain>\\n</DescribeDcdnRefreshQuotaResponse>","errorExample":""}]', + ], + 'DescribeDcdnRefreshTaskById' => [ + 'summary' => '调用DescribeDcdnRefreshTaskById通过任务编号查询刷新或预热是否在全网生效。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -15299,50 +13965,20 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeCode' => '111538', + 'abilityTreeNodes' => ['FEATUREdcdnBCJPGN'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,只支持传入一个域名。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '开始获取数据的时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ。'."\n" - ."\n" - .'如果需要查询某天的数据,建议传入:YYYY-MM-DDT16:00:00Z。'."\n" - ."\n" - .'> 不传该参数默认读取过去24小时的数据。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-10-03T16:00:00Z', - ], - ], - [ - 'name' => 'SortBy', + 'name' => 'TaskId', 'in' => 'query', - 'schema' => [ - 'description' => '排序方式。取值:'."\n" - .'- **traf**:流量。'."\n" - .'- **pv**:访问次数。'."\n" - ."\n" - .'默认值为**pv**。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'pv', - ], + 'schema' => ['description' => '待查询的任务ID。具体如下:'."\n" + ."\n" + .'- 调用[RefreshDcdnObjectCaches](~~RefreshDcdnObjectCaches~~)接口,获取刷新任务ID。'."\n" + .'- 调用[PreloadDcdnObjectCaches](~~PreloadDcdnObjectCaches~~)接口,获取预热任务ID。'."\n" + ."\n" + .'> 每次调用最多可以传入10个任务ID,多个任务ID用英文逗号(,)分隔。', 'type' => 'string', 'required' => true, 'example' => '113681**'], ], ], 'responses' => [ @@ -15350,276 +13986,89 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'StartTime' => [ - 'description' => '查询指定日期。', - 'type' => 'string', - 'example' => '2018-10-03T16:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '64D28B53-5902-409B-94F6-FD46680144FE', - ], - 'DomainName' => [ - 'description' => '加速域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'AllUrlList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'UrlList' => [ - 'description' => '全部热门URL列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Flow' => [ - 'description' => '流量。单位:byte。', - 'type' => 'string', - 'example' => '460486880', - ], - 'UrlDetail' => [ - 'description' => '完整的URL地址。', - 'type' => 'string', - 'example' => 'http://example.com/nn_live/nn_x64/a0.m3u8', - ], - 'FlowProportion' => [ - 'description' => '流量占比。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - 'VisitData' => [ - 'description' => '访问次数。', - 'type' => 'string', - 'example' => '161673', - ], - 'VisitProportion' => [ - 'description' => '访问占比。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - ], - ], - ], - ], - ], - 'Url200List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'UrlList' => [ - 'description' => '返回为2xx的URL列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Flow' => [ - 'description' => '流量。单位:byte。', - 'type' => 'string', - 'example' => '460486880', - ], - 'UrlDetail' => [ - 'description' => '完整的URL地址。', - 'type' => 'string', - 'example' => 'http://example.com/nn_live/nn_x64/a0.m3u8', - ], - 'FlowProportion' => [ - 'description' => '流量占比。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - 'VisitData' => [ - 'description' => '访问次数。', - 'type' => 'string', - 'example' => '161673', - ], - 'VisitProportion' => [ - 'description' => '访问占比。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - ], - ], - ], - ], - ], - 'Url300List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'UrlList' => [ - 'description' => '返回为3xx的URL列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Flow' => [ - 'description' => '流量。单位:byte。', - 'type' => 'string', - 'example' => '460486880', - ], - 'UrlDetail' => [ - 'description' => '完整的URL地址。', - 'type' => 'string', - 'example' => 'http://example.com/nn_live/nn_x64/a0.m3u8', - ], - 'FlowProportion' => [ - 'description' => '流量占比。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - 'VisitData' => [ - 'description' => '访问次数。', - 'type' => 'string', - 'example' => '161673', - ], - 'VisitProportion' => [ - 'description' => '访问占比。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - ], - ], - ], - ], - ], - 'Url400List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'UrlList' => [ - 'description' => '返回为4xx的URL列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Flow' => [ - 'description' => '流量。单位:byte。', - 'type' => 'string', - 'example' => '460486880', - ], - 'UrlDetail' => [ - 'description' => '完整的URL地址。', - 'type' => 'string', - 'example' => 'http://example.com/nn_live/nn_x64/a0.m3u8', - ], - 'FlowProportion' => [ - 'description' => '流量占比。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - 'VisitData' => [ - 'description' => '访问次数。', - 'type' => 'string', - 'example' => '161673', - ], - 'VisitProportion' => [ - 'description' => '访问占比。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - ], - ], - ], - ], - ], - 'Url500List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'UrlList' => [ - 'description' => '返回为5xx的URL列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Flow' => [ - 'description' => '流量。单位:byte。', - 'type' => 'string', - 'example' => '460486880', - ], - 'UrlDetail' => [ - 'description' => '完整的URL地址。', - 'type' => 'string', - 'example' => 'http://example.com/nn_live/nn_x64/a0.m3u8', - ], - 'FlowProportion' => [ - 'description' => '流量占比。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - 'VisitData' => [ - 'description' => '访问次数。', - 'type' => 'string', - 'example' => '161673', - ], - 'VisitProportion' => [ - 'description' => '访问占比。', - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - ], - ], + 'TotalCount' => ['description' => '任务总个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'E0C2EF95-B1EC-4C93-855E-2059A7DA2B7B'], + 'Tasks' => [ + 'description' => '刷新或预热任务列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '任务状态。取值:'."\n" + ."\n" + .'- **Complete**:完成。'."\n" + .'- **Pending**:等待。'."\n" + .'- **Refreshing**:处理中。'."\n" + .'- **Timeout**:超时未执行。'."\n" + .'- **Canceled**:取消。'."\n" + .'- **Failed**:失败。', 'type' => 'string', 'example' => 'Complete'], + 'CreationTime' => ['description' => '任务创建时间。使用UTC时间表示,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2021-05-10T08:54:23Z'], + 'ObjectType' => ['description' => '刷新或预热任务类型。取值:'."\n" + ."\n" + .'- **file**:单文件刷新。'."\n" + ."\n" + .'- **directory**:目录刷新。'."\n" + ."\n" + .'- **preload**:单文件预热。', 'type' => 'string', 'example' => 'file'], + 'Process' => ['description' => '任务完成进度百分比。', 'type' => 'string', 'example' => '100%'], + 'Description' => ['description' => '刷新或预热失败后返回的错误描述。取值:'."\n" + ."\n" + .'- **Internal Error**:内部错误。'."\n" + .'- **Origin Timeout**:源站响应超时。'."\n" + .'- **Origin Return StatusCode 5XX**:源站响应5xx错误码。', 'type' => 'string', 'example' => 'Internal Error'], + 'ObjectPath' => ['description' => '刷新或预热对象的路径。', 'type' => 'string', 'example' => 'http://example.com/image_01.png'], + 'TaskId' => ['description' => '查询到的任务ID。', 'type' => 'string', 'example' => '113681**'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidDomainName.Malformed', - 'errorMessage' => 'The specified DomainName is invalid.', - ], + ['errorCode' => 'InvalidParameters', 'errorMessage' => 'The specified parameters are invalid.', 'description' => '参数非法。'], + ['errorCode' => 'InvalidTaskId.Malformed', 'errorMessage' => 'The specified TaskId is invalid.', 'description' => 'TaskId错误,请填写正确的TaskId。'], + ['errorCode' => 'InvalidTaskId', 'errorMessage' => 'The maximum number of taskIds is 10.', 'description' => 'taskIds个数不能超过10.'], + ['errorCode' => 'InvalidTime', 'errorMessage' => 'The query time cannot exceed the last 3 days.', 'description' => '查询时间不能超过最近3天。'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'The server is busy. Please try again later.', 'description' => '服务器忙,请稍后再试'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"StartTime\\": \\"2018-10-03T16:00:00Z\\",\\n \\"RequestId\\": \\"64D28B53-5902-409B-94F6-FD46680144FE\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"AllUrlList\\": {\\n \\"UrlList\\": [\\n {\\n \\"Flow\\": \\"460486880\\",\\n \\"UrlDetail\\": \\"http://example.com/nn_live/nn_x64/a0.m3u8\\",\\n \\"FlowProportion\\": 0.35,\\n \\"VisitData\\": \\"161673\\",\\n \\"VisitProportion\\": 0.35\\n }\\n ]\\n },\\n \\"Url200List\\": {\\n \\"UrlList\\": [\\n {\\n \\"Flow\\": \\"460486880\\",\\n \\"UrlDetail\\": \\"http://example.com/nn_live/nn_x64/a0.m3u8\\",\\n \\"FlowProportion\\": 0.35,\\n \\"VisitData\\": \\"161673\\",\\n \\"VisitProportion\\": 0.35\\n }\\n ]\\n },\\n \\"Url300List\\": {\\n \\"UrlList\\": [\\n {\\n \\"Flow\\": \\"460486880\\",\\n \\"UrlDetail\\": \\"http://example.com/nn_live/nn_x64/a0.m3u8\\",\\n \\"FlowProportion\\": 0.35,\\n \\"VisitData\\": \\"161673\\",\\n \\"VisitProportion\\": 0.35\\n }\\n ]\\n },\\n \\"Url400List\\": {\\n \\"UrlList\\": [\\n {\\n \\"Flow\\": \\"460486880\\",\\n \\"UrlDetail\\": \\"http://example.com/nn_live/nn_x64/a0.m3u8\\",\\n \\"FlowProportion\\": 0.35,\\n \\"VisitData\\": \\"161673\\",\\n \\"VisitProportion\\": 0.35\\n }\\n ]\\n },\\n \\"Url500List\\": {\\n \\"UrlList\\": [\\n {\\n \\"Flow\\": \\"460486880\\",\\n \\"UrlDetail\\": \\"http://example.com/nn_live/nn_x64/a0.m3u8\\",\\n \\"FlowProportion\\": 0.35,\\n \\"VisitData\\": \\"161673\\",\\n \\"VisitProportion\\": 0.35\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainTopUrlVisitResponse>\\r\\n\\t<AllUrlList>\\r\\n\\t\\t<UrlList>\\r\\n\\t\\t\\t<VisitData>161673</VisitData>\\r\\n\\t\\t\\t<UrlDetail>http://example.com/nn_live/nn_x64/a0.m3u8</UrlDetail>\\r\\n\\t\\t\\t<VisitProportion>0.35</VisitProportion>\\r\\n\\t\\t\\t<Flow>460486880</Flow>\\r\\n\\t\\t\\t<FlowProportion>0.35</FlowProportion>\\r\\n\\t\\t</UrlList>\\r\\n\\t\\t<UrlList>\\r\\n\\t\\t\\t<VisitData>37</VisitData>\\r\\n\\t\\t\\t<UrlDetail>http://example.com/nn_live/nn_x64/ZXg9MQ,,/HNJSMPP360.ts</UrlDetail>\\r\\n\\t\\t\\t<VisitProportion>0.35</VisitProportion>\\r\\n\\t\\t\\t<Flow>460486880</Flow>\\r\\n\\t\\t\\t<FlowProportion>0.35</FlowProportion>\\r\\n\\t\\t</UrlList>\\r\\n\\t</AllUrlList>\\r\\n\\t<Url300List>\\r\\n\\t\\t<UrlList>\\r\\n\\t\\t\\t<VisitData>161673</VisitData>\\r\\n\\t\\t\\t<UrlDetail>http://example.com/nn_live/nn_x64/aWQ9SE5KU0GNfbGl2ZQ,,/HNJSMPP360.m3u8</UrlDetail>\\r\\n\\t\\t\\t<VisitProportion>0.35</VisitProportion>\\r\\n\\t\\t\\t<Flow>460486880</Flow>\\r\\n\\t\\t\\t<FlowProportion>0.35</FlowProportion>\\r\\n\\t\\t</UrlList>\\r\\n\\t\\t<UrlList>\\r\\n\\t\\t\\t<VisitData>3</VisitData>\\r\\n\\t\\t\\t<UrlDetail>http://example.com/nn_live/nn_x64/aWQ9SE5KU01QUDZXg9MQ,,/HNJSMPP360.ts</UrlDetail>\\r\\n\\t\\t\\t<VisitProportion>0.35</VisitProportion>\\r\\n\\t\\t\\t<Flow>460486880</Flow>\\r\\n\\t\\t\\t<FlowProportion>0.35</FlowProportion>\\r\\n\\t\\t</UrlList>\\r\\n\\t</Url300List>\\r\\n\\t<Url400List>\\r\\n\\t\\t<UrlList>\\r\\n\\t\\t\\t<VisitData>1884</VisitData>\\r\\n\\t\\t\\t<UrlDetail>http://example.com/nn_live/nn_x64/aWQ9SE5KU01QUhbGxfcGNfbGl2ZQ,,/HNJSMPP360.m3u8</UrlDetail>\\r\\n\\t\\t\\t<VisitProportion>0.35</VisitProportion>\\r\\n\\t\\t\\t<Flow>460486880</Flow>\\r\\n\\t\\t\\t<FlowProportion>0.35</FlowProportion>\\r\\n\\t\\t</UrlList>\\r\\n\\t\\t<UrlList>\\r\\n\\t\\t\\t<VisitData>1</VisitData>\\r\\n\\t\\t\\t<UrlDetail>http://example.com/nn_live/nn_x64/aWQ9SEEwODgmpbmRleZPTE,/HNJSMPP360.ts</UrlDetail>\\r\\n\\t\\t\\t<VisitProportion>0.35</VisitProportion>\\r\\n\\t\\t\\t<Flow>460486880</Flow>\\r\\n\\t\\t\\t<FlowProportion>0.35</FlowProportion>\\r\\n\\t\\t</UrlList>\\r\\n\\t</Url400List>\\r\\n\\t<RequestId>64D28B53-5902-409B-94F6-FD46680144FE</RequestId>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<Url200List>\\r\\n\\t\\t<UrlList>\\r\\n\\t\\t\\t<VisitData>161673</VisitData>\\r\\n\\t\\t\\t<UrlDetail>http://example.com/nn_live/nn_x64/aWQ9SE5KU0bGxfcGNfbGl2ZQ,,/HNJSMPP360.m3u8</UrlDetail>\\r\\n\\t\\t\\t<VisitProportion>0.35</VisitProportion>\\r\\n\\t\\t\\t<Flow>460486880</Flow>\\r\\n\\t\\t\\t<FlowProportion>0.35</FlowProportion>\\r\\n\\t\\t</UrlList>\\r\\n\\t\\t<UrlList>\\r\\n\\t\\t\\t<VisitData>3</VisitData>\\r\\n\\t\\t\\t<UrlDetail>http://example.com/nn_live/nn_x64/aWQ9SE5KU01QUDMlPTIwMTxMDk5ZXg9MQ,,/HNJSMPP360.ts</UrlDetail>\\r\\n\\t\\t\\t<VisitProportion>0.35</VisitProportion>\\r\\n\\t\\t\\t<Flow>460486880</Flow>\\r\\n\\t\\t\\t<FlowProportion>0.35</FlowProportion>\\r\\n\\t\\t</UrlList>\\r\\n\\t</Url200List>\\r\\n\\t<StartTime>2018-10-03T16:00:00Z</StartTime>\\r\\n\\t<Url500List>\\r\\n\\t\\t<UrlList>\\r\\n\\t\\t\\t<VisitData>161673</VisitData>\\r\\n\\t\\t\\t<UrlDetail>http://example.com/nn_live/nn_x64/aWQ9SE5KU0GNfbGl2ZQ,,/HNJSMPP360.m3u8</UrlDetail>\\r\\n\\t\\t\\t<VisitProportion>0.35</VisitProportion>\\r\\n\\t\\t\\t<Flow>460486880</Flow>\\r\\n\\t\\t\\t<FlowProportion>0.35</FlowProportion>\\r\\n\\t\\t</UrlList>\\r\\n\\t\\t<UrlList>\\r\\n\\t\\t\\t<VisitData>3</VisitData>\\r\\n\\t\\t\\t<UrlDetail>http://example.com/nn_live/nn_x64/aWQ9SE5KU01QUDZXg9MQ,,/HNJSMPP360.ts</UrlDetail>\\r\\n\\t\\t\\t<VisitProportion>0.35</VisitProportion>\\r\\n\\t\\t\\t<Flow>460486880</Flow>\\r\\n\\t\\t\\t<FlowProportion>0.35</FlowProportion>\\r\\n\\t\\t</UrlList>\\r\\n\\t</Url500List>\\r\\n</DescribeDcdnDomainTopUrlVisitResponse>\\r\\n\\t\\r\\n","errorExample":""}]', - 'title' => '查询热门URL列表', - 'description' => '> 最多可获取近7天的数据。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 2,\\n \\"RequestId\\": \\"E0C2EF95-B1EC-4C93-855E-2059A7DA2B7B\\",\\n \\"Tasks\\": [\\n {\\n \\"Status\\": \\"Complete\\",\\n \\"CreationTime\\": \\"2021-05-10T08:54:23Z\\",\\n \\"ObjectType\\": \\"file\\",\\n \\"Process\\": \\"100%\\",\\n \\"Description\\": \\"Internal Error\\",\\n \\"ObjectPath\\": \\"http://example.com/image_01.png\\",\\n \\"TaskId\\": \\"113681**\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnRefreshTaskByIdResponse>\\n<RequestId>E0C2EF95-B1EC-4C93-855E-2059A7DA2B7B</RequestId>\\n<Tasks>\\n <CreationTime>2021-05-10T08:54:23Z</CreationTime>\\n <Description/>\\n <ObjectPath>http://example.com/image_01.png</ObjectPath>\\n <ObjectType>file</ObjectType>\\n <Process>100%</Process>\\n <Status>Complete</Status>\\n <TaskId>113681**</TaskId>\\n</Tasks>\\n<Tasks>\\n <CreationTime>2021-05-10T09:12:44Z</CreationTime>\\n <Description/>\\n <ObjectPath>http://example.com/image_02.png</ObjectPath>\\n <ObjectType>file</ObjectType>\\n <Process>99.37%</Process>\\n <Status>Refreshing</Status>\\n <TaskId>287367**</TaskId>\\n</Tasks>\\n<TotalCount>2</TotalCount>\\n</DescribeDcdnRefreshTaskByIdResponse>","errorExample":""}]', + 'title' => '查询刷新或预热任务详情', + 'description' => '> - 支持查询3天内(包含3天)的数据。'."\n" + .'> - 单用户调用频率为30次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainUvData' => [ - 'summary' => '调用DescribeDcdnDomainUvData获取加速域名1小时粒度的UV页面独立访问统计,支持获取最近90天的数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnRefreshTaskById'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnRefreshTaskById', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeDcdnRefreshTasks' => [ + 'summary' => '调用DescribeDcdnRefreshTasks查询刷新、预热状态是否在全网生效,支持查询3天内的数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -15630,282 +14079,243 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeCode' => '111539', + 'abilityTreeNodes' => ['FEATUREdcdnBCJPGN', 'FEATUREdcdnRELTJV', 'FEATUREdcdnEWYS3A', 'FEATUREdcdn4TTNAL'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'TaskId', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,仅支持查询单个域名。'."\n" - ."\n" - .'默认查询所有域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '任务ID,当您创建刷新或预热任务,会返回任务ID。', 'type' => 'string', 'required' => false, 'example' => '704225667'], ], [ - 'name' => 'StartTime', + 'name' => 'ObjectPath', + 'in' => 'query', + 'schema' => ['description' => '按路径查询,准确匹配。'."\n", 'type' => 'string', 'required' => false, 'example' => 'http://example.com/examplefile.txt'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '取得页数。取值范围为:**1**~**100000**。'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '42949672', 'example' => '2', 'default' => '1'], + ], + [ + 'name' => 'ObjectType', 'in' => 'query', 'schema' => [ - 'description' => '获取数据起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', + 'description' => '任务类型。'."\n" + ."\n" + .'- **file**:刷新URL。'."\n" + .'- **directory**:刷新目录。'."\n" + .'- **regex**:正则刷新。'."\n" + .'- **preload**:预热URL。'."\n" + ."\n" + .'当指定**DomainName**或**Status**时,该参数必填。', 'type' => 'string', 'required' => false, - 'example' => '2015-11-29T00:00:00Z', + 'example' => 'file', + 'enum' => ['file', 'directory', 'preload', 'IgnoreParams', 'regex'], ], ], [ - 'name' => 'EndTime', + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '加速域名,仅支持单个查询,默认查询所有加速域名。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], + ], + [ + 'name' => 'Status', 'in' => 'query', 'schema' => [ - 'description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + 'description' => '任务状态。'."\n" ."\n" - .'结束时间需大于起始时间。'."\n", + .'- **Complete**:完成。'."\n" + .'- **Refreshing**:处理中。'."\n" + .'- **Timeout**:超时未执行。'."\n" + .'- **Canceled**:取消。'."\n" + .'- **Failed**:失败。', 'type' => 'string', 'required' => false, - 'example' => '2015-11-30T00:00:00Z', + 'example' => 'Complete', + 'enum' => ['Complete', 'Refreshing', 'Failed'], ], ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '分页大小。默认值:**20**,最大值:**50**,取值范围:**1**~**50**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'example' => '20', 'default' => '20'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '开始时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2017-01-01T12:12:20Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2017-01-01T12:13:20Z'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2015-11-30T00:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2015-11-29T00:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'E9D3257A-1B7C-414C-90C1-8D07AC47BCAC', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,以秒为单位。', - 'type' => 'string', - 'example' => '3600', - ], - 'UvDataInterval' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '174F6032-AA26-470D-B90E-36F0EB205BEE'], + 'PageNumber' => ['description' => '页码。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'PageSize' => ['description' => '整页大小。'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'TotalCount' => ['description' => '任务数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '20'], + 'Tasks' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'UsageData' => [ - 'description' => '每个时间间隔的页面独立访问次数。'."\n", + 'Task' => [ + 'description' => '任务列表。'."\n", 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Value' => [ - 'description' => '详细使用数据。', - 'type' => 'string', - 'example' => '326', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2015-11-29T00:00:00Z', - ], + 'Status' => ['description' => '状态。'."\n" + ."\n" + .'- **Complete**:完成。'."\n" + ."\n" + .'- **Refreshing**:刷新中。'."\n" + ."\n" + .'- **Failed**:刷新失败。', 'type' => 'string', 'example' => 'Complete'], + 'CreationTime' => ['description' => '任务对象创建时间。为UTC时间。'."\n", 'type' => 'string', 'example' => '2014-11-27T08:23:22Z'], + 'ObjectType' => ['description' => '任务类型。'."\n" + .'- **file**:刷新URL。'."\n" + .'- **path**:刷新目录。'."\n" + .'- **regex**:正则刷新。'."\n" + .'- **preload**:预热URL。', 'type' => 'string', 'example' => 'file'], + 'Process' => ['description' => '进度百分比。'."\n", 'type' => 'string', 'example' => '10'], + 'Description' => ['description' => '刷新预热失败返回错误描述。'."\n" + ."\n" + .'- **InternalError**:内部错误。'."\n" + ."\n" + .'- **OriginTimeout**:源站响应超时。'."\n" + ."\n" + .'- **OriginReturn StatusCode 5XX**:源站响应5xx错误码。', 'type' => 'string', 'example' => 'InternalError'], + 'ObjectPath' => ['description' => '刷新对象路径。'."\n", 'type' => 'string', 'example' => 'http://example.com/examplefile.txt'], + 'TaskId' => ['description' => '任务ID。'."\n", 'type' => 'string', 'example' => '123'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], + ['errorCode' => 'InvalidTaskId.Malformed', 'errorMessage' => 'The specified TaskId is invalid.', 'description' => 'TaskId错误,请填写正确的TaskId。'], + ['errorCode' => 'MissingParameter.ObjectType', 'errorMessage' => 'The ObjectType parameter is required if DomainName or ObjectType is specified.', 'description' => '请填写ObjectType。'], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'DomainNameOverLimit', 'errorMessage' => 'A maximum of 500 domains are supported for each request.', 'description' => '一次最多只支持500个域名,请减少域名重新请求。'], + ['errorCode' => 'InvalidTime', 'errorMessage' => 'The query time cannot exceed the last 3 days.', 'description' => '查询时间不能超过最近3天。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], + ['errorCode' => 'InvalidObjectType.ValueNotSupported', 'errorMessage' => 'The specified ObjectType is not supported.', 'description' => 'ObjectType错误,请重新填写ObjectType。'], + ['errorCode' => 'InvalidStatus.ValueNotSupported', 'errorMessage' => 'The specified Status is not supported.', 'description' => 'Status错误,请填写正确的Status。'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'The server is busy. Please try again later.', 'description' => '服务器忙,请稍后再试'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-11-30T00:00:00Z\\",\\n \\"StartTime\\": \\"2015-11-29T00:00:00Z\\",\\n \\"RequestId\\": \\"E9D3257A-1B7C-414C-90C1-8D07AC47BCAC\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"3600\\",\\n \\"UvDataInterval\\": {\\n \\"UsageData\\": [\\n {\\n \\"Value\\": \\"326\\",\\n \\"TimeStamp\\": \\"2015-11-29T00:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainUvDataResponse>\\r\\n\\t<DataInterval>3600</DataInterval>\\r\\n\\t<RequestId>E9D3257A-1B7C-414C-90C1-8D07AC47BCAC</RequestId>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<EndTime>2015-11-30T00:00:00Z</EndTime>\\r\\n\\t<StartTime>2015-11-29T00:00:00Z</StartTime>\\r\\n\\t<UvDataInterval>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T20:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>318</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T18:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>318</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T03:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>329</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T21:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>316</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T07:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>319</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T00:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>326</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T11:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>321</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T10:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>313</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T08:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>331</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T01:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>324</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T04:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>330</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T14:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>335</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T12:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>318</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T23:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>310</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T17:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>309</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T22:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>320</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T16:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>309</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T02:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>317</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T06:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>309</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T19:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>308</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T13:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>347</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T15:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>341</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T05:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>347</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t\\t<UsageData>\\r\\n\\t\\t\\t<TimeStamp>2015-11-29T09:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<Value>312</Value>\\r\\n\\t\\t</UsageData>\\r\\n\\t</UvDataInterval>\\r\\n</DescribeDcdnDomainUvDataResponse>\\r\\n\\t\\r\\n","errorExample":""}]', - 'title' => '查询UV页面访问统计', - 'description' => '- 不指定StartTime和EndTime时,默认读取过去24小时的数据;指定StartTime和EndTime时,按指定的起止时间查询。'."\n" - .'- 只支持查询一个域名或当前用户下所有域名。', + 'title' => '查询刷新预热任务', + 'description' => '- 您可以根据任务ID或URL进行查询。'."\n" + .'- 支持同时指定**TaskId**与**ObjectPath**,如果**TaskId**与**ObjectPath**都不指定,默认查询3天内第一页的数据(20条)。'."\n" + .'- 只可查询最近3天内的数据。'."\n" + .' - 当您指定**DomainName**或**Status**时,必须填写**ObjectType**。'."\n" + .'- 单用户调用频率:5次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnTopDomainsByFlow' => [ - 'summary' => '调用DescribeDcdnTopDomainsByFlow查询用户按流量排名的域名,支持获取最近90天的数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2023-03-28T06:07:50.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2023-03-23T06:34:56.000Z', 'description' => '请求参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnRefreshTasks'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnRefreshTasks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"174F6032-AA26-470D-B90E-36F0EB205BEE\\",\\n \\"PageNumber\\": 2,\\n \\"PageSize\\": 2,\\n \\"TotalCount\\": 20,\\n \\"Tasks\\": {\\n \\"Task\\": [\\n {\\n \\"Status\\": \\"Complete\\",\\n \\"CreationTime\\": \\"2014-11-27T08:23:22Z\\",\\n \\"ObjectType\\": \\"file\\",\\n \\"Process\\": \\"10\\",\\n \\"Description\\": \\"InternalError\\",\\n \\"ObjectPath\\": \\"http://example.com/examplefile.txt\\",\\n \\"TaskId\\": \\"123\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnRefreshTasksResponse>\\n<Tasks>\\n <Task>\\n <CreationTime>2014-11-27T08:23:22Z</CreationTime>\\n <ObjectPath>http://example.com/examplefile.txt</ObjectPath>\\n <Status>Complete</Status>\\n <TaskId>704225667</TaskId>\\n <ObjectType>file</ObjectType>\\n <Process>100%</Process>\\n </Task>\\n <Task>\\n <CreationTime>2014-11-27T08:18:38Z</CreationTime>\\n <ObjectPath>http://example.edu/examplefile.txt</ObjectPath>\\n <Status>Complete</Status>\\n <TaskId>704222904</TaskId>\\n <ObjectType>file</ObjectType>\\n <Process>100%</Process>\\n </Task>\\n</Tasks>\\n<PageNumber>1</PageNumber>\\n<PageSize>10</PageSize>\\n<TotalCount>2</TotalCount>\\n<RequestId>174F6032-AA26-470D-B90E-36F0EB205BEE</RequestId>\\n</DescribeDcdnRefreshTasksResponse>","errorExample":""}]', + ], + 'DescribeDcdnRegionAndIsp' => [ + 'summary' => '调用DescribeDcdnRegionAndIsp获取地域和运营商列表。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111553', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeCode' => '111540', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [ - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2016-03-01T04:00:00Z', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'结束时间需大于起始时间。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2016-03-14T07:34:00Z', - ], - ], - [ - 'name' => 'Limit', - 'in' => 'query', - 'schema' => [ - 'description' => '域名获取数量限制,默认为**20**,取值支持**1**~**100**。'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '20', - 'default' => '20', - ], - ], - ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'DomainOnlineCount' => [ - 'description' => '账户下**正在运行**域名总数。'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '68', - ], - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2016-03-14T07:34:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2016-03-14T06:34:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4E09C5D7-E1CF-4CAA-A45E-8727F4C8FD70', - ], - 'DomainCount' => [ - 'description' => '账户下域名总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '68', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '2387C335-932C-4E1E-862C-1C4363B6DE72'], + 'Regions' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Region' => [ + 'description' => '地域列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'NameEn' => ['description' => '地域英文名称。', 'type' => 'string', 'example' => 'liaoning'], + 'NameZh' => ['description' => '地域中文名称。', 'type' => 'string', 'example' => '辽宁省'], + ], + ], + ], + ], ], - 'TopDomains' => [ + 'Isps' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'TopDomain' => [ - 'description' => '排名域名列表。', + 'Isp' => [ + 'description' => '运营商列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'MaxBps' => [ - 'description' => '带宽峰值。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '22139626', - ], - 'Rank' => [ - 'description' => '排名。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'TotalAccess' => [ - 'description' => '访问次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '3', - ], - 'TrafficPercent' => [ - 'description' => '流量占比。', - 'type' => 'string', - 'example' => '21.686305274906182', - ], - 'DomainName' => [ - 'description' => '域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'TotalTraffic' => [ - 'description' => '总流量。', - 'type' => 'string', - 'example' => '123', - ], - 'MaxBpsTime' => [ - 'description' => '带宽峰值时刻,使用 ISO8601 表示法,并使用UTC时间。', - 'type' => 'string', - 'example' => '2018-11-01T08:10:00Z', - ], + 'NameEn' => ['description' => '运营商英文名称。', 'type' => 'string', 'example' => 'unicom'], + 'NameZh' => ['description' => '运营商中文名称。', 'type' => 'string', 'example' => '联通'], ], ], ], @@ -15915,549 +14325,350 @@ ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainOnlineCount\\": 68,\\n \\"EndTime\\": \\"2016-03-14T07:34:00Z\\",\\n \\"StartTime\\": \\"2016-03-14T06:34:00Z\\",\\n \\"RequestId\\": \\"4E09C5D7-E1CF-4CAA-A45E-8727F4C8FD70\\",\\n \\"DomainCount\\": 68,\\n \\"TopDomains\\": {\\n \\"TopDomain\\": [\\n {\\n \\"MaxBps\\": 22139626,\\n \\"Rank\\": 1,\\n \\"TotalAccess\\": 3,\\n \\"TrafficPercent\\": \\"21.686305274906182\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"TotalTraffic\\": \\"123\\",\\n \\"MaxBpsTime\\": \\"2018-11-01T08:10:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnTopDomainsByFlowResponse>\\r\\n\\t<DomainCount>68</DomainCount>\\r\\n\\t<DomainOnlineCount>68</DomainOnlineCount>\\r\\n\\t<RequestId>4E09C5D7-E1CF-4CAA-A45E-8727F4C8FD70</RequestId>\\r\\n\\t<EndTime>2016-03-14T07:34:00Z</EndTime>\\r\\n\\t<TopDomains>\\r\\n\\t\\t<TopDomain>\\r\\n\\t\\t\\t<MaxBps>22139626</MaxBps>\\r\\n\\t\\t\\t<Rank>1</Rank>\\r\\n\\t\\t\\t<TrafficPercent>30.64191989360235</TrafficPercent>\\r\\n\\t\\t\\t<TotalTraffic>2043859876683.9001</TotalTraffic>\\r\\n\\t\\t\\t<TotalAccess>107784230</TotalAccess>\\r\\n\\t\\t\\t<DomainName>example.com</DomainName>\\r\\n\\t\\t\\t<MaxBpsTime>2018-11-01T08:10:00Z</MaxBpsTime>\\r\\n\\t\\t</TopDomain>\\r\\n\\t\\t<TopDomain>\\r\\n\\t\\t\\t<MaxBps>1008772351</MaxBps>\\r\\n\\t\\t\\t<Rank>2</Rank>\\r\\n\\t\\t\\t<TrafficPercent>25.936032624725815</TrafficPercent>\\r\\n\\t\\t\\t<TotalTraffic>1729970466149.2002</TotalTraffic>\\r\\n\\t\\t\\t<TotalAccess>3843128</TotalAccess>\\r\\n\\t\\t\\t<DomainName>example.com</DomainName>\\r\\n\\t\\t\\t<MaxBpsTime>2018-11-01T08:10:00Z</MaxBpsTime>\\r\\n\\t\\t</TopDomain>\\r\\n\\t\\t<TopDomain>\\r\\n\\t\\t\\t<MaxBps>16046911</MaxBps>\\r\\n\\t\\t\\t<Rank>3</Rank>\\r\\n\\t\\t\\t<TrafficPercent>21.686305274906182</TrafficPercent>\\r\\n\\t\\t\\t<TotalTraffic>1446507574551.6</TotalTraffic>\\r\\n\\t\\t\\t<TotalAccess>547567</TotalAccess>\\r\\n\\t\\t\\t<DomainName>example.com</DomainName>\\r\\n\\t\\t\\t<MaxBpsTime>2018-11-01T08:10:00Z</MaxBpsTime>\\r\\n\\t\\t</TopDomain>\\r\\n\\t\\t<TopDomain>\\r\\n\\t\\t\\t<MaxBps>15990893</MaxBps>\\r\\n\\t\\t\\t<Rank>4</Rank>\\r\\n\\t\\t\\t<TrafficPercent>21.261081185428147</TrafficPercent>\\r\\n\\t\\t\\t<TotalTraffic>1418144519687.5</TotalTraffic>\\r\\n\\t\\t\\t<TotalAccess>548380</TotalAccess>\\r\\n\\t\\t\\t<DomainName>example.com</DomainName>\\r\\n\\t\\t\\t<MaxBpsTime>2018-11-01T08:10:00Z</MaxBpsTime>\\r\\n\\t\\t</TopDomain>\\r\\n\\t\\t<TopDomain>\\r\\n\\t\\t\\t<MaxBps>473599</MaxBps>\\r\\n\\t\\t\\t<Rank>5</Rank>\\r\\n\\t\\t\\t<TrafficPercent>0.4308743788055894</TrafficPercent>\\r\\n\\t\\t\\t<TotalTraffic>28739937242.500004</TotalTraffic>\\r\\n\\t\\t\\t<TotalAccess>152150</TotalAccess>\\r\\n\\t\\t\\t<DomainName>example.com</DomainName>\\r\\n\\t\\t\\t<MaxBpsTime>2018-11-01T08:10:00Z</MaxBpsTime>\\r\\n\\t\\t</TopDomain>\\r\\n\\t</TopDomains>\\r\\n\\t<StartTime>2016-03-01T04:00:00Z</StartTime>\\r\\n</DescribeDcdnTopDomainsByFlowResponse>\\r\\n\\t\\r\\n","errorExample":""}]', - 'title' => '查询按流量排名的域名', - 'description' => '不指定StartTime和EndTime时,默认读取当月的数据;指定StartTime和EndTime时,按指定的起止时间查询。', + 'title' => '查询地域和运营商列表', + 'description' => '> 单用户调用频率:30次/秒。 ', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeKvUsageData' => [ - 'summary' => '调用DescribeKvUsageData查询KV存储的用量数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2022-10-13T02:33:33.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnRegionAndIsp'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnRegionAndIsp', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"2387C335-932C-4E1E-862C-1C4363B6DE72\\",\\n \\"Regions\\": {\\n \\"Region\\": [\\n {\\n \\"NameEn\\": \\"liaoning\\",\\n \\"NameZh\\": \\"辽宁省\\"\\n }\\n ]\\n },\\n \\"Isps\\": {\\n \\"Isp\\": [\\n {\\n \\"NameEn\\": \\"unicom\\",\\n \\"NameZh\\": \\"联通\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnRegionAndIspResponse>\\n <RequestId>2387C335-932C-4E1E-862C-1C4363B6DE72</RequestId>\\n <Regions>\\n <Region>\\n <NameEn>Papua New Guinea</NameEn>\\n <NameZh>巴布亚新几内亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Cambodia</NameEn>\\n <NameZh>柬埔寨</NameZh>\\n </Region>\\n <Region>\\n <NameEn>ningxia</NameEn>\\n <NameZh>宁夏回族自治区</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Kazakhstan</NameEn>\\n <NameZh>哈萨克斯坦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Paraguay</NameEn>\\n <NameZh>巴拉圭</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Solomon Islands</NameEn>\\n <NameZh>索罗门群岛</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Bahamas</NameEn>\\n <NameZh>巴哈马</NameZh>\\n </Region>\\n <Region>\\n <NameEn>qinghai</NameEn>\\n <NameZh>青海省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Mali</NameEn>\\n <NameZh>马里</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Panama</NameEn>\\n <NameZh>巴拿马</NameZh>\\n </Region>\\n <Region>\\n <NameEn>yunnan</NameEn>\\n <NameZh>云南省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Argentina</NameEn>\\n <NameZh>阿根廷</NameZh>\\n </Region>\\n <Region>\\n <NameEn>anhui</NameEn>\\n <NameZh>安徽省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Belize</NameEn>\\n <NameZh>伯利兹</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Zambia</NameEn>\\n <NameZh>赞比亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Bahrain</NameEn>\\n <NameZh>巴林</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Congo</NameEn>\\n <NameZh>刚果共和国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Guinea-Bissau</NameEn>\\n <NameZh>几内亚比绍</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Namibia</NameEn>\\n <NameZh>纳米比亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Finland</NameEn>\\n <NameZh>芬兰</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Palestinian Territory</NameEn>\\n <NameZh>巴勒斯坦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Georgia</NameEn>\\n <NameZh>格鲁吉亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Yemen</NameEn>\\n <NameZh>也门</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Puerto Rico</NameEn>\\n <NameZh>波多黎各</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Eritrea</NameEn>\\n <NameZh>厄立特里亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Madagascar</NameEn>\\n <NameZh>马达加斯加</NameZh>\\n </Region>\\n <Region>\\n <NameEn>fujian</NameEn>\\n <NameZh>福建省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Sweden</NameEn>\\n <NameZh>瑞典</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Malawi</NameEn>\\n <NameZh>马拉维</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Poland</NameEn>\\n <NameZh>波兰</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Jordan</NameEn>\\n <NameZh>约旦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Tunisia</NameEn>\\n <NameZh>突尼斯</NameZh>\\n </Region>\\n <Region>\\n <NameEn>jiangxi</NameEn>\\n <NameZh>江西省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>United Arab Emirates</NameEn>\\n <NameZh>阿拉伯联合酋长国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Kenya</NameEn>\\n <NameZh>肯尼亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Lebanon</NameEn>\\n <NameZh>黎巴嫩</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Djibouti</NameEn>\\n <NameZh>吉布提</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Azerbaijan</NameEn>\\n <NameZh>阿塞拜疆</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Czech Republic</NameEn>\\n <NameZh>捷克共和国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Mauritania</NameEn>\\n <NameZh>毛里塔尼亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>shanghai</NameEn>\\n <NameZh>上海市</NameZh>\\n </Region>\\n <Region>\\n <NameEn>sichuan</NameEn>\\n <NameZh>四川省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Israel</NameEn>\\n <NameZh>以色列</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Australia</NameEn>\\n <NameZh>澳大利亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Tajikistan</NameEn>\\n <NameZh>塔吉克斯坦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Myanmar</NameEn>\\n <NameZh>缅甸</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Cameroon</NameEn>\\n <NameZh>喀麦隆</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Cyprus</NameEn>\\n <NameZh>塞浦路斯</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Malaysia</NameEn>\\n <NameZh>马来西亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Iceland</NameEn>\\n <NameZh>冰岛</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Oman</NameEn>\\n <NameZh>阿曼</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Bosnia And Herzegovina</NameEn>\\n <NameZh>波斯尼亚和黑塞哥维那</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Armenia</NameEn>\\n <NameZh>亚美尼亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Gabon</NameEn>\\n <NameZh>加蓬</NameZh>\\n </Region>\\n <Region>\\n <NameEn>zhejiang</NameEn>\\n <NameZh>浙江省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Luxembourg</NameEn>\\n <NameZh>卢森堡</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Brazil</NameEn>\\n <NameZh>巴西</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Algeria</NameEn>\\n <NameZh>阿尔及利亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Slovenia</NameEn>\\n <NameZh>斯洛文尼亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Colombia</NameEn>\\n <NameZh>哥伦比亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Ecuador</NameEn>\\n <NameZh>厄瓜多尔</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Moldova</NameEn>\\n <NameZh>摩尔多瓦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Lao People\'s Democratic Republic</NameEn>\\n <NameZh>老挝</NameZh>\\n </Region>\\n <Region>\\n <NameEn>China(Taiwan)</NameEn>\\n <NameZh>中国台湾</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Vanuatu</NameEn>\\n <NameZh>瓦努阿图</NameZh>\\n </Region>\\n <Region>\\n <NameEn>shandong</NameEn>\\n <NameZh>山东省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Italy</NameEn>\\n <NameZh>意大利</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Honduras</NameEn>\\n <NameZh>洪都拉斯</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Haiti</NameEn>\\n <NameZh>海地</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Russian Federation</NameEn>\\n <NameZh>俄罗斯</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Burundi</NameEn>\\n <NameZh>布隆迪</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Afghanistan</NameEn>\\n <NameZh>阿富汗</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Singapore</NameEn>\\n <NameZh>新加坡</NameZh>\\n </Region>\\n <Region>\\n <NameEn>beijing</NameEn>\\n <NameZh>北京市</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Netherlands</NameEn>\\n <NameZh>荷兰</NameZh>\\n </Region>\\n <Region>\\n <NameEn>China</NameEn>\\n <NameZh>中国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>liaoning</NameEn>\\n <NameZh>辽宁省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Kyrgyzstan</NameEn>\\n <NameZh>吉尔吉斯斯坦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Local Area Network</NameEn>\\n <NameZh>局域网</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Korea</NameEn>\\n <NameZh>韩国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>China(Hong Kong)</NameEn>\\n <NameZh>中国香港</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Cote D\'Ivoire</NameEn>\\n <NameZh>科特迪瓦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Bhutan</NameEn>\\n <NameZh>不丹</NameZh>\\n </Region>\\n <Region>\\n <NameEn>shaanxi</NameEn>\\n <NameZh>陕西省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Romania</NameEn>\\n <NameZh>罗马尼亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Togo</NameEn>\\n <NameZh>多哥</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Falkland Islands (Malvinas)</NameEn>\\n <NameZh>福克兰群岛(马尔维纳斯群岛)</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Philippines</NameEn>\\n <NameZh>菲律宾</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Uzbekistan</NameEn>\\n <NameZh>乌兹别克斯坦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>jilin</NameEn>\\n <NameZh>吉林省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Oversea</NameEn>\\n <NameZh>海外</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Zimbabwe</NameEn>\\n <NameZh>津巴布韦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Montenegro</NameEn>\\n <NameZh>黑山</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Indonesia</NameEn>\\n <NameZh>印度尼西亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Benin</NameEn>\\n <NameZh>贝宁</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Angola</NameEn>\\n <NameZh>安哥拉</NameZh>\\n </Region>\\n <Region>\\n <NameEn>guizhou</NameEn>\\n <NameZh>贵州省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Sudan</NameEn>\\n <NameZh>苏丹</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Croatia/Hrvatska</NameEn>\\n <NameZh>克罗地亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>xinjiang</NameEn>\\n <NameZh>新疆维吾尔自治区</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Portugal</NameEn>\\n <NameZh>葡萄牙</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Brunei Darussalam</NameEn>\\n <NameZh>文莱达鲁萨兰国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>heilongjiang</NameEn>\\n <NameZh>黑龙江省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>New Caledonia</NameEn>\\n <NameZh>新喀里多尼亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Greece</NameEn>\\n <NameZh>希腊</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Latvia</NameEn>\\n <NameZh>拉脱维亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Mongolia</NameEn>\\n <NameZh>蒙古</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Morocco</NameEn>\\n <NameZh>摩洛哥</NameZh>\\n </Region>\\n <Region>\\n <NameEn>henan</NameEn>\\n <NameZh>河南省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Guyana</NameEn>\\n <NameZh>圭亚那</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Guatemala</NameEn>\\n <NameZh>危地马拉</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Iraq</NameEn>\\n <NameZh>伊拉克</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Chile</NameEn>\\n <NameZh>智利</NameZh>\\n </Region>\\n <Region>\\n <NameEn>hunan</NameEn>\\n <NameZh>湖南省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Nepal</NameEn>\\n <NameZh>尼泊尔</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Ukraine</NameEn>\\n <NameZh>乌克兰</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Tanzania</NameEn>\\n <NameZh>坦桑尼亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Ghana</NameEn>\\n <NameZh>加纳</NameZh>\\n </Region>\\n <Region>\\n <NameEn>India</NameEn>\\n <NameZh>印度</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Canada</NameEn>\\n <NameZh>加拿大</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Turkey</NameEn>\\n <NameZh>土耳其</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Belgium</NameEn>\\n <NameZh>比利时</NameZh>\\n </Region>\\n <Region>\\n <NameEn>South Africa</NameEn>\\n <NameZh>南非</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Central African Republic</NameEn>\\n <NameZh>中非共和国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Jamaica</NameEn>\\n <NameZh>牙买加</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Peru</NameEn>\\n <NameZh>秘鲁</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Turkmenistan</NameEn>\\n <NameZh>土库曼斯坦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Germany</NameEn>\\n <NameZh>德国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Fiji</NameEn>\\n <NameZh>斐济</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Guinea</NameEn>\\n <NameZh>几内亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>United States</NameEn>\\n <NameZh>美国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Chad</NameEn>\\n <NameZh>乍得</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Somalia</NameEn>\\n <NameZh>索马里</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Thailand</NameEn>\\n <NameZh>泰国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Equatorial Guinea</NameEn>\\n <NameZh>赤道几内亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Costa Rica</NameEn>\\n <NameZh>哥斯达黎加</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Vietnam</NameEn>\\n <NameZh>越南</NameZh>\\n </Region>\\n <Region>\\n <NameEn>xizang</NameEn>\\n <NameZh>西藏自治区</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Kuwait</NameEn>\\n <NameZh>科威特</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Nigeria</NameEn>\\n <NameZh>尼日利亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>China(Macao)</NameEn>\\n <NameZh>中国澳门</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Uruguay</NameEn>\\n <NameZh>乌拉圭</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Sri Lanka</NameEn>\\n <NameZh>斯里兰卡</NameZh>\\n </Region>\\n <Region>\\n <NameEn>tianjin</NameEn>\\n <NameZh>天津市</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Timor-Leste</NameEn>\\n <NameZh>东帝汶</NameZh>\\n </Region>\\n <Region>\\n <NameEn>United Kingdom</NameEn>\\n <NameZh>英国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Switzerland</NameEn>\\n <NameZh>瑞士</NameZh>\\n </Region>\\n <Region>\\n <NameEn>chongqing</NameEn>\\n <NameZh>重庆市</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Spain</NameEn>\\n <NameZh>西班牙</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Liberia</NameEn>\\n <NameZh>利比里亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Venezuela</NameEn>\\n <NameZh>委内瑞拉</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Burkina Faso</NameEn>\\n <NameZh>布基纳法索</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Swaziland</NameEn>\\n <NameZh>斯威士兰</NameZh>\\n </Region>\\n <Region>\\n <NameEn>neimenggu</NameEn>\\n <NameZh>内蒙古自治区</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Estonia</NameEn>\\n <NameZh>爱沙尼亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>hebei</NameEn>\\n <NameZh>河北省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Libyan Arab Jamahiriya</NameEn>\\n <NameZh>利比亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>hainan</NameEn>\\n <NameZh>海南省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>guangdong</NameEn>\\n <NameZh>广东省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Austria</NameEn>\\n <NameZh>奥地利</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Mozambique</NameEn>\\n <NameZh>莫桑比克</NameZh>\\n </Region>\\n <Region>\\n <NameEn>El Salvador</NameEn>\\n <NameZh>萨尔瓦多</NameZh>\\n </Region>\\n <Region>\\n <NameEn>shanxi</NameEn>\\n <NameZh>山西省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Lesotho</NameEn>\\n <NameZh>莱索托</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Western Sahara</NameEn>\\n <NameZh>西撒哈拉</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Hungary</NameEn>\\n <NameZh>匈牙利</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Japan</NameEn>\\n <NameZh>日本</NameZh>\\n </Region>\\n <Region>\\n <NameEn>hubei</NameEn>\\n <NameZh>湖北省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Slovakia (Slovak Republic)</NameEn>\\n <NameZh>斯洛伐克</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Belarus</NameEn>\\n <NameZh>白俄罗斯</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Albania</NameEn>\\n <NameZh>阿尔巴尼亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>New Zealand</NameEn>\\n <NameZh>新西兰</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Senegal</NameEn>\\n <NameZh>塞内加尔</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Macedonia</NameEn>\\n <NameZh>马其顿</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Ethiopia</NameEn>\\n <NameZh>埃塞俄比亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Egypt</NameEn>\\n <NameZh>埃及</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Sierra Leone</NameEn>\\n <NameZh>塞拉利昂</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Bolivia</NameEn>\\n <NameZh>玻利维亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>guangxi</NameEn>\\n <NameZh>广西壮族自治区</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Saudi Arabia</NameEn>\\n <NameZh>沙特阿拉伯</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Pakistan</NameEn>\\n <NameZh>巴基斯坦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Gambia</NameEn>\\n <NameZh>冈比亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>jiangsu</NameEn>\\n <NameZh>江苏省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Qatar</NameEn>\\n <NameZh>卡塔尔</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Ireland</NameEn>\\n <NameZh>爱尔兰</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Serbia</NameEn>\\n <NameZh>塞尔维亚</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Lithuania</NameEn>\\n <NameZh>立陶宛</NameZh>\\n </Region>\\n <Region>\\n <NameEn>France</NameEn>\\n <NameZh>法国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Niger</NameEn>\\n <NameZh>尼日尔</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Rwanda</NameEn>\\n <NameZh>卢旺达</NameZh>\\n </Region>\\n <Region>\\n <NameEn>gansu</NameEn>\\n <NameZh>甘肃省</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Bangladesh</NameEn>\\n <NameZh>孟加拉国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Nicaragua</NameEn>\\n <NameZh>尼加拉瓜</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Norway</NameEn>\\n <NameZh>挪威</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Botswana</NameEn>\\n <NameZh>博茨瓦纳</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Dominican Republic</NameEn>\\n <NameZh>多米尼加共和国</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Denmark</NameEn>\\n <NameZh>丹麦</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Mexico</NameEn>\\n <NameZh>墨西哥</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Uganda</NameEn>\\n <NameZh>乌干达</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Suriname</NameEn>\\n <NameZh>苏里南</NameZh>\\n </Region>\\n <Region>\\n <NameEn>Greenland</NameEn>\\n <NameZh>格陵兰岛</NameZh>\\n </Region>\\n </Regions>\\n <Isps>\\n <Isp>\\n <NameEn>telecom</NameEn>\\n <NameZh>电信</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>mobile</NameEn>\\n <NameZh>移动</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>cernet</NameEn>\\n <NameZh>教育网</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>tietong</NameEn>\\n <NameZh>铁通</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>other</NameEn>\\n <NameZh>其他</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>drpeng</NameEn>\\n <NameZh>鹏博士</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>unicom</NameEn>\\n <NameZh>联通</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>alibaba</NameEn>\\n <NameZh>阿里巴巴</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>citic</NameEn>\\n <NameZh>中信网络</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>dounder</NameEn>\\n <NameZh>方正宽带</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>overseas</NameEn>\\n <NameZh>海外ISP</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>ocn</NameEn>\\n <NameZh>有线通</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>wasu</NameEn>\\n <NameZh>华数</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>hrtn</NameEn>\\n <NameZh>湖北广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>cqccn</NameEn>\\n <NameZh>重庆有线</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>bjctv</NameEn>\\n <NameZh>歌华有线</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>topway</NameEn>\\n <NameZh>天威视讯</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>hkbn</NameEn>\\n <NameZh>香港宽频</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>telstra</NameEn>\\n <NameZh>澳大利亚电信</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>jxsarft</NameEn>\\n <NameZh>江西广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>gbs</NameEn>\\n <NameZh>湖南广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>djwl</NameEn>\\n <NameZh>典基网络</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>ctm</NameEn>\\n <NameZh>澳门电讯</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>ljwl</NameEn>\\n <NameZh>黑龙江广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>sxbctv</NameEn>\\n <NameZh>陕西广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>ccn</NameEn>\\n <NameZh>广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>gwbn</NameEn>\\n <NameZh>长城宽带</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>wasumedia</NameEn>\\n <NameZh>华数传媒</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>gcable</NameEn>\\n <NameZh>广东广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>lnsarft</NameEn>\\n <NameZh>辽宁广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>hensarft</NameEn>\\n <NameZh>河南广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>sdsarft</NameEn>\\n <NameZh>山东广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>jssarft</NameEn>\\n <NameZh>江苏广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>aipu</NameEn>\\n <NameZh>四川艾普</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>jilincatv</NameEn>\\n <NameZh>吉视传媒</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>sicsarft</NameEn>\\n <NameZh>四川广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>anhuicatv</NameEn>\\n <NameZh>安徽广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>fujiancatv</NameEn>\\n <NameZh>福建广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>xjsarft</NameEn>\\n <NameZh>新疆广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>guizhoucatv</NameEn>\\n <NameZh>贵州广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Local Area Network</NameEn>\\n <NameZh>局域网</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>hunanjy</NameEn>\\n <NameZh>湖南巨亚</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>zhujiangsm</NameEn>\\n <NameZh>珠江数码</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>baolian</NameEn>\\n <NameZh>北京宝联之星</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>telin</NameEn>\\n <NameZh>印尼Telin</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>indosat</NameEn>\\n <NameZh>印尼Indosat</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>shchilian</NameEn>\\n <NameZh>上海驰联</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>shqishun</NameEn>\\n <NameZh>上海企舜</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>cnix</NameEn>\\n <NameZh>皓宽网络</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>sify</NameEn>\\n <NameZh>印度Sify</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>zenlayer_in</NameEn>\\n <NameZh>印度Zenlayer</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>tata</NameEn>\\n <NameZh>印度TATA</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>airtel</NameEn>\\n <NameZh>印度AirTel</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>telstraglobal</NameEn>\\n <NameZh>Telstra Global</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>JPIX</NameEn>\\n <NameZh>JPIX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>sxsarft</NameEn>\\n <NameZh>山西广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>nmgcatv</NameEn>\\n <NameZh>内蒙古广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>jastel</NameEn>\\n <NameZh>JasTel</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>PCCW</NameEn>\\n <NameZh>PCCW</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>taiwanfixednetwork</NameEn>\\n <NameZh>Taiwan Fixed Network</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>digitalunited</NameEn>\\n <NameZh>Digital United</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>ntt</NameEn>\\n <NameZh>NTT</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>kddi</NameEn>\\n <NameZh>KDDI</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>koreatelecom</NameEn>\\n <NameZh>Korea Telecom</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>tmnet</NameEn>\\n <NameZh>TM Net</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>trueinternet</NameEn>\\n <NameZh>True Internet</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>CSL</NameEn>\\n <NameZh>CSL</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>vnpt</NameEn>\\n <NameZh>VNPT</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>eitcdu</NameEn>\\n <NameZh>EITC-DU</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Rostelecom</NameEn>\\n <NameZh>Rostelecom</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>globalnet</NameEn>\\n <NameZh>GLOBALNET</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>ertelecomholding</NameEn>\\n <NameZh>ER-Telecom Holding</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>businessnetworkltd</NameEn>\\n <NameZh>Business Network Ltd</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>vodafone</NameEn>\\n <NameZh>Vodafone</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>SmileServ</NameEn>\\n <NameZh>SmileServ</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>TATA</NameEn>\\n <NameZh>TATA</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>entersrl</NameEn>\\n <NameZh>ENTER S.r.l.</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>vodacomens</NameEn>\\n <NameZh>Vodacom ENS</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>hurricaneelectric</NameEn>\\n <NameZh>Hurricane Electric</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>cta</NameEn>\\n <NameZh>CTA</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>telefonicausa</NameEn>\\n <NameZh>Telefonica USA</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>verizonbusiness</NameEn>\\n <NameZh>Verizon Business</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>telefonicadatasa</NameEn>\\n <NameZh>Telefonica Data S.A.</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>pldt</NameEn>\\n <NameZh>PLDT</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>viettel</NameEn>\\n <NameZh>Viettel</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>retn</NameEn>\\n <NameZh>RETN</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>aims</NameEn>\\n <NameZh>AIMS</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>guangxsarft</NameEn>\\n <NameZh>广西广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>hebsarft</NameEn>\\n <NameZh>河北广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>hunsarft</NameEn>\\n <NameZh>湖南有线</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>sdqdsarft</NameEn>\\n <NameZh>山东青岛广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>level3</NameEn>\\n <NameZh>Level3</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>nxsarft</NameEn>\\n <NameZh>宁夏广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>zenlayer_id</NameEn>\\n <NameZh>印尼Zenlayer</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>zain</NameEn>\\n <NameZh>Zain</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>singtel</NameEn>\\n <NameZh>Singtel</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>bbix</NameEn>\\n <NameZh>BBIX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>mskix</NameEn>\\n <NameZh>MSK-IX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>tpix</NameEn>\\n <NameZh>TPIX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Equinix</NameEn>\\n <NameZh>Equinix</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>taiwanstar</NameEn>\\n <NameZh>台湾之星</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>aliyun</NameEn>\\n <NameZh>阿里云</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>maxis</NameEn>\\n <NameZh>Maxis</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>TelekomMalaysia</NameEn>\\n <NameZh>TelekomMalaysia</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>kinx</NameEn>\\n <NameZh>KINX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>skbb</NameEn>\\n <NameZh>SKBB</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>cat</NameEn>\\n <NameZh>CAT</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>ooredoo</NameEn>\\n <NameZh>Ooredoo</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Fareastone telecom</NameEn>\\n <NameZh>Fareastone</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>all</NameEn>\\n <NameZh>全部</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>luofang</NameEn>\\n <NameZh>luofang</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>gssarft</NameEn>\\n <NameZh>甘肃广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>tjsarft</NameEn>\\n <NameZh>天津广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>dlut</NameEn>\\n <NameZh>大连理工大学</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>gzchilian</NameEn>\\n <NameZh>广州驰联</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>lxix</NameEn>\\n <NameZh>蓝汛网络</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Seacom</NameEn>\\n <NameZh>Seacom</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>NAPAfrica IXP</NameEn>\\n <NameZh>NAPAfrica IXP</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>tcwl</NameEn>\\n <NameZh>天弛网络</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>HGC</NameEn>\\n <NameZh>HGC</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>sdlxsarft</NameEn>\\n <NameZh>山东乐享广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Omantel</NameEn>\\n <NameZh>Omantel</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Megaport</NameEn>\\n <NameZh>Megaport</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>xjtu</NameEn>\\n <NameZh>西安交通大学</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>TIME DotCom Berhad</NameEn>\\n <NameZh>TIME DotCom Berhad</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>MyIX</NameEn>\\n <NameZh>MyIX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Telenor Global Wholesale</NameEn>\\n <NameZh>Telenor Global Wholesale</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Webe Digital Sdn Bhd</NameEn>\\n <NameZh>Webe Digital Sdn Bhd</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Extreme Broadband</NameEn>\\n <NameZh>Extreme Broadband</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Cato Networks</NameEn>\\n <NameZh>Cato Networks</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Shinjiru</NameEn>\\n <NameZh>Shinjiru</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Packet Clearing House</NameEn>\\n <NameZh>Packet Clearing House</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>YTL Communications Sdn Bhd</NameEn>\\n <NameZh>YTL Communications Sdn Bhd</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Sri Lanka Telecom</NameEn>\\n <NameZh>Sri Lanka Telecom</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>LAOTELECOM</NameEn>\\n <NameZh>LAOTELECOM</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Apple</NameEn>\\n <NameZh>Apple</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>EarthTelecom</NameEn>\\n <NameZh>EarthTelecom</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Frontiir</NameEn>\\n <NameZh>Frontiir</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>BGP Network</NameEn>\\n <NameZh>BGP Network</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>SUPERLOOP</NameEn>\\n <NameZh>SUPERLOOP</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>IBOSS</NameEn>\\n <NameZh>IBOSS</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>EMIX</NameEn>\\n <NameZh>EMIX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>TurboTech</NameEn>\\n <NameZh>TurboTech</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>SEATEL</NameEn>\\n <NameZh>SEATEL</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Anycast</NameEn>\\n <NameZh>Anycast</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Mobily</NameEn>\\n <NameZh>Mobily</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>VeloNetworks</NameEn>\\n <NameZh>VeloNetworks</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>HiNet</NameEn>\\n <NameZh>HiNet</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>shmec</NameEn>\\n <NameZh>上海教委</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>JIO</NameEn>\\n <NameZh>JIO</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>AIS</NameEn>\\n <NameZh>泰国AIS</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>TOT</NameEn>\\n <NameZh>泰国TOT</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>DTAC</NameEn>\\n <NameZh>泰国DTAC</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>DiGi</NameEn>\\n <NameZh>马来DiGi</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Webe</NameEn>\\n <NameZh>马来Webe</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Tele2</NameEn>\\n <NameZh>俄罗斯Tele2</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>MTS</NameEn>\\n <NameZh>俄罗斯MTS</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Megafon</NameEn>\\n <NameZh>俄罗斯Megafon</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>VodafoneIN</NameEn>\\n <NameZh>印度VodafoneIN</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Idea</NameEn>\\n <NameZh>印度Idea</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>HGC-ID</NameEn>\\n <NameZh>印尼HGC-ID</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>XL</NameEn>\\n <NameZh>印尼XL</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>privateabtn</NameEn>\\n <NameZh>privateabtn</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Workonline</NameEn>\\n <NameZh>Workonline</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Telia</NameEn>\\n <NameZh>Telia</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>DE-CIX</NameEn>\\n <NameZh>DE-CIX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>MIX</NameEn>\\n <NameZh>MIX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Netnod</NameEn>\\n <NameZh>Netnod</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>LINX</NameEn>\\n <NameZh>LINX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>AMS-IX</NameEn>\\n <NameZh>AMS-IX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>ESPANIX</NameEn>\\n <NameZh>ESPANIX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>fusionCDN</NameEn>\\n <NameZh>融合CDN</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Telkomsel</NameEn>\\n <NameZh>Telkomsel</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>GLOBE</NameEn>\\n <NameZh>GLOBE</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Skycable</NameEn>\\n <NameZh>Skycable</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Starhub</NameEn>\\n <NameZh>Starhub</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>FPT</NameEn>\\n <NameZh>FPT</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>FRANCEIXP</NameEn>\\n <NameZh>FRANCEIXP</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>CTG</NameEn>\\n <NameZh>CTG</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>iADVANTAGE</NameEn>\\n <NameZh>iADVANTAGE</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Teraco</NameEn>\\n <NameZh>Teraco</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>VimpelCom</NameEn>\\n <NameZh>VimpelCom</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>DATAIX</NameEn>\\n <NameZh>DATAIX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>SGIX</NameEn>\\n <NameZh>SGIX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Liberty</NameEn>\\n <NameZh>Liberty</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>hainsarft</NameEn>\\n <NameZh>海南广电</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Celcom</NameEn>\\n <NameZh>Celcom</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Metfone</NameEn>\\n <NameZh>Metfone</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Smart Axiata</NameEn>\\n <NameZh>Smart Axiata</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>OpenNet</NameEn>\\n <NameZh>OpenNet</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>SMTeleMedia</NameEn>\\n <NameZh>SMTeleMedia</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>WiCAM</NameEn>\\n <NameZh>WiCAM</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Unitel</NameEn>\\n <NameZh>Unitel</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>MPT</NameEn>\\n <NameZh>MPT</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Mytel</NameEn>\\n <NameZh>Mytel</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>DIGI</NameEn>\\n <NameZh>DIGI</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Umobile</NameEn>\\n <NameZh>Umobile</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>M1</NameEn>\\n <NameZh>M1</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>MyRepublic</NameEn>\\n <NameZh>MyRepublic</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Fastnet</NameEn>\\n <NameZh>Fastnet</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>SmartFren</NameEn>\\n <NameZh>SmartFren</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Moratel</NameEn>\\n <NameZh>Moratel</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>HongKongCableTV</NameEn>\\n <NameZh>HongKongCableTV</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>CMCTelecom</NameEn>\\n <NameZh>CMCTelecom</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>qiniu</NameEn>\\n <NameZh>七牛</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>chuangshi</NameEn>\\n <NameZh>创世</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>wangsu</NameEn>\\n <NameZh>网宿</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>fastly</NameEn>\\n <NameZh>fastly</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>baishan</NameEn>\\n <NameZh>白山</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>yidong</NameEn>\\n <NameZh>cmcc</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Orange</NameEn>\\n <NameZh>Orange</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Sparkle</NameEn>\\n <NameZh>Sparkle</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>stackpath</NameEn>\\n <NameZh>stackpath</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>nonexistent</NameEn>\\n <NameZh>nonexistent</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>tianyiyun</NameEn>\\n <NameZh>天翼云</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>migu</NameEn>\\n <NameZh>咪咕</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>pinru</NameEn>\\n <NameZh>品茹</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>baidu</NameEn>\\n <NameZh>百度</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>CMHK</NameEn>\\n <NameZh>CMHK</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>shdxscn</NameEn>\\n <NameZh>scn</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>AsiaPacificTelecom</NameEn>\\n <NameZh>AsiaPacificTelecom</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Akamai</NameEn>\\n <NameZh>Akamai</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>cstnet</NameEn>\\n <NameZh>科技网</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>JPNAP</NameEn>\\n <NameZh>JPNAP</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>IIX</NameEn>\\n <NameZh>IIX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>OpenIXP</NameEn>\\n <NameZh>OpenIXP</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>TOP-IX</NameEn>\\n <NameZh>TOP-IX</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>BSNL</NameEn>\\n <NameZh>BSNL</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>ACT</NameEn>\\n <NameZh>ACT</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>MTNL</NameEn>\\n <NameZh>MTNL</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Hathway</NameEn>\\n <NameZh>Hathway</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>You Broadband</NameEn>\\n <NameZh>You Broadband</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>GTPL</NameEn>\\n <NameZh>GTPL</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Excitel</NameEn>\\n <NameZh>Excitel</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>APSFL</NameEn>\\n <NameZh>APSFL</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Tikona</NameEn>\\n <NameZh>Tikona</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Broadway</NameEn>\\n <NameZh>Broadway</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Alliance</NameEn>\\n <NameZh>Alliance</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Indusind Media</NameEn>\\n <NameZh>Indusind Media</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Railtel</NameEn>\\n <NameZh>Railtel</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Netplus</NameEn>\\n <NameZh>Netplus</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Mahataa</NameEn>\\n <NameZh>Mahataa</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Quadrant Televentures</NameEn>\\n <NameZh>Quadrant Televentures</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Dvois</NameEn>\\n <NameZh>Dvois</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>VNPL</NameEn>\\n <NameZh>VNPL</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Ani network</NameEn>\\n <NameZh>Ani network</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Syscon infoway</NameEn>\\n <NameZh>Syscon infoway</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Asianet</NameEn>\\n <NameZh>Asianet</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Siti Broadband</NameEn>\\n <NameZh>Siti Broadband</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Ctrls</NameEn>\\n <NameZh>Ctrls</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Den Digital</NameEn>\\n <NameZh>Den Digital</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Excell Media</NameEn>\\n <NameZh>Excell Media</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Intech</NameEn>\\n <NameZh>Intech</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>KVANT-TELECOM</NameEn>\\n <NameZh>KVANT-TELECOM</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>MasMovil</NameEn>\\n <NameZh>MasMovil</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>zjhuashu</NameEn>\\n <NameZh>浙江华数</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Biznet</NameEn>\\n <NameZh>Biznet</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Interxion</NameEn>\\n <NameZh>Interxion</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Telehouse</NameEn>\\n <NameZh>Telehouse</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>IRIDEOS</NameEn>\\n <NameZh>IRIDEOS</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Moscow M9</NameEn>\\n <NameZh>Moscow M9</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>jsdxjcn</NameEn>\\n <NameZh>jcn</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>GlobalSwitch</NameEn>\\n <NameZh>GlobalSwitch</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>CUSG</NameEn>\\n <NameZh>CUSG</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>ETL</NameEn>\\n <NameZh>ETL</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>CamGSM</NameEn>\\n <NameZh>CamGSM</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>CADCOMMS</NameEn>\\n <NameZh>CADCOMMS</NameZh>\\n </Isp>\\n <Isp>\\n <NameEn>Smartone</NameEn>\\n <NameZh>Smartone</NameZh>\\n </Isp>\\n </Isps>\\n</DescribeDcdnRegionAndIspResponse>","errorExample":""}]', + ], + 'DescribeDcdnReport' => [ + 'summary' => '调用DescribeDcdnReport查询已定制的报表数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM', 'FEATUREdcdn2Z4HOI'], ], 'parameters' => [ [ - 'name' => 'NamespaceId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'title' => '', - 'description' => '命名空间ID,若参数为空,默认返回所有命名空间聚合的数据。'."\n" - ."\n" - .'支持多个命名空间查询,多个命名空间用半角逗号(,)分隔, 最多支持查询30个命名空间。', - 'type' => 'string', - 'required' => false, - 'example' => '12423131231****', - ], + 'schema' => ['description' => '待查询的域名列表,多个域名用英文逗号(,)分隔。', 'type' => 'string', 'required' => false, 'example' => 'www.example.com,www.example.org'], ], [ - 'name' => 'StartTime', + 'name' => 'ReportId', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'最小数据粒度为1小时。不填默认读取过去7天的数据。', - 'type' => 'string', - 'required' => false, - 'example' => '2022-08-10T00:00:00Z', - ], + 'schema' => ['description' => '待查询的报表ID,每次调用仅支持传入单个报表ID。您可以调用[DescribeDcdnSubList](~~270075~~)接口查询报表ID。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '2'], ], [ - 'name' => 'EndTime', + 'name' => 'Area', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据结束时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2022-08-10T23:59:59Z', - ], + 'schema' => ['description' => '地域英文名,您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取地域英文名。'."\n" + ."\n" + .'- 如果不传该参数,默认查询全部地域。'."\n" + .'- 如果传入指定地域,则按照指定的地域获取相应数据。支持传入多个地域,多个地域用英文逗号(,)分隔。', 'type' => 'string', 'required' => false, 'example' => 'shanghai'], ], [ - 'name' => 'Field', + 'name' => 'IsOverseas', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => '请求数据类型,可以指定为:**acc**。', - 'type' => 'string', - 'required' => true, - 'example' => 'acc', - ], + 'schema' => ['description' => '是否为中国内地以外的区域。取值:'."\n" + .'- **1**:中国内地以外的区域。'."\n" + .'- **0**:中国内地。', 'type' => 'string', 'required' => false, 'example' => '0'], ], [ - 'name' => 'AccessType', + 'name' => 'HttpCode', 'in' => 'query', - 'schema' => [ - 'description' => '访问类型,若参数为空,则默认返回所有类型聚合的结果。可以指定为:'."\n" - ."\n" - .'- **get**:GET请求。'."\n" - .'- **put**:PUT请求。'."\n" - .'- **list**:LIST请求。'."\n" - .'- **delete**:DELETE请求。', - 'type' => 'string', - 'required' => false, - 'example' => 'get', - ], + 'schema' => ['description' => 'HTTP状态码。取值:'."\n" + .'- **2xx**:2xx状态码。'."\n" + .'- **3xx**:3xx状态码。'."\n" + .'- **4xx**:4xx状态码。'."\n" + .'- **5xx**:5xx状态码。'."\n" + ."\n" + .'如果不传该参数,默认查询以上全部HTTP状态码。', 'type' => 'string', 'required' => false, 'example' => '2xx'], ], [ - 'name' => 'ResponseType', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '响应数据类型,取值:'."\n" - .'- **detail**:详细数据'."\n" - .'- **total**:汇总数据'."\n" - ."\n" - .'默认为**detail**。', - 'type' => 'string', - 'required' => false, - 'example' => 'detail', - 'default' => 'detail', - ], + 'schema' => ['description' => '查询开始时间。使用UTC+0时间表示,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => true, 'example' => '2021-07-02T00:00:00Z'], ], [ - 'name' => 'SplitBy', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '分组键,可以指定为**type**、**namespace**。'."\n" - ."\n" - .'- **type**:指定后数据将会按时序被分组输出,且仅返回5分钟粒度数据。'."\n" - .'- **namespace**:指定后数据将按照namespace分组输出,不会对数据进行补零。'."\n" - .'- 为空时:默认为**type**。'."\n" - ."\n" - .'**ResponseType**为**total**时,不支持分组返回**namespace**,将继续按照**type**分组返回。', - 'type' => 'string', - 'required' => false, - 'example' => 'type', - 'enum' => [ - 'type', - 'namespace', - ], - ], + 'schema' => ['description' => '查询结束时间。使用UTC+0时间表示,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => true, 'example' => '2021-07-02T01:00:00Z'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2022-11-06T16:00:00Z', - ], - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2022-11-18T15:59:59Z', - ], - 'KvUsageData' => [ - 'description' => '用量明细。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2022-11-14T15:00:03Z', - ], - 'NamespaceId' => [ - 'description' => 'Namespace ID。仅当**SplitBy**指定**namespace**时返回该字段。', - 'type' => 'string', - 'example' => '534167033424646144', - ], - 'AccessType' => [ - 'description' => '请求类型。仅当**SplitBy**指定**type**时返回该字段。', - 'type' => 'string', - 'example' => 'get', - ], - 'Acc' => [ - 'description' => '访问次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1340000', - ], - ], - ], - ], + 'Content' => ['description' => '查询到的报表数据。', 'type' => 'object', 'example' => '"data":[{"deliver":{ "report":{"title":"TopUrlByAcc","format":"table","sape":"","header":["url","traf","traf_rate","acc","acc_rate"]}}, "data":[{"acc":440,"acc_rate":"0.200%","traf":22,"url":"http://example.com","traf_rate":"0.100%"},{"acc":440,"acc_rate":"0.200%","traf":22,"url":"http://example.org","traf_rate":"0.100%"}]}]'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidTimeSpan', - 'errorMessage' => 'The time span exceeds the limit.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], - [ - 'errorCode' => 'InvalidParameterField', - 'errorMessage' => 'The specified Field is invalid.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ['errorCode' => 'TimeParseFailed', 'errorMessage' => 'Failed to parse the time parameter.', 'description' => '解析时间参数失败'], + ['errorCode' => 'SubscriptionAlreadyExists', 'errorMessage' => 'The subscription already exists.', 'description' => '定制服务已开通'], + ['errorCode' => 'SubscriptionNotFound', 'errorMessage' => 'The subscription is not found.', 'description' => '未开通定制服务'], + ['errorCode' => 'NameAlreadyExists', 'errorMessage' => 'The name already exists.', 'description' => '名称已存在'], + ['errorCode' => 'DeliverExceedLimit', 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', 'description' => '订阅任务个数已达上限'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB87556CA7\\",\\n \\"StartTime\\": \\"2022-11-06T16:00:00Z\\",\\n \\"EndTime\\": \\"2022-11-18T15:59:59Z\\",\\n \\"KvUsageData\\": [\\n {\\n \\"TimeStamp\\": \\"2022-11-14T15:00:03Z\\",\\n \\"NamespaceId\\": \\"534167033424646144\\",\\n \\"AccessType\\": \\"get\\",\\n \\"Acc\\": 1340000\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeKvUsageDataResponse>\\n <RequestId>9732E117-8A37-49FD-A36F-ABBB87556CA7</RequestId>\\n <StartTime>2022-11-06T16:00:00Z</StartTime>\\n <EndTime>2022-11-18T15:59:59Z</EndTime>\\n <KvUsageData>\\n <TimeStamp>2022-11-14T15:00:03Z</TimeStamp>\\n <NamespaceId>534167033424646144</NamespaceId>\\n <AccessType>get</AccessType>\\n <Acc>1340000</Acc>\\n </KvUsageData>\\n</DescribeKvUsageDataResponse>","errorExample":""}]', - 'title' => '查询KV存储用量数据', - 'description' => '> '."\n" - .'> - 单用户调用频率:5次/秒'."\n" - .'> - 用量数据为请求次数。'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询已定制的报表数据', + 'description' => '> 单用户调用频率:3次/秒。 ', + 'requestParamsDescription' => '**各报表必传的请求参数说明**'."\n" ."\n" - .'**支持查询的时间粒度**:'."\n" - .'本API仅支持1小时粒度的数据查询。'."\n" + .'|报表名称|必传参数|说明|'."\n" + .'|--------|---------|---------|'."\n" + .'|PV和UV|Action、ReportId、DomainName、StartTime、EndTime。|不支持其他参数。|'."\n" + .'|Top客户端IP(按流量排序)|Action、ReportId、DomainName、Area、StartTime、EndTime。|不支持其他参数。|'."\n" + .'|Top客户端IP(按请求数排序)|Action、ReportId、DomainName、Area、StartTime、EndTime。|不支持其他参数。|'."\n" + .'|访问区域分布|Action、ReportId、DomainName、IsOverseas、StartTime、EndTime。|不支持其他参数。|'."\n" + .'|运营商分布|Action、ReportId、DomainName、IsOverseas、StartTime、EndTime。|不支持其他参数。|'."\n" + .'|热门Referer(按流量排序)|Action、ReportId、DomainName、StartTime、EndTime。|不支持其他参数。|'."\n" + .'|热门Referer(按请求数排序)|Action、ReportId、DomainName、StartTime、EndTime。|不支持其他参数。|'."\n" + .'|热门URL(按流量排序)|Action、ReportId、DomainName、HttpCode、StartTime、EndTime。|不支持其他参数。|'."\n" + .'|热门URL(按请求数排序)|Action、ReportId、DomainName、HttpCode、StartTime、EndTime。|不支持其他参数。|'."\n" + .'|回源热门URL(按流量排序)|Action、ReportId、DomainName、HttpCode、StartTime、EndTime。|不支持其他参数。|'."\n" + .'|回源热门URL(按请求数排序)|Action、ReportId、DomainName、HttpCode、StartTime、EndTime。|不支持其他参数。|'."\n" + .'|域名排行(按流量排序)|Action、ReportId、StartTime、EndTime。|不支持其他参数。|', + 'responseParamsDescription' => '**Content数据说明**'."\n" ."\n" - .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟 |'."\n" - .'| -------------- | -------------- | ------ |-----|'."\n" - .'| 1小时 | 31天 | 90天 | 一般延迟3-4小时 |', - ], - 'CreateDcdnCertificateSigningRequest' => [ - 'summary' => '调用CreateDcdnCertificateSigningRequest创建 CSR(证书签名请求)文件。', - 'methods' => [ - 'get', - 'post', + .'|参数|类型|描述|'."\n" + .'|--------|------|------------|'."\n" + .'|deliver|report|报表样式。|'."\n" + .'|data|String[]|报表中的数据,例如:[{"表头字段1":"value1","表头字段2":"value2"}, {"表头字段1":"value3","表头字段2":"value4"}]。|'."\n" + ."\n" + .'**report数据说明**'."\n" + ."\n" + .'|参数|类型|描述|'."\n" + .'|--------|-------|-----------|'."\n" + .'|title|String|报表标题。|'."\n" + .'|format|String|报表类型。取值如下:<br>chart:图表。<br>table:表格。|'."\n" + .'|shape|String|图表类型。当format为table时,请忽略此字段。取值如下:<br>line:曲线图。<br>pie:饼状图。<br>bar:柱状图。|'."\n" + .'|header|String[]|报表的表头字段。|'."\n" + .'|legend|String|图形的图例字段。|'."\n" + .'|xAxis|String|图形x轴,没有则为空。|'."\n" + .'|yAxis|String|图形y轴,没有则为空。|', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnReport'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnReport', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnReportResponse>\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\n<Content>\\n <data>\\n <deliver>\\n <report>\\n <title>TopUrlByAcc</title>\\n <format>table</format>\\n <shape/>\\n <header>url</header>\\n <header>traf</header>\\n <header>traf_rate</header>\\n <header>acc</header>\\n <header>acc_rate</header>\\n </report>\\n </deliver>\\n <data>\\n <acc>440</acc>\\n <acc_rate>0.200%</acc_rate>\\n <traf>22</traf>\\n <url>http://example.com</url>\\n <traf_rate>0.100%</traf_rate>\\n </data>\\n <data>\\n <acc>440</acc>\\n <acc_rate>0.200%</acc_rate>\\n <traf>22</traf>\\n <url>http://example.org</url>\\n <traf_rate>0.100%</traf_rate>\\n </data>\\n </data>\\n</Content>\\n</DescribeDcdnReportResponse>","errorExample":""}]', + ], + 'DescribeDcdnReportList' => [ + 'summary' => '调用DescribeDcdnReportList查询所有的定制报表列表。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '204191', - 'abilityTreeNodes' => [ - 'FEATUREdcdnX7NWEB', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'CommonName', - 'in' => 'query', - 'schema' => [ - 'description' => '证书通用名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'SANs', - 'in' => 'query', - 'schema' => [ - 'description' => '证书扩展字段,绑定的域名,多个域名用逗号(,)分隔。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com,example.org', - ], - ], - [ - 'name' => 'Organization', - 'in' => 'query', - 'schema' => [ - 'description' => '机构名称,默认:Alibaba Inc。', - 'type' => 'string', - 'required' => false, - 'example' => 'Alibaba Inc', - 'default' => 'Alibaba Inc.', - ], - ], - [ - 'name' => 'OrganizationUnit', - 'in' => 'query', - 'schema' => [ - 'description' => '部门名称,默认:Aliyun CDN。', - 'type' => 'string', - 'required' => false, - 'example' => 'Aliyun CDN', - 'default' => 'Aliyun CDN', - ], - ], - [ - 'name' => 'Country', - 'in' => 'query', - 'schema' => [ - 'description' => '所属国家,默认:CN。', - 'type' => 'string', - 'required' => false, - 'example' => 'CN', - 'default' => 'CN', - ], - ], - [ - 'name' => 'State', - 'in' => 'query', - 'schema' => [ - 'description' => '省级地区,默认:Zhejiang。', - 'type' => 'string', - 'required' => false, - 'example' => 'Zhejiang', - 'default' => 'Zhejiang', - ], - ], - [ - 'name' => 'City', - 'in' => 'query', - 'schema' => [ - 'description' => '市级地区,默认:Hangzhou。', - 'type' => 'string', - 'required' => false, - 'example' => 'Hangzhou', - 'default' => 'Hangzhou', - ], - ], - [ - 'name' => 'Email', + 'name' => 'ReportId', 'in' => 'query', - 'schema' => [ - 'description' => '邮箱', - 'type' => 'string', - 'required' => false, - 'example' => 'username@example.com', - ], + 'schema' => ['description' => '待查询的报表ID。如果不传该参数,默认查询所有报表,您可以调用[DescribeDcdnSubList](~~DescribeDcdnSubList~~)接口查询报表ID。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '2'], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', - ], - 'PubMd5' => [ - 'description' => '证书公钥信息Md5值。', - 'type' => 'string', - 'example' => '629bf4fd8104eda171135bcb0f77a10b', - ], - 'Csr' => [ - 'description' => '证书签名请求文件内容。', - 'type' => 'string', - 'example' => '-----BEGIN CERTIFICATE REQUEST-----\\nMIIC/zCCAecCAQAwZTELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAlpKMQswCQYDVQQH', - ], - 'CommonName' => [ - 'description' => '证书通用名称。', - 'type' => 'string', - 'example' => 'example.com', - ], + 'Content' => ['description' => '报表列表。', 'type' => 'string', 'example' => '"data": [{"reportId":2,"deliver":{"report":{"title":"DomainPvUv","format":"chart","shape":"line","xAxis":"ds","yAxis":"cnt","legend":"cnt_type","header":["ds","cnt_type","cnt"]}}}'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidValue.Malformed', - 'errorMessage' => 'Country must be 2 characters.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ['errorCode' => 'TimeParseFailed', 'errorMessage' => 'Failed to parse the time parameter.', 'description' => '解析时间参数失败'], + ['errorCode' => 'SubscriptionAlreadyExists', 'errorMessage' => 'The subscription already exists.', 'description' => '定制服务已开通'], + ['errorCode' => 'SubscriptionNotFound', 'errorMessage' => 'The subscription is not found.', 'description' => '未开通定制服务'], + ['errorCode' => 'NameAlreadyExists', 'errorMessage' => 'The name already exists.', 'description' => '名称已存在'], + ['errorCode' => 'DeliverExceedLimit', 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', 'description' => '订阅任务个数已达上限'], ], - 500 => [ - [ - 'errorCode' => 'Internal.KeyError', - 'errorMessage' => 'Failed to generate rsa key.', - ], - [ - 'errorCode' => 'Internal.CreateCSRError', - 'errorMessage' => 'Failed to create CSR.', - ], - [ - 'errorCode' => 'Internal.EncodeCSRError', - 'errorMessage' => 'Failed to encode CSR.', - ], - [ - 'errorCode' => 'Internal.EncodeKeyError', - 'errorMessage' => 'Failed to encode private key.', - ], - [ - 'errorCode' => 'Internal.Error', - 'errorMessage' => 'The request processing has failed due to backend service exception.', + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询所有定制报表列表', + 'description' => '> - 该接口将返回所有定制报表的元数据,不包含具体报表的统计数据。'."\n" + .'> - 单用户调用频率:3次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => '**Content数据说明**'."\n" + ."\n" + .'|参数|类型|描述|'."\n" + .'|--------|------|------------|'."\n" + .'|reportId|Long|任务的请求ID。|'."\n" + .'|deliver|report|报表样式。|'."\n" + ."\n" + .'**report数据说明**'."\n" + ."\n" + .'|参数|类型|描述|'."\n" + .'|--------|--------|----------|'."\n" + .'|title|String|报表标题。|'."\n" + .'|format|String|报表类型。取值:<br>chart:图表。<br>table:表格。|'."\n" + .'|shape|String|图表类型。当format为table时,请忽略此字段。取值:<br>line:曲线图。<br>pie:饼状图。<br>bar:柱状图。|'."\n" + .'|header|String[]|报表的表头字段。|'."\n" + .'|legend|String|图形的图例字段。|'."\n" + .'|xAxis|String|图形x轴,没有则为空。|'."\n" + .'|yAxis|String|图形y轴,没有则为空。|', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnReportList'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnReportList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\",\\n \\"PubMd5\\": \\"629bf4fd8104eda171135bcb0f77a10b\\",\\n \\"Csr\\": \\"-----BEGIN CERTIFICATE REQUEST-----\\\\\\\\nMIIC/zCCAecCAQAwZTELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAlpKMQswCQYDVQQH\\",\\n \\"CommonName\\": \\"example.com\\"\\n}","type":"json"}]', - 'title' => '创建证书签名请求文件', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": \\"\\\\\\"data\\\\\\": [{\\\\\\"reportId\\\\\\":2,\\\\\\"deliver\\\\\\":{\\\\\\"report\\\\\\":{\\\\\\"title\\\\\\":\\\\\\"DomainPvUv\\\\\\",\\\\\\"format\\\\\\":\\\\\\"chart\\\\\\",\\\\\\"shape\\\\\\":\\\\\\"line\\\\\\",\\\\\\"xAxis\\\\\\":\\\\\\"ds\\\\\\",\\\\\\"yAxis\\\\\\":\\\\\\"cnt\\\\\\",\\\\\\"legend\\\\\\":\\\\\\"cnt_type\\\\\\",\\\\\\"header\\\\\\":[\\\\\\"ds\\\\\\",\\\\\\"cnt_type\\\\\\",\\\\\\"cnt\\\\\\"]}}}\\",\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnReportListResponse>\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\n<Content>\\n <data>\\n <reportId>2</reportId>\\n <deliver>\\n <report>\\n <title>DomainPvUv</title>\\n <format>chart</format>\\n <shape>line</shape>\\n <xAxis>ds</xAxis>\\n <yAxis>cnt</yAxis>\\n <legend>cnt_type</legend>\\n <header>ds</header>\\n <header>cnt_type</header>\\n <header>cnt</header>\\n </report>\\n </deliver>\\n </data>\\n <data>\\n <reportId>4</reportId>\\n <deliver>\\n <report>\\n <format>table</format>\\n <shape>line</shape>\\n <header>url</header>\\n <header>traf</header>\\n <header>traf_rate</header>\\n <header>acc</header>\\n <header>acc_rate</header>\\n <title>TopUrlByAcc</title>\\n </report>\\n </deliver>\\n </data>\\n</Content>\\n</DescribeDcdnReportListResponse>","errorExample":""}]', ], - 'SetDcdnDomainCSRCertificate' => [ - 'summary' => '调用SetDcdnDomainCSRCertificate设置指定域名下的HTTPS证书。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnSLSRealTimeLogType' => [ + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnX7NWEB', - ], - ], - 'parameters' => [ - [ - 'name' => 'ServerCertificate', - 'in' => 'query', - 'schema' => [ - 'description' => '证书内容。该证书必须是通过[CreateDcdnCertificateSigningRequest](~~144478~~)接口创建的CSR对应的签名证书,内部必须是PEM格式的证书。'."\n" - .'> 传参前先对证书Base64编码后再使用JavaScript内置函数encodeURIComponent进行编码处理。', - 'type' => 'string', - 'required' => true, - 'example' => '----BEGIN CERTIFICATE----- MIIFz****-----END CERTIFICATE-----', - ], - ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '指定证书所属加速域名。需属于HTTPS加速类型。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], + 'abilityTreeCode' => '140562', + 'abilityTreeNodes' => ['FEATUREdcdn9K10I1'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], + 'Content' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Business' => [ + 'description' => '返回结果内容。', + 'type' => 'array', + 'items' => [ + 'description' => '业务类型描述。', + 'type' => 'object', + 'properties' => [ + 'Desc' => ['description' => '业务类型描述。', 'type' => 'string', 'example' => '用户访问日志'], + 'BusinessType' => ['description' => '业务类型。取值如下:'."\n" + .'- **dcdn_log_access_l1**:用户访问日志。'."\n" + .'- **dcdn_log_er**:边缘程序日志。'."\n" + .'- **dcdn_log_waf**:WAF拦截日志。', 'type' => 'string', 'example' => 'dcdn_log_access_l1'], + ], + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Certificate.MissingParameter', - 'errorMessage' => 'You must specify the Certificate parameter.', - ], - [ - 'errorCode' => 'Certificate.EncodeError', - 'errorMessage' => 'An error occurred while encoding the certificate.', - ], - [ - 'errorCode' => 'Certificate.DecodeError', - 'errorMessage' => 'An error occurred while decoding the certificate.', - ], - [ - 'errorCode' => 'Certificate.FormatError', - 'errorMessage' => 'The format of the certificate is invalid.', - ], - [ - 'errorCode' => 'Certificate.MissMatch', - 'errorMessage' => 'The certificate does not match the domain.', - ], - [ - 'errorCode' => 'Certificate.NoPrivateKey', - 'errorMessage' => 'The private key of the certificate does not exist.', - ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询实时日志支持的业务类型', + 'summary' => '调用DescribeDcdnSLSRealTimeLogType查询实时日志支持的业务类型列表。', + 'changeSet' => [ + ['createdAt' => '2024-12-18T07:22:52.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnSLSRealTimeLogType'], ], - 500 => [ - [ - 'errorCode' => 'Internal.ForbidError', - 'errorMessage' => 'You cannot modify the configurations when some features of the domain are in a canary deployment.', - ], - [ - 'errorCode' => 'Internal.ConfigError', - 'errorMessage' => 'An error occurred while configuring the certificate.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSLSRealTimeLogType', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","type":"json"}]', - 'title' => '设置CSR证书', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\",\\n \\"Content\\": {\\n \\"Business\\": [\\n {\\n \\"Desc\\": \\"用户访问日志\\",\\n \\"BusinessType\\": \\"dcdn_log_access_l1\\"\\n }\\n ]\\n }\\n}","type":"json"}]', ], - 'DescribeDcdnSSLCertificateList' => [ - 'summary' => '调用DescribeDcdnSSLCertificateList按照域名查询证书列表信息。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnSLSRealtimeLogDelivery' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -16468,281 +14679,109 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111547', + 'abilityTreeNodes' => ['FEATUREdcdn9K10I1'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '证书所属加速域名。该域名为HTTPS安全加速类型。', - 'type' => 'string', - 'required' => false, - 'example' => 'www.example.com', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => '页码,默认值为1。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], - ], - [ - 'name' => 'PageSize', + 'name' => 'ProjectName', 'in' => 'query', - 'schema' => [ - 'description' => '分页大小,取值:**1~1000**之间的任意整数。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '10', - 'default' => '1000', - ], - ], - [ - 'name' => 'SearchKeyword', - 'in' => 'query', - 'schema' => [ - 'description' => '证书名称模糊查询。', - 'type' => 'string', - 'required' => false, - 'example' => 'taobao', - ], + 'schema' => ['description' => '日志服务(SLS)项目名称。', 'type' => 'string', 'required' => true, 'example' => 'example'], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-3C82-72F8FD6DA2FE', - ], - 'CertificateListModel' => [ - 'description' => '证书列表信息。', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'F32C57AA-7BF8-49AE-A2CC-9F42390F5A19'], + 'Content' => [ + 'description' => '域名配置结果信息。', 'type' => 'object', 'properties' => [ - 'Count' => [ - 'description' => '证书数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'CertList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Cert' => [ - 'description' => '证书列表信息。', - 'type' => 'array', - 'items' => [ - 'description' => '证书列表信息。', - 'type' => 'object', - 'properties' => [ - 'Fingerprint' => [ - 'description' => '证书指纹。', - 'type' => 'string', - 'example' => '4278e3b81ab5bc678d253e74c17ffb88', - ], - 'Issuer' => [ - 'description' => '证书发行商。', - 'type' => 'string', - 'example' => 'yourCertIssuer', - ], - 'CertId' => [ - 'description' => '证书ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '7428244', - ], - 'CertRegion' => [ - 'description' => '证书所在地域。支持**cn-hangzhou**和**ap-southeast-1**,默认**cn-hangzhou** .', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'CertName' => [ - 'description' => '证书名称。', - 'type' => 'string', - 'example' => 'yourCertName', - ], - 'LastTime' => [ - 'description' => '证书最后修改时间,单位:毫秒', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1548065550', - ], - 'Common' => [ - 'description' => '证书中的CN属性,一般是一个域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - ], - ], - ], - ], - ], - 'PageNumber' => [ - 'description' => '当前页数,起始值为1,默认为1。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'PageSize' => [ - 'description' => '每页大小,取值:1~1000之间的任意整数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], + 'Status' => ['description' => 'SLS实时日志状态。'."\n" + ."\n" + .'- **success**:成功。'."\n" + .'- **fail**:失败。', 'type' => 'string', 'example' => 'success'], + 'Type' => ['description' => '投递类型。目前仅支持**SLS_POST**(SLS投递)类型。', 'type' => 'string', 'example' => 'SLS_POST'], + 'SLSLogStore' => ['description' => '日志库名称。', 'type' => 'string', 'example' => 'example-cn'], + 'DataCenter' => ['description' => '数据中心。', 'type' => 'string', 'example' => 'cn'], + 'FieldName' => ['description' => '字段名称。所有字段请参见[实时日志采集字段说明](~~324199~~)。', 'type' => 'string', 'example' => 'field1,field2'], + 'ProjectName' => ['description' => '项目名称。', 'type' => 'string', 'example' => 'example'], + 'SamplingRate' => ['description' => '采样率。', 'type' => 'string', 'example' => '1.0'], + 'SLSProject' => ['description' => '日志名称。', 'type' => 'string', 'example' => 'example-cn'], + 'DomainName' => ['description' => '域名列表,多个域名用半角逗号(,)隔开。', 'type' => 'string', 'example' => 'example.com,example.org'], + 'BusinessType' => ['description' => '业务类型,取值:'."\n" + ."\n" + .'- **cdn_log_access_l1**(默认值):用户访问日志。'."\n" + .'- **cdn_log_er**:边缘程序日志。'."\n" + .'- **cdn_log_waf**:WAF拦截日志。', 'type' => 'string', 'example' => 'cdn_log_access_l1'], + 'SLSRegion' => ['description' => '日志区域名称。', 'type' => 'string', 'example' => 'cn-hangzhou'], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'NotFoundCertList', - 'errorMessage' => 'The certList is null.', - ], + ['errorCode' => 'ProjectNotFound', 'errorMessage' => 'The project provided does not belong to you.', 'description' => '项目不存在或不属于当前用户'], + ], + 500 => [ + ['errorCode' => 'Internal Exception', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => '内部错误,请稍后重试或联系我们。'], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-3C82-72F8FD6DA2FE\\",\\n \\"CertificateListModel\\": {\\n \\"Count\\": 2,\\n \\"CertList\\": {\\n \\"Cert\\": [\\n {\\n \\"Fingerprint\\": \\"4278e3b81ab5bc678d253e74c17ffb88\\",\\n \\"Issuer\\": \\"yourCertIssuer\\",\\n \\"CertId\\": 7428244,\\n \\"CertRegion\\": \\"cn-hangzhou\\",\\n \\"CertName\\": \\"yourCertName\\",\\n \\"LastTime\\": 1548065550,\\n \\"Common\\": \\"example.com\\"\\n }\\n ]\\n },\\n \\"PageNumber\\": 2,\\n \\"PageSize\\": 20\\n }\\n}","type":"json"}]', - 'title' => '查询证书列表-按域名', - ], - 'SetDcdnDomainSSLCertificate' => [ - 'summary' => '调用SetDcdnDomainSSLCertificate设置某域名下是否启用证书功能及更新证书信息。', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询实时日志项目', + 'summary' => '调用DescribeDcdnSLSRealtimeLogDelivery查看实时日志项目。', + 'description' => '> 单用户调用频率:100次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-12-18T07:22:52.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnSLSRealtimeLogDelivery'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSLSRealtimeLogDelivery', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F32C57AA-7BF8-49AE-A2CC-9F42390F5A19\\",\\n \\"Content\\": {\\n \\"Status\\": \\"success\\",\\n \\"Type\\": \\"SLS_POST\\",\\n \\"SLSLogStore\\": \\"example-cn\\",\\n \\"DataCenter\\": \\"cn\\",\\n \\"FieldName\\": \\"field1,field2\\",\\n \\"ProjectName\\": \\"example\\",\\n \\"SamplingRate\\": \\"1.0\\",\\n \\"SLSProject\\": \\"example-cn\\",\\n \\"DomainName\\": \\"example.com,example.org\\",\\n \\"BusinessType\\": \\"cdn_log_access_l1\\",\\n \\"SLSRegion\\": \\"cn-hangzhou\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnSLSRealtimeLogDeliveryResponse>\\n<RequestId>F32C57AA-7BF8-49AE-A2CC-9F42390F5A19</RequestId>\\n<Content>\\n <ProjectName>example</ProjectName>\\n <DomainName>example.com,example.org</DomainName>\\n <FieldName>field1,field2</FieldName>\\n <SamplingRate>1.0</SamplingRate>\\n <DataCenter>cn</DataCenter>\\n <SLSRegion>cn-hangzhou</SLSRegion>\\n <SLSProject>example-cn</SLSProject>\\n <SLSLogStore>example-cn</SLSLogStore>\\n <BusinessType>cdn_log_access_l1</BusinessType>\\n <Type>SLS_POST</Type>\\n</Content>\\n</DescribeDcdnSLSRealtimeLogDeliveryResponse>","errorExample":""}]', + ], + 'DescribeDcdnSMCertificateDetail' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '162268', - 'abilityTreeNodes' => [ - 'FEATUREdcdnX7NWEB', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '证书所属的服务域名,需属于HTTPS加速类型。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'CertName', - 'in' => 'query', - 'schema' => [ - 'description' => '证书名称,目前只支持单个证书名称,只有**CertType**=**upload**时生效。'."\n" - .'**CertType**=**upload**时选填,给新证书的名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'yourCertName', - ], - ], - [ - 'name' => 'CertId', - 'in' => 'query', - 'schema' => [ - 'description' => '证书ID,只有**CertType**=**cas**时生效。'."\n" - .'**CertType**=**cas**时必填,表示选择已有证书。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '8089870', - ], - ], - [ - 'name' => 'CertType', - 'in' => 'query', - 'schema' => [ - 'description' => '证书类型。'."\n" - ."\n" - .'- **upload**:上传证书。'."\n" - .'- **cas**:证书中心证书。', - 'type' => 'string', - 'required' => false, - 'example' => 'upload', - 'enum' => [ - 'cas', - 'upload', - ], - ], - ], - [ - 'name' => 'SSLProtocol', - 'in' => 'query', - 'schema' => [ - 'description' => 'HTTPS证书是否启用。'."\n" - ."\n" - .'- **on**:启用。'."\n" - .'- **off**:不启用。', - 'type' => 'string', - 'required' => true, - 'example' => 'off', - ], - ], - [ - 'name' => 'SSLPub', - 'in' => 'query', - 'schema' => [ - 'description' => '安全证书内容,不启用证书则无需输入,配置证书请输入证书内容。', - 'type' => 'string', - 'required' => false, - 'example' => 'xxx', - ], - ], - [ - 'name' => 'SSLPri', - 'in' => 'query', - 'schema' => [ - 'description' => '私钥内容,不启用证书则无需输入,配置证书请输入私钥内容。', - 'type' => 'string', - 'required' => false, - 'example' => 'y****', - ], - ], - [ - 'name' => 'CertRegion', + 'name' => 'CertIdentifier', 'in' => 'query', - 'schema' => [ - 'description' => '证书所在地域。支持**cn-hangzhou**和**ap-southeast-1**,默认**cn-hangzhou**。国际站用户建议使用**ap-southeast-1**。', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [ - 'ap-southeast-1' => 'ap-southeast-1', - 'cn-hangzhou' => 'cn-hangzhou', - ], - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '证书ID。', 'type' => 'string', 'required' => true, 'example' => '648****-cn-hangzhou'], ], ], 'responses' => [ @@ -16750,163 +14789,54 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A7C69682-7F88-40DD-A198-10D0309E439D', - ], + 'CertExpireTime' => ['description' => '证书到期时间,GMT时间。', 'type' => 'string', 'example' => '2022-08-31T09:42:28Z'], + 'CertIdentifier' => ['description' => '证书ID。', 'type' => 'string', 'example' => '648****-cn-hangzhou'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A7C69682-7F88-40DD-A198-10D0309E439D'], + 'CommonName' => ['description' => '通用域名。', 'type' => 'string', 'example' => 'example.com'], + 'CertName' => ['description' => '证书名称。', 'type' => 'string', 'example' => 'yourCertName'], + 'Sans' => ['description' => '扩展域名。', 'type' => 'string', 'example' => '***.example.com'], + 'SignCertificate' => ['description' => '签名证书内容。', 'type' => 'string', 'example' => '--BEGIN CERTIFICATE-----***-----END CERTIFICATE--'], + 'CertOrg' => ['description' => '证书颁发机构。', 'type' => 'string', 'example' => 'DigiCert Inc'], + 'EncryptCertificate' => ['description' => '加密证书内容。', 'type' => 'string', 'example' => '--BEGIN CERTIFICATE-----***-----END CERTIFICATE--'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidSSLProtocol.ValueNotSupported', - 'errorMessage' => 'The specified SSLProtocol is invalid.', - ], - [ - 'errorCode' => 'SSLPub.MissingParameter', - 'errorMessage' => 'The SSLPub parameter is required.', - ], - [ - 'errorCode' => 'SSLPri.MissingParameter', - 'errorMessage' => 'The SSLPri parameter is required.', - ], - [ - 'errorCode' => 'InvalidSSLPub', - 'errorMessage' => 'The specified SSLPub is invalid.', - ], - [ - 'errorCode' => 'InvalidSSLPri', - 'errorMessage' => 'The specified SSLPri is invalid.', - ], - [ - 'errorCode' => 'Certificate.MissMatch', - 'errorMessage' => 'The SSLPri does not match the certificate.', - ], - [ - 'errorCode' => 'InvalidCertificate.TooLong', - 'errorMessage' => 'The maximum length of the certificate is exceeded.', - ], - [ - 'errorCode' => 'InvalidCertName.TooLong', - 'errorMessage' => 'The length of the certificate name cannot exceed 128 characters.', - ], - [ - 'errorCode' => 'AuthenticationFailed', - 'errorMessage' => 'Error performing verification.', - ], - [ - 'errorCode' => 'SetDomainCertificate.ParameterError', - 'errorMessage' => 'The specified parameters are invalid.', - ], - [ - 'errorCode' => 'Certificate.StatusError', - 'errorMessage' => 'The status of the certificate is invalid.', - ], - [ - 'errorCode' => 'DeleteFailed', - 'errorMessage' => 'Error deleting the certificate.', - ], - [ - 'errorCode' => 'Certificate.NotFind', - 'errorMessage' => 'The certificate does not exist.', - ], - [ - 'errorCode' => 'Certificate.Duplicated', - 'errorMessage' => 'The certificate name already exists.', - ], - [ - 'errorCode' => 'Certificate.FormatError', - 'errorMessage' => 'The format of the certificate is invalid.', - ], - [ - 'errorCode' => 'Certificate.KeyNull', - 'errorMessage' => 'The private key is required.', - ], - [ - 'errorCode' => 'Key.Malformed', - 'errorMessage' => 'The specified Key format is invalid.', - ], - [ - 'errorCode' => 'CertStorage.failed', - 'errorMessage' => 'Error saving the certificate.', - ], - [ - 'errorCode' => 'CertificateContent.Duplicated', - 'errorMessage' => 'The certificate has been uploaded; do not upload again.', - ], - [ - 'errorCode' => 'Certificate.Expired', - 'errorMessage' => 'The certificate has expired.', - ], - [ - 'errorCode' => 'InvalidDomain.notOnline', - 'errorMessage' => 'The domain is offline. Check the status of the domain and try again later.', - ], - [ - 'errorCode' => 'Decode.Error', - 'errorMessage' => 'Error decoding the SSLPub or SSLPri certificate.', - ], - [ - 'errorCode' => 'sslPub.Error', - 'errorMessage' => 'Error encoding SSLPub.', - ], - [ - 'errorCode' => 'sslPri.Error', - 'errorMessage' => 'Error encoding SSLPri.', - ], - [ - 'errorCode' => 'DomainInSafeMode', - 'errorMessage' => 'The domain is in safe mode. To request permission, contact Customer Service.', - ], - [ - 'errorCode' => 'CreateCertificateFailed', - 'errorMessage' => 'Create certificate failed,please try again.', - ], - [ - 'errorCode' => 'Abs.CertRegion.ValueNotSupported', - 'errorMessage' => 'CertRegion is not supported.', - ], - [ - 'errorCode' => 'CertNameAlreadyExists', - 'errorMessage' => 'The CertName already exists.', - ], + ['errorCode' => 'InvalidCertIdentifier.ValueNotSupported', 'errorMessage' => 'The specified value of parameter CertIdentifier is not valid.', 'description' => '指定的CertIdentifier不合法。'], ], - 403 => [ - [ - 'errorCode' => 'DomainInProtectedMode', - 'errorMessage' => 'The domain is in protection mode. To request permission, contact Customer Service.', - ], + ], + 'title' => '查询国密证书详情', + 'summary' => '调用DescribeDcdnSMCertificateDetail查询国密证书的详细信息。', + 'description' => '>单用户调用频率:30次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnSMCertificateDetail'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'CertName.MissingParameter', - 'errorMessage' => 'You must specify CertName.', - ], - [ - 'errorCode' => 'InvalidDomain.Offline', - 'errorMessage' => 'The domain is offline.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSMCertificateDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A7C69682-7F88-40DD-A198-10D0309E439D\\"\\n}","errorExample":""},{"type":"xml","example":"<SetDcdnDomainSSLCertificateResponse>\\n <RequestId>A7C69682-7F88-40DD-A198-10D0309E439D</RequestId>\\n</SetDcdnDomainSSLCertificateResponse>","errorExample":""}]', - 'title' => '配置域名证书', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CertExpireTime\\": \\"2022-08-31T09:42:28Z\\",\\n \\"CertIdentifier\\": \\"648****-cn-hangzhou\\",\\n \\"RequestId\\": \\"A7C69682-7F88-40DD-A198-10D0309E439D\\",\\n \\"CommonName\\": \\"example.com\\",\\n \\"CertName\\": \\"yourCertName\\",\\n \\"Sans\\": \\"***.example.com\\",\\n \\"SignCertificate\\": \\"--BEGIN CERTIFICATE-----***-----END CERTIFICATE--\\",\\n \\"CertOrg\\": \\"DigiCert Inc\\",\\n \\"EncryptCertificate\\": \\"--BEGIN CERTIFICATE-----***-----END CERTIFICATE--\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnSMCertiicateDetailResponse>\\n<SignCertificate>--BEGIN CERTIFICATE-----***-----END CERTIFICATE--</SignCertificate>\\n<EncryptCertificate>--BEGIN CERTIFICATE-----***-----END CERTIFICATE--</EncryptCertificate>\\n<CertName>yourCerName</CertName>\\n<CertIdentifier>648****-cn-hangzhou</CertIdentifier>\\n<CommonName>example.com</CommonName>\\n<Sans>***.example.com</Sans>\\n<CertOrg>DigiCert Inc</CertOrg>\\n<CertExpireTime>2022-08-31T09:42:28Z</CertExpireTime>\\n<RequestId>A7C69682-7F88-40DD-A198-10D0309E439D</RequestId>\\n</DescribeDcdnSMCertiicateDetailResponse>","errorExample":""}]', ], - 'DescribeDcdnHttpsDomainList' => [ - 'summary' => '调用DescribeDcdnHttpsDomainList查询用户所有证书信息。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnSMCertificateList' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -16917,44 +14847,13 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnX7NWEB', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => '页数。取值范围:**1~100000**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], - ], - [ - 'name' => 'PageSize', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '分页大小。取值:**1~500**,默认为**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - 'default' => '20', - ], - ], - [ - 'name' => 'Keyword', - 'in' => 'query', - 'schema' => [ - 'description' => '搜索关键字。', - 'type' => 'string', - 'required' => false, - 'example' => 'cert', - ], + 'schema' => ['description' => '需要查询国密证书列表信息的加速域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ @@ -16962,73 +14861,22 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'TotalCount' => [ - 'description' => '总条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '16', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'F5E8DF64-7175-4186-9B06-F002C0BBD0C5', - ], - 'CertInfos' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'DC0E34AC-0239-44A7-AB0E-800DE522C8DC'], + 'CertificateListModel' => [ + 'description' => '证书信息类型。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'CertInfo' => [ - 'description' => '证书信息。', + 'Count' => ['description' => '证书个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'CertList' => [ + 'description' => '证书列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'CertStartTime' => [ - 'description' => '证书开始时间。', - 'type' => 'string', - 'example' => '2018-11-26 14:45:09', - ], - 'CertExpireTime' => [ - 'description' => '证书过期时间。', - 'type' => 'string', - 'example' => '2018-12-26 14:45:09', - ], - 'CertUpdateTime' => [ - 'description' => '证书更新时间。', - 'type' => 'string', - 'example' => '2019-01-08 18:33:16', - ], - 'CertType' => [ - 'description' => '证书类型。取值:'."\n" - .'- **cas**:云盾证书。'."\n" - .'- **upload**:自定义上传。', - 'type' => 'string', - 'example' => 'upload', - ], - 'CertName' => [ - 'description' => '证书名称。', - 'type' => 'string', - 'example' => 'cert', - ], - 'CertStatus' => [ - 'description' => '证书状态。取值:'."\n" - .'- **ok**:正常。'."\n" - .'- **mismatch**:域名与证书不匹配。'."\n" - .'- **expired**:证书已过期。'."\n" - .'- **expire_soon**:证书即将过期。', - 'type' => 'string', - 'example' => 'mismatch', - ], - 'DomainName' => [ - 'description' => '加速域名。', - 'type' => 'string', - 'example' => '*.com', - ], - 'CertCommonName' => [ - 'description' => '证书主域名。', - 'type' => 'string', - 'example' => '*.com', - ], + 'CertName' => ['description' => '证书名称。', 'type' => 'string', 'example' => 'yourCertName'], + 'Issuer' => ['description' => '证书发行商。', 'type' => 'string', 'example' => 'yourCertIssuer'], + 'CertIdentifier' => ['description' => '证书ID。', 'type' => 'string', 'example' => 'yourCertldentifier'], + 'Common' => ['description' => '证书公用名。', 'type' => 'string', 'example' => 'yourCertCommon'], ], ], ], @@ -17038,78 +14886,85 @@ ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'NoHttpsDomain', - 'errorMessage' => 'Your account does not have any HTTPS domain.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 16,\\n \\"RequestId\\": \\"F5E8DF64-7175-4186-9B06-F002C0BBD0C5\\",\\n \\"CertInfos\\": {\\n \\"CertInfo\\": [\\n {\\n \\"CertStartTime\\": \\"2018-11-26 14:45:09\\",\\n \\"CertExpireTime\\": \\"2018-12-26 14:45:09\\",\\n \\"CertUpdateTime\\": \\"2019-01-08 18:33:16\\",\\n \\"CertType\\": \\"upload\\",\\n \\"CertName\\": \\"cert\\",\\n \\"CertStatus\\": \\"mismatch\\",\\n \\"DomainName\\": \\"*.com\\",\\n \\"CertCommonName\\": \\"*.com\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnHttpsDomainListResponse>\\n<CertInfos>\\n <CertInfo>\\n <CertUpdateTime>2019-01-08 18:33:16</CertUpdateTime>\\n <CertType>upload</CertType>\\n <CertName>cert</CertName>\\n <DomainName>*.com</DomainName>\\n <CertStatus>mismatch</CertStatus>\\n <CertExpireTime>2018-12-26 14:45:09</CertExpireTime>\\n <CertStartTime>2018-11-26 14:45:09</CertStartTime>\\n <CertCommonName>*.com</CertCommonName>\\n </CertInfo>\\n</CertInfos>\\n<TotalCount>16</TotalCount>\\n<RequestId>F5E8DF64-7175-4186-9B06-F002C0BBD0C5</RequestId>\\n</DescribeDcdnHttpsDomainListResponse>","errorExample":""}]', - 'title' => '查询证书列表', - 'description' => '> 单用户调用频率:100次/秒。 ', + 'title' => '查询国密证书列表', + 'summary' => '调用DescribeDcdnSMCertificateList查询指定域名下国密证书列表信息。', + 'description' => '>单用户调用频率:30次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnCertificateList' => [ - 'summary' => '调用DescribeDcdnCertificateList按照域名查询证书列表信息。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2022-10-27T03:06:26.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnSMCertificateList'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSMCertificateList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DC0E34AC-0239-44A7-AB0E-800DE522C8DC\\",\\n \\"CertificateListModel\\": {\\n \\"Count\\": 2,\\n \\"CertList\\": [\\n {\\n \\"CertName\\": \\"yourCertName\\",\\n \\"Issuer\\": \\"yourCertIssuer\\",\\n \\"CertIdentifier\\": \\"yourCertldentifier\\",\\n \\"Common\\": \\"yourCertCommon\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnSMCertificateListResponse>\\n<CertificateListModel>\\n <Count>2</Count>\\n <CertList>\\n <Cert>\\n <CertName>yourCertName1</CertName>\\n <Issuer>yourCertIssuer1</Issuer>\\n <CertIdentifier>yourCertIdentifier1</CertIdentifier>\\n <Common>yourCertCommon1</Common>\\n </Cert>\\n <Cert>\\n <CertName>yourCertName2</CertName>\\n <Issuer>yourCertIssuer2</Issuer>\\n <CertIdentifier>yourCertIdentifier2</CertIdentifier>\\n <Common>yourCertCommon2</Common>\\n </Cert>\\n </CertList>\\n</CertificateListModel>\\n<RequestId>DC0E34AC-0239-44A7-AB0E-800DE522C8DC</RequestId>\\n</DescribeDcdnSMCertificateListResponse>","errorExample":""}]', + ], + 'DescribeDcdnSSLCertificateList' => [ + 'summary' => '调用DescribeDcdnSSLCertificateList按照域名查询证书列表信息。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => true, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnX7NWEB', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '证书所属加速域名。该域名为HTTPS安全加速类型。', 'type' => 'string', 'required' => false, 'example' => 'www.example.com'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '页码,默认值为1。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1', 'default' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '分页大小,取值:**1~1000**之间的任意整数。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '10', 'default' => '1000'], + ], + [ + 'name' => 'SearchKeyword', + 'in' => 'query', + 'schema' => ['description' => '证书名称模糊查询。', 'type' => 'string', 'required' => false, 'example' => 'taobao'], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求id。', - 'type' => 'string', - 'example' => 'FC0E34AC-0239-44A7-AB0E-800DE522C8DA', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CB1A380B-09F0-41BB-3C82-72F8FD6DA2FE'], 'CertificateListModel' => [ - 'description' => '证书信息类型。', + 'description' => '证书列表信息。', 'type' => 'object', 'properties' => [ - 'Count' => [ - 'description' => '证书数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], + 'Count' => ['description' => '证书数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], 'CertList' => [ 'type' => 'object', 'itemNode' => true, @@ -17121,67 +14976,56 @@ 'description' => '证书列表信息。', 'type' => 'object', 'properties' => [ - 'Fingerprint' => [ - 'description' => '证书指纹。', - 'type' => 'string', - 'example' => '0151xxxx', - ], - 'Issuer' => [ - 'description' => '证书发行商。', - 'type' => 'string', - 'example' => 'DigiCert', - ], - 'CertId' => [ - 'description' => '证书ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '7428244', - ], - 'CertName' => [ - 'description' => '证书名称。', - 'type' => 'string', - 'example' => 'yourCertName', - ], - 'LastTime' => [ - 'description' => '证书最后修改时间,单位:毫秒', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1548065550', - ], - 'Common' => [ - 'description' => '证书公用名。', - 'type' => 'string', - 'example' => 'example.com', - ], + 'Fingerprint' => ['description' => '证书指纹。', 'type' => 'string', 'example' => '4278e3b81ab5bc678d253e74c17ffb88'], + 'Issuer' => ['description' => '证书发行商。', 'type' => 'string', 'example' => 'yourCertIssuer'], + 'CertId' => ['description' => '证书ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '7428244'], + 'CertRegion' => ['description' => '证书所在地域。支持**cn-hangzhou**和**ap-southeast-1**,默认**cn-hangzhou** .', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'CertName' => ['description' => '证书名称。', 'type' => 'string', 'example' => 'yourCertName'], + 'LastTime' => ['description' => '证书最后修改时间,单位:毫秒', 'type' => 'integer', 'format' => 'int64', 'example' => '1548065550'], + 'Common' => ['description' => '证书中的CN属性,一般是一个域名。', 'type' => 'string', 'example' => 'example.com'], ], ], ], ], ], + 'PageNumber' => ['description' => '当前页数,起始值为1,默认为1。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'PageSize' => ['description' => '每页大小,取值:1~1000之间的任意整数。', 'type' => 'integer', 'format' => 'int64', 'example' => '20'], ], ], ], ], ], ], - 'staticInfo' => [ - 'substitutions' => [ - 'dcdn::2018-01-15::DescribeDcdnSSLCertificateList', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'NotFoundCertList', 'errorMessage' => 'The certList is null.', 'description' => '证书列表为空'], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"FC0E34AC-0239-44A7-AB0E-800DE522C8DA\\",\\n \\"CertificateListModel\\": {\\n \\"Count\\": 2,\\n \\"CertList\\": {\\n \\"Cert\\": [\\n {\\n \\"Fingerprint\\": \\"0151xxxx\\",\\n \\"Issuer\\": \\"DigiCert\\",\\n \\"CertId\\": 7428244,\\n \\"CertName\\": \\"yourCertName\\",\\n \\"LastTime\\": 1548065550,\\n \\"Common\\": \\"example.com\\"\\n }\\n ]\\n }\\n }\\n}","type":"json"}]', 'title' => '查询证书列表-按域名', - ], - 'DescribeDcdnDomainByCertificate' => [ - 'summary' => '调用DescribeDcdnDomainByCertificate根据证书信息查询域名。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnSSLCertificateList'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSSLCertificateList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-3C82-72F8FD6DA2FE\\",\\n \\"CertificateListModel\\": {\\n \\"Count\\": 2,\\n \\"CertList\\": {\\n \\"Cert\\": [\\n {\\n \\"Fingerprint\\": \\"4278e3b81ab5bc678d253e74c17ffb88\\",\\n \\"Issuer\\": \\"yourCertIssuer\\",\\n \\"CertId\\": 7428244,\\n \\"CertRegion\\": \\"cn-hangzhou\\",\\n \\"CertName\\": \\"yourCertName\\",\\n \\"LastTime\\": 1548065550,\\n \\"Common\\": \\"example.com\\"\\n }\\n ]\\n },\\n \\"PageNumber\\": 2,\\n \\"PageSize\\": 20\\n }\\n}","type":"json"}]', + ], + 'DescribeDcdnSecFuncInfo' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -17192,47 +15036,25 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnX7NWEB', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'SSLPub', - 'in' => 'query', - 'schema' => [ - 'description' => '证书公钥。'."\n" - ."\n" - .'需要先采用Base64编码,再进行encodeURIComponent编码,支持PEM格式。', - 'type' => 'string', - 'required' => true, - 'example' => 'xxx', - ], - ], - [ - 'name' => 'SSLStatus', + 'name' => 'SecFuncType', 'in' => 'query', - 'schema' => [ - 'description' => '表示返回的域名列表只包含开启或关闭HTTPS的域名。'."\n" - ."\n" - .'- true:开启'."\n" - .'- false:关闭', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '下拉列表类型:RobotRuleName,RobotObject。', 'type' => 'string', 'required' => true, 'example' => 'RobotRuleName'], ], [ - 'name' => 'Exact', + 'name' => 'Lang', 'in' => 'query', 'schema' => [ - 'description' => '表示返回的域名列表是否与证书精准匹配。'."\n" - ."\n" - .'- true:开启'."\n" - .'- false:关闭', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + 'description' => '语言类型,将以此语言返回。取值范围:'."\n" + .'- **en**:英文 (默认)。'."\n" + .'- **zh**:中文。', + 'type' => 'string', + 'required' => true, + 'example' => 'en', + 'enum' => ['zh', 'en'], ], ], ], @@ -17241,120 +15063,60 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'ASAF2FDS-12SADSA-DDSAE3D-DSADCD4C-CDADS2D', - ], - 'CertInfos' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'CertInfo' => [ - 'description' => '证书信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'CertStartTime' => [ - 'description' => '证书开始时间。', - 'type' => 'string', - 'example' => 'Nov 29 23:59:59 2017 GMT', - ], - 'CertExpireTime' => [ - 'description' => '证书过期时间。', - 'type' => 'string', - 'example' => 'Nov 29 00:00:00 2016 GMT', - ], - 'CertCaIsLegacy' => [ - 'description' => '证书CA废弃状态。取值:'."\n" - .'- **yes**:已废弃。'."\n" - .'- **no**:正常,未废弃。', - 'type' => 'string', - 'example' => 'yes', - ], - 'CertSubjectCommonName' => [ - 'description' => '证书所有者名称。', - 'type' => 'string', - 'example' => 'example.aliyundoc.com', - ], - 'CertType' => [ - 'description' => '证书类型。支持**RSA**、**DSA**、**ECDSA**三种取值。', - 'type' => 'string', - 'example' => 'RSA', - ], - 'DomainNames' => [ - 'description' => '证书匹配的域名(DNS字段),多个域名用英文逗号(,)分隔。'."\n", - 'type' => 'string', - 'example' => '*.example.com,example.org', - ], - 'CertExpired' => [ - 'description' => '证书过期状态。取值:'."\n" - .'- **yes**:已过期。'."\n" - .'- **no**:未过期。', - 'type' => 'string', - 'example' => 'yes', - ], - 'Issuer' => [ - 'description' => '证书颁发机构。', - 'type' => 'string', - 'example' => 'C=US, O=Symantec Corporation, OU=Symantec Trust Network, OU=Domain Validated SSL, CN=Symantec Basic DV SSL CA - G1', - ], - 'DomainList' => [ - 'description' => '使用对应证书的域名列表。'."\n" - ."\n" - .'如果该参数的返回值不为空,则将域名列表与对应的证书进行匹配,多个域名用英文逗号(,)分隔。', - 'type' => 'string', - 'example' => 'example.com,example.org', - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '30A3A25A-86B3-4C1D-BAA8-12B8607A5CFD'], + 'Description' => ['description' => 'HTTP请响应说明描述。', 'type' => 'string', 'example' => 'OK'], + 'RetCode' => ['description' => 'HTTP请响应返回码。'."\n" + ."\n" + .'- 0:OK。'."\n" + .'- 非0:返回错误。', 'type' => 'string', 'example' => '0'], + 'HttpStatus' => ['description' => 'HTTP响应状态码。', 'type' => 'string', 'example' => '200'], + 'Content' => [ + 'description' => '代码所需要的参数。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Label' => ['description' => '根据语言设置显示中文或英文。', 'type' => 'string', 'example' => 'ai_defense'], + 'Value' => ['description' => '下拉列表取值项。', 'type' => 'string', 'example' => 'ai_defense'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Certificate.FormatError', - 'errorMessage' => 'The format of the certificate is invalid.', - ], - [ - 'errorCode' => 'SSLPub.MissingParameter', - 'errorMessage' => 'The SSLPub parameter is required.', - ], - [ - 'errorCode' => 'Decode.Error', - 'errorMessage' => 'Error decoding the SSLPub or SSLPri certificate.', - ], + 'title' => '提供边缘安全下拉列表', + 'summary' => '调用DescribeDcdnSecFuncInfo为DCDN控制台界面提供边缘安全下拉列表。', + 'description' => '> 单用户调用频率:50次/秒。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnSecFuncInfo'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSecFuncInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"ASAF2FDS-12SADSA-DDSAE3D-DSADCD4C-CDADS2D\\",\\n \\"CertInfos\\": {\\n \\"CertInfo\\": [\\n {\\n \\"CertStartTime\\": \\"Nov 29 23:59:59 2017 GMT\\",\\n \\"CertExpireTime\\": \\"Nov 29 00:00:00 2016 GMT\\",\\n \\"CertCaIsLegacy\\": \\"yes\\",\\n \\"CertSubjectCommonName\\": \\"example.aliyundoc.com\\",\\n \\"CertType\\": \\"RSA\\",\\n \\"DomainNames\\": \\"*.example.com,example.org\\",\\n \\"CertExpired\\": \\"yes\\",\\n \\"Issuer\\": \\"C=US, O=Symantec Corporation, OU=Symantec Trust Network, OU=Domain Validated SSL, CN=Symantec Basic DV SSL CA - G1\\",\\n \\"DomainList\\": \\"example.com,example.org\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainByCertificateResponse>\\n<RequestId>ASAF2FDS-12SADSA-DDSAE3D-DSADCD4C-CDADS2D</RequestId>\\n<content>\\n <Issuer>C=US, O=Symantec Corporation, OU=Symantec Trust Network, OU=Domain Validated SSL, CN=Symantec Basic DV SSL CA - G1</Issuer>\\n <CertType>RSA</CertType>\\n <CertSubjectCommonName>example.aliyundoc.com</CertSubjectCommonName>\\n <CertStartTime>Nov 29 23:59:59 2017 GMT</CertStartTime>\\n <CertExpireTime>Nov 29 00:00:00 2016 GMT</CertExpireTime>\\n <DomainNames>*.example.com,example.org</DomainNames>\\n <DomainList>example.com,example.org</DomainList>\\n <CertExpired>yes</CertExpired>\\n <CertCaIsLegacy>yes</CertCaIsLegacy>\\n</content>\\n</DescribeDcdnDomainByCertificateResponse>","errorExample":""}]', - 'title' => '查询域名-按证书', - 'description' => '> 单用户调用频率:100次/秒。 ', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"30A3A25A-86B3-4C1D-BAA8-12B8607A5CFD\\",\\n \\"Description\\": \\"OK\\",\\n \\"RetCode\\": \\"0\\",\\n \\"HttpStatus\\": \\"200\\",\\n \\"Content\\": [\\n {\\n \\"Label\\": \\"ai_defense\\",\\n \\"Value\\": \\"ai_defense\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<RequestId>30A3A25A-86B3-4C1D-BAA8-12B8607A5CFD</RequestId>\\n<Content>\\n <Label>ai_defense</Label>\\n <Language>en</Language>\\n <Value>ai_defense</Value>\\n</Content>\\n<Content>\\n <Label>legal_spiders</Label>\\n <Language>en</Language>\\n <Value>legal_spiders</Value>\\n</Content>\\n<Content>\\n <Label>threat_intelligence</Label>\\n <Language>en</Language>\\n <Value>threat_intelligence</Value>\\n</Content>\\n<Description>OK</Description>\\n<RetCode>0</RetCode>\\n<HttpStatus>200</HttpStatus>","errorExample":""}]', ], - 'DescribeDcdnCertificateDetail' => [ - 'summary' => '调用DescribeDcdnCertificateDetail查询DCDN证书详细信息。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnSecSpecInfo' => [ + 'summary' => '调用DescribeDcdnSecSpecInfo查询安全DCDN版本及安全规则。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -17365,74 +15127,77 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnX7NWEB', - ], - ], - 'parameters' => [ - [ - 'name' => 'CertName', - 'in' => 'query', - 'schema' => [ - 'description' => '证书名称。', - 'type' => 'string', - 'required' => true, - 'example' => '123', - ], - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CertName' => [ - 'description' => '证书名称。', - 'type' => 'string', - 'example' => '123', - ], - 'Key' => [ - 'description' => '证书key。', - 'type' => 'string', - 'example' => 'ak1htyxxxx', - ], - 'Cert' => [ - 'description' => '证书内容。', - 'type' => 'string', - 'example' => '-----BEGIN CERTIFICATE-----xxx-----END CERTIFICATE-----', - ], - 'CertId' => [ - 'description' => '证书ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '123', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'C7C69682-7F88-40DD-A198-10D0309E439B', + 'Version' => ['description' => '安全DCDN版本。', 'type' => 'string', 'example' => 'enterprise'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '32f6cbb7-13e5-403a-9941-4d4e978dd227'], + 'SpecInfos' => [ + 'description' => '支持的规则代码及规则的配置信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RuleCode' => ['description' => '用户对应的安全规则代码。', 'type' => 'string', 'example' => 'accurate_***'], + 'RuleConfigs' => [ + 'description' => '安全规则对应的配置。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '安全规则对应的配置代码。', 'type' => 'string', 'example' => 'custom_****_number'], + 'Value' => ['description' => '安全规则对应的配置表达式值。', 'type' => 'string', 'example' => '20'], + 'Expr' => ['description' => '安全规则对应的配置表达式。', 'type' => 'string', 'example' => 'equal'], + ], + ], + ], + ], + ], ], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CertName\\": \\"123\\",\\n \\"Key\\": \\"ak1htyxxxx\\",\\n \\"Cert\\": \\"-----BEGIN CERTIFICATE-----xxx-----END CERTIFICATE-----\\",\\n \\"CertId\\": 123,\\n \\"RequestId\\": \\"C7C69682-7F88-40DD-A198-10D0309E439B\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnCertificateDetailResponse>\\n<CertId>123</CertId>\\n<RequestId>C7C69682-7F88-40DD-A198-10D0309E439B</RequestId>\\n<CertName>证书名称</CertName>\\n<Cert>-----BEGIN CERTIFICATE-----xxx-----END CERTIFICATE-----</Cert>\\n<key>ak1htyxxxx</key>\\n</DescribeDcdnCertificateDetailResponse>\\n","errorExample":""}]', - 'title' => '查询证书详情', - 'description' => '> 单用户调用频率:30次/秒。 ', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidVersion.NotFound', 'errorMessage' => 'The version does not exist.', 'description' => '这个版本号不存在。'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ], + ], + 'title' => '查询安全DCDN版本及安全规则', + 'description' => '>单用户调用频率:50次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainCertificateInfo' => [ - 'summary' => '调用DescribeDcdnDomainCertificateInfo查询指定域名证书信息。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnSecSpecInfo'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSecSpecInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Version\\": \\"enterprise\\",\\n \\"RequestId\\": \\"32f6cbb7-13e5-403a-9941-4d4e978dd227\\",\\n \\"SpecInfos\\": [\\n {\\n \\"RuleCode\\": \\"accurate_***\\",\\n \\"RuleConfigs\\": [\\n {\\n \\"Code\\": \\"custom_****_number\\",\\n \\"Value\\": \\"20\\",\\n \\"Expr\\": \\"equal\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnSecSpecInfoResponse>\\n<RequestId>205DDD09-B23C-5ACD-BA88-3FB3DBEEBD74</RequestId>\\n<Version>enterprise</Version>\\n<SpecInfos>\\n <RuleConfigs>\\n <Expr>equal</Expr>\\n <Value>20</Value>\\n <Code>custom_****_number</Code>\\n </RuleConfigs>\\n <RuleCode>accurate_***</RuleCode>\\n</SpecInfos>\\n</DescribeDcdnSecSpecInfoResponse>","errorExample":""}]', + ], + 'DescribeDcdnService' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -17443,130 +15208,64 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnX7NWEB', - ], - ], - 'parameters' => [ - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,仅支持查询单个域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], + 'abilityTreeCode' => '111546', + 'abilityTreeNodes' => ['FEATUREdcdnZA9EPX'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5C1E43DC-9E51-4771-82C0-7D5ECEB547A1', - ], - 'CertInfos' => [ + 'WebsocketChangingTime' => ['description' => '与ChangingAffectTime值一样,Websocket变配生效时间,需要与当前时间比较,晚于当前时间才在前端显示。', 'type' => 'string', 'example' => '2018-03-19T11:16:11Z'], + 'WebsocketChangingType' => ['description' => 'Websocket下次生效的计费类型,包括**websockettraffic**(流量)和**websocketbps**(带宽)。', 'type' => 'string', 'example' => 'websocketbps'], + 'ChangingAffectTime' => ['description' => '下次生效时间,GMT时间。'."\n", 'type' => 'string', 'example' => '2018-03-31T16:00:00Z'], + 'ChangingChargeType' => ['description' => '下次生效的计费类型。'."\n" + ."\n" + .'- **PayByTraffic**:流量。'."\n" + ."\n" + .'- **PayByBandwidth**:带宽。'."\n" + ."\n" + .'- **PayByBandwidth95**:月95。'."\n" + ."\n" + .'- **PayByBandwidth_monthavg**:月平均带宽。'."\n" + ."\n" + .'- **PayByBandwidth_month4th**:月第四峰值。'."\n" + ."\n" + .'- **PayByBandwidth_monthday95avg**:月平均95。'."\n" + ."\n" + .'- **PayByBandwidth_nighthalf95**:月95夜间减半。', 'type' => 'string', 'example' => 'PayByBandwidth'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'EF2AEBC2-EDBD-41CF-BF64-7E095D42D6EF'], + 'OpeningTime' => ['description' => '开通服务时间,ISO 8601时间格式。', 'type' => 'string', 'example' => '2018-03-19T11:16:11Z'], + 'InternetChargeType' => ['description' => '当前计费类型。'."\n" + ."\n" + .'- **PayByTraffic**:流量。'."\n" + ."\n" + .'- **PayByBandwidth**:带宽。'."\n" + ."\n" + .'- **PayByBandwidth95**:月95。'."\n" + ."\n" + .'- **PayByBandwidth_monthavg**:月平均带宽。'."\n" + ."\n" + .'- **PayByBandwidth_month4th**:月第四峰值。'."\n" + ."\n" + .'- **PayByBandwidth_monthday95avg**:月平均95。'."\n" + ."\n" + .'- **PayByBandwidth_nighthalf95**:月95夜间减半。', 'type' => 'string', 'example' => 'PayByTraffic'], + 'WebsocketType' => ['description' => 'Websocket当前计费类型,包括**websockettraffic**(流量)和**websocketbps**(带宽)。', 'type' => 'string', 'example' => 'websocketbps'], + 'InstanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'FP-mkqgwxxxx'], + 'OperationLocks' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'CertInfo' => [ - 'description' => '证书信息。'."\n", + 'LockReason' => [ + 'description' => '业务锁定状态。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => '证书状态。'."\n" - ."\n" - .'- **success**:已生效。'."\n" - ."\n" - .'- **checking**:检测域名是否在阿里云全站加速。'."\n" - ."\n" - .'- **cname_error**:域名没有切到阿里云全站加速。'."\n" - ."\n" - .'- **domain_invalid**:域名包含非法字符。'."\n" - ."\n" - .'- **unsupport_wildcard**:不支持泛域名。'."\n" - ."\n" - .'- **applying**:证书申请中。'."\n" - ."\n" - .'- **get_token_timeout**:证书申请超时。'."\n" - ."\n" - .'- **check_token_timeout**:校验超时。'."\n" - ."\n" - .'- **get_cert_timeout**:获取证书超时。'."\n" - ."\n" - .'- **failed**:证书申请失败。', - 'type' => 'string', - 'example' => 'success', - ], - 'CertLife' => [ - 'description' => '证书时长。单位:**months**(月)和**years**(年)。'."\n", - 'type' => 'string', - 'example' => '3 months', - ], - 'CertExpireTime' => [ - 'description' => '证书过期时间。'."\n", - 'type' => 'string', - 'example' => '2018-06-03T22:03:39Z', - ], - 'SSLPub' => [ - 'description' => '证书公钥。', - 'type' => 'string', - 'example' => 'xxxx', - ], - 'SSLProtocol' => [ - 'description' => 'HTTPS开启状态。'."\n" - ."\n" - .'- **on**:已开启。'."\n" - ."\n" - .'- **off**:未开启。', - 'type' => 'string', - 'example' => 'on', - ], - 'CertType' => [ - 'description' => '证书类型。'."\n" - ."\n" - .'- **cas**:云盾证书。'."\n" - .'- **upload**:自定义上传。', - 'type' => 'string', - 'example' => 'cas', - ], - 'CertDomainName' => [ - 'description' => '证书匹配的域名。'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'CertName' => [ - 'description' => '证书名称。', - 'type' => 'string', - 'example' => 'cert-example.com', - ], - 'CertOrg' => [ - 'description' => '证书组织。', - 'type' => 'string', - 'example' => 'Let\'s Encrypt', - ], - 'DomainName' => [ - 'description' => '加速域名。'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'CertId' => [ - 'description' => '证书ID。', - 'type' => 'string', - 'example' => '9002448', - ], - 'CertRegion' => [ - 'description' => '证书区域。', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], + 'LockReason' => ['description' => '锁定原因。例如:financial(欠费)。', 'type' => 'string', 'example' => 'financial'], ], ], ], @@ -17576,117 +15275,39 @@ ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"5C1E43DC-9E51-4771-82C0-7D5ECEB547A1\\",\\n \\"CertInfos\\": {\\n \\"CertInfo\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"CertLife\\": \\"3 months\\",\\n \\"CertExpireTime\\": \\"2018-06-03T22:03:39Z\\",\\n \\"SSLPub\\": \\"xxxx\\",\\n \\"SSLProtocol\\": \\"on\\",\\n \\"CertType\\": \\"cas\\",\\n \\"CertDomainName\\": \\"example.com\\",\\n \\"CertName\\": \\"cert-example.com\\",\\n \\"CertOrg\\": \\"Let\'s Encrypt\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"CertId\\": \\"9002448\\",\\n \\"CertRegion\\": \\"cn-hangzhou\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainCertificateInfoResponse>\\n <RequestId>5C1E43DC-9E51-4771-82C0-7D5ECEB547A1</RequestId>\\n <CertInfos>\\n <Status>success</Status>\\n <CertLife>3 months</CertLife>\\n <CertExpireTime>2018-06-03T22:03:39Z</CertExpireTime>\\n <SSLPub>xxxx</SSLPub>\\n <SSLProtocol>on</SSLProtocol>\\n <CertType>cas</CertType>\\n <CertDomainName>example.com</CertDomainName>\\n <CertName>cert-example.com</CertName>\\n <CertOrg>Let\'s Encrypt</CertOrg>\\n <DomainName>example.com</DomainName>\\n </CertInfos>\\n</DescribeDcdnDomainCertificateInfoResponse>","errorExample":""}]', - 'title' => '查询指定域名证书信息', - 'description' => '> 单用户调用频率:100次/秒。 ', + 'title' => '获取DCDN服务状态', + 'summary' => '调用DescribeDcdnService查询DCDN服务状态。包括:当前计费类型、服务开通时间、下次生效的计费类型、当前业务状态等。', + 'description' => '> 单用户调用频率:30次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'SetDcdnDomainSMCertificate' => [ - 'summary' => '调用SetDcdnDomainSMCertificate设置指定域名下是否启用国密证书功能。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2022-10-27T05:52:26.000Z', 'description' => '错误码发生变更'], ], - 'security' => [ - [ - 'AK' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnService'], ], ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnX7NWEB', - ], - ], - 'parameters' => [ + 'ramActions' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '指定国密证书所属的加速域名。'."\n" - ."\n" - .'>加速域名需属于HTTPS加速类型。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'CertIdentifier', - 'in' => 'query', - 'schema' => [ - 'description' => '证书ID+"-cn-hangzhou"。如果证书ID=123,则CertIdentifier=“123-cn-hangzhou”。', - 'type' => 'string', - 'required' => true, - 'example' => '123-cn-hangzhou', - ], - ], - [ - 'name' => 'SSLProtocol', - 'in' => 'query', - 'schema' => [ - 'description' => 'HTTPS证书是否启用。'."\n" - ."\n" - .'- **on**:启用。'."\n" - .'- **off**:不启用。', - 'type' => 'string', - 'required' => true, - 'example' => 'on', - 'enum' => [ - 'on', - 'off', - ], - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C8', - ], + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidCertIdentifier.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter CertIdentifier is not valid.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C8\\"\\n}","errorExample":""},{"type":"xml","example":"<SetDcdnDomainSMCertificateResponse>\\n <RequestId>0AEDAF20-4DDF-4165-8750-47FF9C1929C8</RequestId>\\n</SetDcdnDomainSMCertificateResponse>","errorExample":""}]', - 'title' => '设置国密证书', - 'description' => '>单用户调用频率:30次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"WebsocketChangingTime\\": \\"2018-03-19T11:16:11Z\\",\\n \\"WebsocketChangingType\\": \\"websocketbps\\",\\n \\"ChangingAffectTime\\": \\"2018-03-31T16:00:00Z\\",\\n \\"ChangingChargeType\\": \\"PayByBandwidth\\",\\n \\"RequestId\\": \\"EF2AEBC2-EDBD-41CF-BF64-7E095D42D6EF\\",\\n \\"OpeningTime\\": \\"2018-03-19T11:16:11Z\\",\\n \\"InternetChargeType\\": \\"PayByTraffic\\",\\n \\"WebsocketType\\": \\"websocketbps\\",\\n \\"InstanceId\\": \\"FP-mkqgwxxxx\\",\\n \\"OperationLocks\\": {\\n \\"LockReason\\": [\\n {\\n \\"LockReason\\": \\"financial\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnServiceResponse>\\r\\n\\t<ChangingChargeType>PayByBandwidth</ChangingChargeType>\\r\\n\\t<OpeningTime>2018-03-19T11:16:11Z</OpeningTime>\\r\\n\\t<InstanceId>FP-mkqgwxxxx</InstanceId>\\r\\n\\t<RequestId>EF2AEBC2-EDBD-41CF-BF64-7E095D42D6EF</RequestId>\\r\\n\\t<ChangingAffectTime>2018-03-31T16:00:00Z</ChangingAffectTime>\\r\\n\\t<OperationLocks>\\r\\n\\t\\t<LockReason>\\r\\n\\t\\t\\t<LockReason>financial</LockReason>\\r\\n\\t\\t</LockReason>\\r\\n\\t</OperationLocks>\\r\\n\\t<InternetChargeType>PayByTraffic</InternetChargeType>\\r\\n</DescribeDcdnServiceResponse>\\r\\n\\t\\r\\n","errorExample":""}]', ], - 'DescribeDcdnSMCertificateDetail' => [ - 'summary' => '调用DescribeDcdnSMCertificateDetail查询国密证书的详细信息。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnStagingIp' => [ + 'summary' => '调用DescribeDcdnStagingIp获取公测节点有效VIP。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -17697,199 +15318,62 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], - ], - 'parameters' => [ - [ - 'name' => 'CertIdentifier', - 'in' => 'query', - 'schema' => [ - 'description' => '证书ID。', - 'type' => 'string', - 'required' => true, - 'example' => '648****-cn-hangzhou', - ], - ], + 'abilityTreeCode' => '111550', + 'abilityTreeNodes' => ['FEATUREdcdn33QGRH'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CertExpireTime' => [ - 'description' => '证书到期时间,GMT时间。', - 'type' => 'string', - 'example' => '2022-08-31T09:42:28Z', - ], - 'CertIdentifier' => [ - 'description' => '证书ID。', - 'type' => 'string', - 'example' => '648****-cn-hangzhou', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A7C69682-7F88-40DD-A198-10D0309E439D', - ], - 'CommonName' => [ - 'description' => '通用域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'CertName' => [ - 'description' => '证书名称。', - 'type' => 'string', - 'example' => 'yourCertName', - ], - 'Sans' => [ - 'description' => '扩展域名。', - 'type' => 'string', - 'example' => '***.example.com', - ], - 'SignCertificate' => [ - 'description' => '签名证书内容。', - 'type' => 'string', - 'example' => '--BEGIN CERTIFICATE-----***-----END CERTIFICATE--', - ], - 'CertOrg' => [ - 'description' => '证书颁发机构。', - 'type' => 'string', - 'example' => 'DigiCert Inc', - ], - 'EncryptCertificate' => [ - 'description' => '加密证书内容。', - 'type' => 'string', - 'example' => '--BEGIN CERTIFICATE-----***-----END CERTIFICATE--', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '1B9E0E83-24AC-49F4-9EE0-BF5EB03E8381'], + 'IPV4s' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'IPV4' => [ + 'type' => 'array', + 'items' => ['description' => '由IPv4协议的IP地址组成的数据格式。', 'type' => 'string', 'example' => '192.168.xxx.xxx","192.168.xxx.xxx'], + ], + ], ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidCertIdentifier.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter CertIdentifier is not valid.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CertExpireTime\\": \\"2022-08-31T09:42:28Z\\",\\n \\"CertIdentifier\\": \\"648****-cn-hangzhou\\",\\n \\"RequestId\\": \\"A7C69682-7F88-40DD-A198-10D0309E439D\\",\\n \\"CommonName\\": \\"example.com\\",\\n \\"CertName\\": \\"yourCertName\\",\\n \\"Sans\\": \\"***.example.com\\",\\n \\"SignCertificate\\": \\"--BEGIN CERTIFICATE-----***-----END CERTIFICATE--\\",\\n \\"CertOrg\\": \\"DigiCert Inc\\",\\n \\"EncryptCertificate\\": \\"--BEGIN CERTIFICATE-----***-----END CERTIFICATE--\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnSMCertiicateDetailResponse>\\n<SignCertificate>--BEGIN CERTIFICATE-----***-----END CERTIFICATE--</SignCertificate>\\n<EncryptCertificate>--BEGIN CERTIFICATE-----***-----END CERTIFICATE--</EncryptCertificate>\\n<CertName>yourCerName</CertName>\\n<CertIdentifier>648****-cn-hangzhou</CertIdentifier>\\n<CommonName>example.com</CommonName>\\n<Sans>***.example.com</Sans>\\n<CertOrg>DigiCert Inc</CertOrg>\\n<CertExpireTime>2022-08-31T09:42:28Z</CertExpireTime>\\n<RequestId>A7C69682-7F88-40DD-A198-10D0309E439D</RequestId>\\n</DescribeDcdnSMCertiicateDetailResponse>","errorExample":""}]', - 'title' => '查询国密证书详情', - 'description' => '>单用户调用频率:30次/秒。', + 'title' => '获取公测节点有效VIP', + 'description' => '> 单用户调用频率:30次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnSMCertificateList' => [ - 'summary' => '调用DescribeDcdnSMCertificateList查询指定域名下国密证书列表信息。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2022-12-08T06:46:33.000Z', 'description' => '错误码发生变更'], ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnStagingIp'], ], ], - 'parameters' => [ + 'ramActions' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '需要查询国密证书列表信息的加速域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DC0E34AC-0239-44A7-AB0E-800DE522C8DC', - ], - 'CertificateListModel' => [ - 'description' => '证书信息类型。', - 'type' => 'object', - 'properties' => [ - 'Count' => [ - 'description' => '证书个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'CertList' => [ - 'description' => '证书列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'CertName' => [ - 'description' => '证书名称。', - 'type' => 'string', - 'example' => 'yourCertName', - ], - 'Issuer' => [ - 'description' => '证书发行商。', - 'type' => 'string', - 'example' => 'yourCertIssuer', - ], - 'CertIdentifier' => [ - 'description' => '证书ID。', - 'type' => 'string', - 'example' => 'yourCertldentifier', - ], - 'Common' => [ - 'description' => '证书公用名。', - 'type' => 'string', - 'example' => 'yourCertCommon', - ], - ], - ], - ], - ], - ], + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnStagingIp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"DC0E34AC-0239-44A7-AB0E-800DE522C8DC\\",\\n \\"CertificateListModel\\": {\\n \\"Count\\": 2,\\n \\"CertList\\": [\\n {\\n \\"CertName\\": \\"yourCertName\\",\\n \\"Issuer\\": \\"yourCertIssuer\\",\\n \\"CertIdentifier\\": \\"yourCertldentifier\\",\\n \\"Common\\": \\"yourCertCommon\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnSMCertificateListResponse>\\n<CertificateListModel>\\n <Count>2</Count>\\n <CertList>\\n <Cert>\\n <CertName>yourCertName1</CertName>\\n <Issuer>yourCertIssuer1</Issuer>\\n <CertIdentifier>yourCertIdentifier1</CertIdentifier>\\n <Common>yourCertCommon1</Common>\\n </Cert>\\n <Cert>\\n <CertName>yourCertName2</CertName>\\n <Issuer>yourCertIssuer2</Issuer>\\n <CertIdentifier>yourCertIdentifier2</CertIdentifier>\\n <Common>yourCertCommon2</Common>\\n </Cert>\\n </CertList>\\n</CertificateListModel>\\n<RequestId>DC0E34AC-0239-44A7-AB0E-800DE522C8DC</RequestId>\\n</DescribeDcdnSMCertificateListResponse>","errorExample":""}]', - 'title' => '查询国密证书列表', - 'description' => '>单用户调用频率:30次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"1B9E0E83-24AC-49F4-9EE0-BF5EB03E8381\\",\\n \\"IPV4s\\": {\\n \\"IPV4\\": [\\n \\"192.168.xxx.xxx\\\\\\",\\\\\\"192.168.xxx.xxx\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnStagingIpResponse>\\n <RequestId>1B9E0E83-24AC-49F4-9EE0-BF5EB03E8381</RequestId>\\n <IPV4s>192.168.xx.xx\\",\\"192.168.xx.xx</IPV4s>\\n</DescribeDcdnStagingIpResponse>","errorExample":""}]', ], - 'DescribeDcdnUserCertificateExpireCount' => [ - 'summary' => '调用DescribeDcdnUserCertificateExpireCount查询DCDN用户证书过期的域名数量。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnSubList' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -17900,9 +15384,8 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnX7NWEB', - ], + 'abilityTreeCode' => '111551', + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM', 'FEATUREdcdn2Z4HOI'], 'tenantRelevance' => 'publicInformation', ], 'parameters' => [], @@ -17911,199 +15394,63 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'ExpireWithin30DaysCount' => [ - 'description' => '30天内证书即将过期的域名数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'F5E8DF64-7175-4186-9B06-F002C0BBD0C5', - ], - 'ExpiredCount' => [ - 'description' => '证书已过期的域名数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '6', - ], + 'Content' => ['description' => '已定制的报表任务。', 'type' => 'string', 'example' => '"data": [{"subId": 336,"reportId": [6,8],"createTime": "2021-07-05T06:18:46Z","domains": ["example.com"],"effectiveFrom": "2021-07-05T06:18:46Z","effectiveEnd": "2021-10-05T06:18:46Z","status": "enable"}]'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '3250A51D-C11D-46BA-B6B3-95348EEDE652'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ['errorCode' => 'TimeParseFailed', 'errorMessage' => 'Failed to parse the time parameter.', 'description' => '解析时间参数失败'], + ['errorCode' => 'SubscriptionAlreadyExists', 'errorMessage' => 'The subscription already exists.', 'description' => '定制服务已开通'], + ['errorCode' => 'SubscriptionNotFound', 'errorMessage' => 'The subscription is not found.', 'description' => '未开通定制服务'], + ['errorCode' => 'NameAlreadyExists', 'errorMessage' => 'The name already exists.', 'description' => '名称已存在'], + ['errorCode' => 'DeliverExceedLimit', 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', 'description' => '订阅任务个数已达上限'], + ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"ExpireWithin30DaysCount\\": 0,\\n \\"RequestId\\": \\"F5E8DF64-7175-4186-9B06-F002C0BBD0C5\\",\\n \\"ExpiredCount\\": 6\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnUserCertificateExpireCountResponse>\\n<ExpiredCount>6</ExpiredCount>\\n<ExpireWithin30DaysCount>0</ExpireWithin30DaysCount>\\n<RequestId>F5E8DF64-7175-4186-9B06-F002C0BBD0C5</RequestId>\\n</DescribeDcdnUserCertificateExpireCountResponse>","errorExample":""}]', - 'title' => '查询证书过期的域名数量', - 'description' => '> 单用户调用频率:100次/秒。', + 'title' => '查询已定制的报表任务', + 'summary' => '调用DescribeDcdnSubList查询已定制的报表任务。', + 'description' => '> - 调用该接口默认返回所有已定制的报表,但目前只支持展示单个定制任务,因此调用结果只会返回一个定制报表任务。'."\n" + .'> - 单用户调用频率:3次/秒。', 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', + 'responseParamsDescription' => '#### Content数据说明'."\n" + ."\n" + .'|参数|类型|描述'."\n" + .'|--------|----|--------------|'."\n" + .'|subId|Long|任务的请求ID。|'."\n" + .'|reportId|Long[]|报表ID列表。|'."\n" + .'|createTime|String|报表创建时间。|'."\n" + .'|domains|String[]|定制报表的域名列表。|'."\n" + .'|effectiveFrom|String|定制任务开始时间。|'."\n" + .'|effectiveEnd|String|定制任务结束时间。|'."\n" + .'|status|String|定制任务状态。取值:<br>enable:启用。<br>disable:关闭。|', 'extraInfo' => ' ', - ], - 'TagDcdnResources' => [ - 'summary' => '调用TagDcdnResources添加资源标签。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnSubList'], ], ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], - ], - 'parameters' => [ - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'description' => '资源类型。固定值:**DOMAIN**。', - 'type' => 'string', - 'required' => true, - 'example' => 'DOMAIN', - 'enum' => [ - 'DOMAIN', - ], - ], - ], + 'ramActions' => [ [ - 'name' => 'ResourceId', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '资源ID列表。最多可输入 50 个资源 ID。', - 'type' => 'array', - 'items' => [ - 'description' => '资源ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSubList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], ], - 'required' => true, - 'example' => 'example.com', - 'maxItems' => 51, - ], - ], - [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '标签列表。最多可输入 20 个标签。', - 'type' => 'array', - 'items' => [ - 'description' => '标签解释。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键。', - 'type' => 'string', - 'required' => true, - 'example' => 'env', - ], - 'Value' => [ - 'description' => '标签值。', - 'type' => 'string', - 'required' => false, - 'example' => 'value', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 21, ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '97C68796-EB7F-4D41-9D5B-12B909D76508', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidRegionId.Malformed', - 'errorMessage' => 'The specified RegionId is invalid.', - ], - [ - 'errorCode' => 'Resource.NotExist', - 'errorMessage' => 'The resource does not exist.', - ], - [ - 'errorCode' => 'TagKeyIsInvalid', - 'errorMessage' => 'The specified TagKey is invalid.', - ], - [ - 'errorCode' => 'TooManyTags', - 'errorMessage' => 'You have entered too many tags.', - ], - [ - 'errorCode' => 'TagValueIsInvalid', - 'errorMessage' => 'The specified TagValue is invalid.', - ], - [ - 'errorCode' => 'TagKeyDuplicated', - 'errorMessage' => 'The specified TagKey is duplicated.', - ], - [ - 'errorCode' => 'TagIsInvalid', - 'errorMessage' => 'The number of Tag exceeds 20.', - ], - [ - 'errorCode' => 'ResourceIdIsInvalid', - 'errorMessage' => 'The number of ResourceId exceeds 50.', - ], - [ - 'errorCode' => 'SystemTagIsInvalid', - 'errorMessage' => 'The number of System Tag exceeds 50.', - ], - [ - 'errorCode' => 'CustomTagIsInvalid', - 'errorMessage' => 'The number of Custom Tag exceeds 20.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"97C68796-EB7F-4D41-9D5B-12B909D76508\\"\\n}","errorExample":""},{"type":"xml","example":"<TagDcdnResourcesResponse>\\r\\n<RequestId>97C68796-EB7F-4D41-9D5B-12B909D76508</RequestId>\\r\\n</TagDcdnResourcesResponse>","errorExample":""}]', - 'title' => '添加资源标签', - 'description' => '> 单用户调用频率:100次/秒。 ', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": \\"\\\\\\"data\\\\\\": [{\\\\\\"subId\\\\\\": 336,\\\\\\"reportId\\\\\\": [6,8],\\\\\\"createTime\\\\\\": \\\\\\"2021-07-05T06:18:46Z\\\\\\",\\\\\\"domains\\\\\\": [\\\\\\"example.com\\\\\\"],\\\\\\"effectiveFrom\\\\\\": \\\\\\"2021-07-05T06:18:46Z\\\\\\",\\\\\\"effectiveEnd\\\\\\": \\\\\\"2021-10-05T06:18:46Z\\\\\\",\\\\\\"status\\\\\\": \\\\\\"enable\\\\\\"}]\\",\\n \\"RequestId\\": \\"3250A51D-C11D-46BA-B6B3-95348EEDE652\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnSubListResponse>\\n<RequestId>3250A51D-C11D-46BA-B6B3-95348EEDE652</RequestId>\\n<Content>\\n <data>\\n <subId>336</subId>\\n <reportId>6</reportId>\\n <reportId>8</reportId>\\n <createTime>2021-07-05T06:18:46Z</createTime>\\n <domains>example.com</domains>\\n <effectiveFrom>2021-07-05T06:18:46Z</effectiveFrom>\\n <effectiveEnd>2021-10-05T06:18:46Z</effectiveEnd>\\n <status>enable</status>\\n </data>\\n</Content>\\n</DescribeDcdnSubListResponse>","errorExample":""}]', ], 'DescribeDcdnTagResources' => [ - 'summary' => '调用DescribeDcdnTagResources查询资源对应的标签。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -18114,20 +15461,13 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'description' => '资源类型,固定值:**DOMAIN**。', - 'type' => 'string', - 'required' => true, - 'example' => 'DOMAIN', - ], + 'schema' => ['description' => '资源类型,固定值:**DOMAIN**。', 'type' => 'string', 'required' => true, 'example' => 'DOMAIN'], ], [ 'name' => 'ResourceId', @@ -18136,12 +15476,7 @@ 'schema' => [ 'description' => '资源ID列表。最多可输入50个资源ID。', 'type' => 'array', - 'items' => [ - 'description' => '资源ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'items' => ['description' => '资源ID。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], 'required' => true, 'example' => 'example.com', 'maxItems' => 50, @@ -18157,18 +15492,8 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => '标签键。', - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'Value' => [ - 'description' => '标签值。', - 'type' => 'string', - 'required' => false, - 'example' => 'product', - ], + 'Key' => ['description' => '标签键。', 'type' => 'string', 'required' => false, 'example' => 'env'], + 'Value' => ['description' => '标签值。', 'type' => 'string', 'required' => false, 'example' => 'product'], ], 'required' => false, ], @@ -18182,38 +15507,22 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB'], 'TagResources' => [ 'description' => '资源标签。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ResourceId' => [ - 'description' => '资源ID。', - 'type' => 'string', - 'example' => 'example.com', - ], + 'ResourceId' => ['description' => '资源ID。', 'type' => 'string', 'example' => 'example.com'], 'Tag' => [ 'description' => '标签。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => '标签键。', - 'type' => 'string', - 'example' => 'env', - ], - 'Value' => [ - 'description' => '标签值。', - 'type' => 'string', - 'example' => 'product', - ], + 'Key' => ['description' => '标签键。', 'type' => 'string', 'example' => 'env'], + 'Value' => ['description' => '标签值。', 'type' => 'string', 'example' => 'product'], ], ], ], @@ -18224,171 +15533,69 @@ ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\",\\n \\"TagResources\\": [\\n {\\n \\"ResourceId\\": \\"example.com\\",\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnTagResourcesResponse>\\n <RequestId>34AB41F1-04A5-496F-8C8D-634BDBE6A9FB</RequestId>\\n <TagResources>\\n <ResourceId>example.com</ResourceId>\\n <Tag>\\n <Key>env</Key>\\n <Value>product</Value>\\n </Tag>\\n </TagResources>\\n</DescribeDcdnTagResourcesResponse>","errorExample":""}]', 'title' => '查询资源对应的标签', + 'summary' => '调用DescribeDcdnTagResources查询资源对应的标签。', 'description' => '> 单用户调用频率:10次/秒。 ', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnUserTags' => [ - 'summary' => '调用DescribeDcdnUserTags查询用户标签。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnTagResources'], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '111565', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], - 'tenantRelevance' => 'publicInformation', - ], - 'parameters' => [], - 'responses' => [ - 200 => [ - 'headers' => [], - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB', - ], - 'Tags' => [ - 'description' => '标签。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签键。', - 'type' => 'string', - 'example' => 'region', - ], - 'Value' => [ - 'type' => 'array', - 'items' => [ - 'description' => '标签值。', - 'type' => 'string', - 'example' => 'hangzhou', - ], - ], - ], - ], - ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnTagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"region\\",\\n \\"Value\\": [\\n \\"hangzhou\\"\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnUserTagsResponse>\\n<Tags>\\n <Key>env</Key>\\n <Value>product</Value>\\n <Value>pre</Value>\\n <Value>daily</Value>\\n</Tags>\\n<Tags>\\n <Key>region</Key>\\n <Value>hangzhou</Value>\\n</Tags>\\n<RequestId>34AB41F1-04A5-496F-8C8D-634BDBE6A9FB</RequestId>\\n</DescribeDcdnUserTagsResponse>","errorExample":""}]', - 'title' => '查询用户标签', - 'description' => '> 单用户调用频率:100次/秒。 ', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\",\\n \\"TagResources\\": [\\n {\\n \\"ResourceId\\": \\"example.com\\",\\n \\"Tag\\": [\\n {\\n \\"Key\\": \\"env\\",\\n \\"Value\\": \\"product\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnTagResourcesResponse>\\n <RequestId>34AB41F1-04A5-496F-8C8D-634BDBE6A9FB</RequestId>\\n <TagResources>\\n <ResourceId>example.com</ResourceId>\\n <Tag>\\n <Key>env</Key>\\n <Value>product</Value>\\n </Tag>\\n </TagResources>\\n</DescribeDcdnTagResourcesResponse>","errorExample":""}]', ], - 'UntagDcdnResources' => [ - 'summary' => '调用UntagDcdnResources删除资源标签。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnTopDomainsByFlow' => [ + 'summary' => '调用DescribeDcdnTopDomainsByFlow查询用户按流量排名的域名,支持获取最近90天的数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeCode' => '111553', + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'description' => '资源类型。固定值:**DOMAIN**。', - 'type' => 'string', - 'required' => true, - 'example' => 'DOMAIN', - 'enum' => [ - 'DOMAIN', - ], - ], - ], - [ - 'name' => 'All', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '删除所有标签。取值:'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'默认取值为**false**。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '获取数据起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2016-03-01T04:00:00Z'], ], [ - 'name' => 'ResourceId', + 'name' => 'EndTime', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '资源ID。N的取值范围:**1**~**50**。', - 'type' => 'array', - 'items' => [ - 'description' => '资源ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'example***.com', - ], - 'required' => true, - 'example' => 'example.com', - 'maxItems' => 51, - ], + 'schema' => ['description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'结束时间需大于起始时间。'."\n", 'type' => 'string', 'required' => false, 'example' => '2016-03-14T07:34:00Z'], ], [ - 'name' => 'TagKey', + 'name' => 'Limit', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '标签键。N的取值范围:**1**~**20**。', - 'type' => 'array', - 'items' => [ - 'description' => '标签键。', - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'required' => false, - 'example' => 'env', - 'maxItems' => 21, - ], + 'schema' => ['description' => '域名获取数量限制,默认为**20**,取值支持**1**~**100**。'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '20', 'default' => '20'], ], ], 'responses' => [ @@ -18396,44 +15603,79 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '97C68796-EB7F-4D41-9D5B-12B909D76508', + 'DomainOnlineCount' => ['description' => '账户下**正在运行**域名总数。'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '68'], + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2016-03-14T07:34:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2016-03-14T06:34:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '4E09C5D7-E1CF-4CAA-A45E-8727F4C8FD70'], + 'DomainCount' => ['description' => '账户下域名总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '68'], + 'TopDomains' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'TopDomain' => [ + 'description' => '排名域名列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'MaxBps' => ['description' => '带宽峰值。', 'type' => 'integer', 'format' => 'int64', 'example' => '22139626'], + 'Rank' => ['description' => '排名。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'TotalAccess' => ['description' => '访问次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '3'], + 'TrafficPercent' => ['description' => '流量占比。', 'type' => 'string', 'example' => '21.686305274906182'], + 'DomainName' => ['description' => '域名。', 'type' => 'string', 'example' => 'example.com'], + 'TotalTraffic' => ['description' => '总流量。', 'type' => 'string', 'example' => '123'], + 'MaxBpsTime' => ['description' => '带宽峰值时刻,使用 ISO8601 表示法,并使用UTC时间。', 'type' => 'string', 'example' => '2018-11-01T08:10:00Z'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'TagIsInvalid', - 'errorMessage' => 'The number of Tag exceeds 20.', - ], - [ - 'errorCode' => 'ResourceIdIsInvalid', - 'errorMessage' => 'The number of ResourceId exceeds 50.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"97C68796-EB7F-4D41-9D5B-12B909D76508\\"\\n}","errorExample":""},{"type":"xml","example":"<UntagDcdnResourcesResponse>\\r\\n<RequestId>97C68796-EB7F-4D41-9D5B-12B909D76508</RequestId>\\r\\n</UntagDcdnResourcesResponse>","errorExample":""}]', - 'title' => '删除资源标签', - 'description' => '> 单用户调用频率:100次/秒。 ', + 'title' => '查询按流量排名的域名', + 'description' => '不指定StartTime和EndTime时,默认读取当月的数据;指定StartTime和EndTime时,按指定的起止时间查询。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnIpaDomainConfigs' => [ - 'summary' => '调用DescribeDcdnIpaDomainConfigs查询域名配置。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnTopDomainsByFlow'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnTopDomainsByFlow', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainOnlineCount\\": 68,\\n \\"EndTime\\": \\"2016-03-14T07:34:00Z\\",\\n \\"StartTime\\": \\"2016-03-14T06:34:00Z\\",\\n \\"RequestId\\": \\"4E09C5D7-E1CF-4CAA-A45E-8727F4C8FD70\\",\\n \\"DomainCount\\": 68,\\n \\"TopDomains\\": {\\n \\"TopDomain\\": [\\n {\\n \\"MaxBps\\": 22139626,\\n \\"Rank\\": 1,\\n \\"TotalAccess\\": 3,\\n \\"TrafficPercent\\": \\"21.686305274906182\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"TotalTraffic\\": \\"123\\",\\n \\"MaxBpsTime\\": \\"2018-11-01T08:10:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnTopDomainsByFlowResponse>\\r\\n\\t<DomainCount>68</DomainCount>\\r\\n\\t<DomainOnlineCount>68</DomainOnlineCount>\\r\\n\\t<RequestId>4E09C5D7-E1CF-4CAA-A45E-8727F4C8FD70</RequestId>\\r\\n\\t<EndTime>2016-03-14T07:34:00Z</EndTime>\\r\\n\\t<TopDomains>\\r\\n\\t\\t<TopDomain>\\r\\n\\t\\t\\t<MaxBps>22139626</MaxBps>\\r\\n\\t\\t\\t<Rank>1</Rank>\\r\\n\\t\\t\\t<TrafficPercent>30.64191989360235</TrafficPercent>\\r\\n\\t\\t\\t<TotalTraffic>2043859876683.9001</TotalTraffic>\\r\\n\\t\\t\\t<TotalAccess>107784230</TotalAccess>\\r\\n\\t\\t\\t<DomainName>example.com</DomainName>\\r\\n\\t\\t\\t<MaxBpsTime>2018-11-01T08:10:00Z</MaxBpsTime>\\r\\n\\t\\t</TopDomain>\\r\\n\\t\\t<TopDomain>\\r\\n\\t\\t\\t<MaxBps>1008772351</MaxBps>\\r\\n\\t\\t\\t<Rank>2</Rank>\\r\\n\\t\\t\\t<TrafficPercent>25.936032624725815</TrafficPercent>\\r\\n\\t\\t\\t<TotalTraffic>1729970466149.2002</TotalTraffic>\\r\\n\\t\\t\\t<TotalAccess>3843128</TotalAccess>\\r\\n\\t\\t\\t<DomainName>example.com</DomainName>\\r\\n\\t\\t\\t<MaxBpsTime>2018-11-01T08:10:00Z</MaxBpsTime>\\r\\n\\t\\t</TopDomain>\\r\\n\\t\\t<TopDomain>\\r\\n\\t\\t\\t<MaxBps>16046911</MaxBps>\\r\\n\\t\\t\\t<Rank>3</Rank>\\r\\n\\t\\t\\t<TrafficPercent>21.686305274906182</TrafficPercent>\\r\\n\\t\\t\\t<TotalTraffic>1446507574551.6</TotalTraffic>\\r\\n\\t\\t\\t<TotalAccess>547567</TotalAccess>\\r\\n\\t\\t\\t<DomainName>example.com</DomainName>\\r\\n\\t\\t\\t<MaxBpsTime>2018-11-01T08:10:00Z</MaxBpsTime>\\r\\n\\t\\t</TopDomain>\\r\\n\\t\\t<TopDomain>\\r\\n\\t\\t\\t<MaxBps>15990893</MaxBps>\\r\\n\\t\\t\\t<Rank>4</Rank>\\r\\n\\t\\t\\t<TrafficPercent>21.261081185428147</TrafficPercent>\\r\\n\\t\\t\\t<TotalTraffic>1418144519687.5</TotalTraffic>\\r\\n\\t\\t\\t<TotalAccess>548380</TotalAccess>\\r\\n\\t\\t\\t<DomainName>example.com</DomainName>\\r\\n\\t\\t\\t<MaxBpsTime>2018-11-01T08:10:00Z</MaxBpsTime>\\r\\n\\t\\t</TopDomain>\\r\\n\\t\\t<TopDomain>\\r\\n\\t\\t\\t<MaxBps>473599</MaxBps>\\r\\n\\t\\t\\t<Rank>5</Rank>\\r\\n\\t\\t\\t<TrafficPercent>0.4308743788055894</TrafficPercent>\\r\\n\\t\\t\\t<TotalTraffic>28739937242.500004</TotalTraffic>\\r\\n\\t\\t\\t<TotalAccess>152150</TotalAccess>\\r\\n\\t\\t\\t<DomainName>example.com</DomainName>\\r\\n\\t\\t\\t<MaxBpsTime>2018-11-01T08:10:00Z</MaxBpsTime>\\r\\n\\t\\t</TopDomain>\\r\\n\\t</TopDomains>\\r\\n\\t<StartTime>2016-03-01T04:00:00Z</StartTime>\\r\\n</DescribeDcdnTopDomainsByFlowResponse>\\r\\n\\t\\r\\n","errorExample":""}]', + ], + 'DescribeDcdnUserBillHistory' => [ + 'summary' => '调用DescribeDcdnUserBillHistory查询用户历史账单,最多查询一个月的数据。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -18444,30 +15686,22 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn2JMMUY', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '您的加速域名,多个域名用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '获取数据起始时间点,日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'最小数据粒度为5分钟。', 'type' => 'string', 'required' => true, 'example' => '2018-09-30T16:00:00Z'], ], [ - 'name' => 'FunctionNames', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '功能列表名称。仅支持protogw,表示IP应用加速。', - 'type' => 'string', - 'required' => true, - 'example' => 'protogw', - ], + 'schema' => ['description' => '获取数据结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'结束时间需大于起始时间。', 'type' => 'string', 'required' => true, 'example' => '2018-10-31T16:00:00Z'], ], ], 'responses' => [ @@ -18475,168 +15709,96 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED', - ], - 'DomainConfigs' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'ED61C6C3-8241-4187-AAA7-5157AE175CEC'], + 'BillHistoryData' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DomainConfig' => [ - 'description' => '域名配置。', + 'BillHistoryDataItem' => [ + 'description' => '历史计费数据。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => '功能配置状态。'."\n" - .'- **success**:成功。'."\n" - ."\n" - .'- **testing**:测试中。'."\n" - ."\n" - .'- **failed**:失败。'."\n" - ."\n" - .'- **configuring**:配置中。'."\n", - 'type' => 'string', - 'example' => 'success', - ], - 'FunctionName' => [ - 'description' => '功能名称。', - 'type' => 'string', - 'example' => 'protogw', - ], - 'FunctionArgs' => [ + 'Dimension' => ['description' => '维度。', 'type' => 'string', 'example' => 'vas'], + 'BillType' => ['description' => '计费模式。', 'type' => 'string', 'example' => 'month_4th_day_bandwidth'], + 'BillTime' => ['description' => '计费周期起始时间。', 'type' => 'string', 'example' => '2018-09-30T17:00:00Z'], + 'BillingData' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'FunctionArg' => [ - 'description' => '功能列表。', + 'BillingDataItem' => [ + 'description' => '计费数据。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ArgValue' => [ - 'description' => '配置值。', - 'type' => 'string', - 'example' => 'txt', - ], - 'ArgName' => [ - 'description' => '配置名称。', - 'type' => 'string', - 'example' => 'file_type', - ], + 'Flow' => ['description' => '流量,单位为字节。', 'type' => 'number', 'format' => 'float', 'example' => '2456'], + 'Bandwidth' => ['description' => '带宽,单位为Bps。', 'type' => 'number', 'format' => 'float', 'example' => '4839'], + 'Count' => ['description' => '个数,单位为个。', 'type' => 'number', 'format' => 'float', 'example' => '205624'], + 'CdnRegion' => ['description' => '计费大区,取值: **CN**、**OverSeas**、**AP1**、**AP2**、**AP3**、**NA**、**SA** 、**EU**、**MEAA**。', 'type' => 'string', 'example' => 'AP1'], + 'ChargeType' => ['description' => '计费类型。取值:**StaticHttp**、**DynamicHttp**、**DynamicHttps**。', 'type' => 'string', 'example' => 'DynamicHttp'], ], + 'description' => '', ], ], ], - ], - 'ConfigId' => [ - 'description' => '配置ID。', - 'type' => 'string', - 'example' => '5003576', + 'description' => '', ], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid%s.ValueNotSupported', - 'errorMessage' => 'FunctionName [%s] is not supported.', - ], + ['errorCode' => 'InvalidParameters', 'errorMessage' => 'The specified parameters are invalid.', 'description' => '参数非法。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => '时间跨度超过限制,请参照接口文档,配置合理查询跨度。'], + ['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified StartTime or EndTime is malformed.', 'description' => '开始时间或结束时间格式错误。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED\\",\\n \\"DomainConfigs\\": {\\n \\"DomainConfig\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"FunctionName\\": \\"protogw\\",\\n \\"FunctionArgs\\": {\\n \\"FunctionArg\\": [\\n {\\n \\"ArgValue\\": \\"txt\\",\\n \\"ArgName\\": \\"file_type\\"\\n }\\n ]\\n },\\n \\"ConfigId\\": \\"5003576\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnIpaDomainConfigsResponse>\\n<RequestId>F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED</RequestId>\\n<DomainConfigs>\\n <DomainConfig>\\n <FunctionArgs>\\n <FunctionArg>\\n <ArgName>file_type</ArgName>\\n <ArgValue>txt</ArgValue>\\n </FunctionArg>\\n </FunctionArgs>\\n <ConfigId>5003576</ConfigId>\\n <FunctionName>protogw</FunctionName>\\n </DomainConfig>\\n</DomainConfigs>\\n</DescribeDcdnIpaDomainConfigsResponse>","errorExample":""}]', - 'title' => '获取IPA层加速域名配置信息', - 'description' => '> 单用户调用频率:20次/秒。', + 'title' => '查询历史账单', + 'description' => '> 单用户调用频率:100次/秒。 ', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'StopDcdnIpaDomain' => [ - 'summary' => '调用StopDcdnIpaDomain停用某个加速域名,将DomainStatus变更为offline。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2023-07-04T06:44:48.000Z', 'description' => '错误码发生变更'], ], - 'security' => [ - [ - 'AK' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserBillHistory'], ], ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn2JMMUY', - ], - ], - 'parameters' => [ + 'ramActions' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '已经接入全站加速IPA的域名,仅支持单个停用。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '15C66C7B-671A-4297-9187-2C4477247A74', - ], + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserBillHistory', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'DcdnIpaServiceNotFound', - 'errorMessage' => 'The DCDN IPA service has not been activated.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A74\\"\\n}","errorExample":""},{"type":"xml","example":"<StopDcdnIpaDomainResponse>\\r\\n\\t<RequestId>15C66C7B-671A-4297-9187-2C4477247A74</RequestId>\\r\\n</StopDcdnIpaDomainResponse>\\r\\n\\t\\r\\n","errorExample":""}]', - 'title' => '停用开启IPA服务的加速域名', - 'description' => '> - 如果您停用加速域名后,加速域名的信息仍保留。针对该条加速域名的请求,系统将做自动回源处理。'."\n" - .'> - 单用户调用频率:20次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"ED61C6C3-8241-4187-AAA7-5157AE175CEC\\",\\n \\"BillHistoryData\\": {\\n \\"BillHistoryDataItem\\": [\\n {\\n \\"Dimension\\": \\"vas\\",\\n \\"BillType\\": \\"month_4th_day_bandwidth\\",\\n \\"BillTime\\": \\"2018-09-30T17:00:00Z\\",\\n \\"BillingData\\": {\\n \\"BillingDataItem\\": [\\n {\\n \\"Flow\\": 2456,\\n \\"Bandwidth\\": 4839,\\n \\"Count\\": 205624,\\n \\"CdnRegion\\": \\"AP1\\",\\n \\"ChargeType\\": \\"DynamicHttp\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnUserBillHistoryResponse>\\n<BillHistoryData>\\n <BillHistoryDataItem>\\n <BillType>month_4th_day_bandwidth</BillType>\\n <BillingData>\\n <BillingDataItem>\\n <Bandwidth>4041</Bandwidth>\\n <CdnRegion>AP1</CdnRegion>\\n <Flow>2456</Flow>\\n </BillingDataItem>\\n <BillingDataItem>\\n <Bandwidth>3819</Bandwidth>\\n <CdnRegion>NA</CdnRegion>\\n </BillingDataItem>\\n <BillingDataItem>\\n <Bandwidth>272113</Bandwidth>\\n <CdnRegion>CN</CdnRegion>\\n </BillingDataItem>\\n </BillingData>\\n <Dimension>flow</Dimension>\\n <BillTime>2018-09-30T16:00:00Z</BillTime>\\n </BillHistoryDataItem>\\n <BillHistoryDataItem>\\n <BillType>month_avg_day_bandwidth</BillType>\\n <BillingData>\\n <BillingDataItem>\\n <Bandwidth>4389</Bandwidth>\\n <CdnRegion>AP1</CdnRegion>\\n </BillingDataItem>\\n <BillingDataItem>\\n <Bandwidth>4302</Bandwidth>\\n <CdnRegion>NA</CdnRegion>\\n </BillingDataItem>\\n <BillingDataItem>\\n <Bandwidth>291641</Bandwidth>\\n <CdnRegion>CN</CdnRegion>\\n </BillingDataItem>\\n </BillingData>\\n <Dimension>flow</Dimension>\\n <BillTime>2018-09-30T16:00:00Z</BillTime>\\n </BillHistoryDataItem>\\n <BillHistoryDataItem>\\n <BillType>hour_vas</BillType>\\n <BillingData>\\n <BillingDataItem>\\n <Count>205624</Count>\\n <ChargeType>DynamicHttp</ChargeType>\\n </BillingDataItem>\\n </BillingData>\\n <Dimension>vas</Dimension>\\n <BillTime>2018-09-30T16:00:00Z</BillTime>\\n </BillHistoryDataItem>\\n <BillHistoryDataItem>\\n <BillType>hour_vas</BillType>\\n <BillingData>\\n <BillingDataItem>\\n <Count>203601</Count>\\n <ChargeType>DynamicHttp</ChargeType>\\n </BillingDataItem>\\n </BillingData>\\n <Dimension>vas</Dimension>\\n <BillTime>2018-09-30T17:00:00Z</BillTime>\\n </BillHistoryDataItem>\\n</BillHistoryData>\\n<RequestId>ED61C6C3-8241-4187-AAA7-5157AE175CEC</RequestId>\\n</DescribeDcdnUserBillHistoryResponse>","errorExample":""}]', ], - 'DescribeUserDcdnIpaStatus' => [ - 'summary' => '调用DescribeUserDcdnIpaStatus查询全站加速IPA是否开通、是否欠费。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnUserBillType' => [ + 'summary' => '调用DescribeDcdnUserBillType查询用户的计费类型。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -18647,624 +15809,202 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111577', - 'abilityTreeNodes' => [ - 'FEATUREdcdnTP4C37', - ], + 'abilityTreeCode' => '111555', + 'abilityTreeNodes' => ['FEATUREdcdnTP4C37'], 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'InDebt' => [ - 'description' => '是否欠费。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'OnService' => [ - 'description' => '服务是否可用(不欠费)。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4F51E9C3-728F-4E35-952D-0ED87A06A8A1', - ], - 'InDebtOverdue' => [ - 'description' => '是否欠费超期。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Enabled' => [ - 'description' => '是否已开通IPA服务。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"InDebt\\": false,\\n \\"OnService\\": true,\\n \\"RequestId\\": \\"4F51E9C3-728F-4E35-952D-0ED87A06A8A1\\",\\n \\"InDebtOverdue\\": false,\\n \\"Enabled\\": true\\n}","errorExample":""},{"type":"xml","example":"<DescribeUserDcdnIpaStatusResponse>\\r\\n\\t<Enabled>true</Enabled>\\r\\n\\t<InDebtOverdue>false</InDebtOverdue>\\r\\n\\t<InDebt>false</InDebt>\\r\\n\\t<OnService>true</OnService>\\r\\n\\t<RequestId>4F51E9C3-728F-4E35-952D-0ED87A06A8A1</RequestId>\\r\\n</DescribeUserDcdnIpaStatusResponse>\\r\\n\\t\\r\\n","errorExample":""}]', - 'title' => '获取IPA服务开通状态', - 'description' => '> 单用户调用频率:20次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnIpaService' => [ - 'summary' => '调用DescribeDcdnIpaService查询全站加速IPA服务状态。包括:当前计费类型、服务开通时间、下次生效的计费类型、当前业务状态等。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ + 'parameters' => [ [ - 'AK' => [], + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据的起始时间点。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间。'."\n" + .'格式为YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'required' => true, 'example' => '2018-09-30T16:00:00Z'], ], - ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '111529', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZA9EPX', + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据的结束时间点。'."\n" + ."\n" + .'结束时间需大于起始时间,日期格式按照ISO8601表示法,并使用UTC时间。'."\n" + .'格式为YYYY-MM-DDThh:mm:ssZ。', 'type' => 'string', 'required' => true, 'example' => '2018-10-31T16:00:00Z'], ], - 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'ChangingAffectTime' => [ - 'description' => 'GMT时间,变配生效时间,需要与当前时间比较,晚于当前时间才能在前端页面显示。'."\n", - 'type' => 'string', - 'example' => '2018-03-31T16:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'EF2AEBC2-EDBD-41CF-BF64-7E095D42D6EF', - ], - 'ChangingChargeType' => [ - 'description' => '下次生效的计费类型:'."\n" - ."\n" - .'- **PayByTraffic**:流量。'."\n" - ."\n" - .'- **PayByBandwidth**:带宽。'."\n" - ."\n" - .'- **PayByBandwidth95**:月95。'."\n" - ."\n" - .'- **PayByBandwidth_monthavg**:月平均带宽。'."\n" - ."\n" - .'- **PayByBandwidth_month4th**:月第四峰值。'."\n" - ."\n" - .'- **PayByBandwidth_monthday95avg**:月平均95。'."\n" - ."\n" - .'- **PayByBandwidth_nighthalf95**:月95夜间减半。'."\n", - 'type' => 'string', - 'example' => 'PayByBandwidth', - ], - 'OpeningTime' => [ - 'description' => '开通服务时间,ISO 8601时间格式。'."\n", - 'type' => 'string', - 'example' => '2018-03-19T11:16:11Z', - ], - 'InternetChargeType' => [ - 'description' => '计费类型:'."\n" - ."\n" - .'- **PayByTraffic**:流量。'."\n" - ."\n" - .'- **PayByBandwidth**:带宽。'."\n" - ."\n" - .'- **PayByBandwidth95**:月95。'."\n" - ."\n" - .'- **PayByBandwidth_monthavg**:月平均带宽。'."\n" - ."\n" - .'- **PayByBandwidth_month4th**:月第四峰值。'."\n" - ."\n" - .'- **PayByBandwidth_monthday95avg**:月平均95。'."\n" - ."\n" - .'- **PayByBandwidth_nighthalf95**:月95夜间减半。'."\n", - 'type' => 'string', - 'example' => 'PayByBandwidth', - ], - 'InstanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => '1883927335936173', - ], - 'OperationLocks' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'C370DAF1-C838-4288-A1A0-9A87633D248E'], + 'BillTypeData' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'LockReason' => [ - 'description' => '业务锁定状态。'."\n", + 'BillTypeDataItem' => [ + 'description' => '用户计费数据列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'LockReason' => [ - 'description' => '锁定原因。例如:**financial**(欠费)。', - 'type' => 'string', - 'example' => 'financial', - ], + 'EndTime' => ['description' => '计费模式结束时间。', 'type' => 'string', 'example' => '2018-10-31T16:00:00Z'], + 'StartTime' => ['description' => '计费模式起始时间。', 'type' => 'string', 'example' => '2018-10-30T16:00:00Z'], + 'BillingCycle' => ['description' => '计费周期。', 'type' => 'string', 'example' => 'month'], + 'Product' => ['description' => '产品。', 'type' => 'string', 'example' => 'dcdn'], + 'BillType' => ['description' => '计费模式。取值:'."\n" + ."\n" + .'- **hour_flow**:小时流量。'."\n" + .'- **day_bandwidth**:日带宽。'."\n" + .'- **month_95**:月95。'."\n" + .'- **month_avg_day_bandwidth**:月均日峰值。'."\n" + .'- **month_4th_day_bandwidth**:月第四日峰值。'."\n" + .'- **month_avg_day_95**:月均日95。'."\n" + .'- **month_95_night_half**:夜间半价95。'."\n" + .'- **hour_vas**:小时增值服务。'."\n" + .'- **quic_hour_count**:小时QUIC请求数。'."\n" + .'- **hour_count**:小时请求次数。'."\n" + .'- **rtlog_count_day**:实时日志。', 'type' => 'string', 'example' => 'month_avg_day_bandwidth_overseas'], + 'Dimension' => ['description' => '维度。取值:'."\n" + ."\n" + .'- **flow**:流量带宽。'."\n" + .'- **vas**:增值服务(HTTPS、动态请求)。'."\n" + .'- **websocket**:网络套接字。'."\n" + .'- **quic**:QUIC请求数。'."\n" + .'- **rtlog2sls**:实时日志推送SLS。', 'type' => 'string', 'example' => 'flow'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'DcdnIpaServiceNotFound', - 'errorMessage' => 'The DCDN IPA service has not been activated.', - ], + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ['errorCode' => 'InvalidParameterProduct', 'errorMessage' => 'The specified Product is invalid.', 'description' => 'Product参数错误'], + ['errorCode' => 'InvalidParameterAliuid', 'errorMessage' => 'The specified Aliuid is invalid.', 'description' => 'Aliuid参数错误'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"ChangingAffectTime\\": \\"2018-03-31T16:00:00Z\\",\\n \\"RequestId\\": \\"EF2AEBC2-EDBD-41CF-BF64-7E095D42D6EF\\",\\n \\"ChangingChargeType\\": \\"PayByBandwidth\\",\\n \\"OpeningTime\\": \\"2018-03-19T11:16:11Z\\",\\n \\"InternetChargeType\\": \\"PayByBandwidth\\",\\n \\"InstanceId\\": \\"1883927335936173\\",\\n \\"OperationLocks\\": {\\n \\"LockReason\\": [\\n {\\n \\"LockReason\\": \\"financial\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnIpaServiceResponse>\\r\\n\\t<ChangingChargeType>PayByBandwidth</ChangingChargeType>\\r\\n\\t<OpeningTime>2018-03-19T11:16:11Z</OpeningTime>\\r\\n\\t<InstanceId>1883927335936173</InstanceId>\\r\\n\\t<RequestId>EF2AEBC2-EDBD-41CF-BF64-7E095D42D6EF</RequestId>\\r\\n\\t<ChangingAffectTime>2018-03-31T16:00:00Z</ChangingAffectTime>\\r\\n\\t<OperationLocks>\\r\\n\\t\\t<LockReason>\\r\\n\\t\\t\\t<LockReason>financial</LockReason>\\r\\n\\t\\t</LockReason>\\r\\n\\t</OperationLocks>\\r\\n\\t<InternetChargeType>PayByTraffic</InternetChargeType>\\r\\n</DescribeDcdnIpaServiceResponse>\\r\\n\\t\\r\\n","errorExample":""}]', - 'title' => '获取DCDN的IPA服务状态', - 'description' => '> 单用户调用频率:20次/秒。', + 'title' => '查询计费类型', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateDcdnIpaDomain' => [ - 'summary' => '调用UpdateDcdnIpaDomain修改加速域名。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '111620', - 'abilityTreeNodes' => [ - 'FEATUREdcdn2E10XY', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserBillType'], ], ], - 'parameters' => [ - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '需要接入全站加速IPA的域名,仅支持修改单个域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], + 'ramActions' => [ [ - 'name' => 'Sources', - 'in' => 'query', - 'schema' => [ - 'description' => '回源地址列表。', - 'type' => 'string', - 'required' => false, - 'example' => '[{"content":"10.10.10.10","type":"ipaddr","priority":"20","port":80,"weight":"15"}]', - ], - ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmyuji4b6r4**', - ], - ], - [ - 'name' => 'TopLevelDomain', - 'in' => 'query', - 'schema' => [ - 'description' => '顶级接入域。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.edu', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '15C66C7B-671A-4297-9187-2C4477247A74', - ], + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserBillType', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'MissingDomainName', - 'errorMessage' => 'The domainName parameter is required.', - ], - [ - 'errorCode' => 'InvalidDomainName.Malformed', - 'errorMessage' => 'The specified DomainName is invalid.', - ], - [ - 'errorCode' => 'InvalidSource.Content.Malformed', - 'errorMessage' => 'The specified Source Content is invalid.', - ], - [ - 'errorCode' => 'InvalidTypeContent.Mismatch', - 'errorMessage' => 'The specified source type does not match the specified source content.', - ], - [ - 'errorCode' => 'MissingSource.Content', - 'errorMessage' => 'The Source Content must be specified.', - ], - [ - 'errorCode' => 'MissingSource.Type', - 'errorMessage' => 'The Source Type must be specified.', - ], - [ - 'errorCode' => 'InvalidSource.Type.Malformed', - 'errorMessage' => 'The specified Source Type is invalid.', - ], - [ - 'errorCode' => 'InvalidSource.Priority.Malformed', - 'errorMessage' => 'The specified Source Priority is invalid.', - ], - [ - 'errorCode' => 'InvalidResourceGroupId.Malformed', - 'errorMessage' => 'The specified ResourceGroupId is invalid.', - ], - [ - 'errorCode' => 'EntityNotExists.ResourceGroup', - 'errorMessage' => 'The resource group does not exist.', - ], - [ - 'errorCode' => 'EntityNotExist.ResourceGroup', - 'errorMessage' => 'The resource group does not exist.', - ], - [ - 'errorCode' => 'InvalidStatus.ResourceGroup', - 'errorMessage' => 'The current status of the resource group does not support this operation.', - ], - [ - 'errorCode' => 'TopLevelDomain.NotFound', - 'errorMessage' => 'The specified TopLevelDomain does not exist.', - ], - [ - 'errorCode' => 'InvalidSource.Port.Malformed', - 'errorMessage' => 'The source port is empty, or it is outside the range 0-65535.', - ], - ], - 403 => [ - [ - 'errorCode' => 'DomainInProtectedMode', - 'errorMessage' => 'The domain is in protection mode. To request permission, contact Customer Service.', - ], - [ - 'errorCode' => 'DcdnIpaServiceNotFound', - 'errorMessage' => 'The DCDN IPA service has not been activated.', - ], - ], - [ - [ - 'errorCode' => 'NoResource', - 'errorMessage' => 'The required port has no resources, please submit a ticket.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A74\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateDcdnIpaDomainResponse>\\r\\n\\t<RequestId>15C66C7B-671A-4297-9187-2C4477247A74</RequestId>\\r\\n</UpdateDcdnIpaDomainResponse>","errorExample":""}]', - 'title' => '修改启用IPA服务的加速域名', - 'description' => '> 单用户调用频率:20次/秒。', - 'requestParamsDescription' => ' Sources各字段含义如下所示。'."\n" - ."\n" - .'| 参数 | 类型 | 是否必选 | 描述 |'."\n" - .'|------------|--------|-------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|'."\n" - .'| type | String | 是 | 源站类型,取值如下:<br>**ipaddr**:IP源站。<br>**domain**:域名源站。<br>**oss**:OSS域名。 |'."\n" - .'| content | String | 是 | 回源地址,可以是IP或域名。 |'."\n" - .'| port| Integer| 否 | 自定义端口,范围:**0~65535**。 |'."\n" - .'| priority | String | 否 | 源站地址对应的优先级,支持**20**(默认值)和**30**。**20**是主源,**30**是备源。|'."\n" - .'| weight | String | 否 | 回源权重,**100**以内,默认**10**。|', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C370DAF1-C838-4288-A1A0-9A87633D248E\\",\\n \\"BillTypeData\\": {\\n \\"BillTypeDataItem\\": [\\n {\\n \\"EndTime\\": \\"2018-10-31T16:00:00Z\\",\\n \\"StartTime\\": \\"2018-10-30T16:00:00Z\\",\\n \\"BillingCycle\\": \\"month\\",\\n \\"Product\\": \\"dcdn\\",\\n \\"BillType\\": \\"month_avg_day_bandwidth_overseas\\",\\n \\"Dimension\\": \\"flow\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnUserBillTypeResponse>\\n<RequestId>C370DAF1-C838-4288-A1A0-9A87633D248E</RequestId>\\n<BillTypeData>\\n <BillTypeDataItem>\\n <BillingCycle>month</BillingCycle>\\n <Product>dcdn</Product>\\n <Dimension>flow</Dimension>\\n <EndTime>2018-10-31T16:00:00Z</EndTime>\\n <StartTime>2018-10-30T16:00:00Z</StartTime>\\n <BillType>month_avg_day_bandwidth_overseas</BillType>\\n </BillTypeDataItem>\\n <BillTypeDataItem>\\n <BillingCycle>hour</BillingCycle>\\n <Product>dcdn</Product>\\n <Dimension>flow</Dimension>\\n <EndTime>2018-10-30T16:00:00Z</EndTime>\\n <StartTime>2018-10-10T16:00:00Z</StartTime>\\n <BillType>hour_flow</BillType>\\n </BillTypeDataItem>\\n <BillTypeDataItem>\\n <BillingCycle>hour</BillingCycle>\\n <Product>dcdn</Product>\\n <Dimension>vas</Dimension>\\n <EndTime>2018-10-31T16:00:00Z</EndTime>\\n <StartTime>2018-09-30T16:00:00Z</StartTime>\\n <BillType>hour_vas</BillType>\\n </BillTypeDataItem>\\n <BillTypeDataItem>\\n <BillingCycle>day</BillingCycle>\\n <Product>dcdn</Product>\\n <Dimension>flow</Dimension>\\n <EndTime>2018-10-10T16:00:00Z</EndTime>\\n <StartTime>2018-09-30T16:00:00Z</StartTime>\\n <BillType>day_bandwidth</BillType>\\n </BillTypeDataItem>\\n</BillTypeData>\\n</DescribeDcdnUserBillTypeResponse>","errorExample":""}]', ], - 'DeleteDcdnIpaDomain' => [ - 'summary' => '调用DeleteDcdnIpaDomain删除已添加的IPA层加速域名。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnUserCertificateExpireCount' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], - ], - 'parameters' => [ - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '要删除的域名,仅支持删除单个域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], + 'abilityTreeNodes' => ['FEATUREdcdnX7NWEB'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '94E3559F-7B6A-4A5E-AFFD-44E2A208A249', - ], + 'ExpireWithin30DaysCount' => ['description' => '30天内证书即将过期的域名数。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'F5E8DF64-7175-4186-9B06-F002C0BBD0C5'], + 'ExpiredCount' => ['description' => '证书已过期的域名数。', 'type' => 'integer', 'format' => 'int32', 'example' => '6'], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidDomainName.Malformed', - 'errorMessage' => 'The specified DomainName is invalid.', - ], - ], - 403 => [ - [ - 'errorCode' => 'DcdnIpaServiceNotFound', - 'errorMessage' => 'The DCDN IPA service has not been activated.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"94E3559F-7B6A-4A5E-AFFD-44E2A208A249\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDcdnIpaDomainResponse>\\r\\n\\t<RequestId>94E3559F-7B6A-4A5E-AFFD-44E2A208A249</RequestId>\\r\\n</DeleteDcdnIpaDomainResponse>\\r\\n","errorExample":""}]', - 'title' => '删除已添加的IPA层加速域名', - 'description' => '> - 删除域名前建议您前往域名解析服务商处恢复域名A记录,以免域名被删除后导致该域名不可访问。'."\n" - .'> - **DeleteDcdnIpaDomain**接口调用成功后将删除本条加速域名的全部相关记录,如果您仅需要暂停该加速域名的使用,您可以调用**StopDcdnIpaDomain**接口。'."\n" - .'> - 单用户调用频率:10次/秒。', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询证书过期的域名数量', + 'summary' => '调用DescribeDcdnUserCertificateExpireCount查询DCDN用户证书过期的域名数量。', + 'description' => '> 单用户调用频率:100次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'StartDcdnIpaDomain' => [ - 'summary' => '调用StartDcdnIpaDomain启用状态为停用的加速域名,将DomainStatus变更为online。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserCertificateExpireCount'], ], ], - 'parameters' => [ + 'ramActions' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '需要接入全站加速IPA的域名,仅支持单个启用。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', - ], + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserCertificateExpireCount', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'RecordCheckNotAvailable', - 'errorMessage' => 'The ICP filing interface is unavailable. Please try again later.', - ], - [ - 'errorCode' => 'IcpBlack', - 'errorMessage' => 'The domain is on the ICP blacklist.', - ], - [ - 'errorCode' => 'IspBlack', - 'errorMessage' => 'The domain is on the ISP blacklist.', - ], - ], - 403 => [ - [ - 'errorCode' => 'DcdnIpaServiceNotFound', - 'errorMessage' => 'The DCDN IPA service has not been activated.', - ], - ], - [ - [ - 'errorCode' => 'NoResource', - 'errorMessage' => 'The required port has no resources, please submit a ticket.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","errorExample":""},{"type":"xml","example":"<StartDcdnIpaDomainResponse>\\r\\n\\t<RequestId>0AEDAF20-4DDF-4165-8750-47FF9C1929C9</RequestId>\\r\\n</StartDcdnIpaDomainResponse>\\r\\n\\t\\r\\n","errorExample":""}]', - 'title' => '启用停用IPA服务的加速域名', - 'description' => '> '."\n" - .'> - 如果您的域名处于非法状态或域名对应账户欠费,您将无法正常调用该接口启用加速域名。'."\n" - .'>- 单用户调用频率:20次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ExpireWithin30DaysCount\\": 0,\\n \\"RequestId\\": \\"F5E8DF64-7175-4186-9B06-F002C0BBD0C5\\",\\n \\"ExpiredCount\\": 6\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnUserCertificateExpireCountResponse>\\n<ExpiredCount>6</ExpiredCount>\\n<ExpireWithin30DaysCount>0</ExpireWithin30DaysCount>\\n<RequestId>F5E8DF64-7175-4186-9B06-F002C0BBD0C5</RequestId>\\n</DescribeDcdnUserCertificateExpireCountResponse>","errorExample":""}]', ], - 'AddDcdnIpaDomain' => [ - 'summary' => '调用AddDcdnIpaDomain添加IPA层应用加速域名,一次只能提交一个加速域名。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnUserConfigs' => [ + 'summary' => '调用DescribeDcdnUserConfigs查询安全功能相关的配置。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111433', - 'abilityTreeNodes' => [ - 'FEATUREdcdn2E10XY', - ], + 'abilityTreeCode' => '111557', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '需要接入全站加速IPA的域名。'."\n" - ."\n" - .'支持泛域名,以英文句号(.)开头,例如:.example.com。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。不传该参数时,系统自动补全默认资源组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'rg', - ], - ], - [ - 'name' => 'Sources', - 'in' => 'query', - 'schema' => [ - 'description' => '回源地址列表。', - 'type' => 'string', - 'required' => true, - 'example' => '[{"content":"10.10.10.10","type":"ipaddr","priority":"20","port":80,"weight":"15"}]', - ], - ], - [ - 'name' => 'CheckUrl', - 'in' => 'query', - 'schema' => [ - 'description' => '检测URL。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com/image_01.png', - ], - ], - [ - 'name' => 'Scope', - 'in' => 'query', - 'schema' => [ - 'description' => '加速区域。取值:'."\n" - ."\n" - .'- **domestic**:仅中国内地。'."\n" - ."\n" - .'- **overseas**:全球(不包含中国内地)。'."\n" - ."\n" - .'- **global**:全球。', - 'type' => 'string', - 'required' => false, - 'example' => 'domestic', - ], - ], - [ - 'name' => 'TopLevelDomain', + 'name' => 'FunctionName', 'in' => 'query', - 'schema' => [ - 'description' => '顶级接入域。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '*.com', - ], - ], - [ - 'name' => 'Protocol', - 'in' => 'query', - 'schema' => [ - 'description' => '协议名称。取值:'."\n" - ."\n" - .'- **udp**:UDP协议。'."\n" - .'- **tcp**:TCP协议。'."\n" - ."\n\n" - .'> 例如:`{"protocol":"udp"}`。', - 'type' => 'string', - 'required' => false, - 'example' => '{"protocol":"udp"}', - ], + 'schema' => ['description' => '需要查询的配置,支持查询的配置如下:'."\n" + ."\n" + .'- domain\\_business\\_control:用户配置。'."\n" + ."\n" + .'- bot_basic:机器流量管理基础版 (合法爬虫,威胁情报)。'."\n" + ."\n" + .'- bot_Advance:机器流量管理高级版(合法爬虫,威胁情报,AI智能防护)。', 'type' => 'string', 'required' => true, 'example' => 'domain_business_control'], ], ], 'responses' => [ @@ -19272,10 +16012,33 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '06D29681-B7CD-4034-A8CC-28AFFA213539'], + 'Configs' => [ + 'description' => '用户对应的配置。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ArgValue' => ['description' => '配置值。取值:'."\n" + .'- cc_rule:CC规则。'."\n" + ."\n" + .'- ddos_dispatch:DDoS联动调度。'."\n" + ."\n" + .'- edge_safe:边缘应用安全。'."\n" + ."\n" + .'- blocked_regions:区域封禁。'."\n" + ."\n" + .'- http_acl_policy:精准访问控制。'."\n" + ."\n" + .'- bot_manager:机器流量管理。'."\n" + ."\n" + .'- ip_reputation:IP信誉库。', 'type' => 'string', 'example' => '{"dcdn_allow":["cc_rule","ddos_dispatch"]}'], + 'ArgName' => ['description' => '配置名称。'."\n" + ."\n" + .'政企用户相关配置。', 'type' => 'string', 'example' => 'allow_function'], + 'FunctionName' => ['description' => '功能名称。', 'type' => 'string', 'example' => 'domain_business_control'], + ], + ], ], ], ], @@ -19283,262 +16046,36 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidDomainName.Malformed', - 'errorMessage' => 'The specified DomainName is invalid.', - ], - [ - 'errorCode' => 'InvalidSource.Content.Malformed', - 'errorMessage' => 'The specified Source Content is invalid.', - ], - [ - 'errorCode' => 'MissingSource.Content', - 'errorMessage' => 'The Source Content must be specified.', - ], - [ - 'errorCode' => 'MissingSource.Type', - 'errorMessage' => 'The Source Type must be specified.', - ], - [ - 'errorCode' => 'InvalidSource.Type.Malformed', - 'errorMessage' => 'The specified Source Type is invalid.', - ], - [ - 'errorCode' => 'InvalidSource.Priority.Malformed', - 'errorMessage' => 'The specified Source Priority is invalid.', - ], - [ - 'errorCode' => 'InvalidScope.Malformed', - 'errorMessage' => 'The specified Scope is invalid.', - ], - [ - 'errorCode' => 'SourceIp.Exceed', - 'errorMessage' => 'The maximum number of back-to-origin IP addresses is exceeded.', - ], - [ - 'errorCode' => 'InvalidCertificate', - 'errorMessage' => 'The specified certificate format is invalid.', - ], - [ - 'errorCode' => 'InvalidCertificate.TooLong', - 'errorMessage' => 'The maximum length of the certificate is exceeded.', - ], - [ - 'errorCode' => 'CheckSourceHealthFailed', - 'errorMessage' => 'Error checking the security. Provide the valid origin site information.', - ], - [ - 'errorCode' => 'ExtensiveAndAllBothExist', - 'errorMessage' => 'A wildcard domain name and a domain name with an all. prefix cannot be both specified.', - ], - [ - 'errorCode' => 'CdnTypeNotSupportExtensiveDomain', - 'errorMessage' => 'Wildcard domain names are not supported.', - ], - [ - 'errorCode' => 'ExtensiveAndSpecificDomainConflict', - 'errorMessage' => 'The wildcard domain name overlaps a domain name at the same level.', - ], - [ - 'errorCode' => 'InvalidResourceGroupId.Malformed', - 'errorMessage' => 'The specified ResourceGroupId is invalid.', - ], - [ - 'errorCode' => 'DomainReserved', - 'errorMessage' => 'The root domain of your domain is reserved by another account. Submit a ticket to contact customer support.', - ], - [ - 'errorCode' => 'InvalidDomainNameLevel', - 'errorMessage' => 'The alicdn.com domain supports a maximum of three levels of domain.', - ], - [ - 'errorCode' => 'TopLevelDomain.NotFound', - 'errorMessage' => 'The specified TopLevelDomain does not exist.', - ], - [ - 'errorCode' => 'EntityNotExists.ResourceGroup', - 'errorMessage' => 'The resource group does not exist.', - ], - [ - 'errorCode' => 'EntityNotExist.ResourceGroup', - 'errorMessage' => 'The resource group does not exist.', - ], - [ - 'errorCode' => 'InvalidStatus.ResourceGroup', - 'errorMessage' => 'The current status of the resource group does not support this operation.', - ], - [ - 'errorCode' => 'NotInternationRealIdentity', - 'errorMessage' => 'Real-name registration is required for services offered in Mainland China.', - ], - [ - 'errorCode' => 'InvalidSource.Port.Malformed', - 'errorMessage' => 'The source port is empty, or it is outside the range 0-65535.', - ], - [ - 'errorCode' => 'RecordCheckNotAvailable', - 'errorMessage' => 'The ICP filing interface is unavailable. Please try again later.', - ], - [ - 'errorCode' => 'IcpBlack', - 'errorMessage' => 'The domain is on the ICP blacklist.', - ], - [ - 'errorCode' => 'IspBlack', - 'errorMessage' => 'The domain is on the ISP blacklist.', - ], - [ - 'errorCode' => 'TopLevelDomain.Mismatch', - 'errorMessage' => 'The specified TopLevelDomain does not match webSiteType.', - ], - [ - 'errorCode' => 'DomainOverLimit', - 'errorMessage' => 'The maximum number of domains is exceeded.', - ], - [ - 'errorCode' => 'DomainInRiskList', - 'errorMessage' => 'The domain you added may be at risk. If you have any questions, please submit a ticket.', - ], - ], - 403 => [ - [ - 'errorCode' => 'DcdnIpaServiceNotFound', - 'errorMessage' => 'The DCDN IPA service has not been activated.', - ], - ], - [ - [ - 'errorCode' => 'NoResource', - 'errorMessage' => 'The required port has no resources, please submit a ticket.', - ], + ['errorCode' => 'InvalidArgValue.Malformed', 'errorMessage' => 'The specified ArgValue is invalid.', 'description' => 'ArgValue错误,请重新填写。'], + ['errorCode' => 'InvalidArgName.ValueNotSupported', 'errorMessage' => '%s', 'description' => '不支持的参数名称 %s(%s为具体参数名)'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","errorExample":""},{"type":"xml","example":"<AddDcdnIpaDomainResponse>\\n <RequestId>0AEDAF20-4DDF-4165-8750-47FF9C1929C9</RequestId>\\n</AddDcdnIpaDomainResponse>","errorExample":""}]', - 'title' => '添加IPA层应用加速域名', - 'description' => '> '."\n" - .'> - 创建加速域名之前,必须先开通全站加速的IPA服务。'."\n" - .'> - 加速域名必须已经备案成功。'."\n" - .'> - 如果源站内容不在阿里云平台上,则需要审核,审核工作会在下一工作日前完成。'."\n" - .'> - 单用户调用频率:10次/秒。', - 'requestParamsDescription' => 'Sources各字段含义'."\n" - ."\n" - .' | 参数 | 类型 | 是否必选 | 描述 |'."\n" - .'| -------- | ------- | ----- | ----------------------------------------------------------------- |'."\n" - .'| type | String | 是 | 源站类型。ipaddr:IP源站;domain:域名源站;oss:不支持oss。 |'."\n" - .'| content | String | 是 | 回源地址,可以是IP或域名。 |'."\n" - .'| port | Integer | 是 | 自定义端口,范围:0~65535。 |'."\n" - .'| priority | String | 否 | 源站地址对应的优先级,支持20和30,默认20。20是主源,30是备源。 |'."\n" - .'| weight | String | 否 | 回源权重,100以内,默认10。 |', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'BatchSetDcdnIpaDomainConfigs' => [ - 'summary' => '调用BatchSetDcdnIpaDomainConfigs批量配置IPA层应用加速域名。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn2JMMUY', + 'title' => '查询安全功能相关配置', + 'description' => '> 单用户调用频率:30次/秒。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserConfigs'], ], ], - 'parameters' => [ - [ - 'name' => 'DomainNames', - 'in' => 'query', - 'schema' => [ - 'description' => 'IPA层应用加速域名,多个域名用英文逗号(,)分隔。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], + 'ramActions' => [ [ - 'name' => 'Functions', - 'in' => 'query', - 'schema' => [ - 'description' => '功能列表。```[{"functionArgs":[{"argName":"配置名称","argValue":"配置值"}],"functionName":"功能名称"}]```', - 'type' => 'string', - 'required' => true, - 'example' => '[{"functionArgs":[{"argName":"domain_name","argValue":"api.*com"}],"functionName":"protogw"}]', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', - ], + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidFunctions.Malformed', - 'errorMessage' => 'The specified Functions is invalid.', - ], - [ - 'errorCode' => 'InvalidArgValue.Malformed', - 'errorMessage' => 'The specified ArgValue is invalid.', - ], - [ - 'errorCode' => 'Invalid%s.ValueNotSupported', - 'errorMessage' => '[%s] is not supported.', - ], - [ - 'errorCode' => 'Invalid%s.Malformed', - 'errorMessage' => 'The specified ArgValue [%s] is invalid.', - ], - ], - 403 => [ - [ - 'errorCode' => 'DcdnIpaServiceNotFound', - 'errorMessage' => 'The DCDN IPA service has not been activated.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","errorExample":""},{"type":"xml","example":"<BatchSetDcdnIpaDomainConfigsResponse>\\r\\n\\t<RequestId>0AEDAF20-4DDF-4165-8750-47FF9C1929C9</RequestId>\\r\\n</BatchSetDcdnIpaDomainConfigsResponse>","errorExample":""}]', - 'title' => '批量配置IPA层应用加速域名', - 'description' => '> 单用户调用频率:20次/秒。', - 'requestParamsDescription' => '**功能说明**'."\n" - ."\n" - .'| 名称 | 参数 |'."\n" - .'|---------------|--------|'."\n" - .'| protogw:IP应用加速| realip(必填):源站IP透传方式,支持三种方式。off:关闭;toa:该方式将携带客户端真实IP,需要源站安装TOA内核模块,服务程序无需改造;pp:该方式将携带客户端真实IP,Nginx开源版本默认支持,其他源站服务软件需自行兼容。<br>port(必填):服务端口。|'."\n", - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"06D29681-B7CD-4034-A8CC-28AFFA213539\\",\\n \\"Configs\\": [\\n {\\n \\"ArgValue\\": \\"{\\\\\\"dcdn_allow\\\\\\":[\\\\\\"cc_rule\\\\\\",\\\\\\"ddos_dispatch\\\\\\"]}\\",\\n \\"ArgName\\": \\"allow_function\\",\\n \\"FunctionName\\": \\"domain_business_control\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnUserConfigsResponse>\\n <RequestId>06D29681-B7CD-4034-A8CC-28AFFA213539</RequestId>\\n <Configs>\\n <FunctionName>domain_business_control</FunctionName>\\n <ArgValue>{\\"dcdn_allow\\":[\\"cc_rule\\",\\"ddos_dispatch\\"]}</ArgValue>\\n <ArgName>allow_function</ArgName>\\n </Configs>\\n</DescribeDcdnUserConfigsResponse>","errorExample":""}]', ], - 'DescribeDcdnIpaUserDomains' => [ - 'summary' => '调用DescribeDcdnIpaUserDomains查询用户名下所有的IPA层应用加速域名,支持模糊搜索或者按域名状态过滤。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnUserDomains' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -19546,134 +16083,87 @@ ], 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeCode' => '111558', + 'abilityTreeNodes' => ['FEATUREdcdnWQK30N'], ], 'parameters' => [ [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '每个页面显示的域名数,默认**20**,最大**500**。'."\n" - .'取值范围:**1**~**500**之间的任意整数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'example' => '5', - 'default' => '20', - ], + 'schema' => ['description' => '分页大小。默认**20**,取值:**1**~**500**。'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'example' => '20', 'default' => '20'], ], [ 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => '页码。取值范围为:**1**~**100000**。'."\n" - .'默认值为**1**。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => '页数。取值范围:**1**~**100000**。'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '根据域名匹配过滤。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '加速域名。如果不传该参数,默认不做域名匹配搜索,返回所有符合条件的域名。', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'maxLength' => 6800], ], [ 'name' => 'DomainStatus', 'in' => 'query', - 'schema' => [ - 'description' => '域名状态过滤。取值:'."\n" - .'- **online**:启用。'."\n" - ."\n" - .'- **offline**:停用。'."\n" - ."\n" - .'- **configuring**:配置中。'."\n" - ."\n" - .'- **configure_failed**:配置失败。'."\n" - ."\n" - .'- **checking**:正在审核。'."\n" - ."\n" - .'- **check_failed**:审核失败。', - 'type' => 'string', - 'required' => false, - 'example' => 'online', - ], + 'schema' => ['description' => '域名状态过滤。'."\n" + .' - **online**:启用。'."\n" + .' - **offline**:停用。'."\n" + .' - **configuring**:配置中。'."\n" + .'- **configure_failed**:配置失败。'."\n" + .'- **checking**:正在审核。'."\n" + .'- **check_failed**:审核失败。', 'type' => 'string', 'required' => false, 'example' => 'online'], ], [ 'name' => 'DomainSearchType', 'in' => 'query', - 'schema' => [ - 'description' => '域名查询类型。取值:'."\n" - .'- **full_match**(默认值):完全匹配。'."\n" - ."\n" - .'- **fuzzy_match**:模糊匹配。'."\n" - ."\n" - .'- **pre_match**:前匹配。'."\n" - ."\n" - .'- **suf_match**:后匹配。', - 'type' => 'string', - 'required' => false, - 'example' => 'fuzzy_match', - ], + 'schema' => ['description' => '域名查询类型。'."\n" + ."\n" + .'- **fuzzy_match**:模糊匹配。'."\n" + ."\n" + .'- **pre_match**:前匹配。'."\n" + ."\n" + .'- **suf_match**:后匹配。'."\n" + ."\n" + .'- **full_match**(默认值):完全匹配。'."\n" + ."\n" + .'> 传递了域名参数的情况下,不传DomainSearchType参数,则默认采用完全匹配模式。'."\n", 'type' => 'string', 'required' => false, 'example' => 'fuzzy_match'], ], [ 'name' => 'CheckDomainShow', 'in' => 'query', - 'schema' => [ - 'description' => '是否展示审核中、审核失败、配置失败的域名。取值:'."\n" - ."\n" - .'- **true**:显示。'."\n" - .'- **false**:不显示。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '是否展示审核中、审核失败、配置失败的域名。取值:'."\n" + ."\n" + .'- true:展示。'."\n" + .'- false:不展示。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmyuji4b6r4**', - ], + 'schema' => ['description' => '资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmv6jutt**'], ], [ - 'name' => 'FuncId', + 'name' => 'ChangeStartTime', 'in' => 'query', - 'schema' => [ - 'description' => '功能ID。 例如:7表示路径过期时间。更多功能ID,请参见[域名配置功能函数](~~410622~~)。', - 'type' => 'string', - 'required' => false, - 'example' => '7', - ], + 'schema' => ['description' => '更新开始时间,日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2018-05-10T12:00:00Z'], ], [ - 'name' => 'FuncFilter', + 'name' => 'ChangeEndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'Func开关设置。'."\n" - ."\n" - .'- config:代表开通Func。'."\n" - .'- unconfig:代表没有开通Func。', - 'type' => 'string', - 'required' => false, - 'example' => 'config', - ], + 'schema' => ['description' => '更新结束时间,日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'> 结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2018-05-10T14:00:00Z'], + ], + [ + 'name' => 'Coverage', + 'in' => 'query', + 'schema' => ['description' => '加速区域:默认为全部。'."\n" + ."\n" + .'- **domestic**:仅中国内地。'."\n" + .'- **overseas**:全球(不包含中国内地)。'."\n" + .'- **global**:全球。', 'type' => 'string', 'required' => false, 'example' => 'domestic'], ], [ 'name' => 'Tag', @@ -19686,18 +16176,8 @@ 'description' => '标签解释。', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => '标签键,N的取值范围1~20。通过TagDcdnResources接口可以给域名设置Tag。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], - 'Value' => [ - 'description' => '标签值,N的取值范围1~20。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], + 'Key' => ['description' => '标签键,N的取值范围**1**~**20**。通过TagDcdnResources接口可以给域名设置Tag。', 'type' => 'string', 'required' => false, 'example' => '1'], + 'Value' => ['description' => '标签值,N的取值范围**1**~**20**。', 'type' => 'string', 'required' => false, 'example' => '1'], ], 'required' => false, ], @@ -19705,35 +16185,21 @@ 'maxItems' => 20, ], ], + [ + 'name' => 'WebSiteType', + 'in' => 'query', + 'schema' => ['description' => '业务类型,多个用逗号隔开,默认值为**dynamic**,查询普通dcdn域名。查询计算服务类型域名时,传 **computing_routine**,**computing_image**。', 'type' => 'string', 'required' => false, 'example' => 'computing_routine', 'default' => 'dynamic'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。'."\n", - 'type' => 'string', - 'example' => 'AA75AADB-5E25-4970-B480-EAA1F5658483', - ], - 'PageNumber' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '单页显示的域名总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - 'TotalCount' => [ - 'description' => '查询到的域名总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'AA75AADB-5E25-4970-B480-EAA1F5658483'], + 'PageNumber' => ['description' => '返回数据的页码。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'PageSize' => ['description' => '整页大小。', 'type' => 'integer', 'format' => 'int64', 'example' => '12'], + 'TotalCount' => ['description' => '总条数。', 'type' => 'integer', 'format' => 'int64', 'example' => '12'], 'Domains' => [ 'type' => 'object', 'itemNode' => true, @@ -19744,66 +16210,26 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'GmtCreated' => [ - 'description' => '加速域名创建时间。', - 'type' => 'string', - 'example' => '2015-10-28T09:32:51Z', - ], - 'Description' => [ - 'description' => '审核失败原因。', - 'type' => 'string', - 'example' => 'audit failed', - ], - 'SSLProtocol' => [ - 'description' => 'HTTPS开关。'."\n" - ."\n" - .'- **on**表示已开启。'."\n" - .'- **off**表示未开启。', - 'type' => 'string', - 'example' => 'on', - ], - 'ResourceGroupId' => [ - 'description' => '资源组ID。', - 'type' => 'string', - 'example' => 'abcd1234abcd****', - ], - 'Sandbox' => [ - 'description' => '沙箱。', - 'type' => 'string', - 'example' => 'normal', - ], - 'DomainStatus' => [ - 'description' => '加速域名状态,取值:'."\n" - ."\n" - .'- **online**:启用。'."\n" - ."\n" - .'- **offline**:停用。'."\n" - ."\n" - .'- **configuring**:配置中。'."\n" - ."\n" - .'- **configure_failed**:配置失败。'."\n" - ."\n" - .'- **checking**:正在审核。'."\n" - ."\n" - .'- **check_failed**:审核失败。'."\n", - 'type' => 'string', - 'example' => 'online', - ], - 'Cname' => [ - 'description' => '加速域名对应的CNAME域名。', - 'type' => 'string', - 'example' => 'example.com.*.com', - ], - 'GmtModified' => [ - 'description' => '加速域名修改时间。'."\n", - 'type' => 'string', - 'example' => '2015-10-28T11:05:52Z', - ], - 'DomainName' => [ - 'description' => '加速域名名称。', - 'type' => 'string', - 'example' => 'example.com', - ], + 'GmtCreated' => ['description' => '加速域名创建时间。', 'type' => 'string', 'example' => '2015-10-28T11:05:50Z'], + 'Description' => ['description' => '审核失败原因。', 'type' => 'string', 'example' => 'audit failed'], + 'SSLProtocol' => ['description' => 'HTTPS开关。'."\n" + ."\n" + .'- **on**:已开启。'."\n" + ."\n" + .'- **off**:未开启。', 'type' => 'string', 'example' => 'on'], + 'ResourceGroupId' => ['description' => '资源组ID。', 'type' => 'string', 'example' => 'rg-acfmv6jutt**'], + 'Sandbox' => ['description' => '沙箱。', 'type' => 'string', 'example' => 'normal'], + 'DomainStatus' => ['description' => '加速域名状态。'."\n" + .' - **online**:启用。'."\n" + .' - **offline**:停用。'."\n" + .' - **configuring**:配置中。'."\n" + .'- **configure_failed**:配置失败。'."\n" + .'- **checking**:正在审核。'."\n" + .'- **check_failed**:审核失败。', 'type' => 'string', 'example' => 'online'], + 'Cname' => ['description' => '加速域名对应的CNAME域名。'."\n", 'type' => 'string', 'example' => 'test.aliyun.com.w.alikunlun.com'], + 'GmtModified' => ['description' => '加速域名修改时间。', 'type' => 'string', 'example' => '2015-10-28T09:31:59Z'], + 'DomainName' => ['description' => '域名信息。', 'type' => 'string', 'example' => 'www.example.com'], + 'DomainId' => ['description' => '加速域名ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '11223344'], 'Sources' => [ 'type' => 'object', 'itemNode' => true, @@ -19814,37 +16240,25 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Type' => [ - 'description' => '源站类型。', - 'type' => 'string', - 'example' => 'OSS域名', - ], - 'Weight' => [ - 'description' => '回源权重。', - 'type' => 'string', - 'example' => '20', - ], - 'Priority' => [ - 'description' => '优先级。', - 'type' => 'string', - 'example' => '20', - ], - 'Port' => [ - 'description' => '源站端口。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'Content' => [ - 'description' => '源站地址。', - 'type' => 'string', - 'example' => '*.aliyuncs.com', - ], + 'Type' => ['description' => '源站类型。', 'type' => 'string', 'example' => 'oss'], + 'Weight' => ['description' => '权重。', 'type' => 'string', 'example' => '20'], + 'Priority' => ['description' => '优先级。', 'type' => 'string', 'example' => '20'], + 'Port' => ['description' => '源站端口。', 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'Content' => ['description' => '源站地址。', 'type' => 'string', 'example' => 'example.com'], ], ], ], ], ], + 'Scene' => ['description' => '场景。支持:'."\n" + .'- **apiscene**:API加速。'."\n" + .'- **webservicescene**:网站业务加速。'."\n" + .'- **staticscene**:视频、图文类加速。'."\n" + .'- **(空)**:没有场景。', 'type' => 'string', 'example' => 'apiscene'], + 'FunctionType' => ['description' => '计算服务类型。取值:'."\n" + .'- **routine**:程序。'."\n" + .'- **image**:镜像。'."\n" + .'- **cloudFunction**:函数。', 'type' => 'string', 'example' => 'routine'], ], ], ], @@ -19856,46 +16270,49 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidPageNumber.ValueNotSupported', - 'errorMessage' => 'The specified value of PageNumber is not supported.', - ], - [ - 'errorCode' => 'InvalidPageSize.ValueNotSupported', - 'errorMessage' => 'The specified value of PageSize is invalid.', - ], - [ - 'errorCode' => 'InvalidDomainStatus.ValueNotSupported', - 'errorMessage' => 'The specified value of DomainStatus is invalid.', - ], - [ - 'errorCode' => 'InvalidDomainName.Malformed', - 'errorMessage' => 'The specified DomainName is invalid.', - ], - [ - 'errorCode' => 'InvalidDomainSearchType.ValueNotSupported', - 'errorMessage' => 'The specified value of DomainSearchType is invalid.', - ], + ['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' => 'PageSize参数错误,请重新填写。'], + ['errorCode' => 'InvalidDomainStatus.ValueNotSupported', 'errorMessage' => 'The specified value of DomainStatus is invalid.', 'description' => 'DomainStatus值错误,请重新填写。'], + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => '域名格式错误。'], + ['errorCode' => 'InvalidDomainSearchType.ValueNotSupported', 'errorMessage' => 'The specified value of DomainSearchType is invalid.', 'description' => 'DomainSearchType值错误,请重新填写。'], + ['errorCode' => 'InvalidChangeStartTime.Malformed', 'errorMessage' => 'The specified ChangeStartTime is invalid.', 'description' => '更新开始时间非法。'], + ['errorCode' => 'InvalidChangeEndTime.Malformed', 'errorMessage' => 'The specified ChangeEndTime is invalid.', 'description' => '更新结束时间非法。'], ], ], - 'staticInfo' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"AA75AADB-5E25-4970-B480-EAA1F5658483\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 20,\\n \\"TotalCount\\": 1,\\n \\"Domains\\": {\\n \\"PageData\\": [\\n {\\n \\"GmtCreated\\": \\"2015-10-28T09:32:51Z\\",\\n \\"Description\\": \\"audit failed\\",\\n \\"SSLProtocol\\": \\"on\\",\\n \\"ResourceGroupId\\": \\"abcd1234abcd****\\",\\n \\"Sandbox\\": \\"normal\\",\\n \\"DomainStatus\\": \\"online\\",\\n \\"Cname\\": \\"example.com.*.com\\",\\n \\"GmtModified\\": \\"2015-10-28T11:05:52Z\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Sources\\": {\\n \\"Source\\": [\\n {\\n \\"Type\\": \\"OSS域名\\",\\n \\"Weight\\": \\"20\\",\\n \\"Priority\\": \\"20\\",\\n \\"Port\\": 80,\\n \\"Content\\": \\"*.aliyuncs.com\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnIpaUserDomainsResponse>\\n <RequestId>AA75AADB-5E25-4970-B480-EAA1F5658483</RequestId>\\n <PageNumber>1</PageNumber>\\n <PageSize>20</PageSize>\\n <TotalCount>1</TotalCount>\\n <Domains>\\n <GmtCreated>2015-10-28T09:32:51Z</GmtCreated>\\n <Description>audit failed</Description>\\n <SSLProtocol>on</SSLProtocol>\\n <ResourceGroupId>abcd1234abcd****</ResourceGroupId>\\n <Sandbox>normal</Sandbox>\\n <DomainStatus>online</DomainStatus>\\n <Cname>example.com.*.com</Cname>\\n <GmtModified>2015-10-28T11:05:52Z</GmtModified>\\n <DomainName>example.com</DomainName>\\n <Sources>\\n <Type>OSS域名</Type>\\n <Weight>20</Weight>\\n <Priority>20</Priority>\\n <Port>80</Port>\\n <Content>*.aliyuncs.com</Content>\\n </Sources>\\n </Domains>\\n</DescribeDcdnIpaUserDomainsResponse>","errorExample":""}]', - 'title' => '获取用户IPA层应用加速域名', - 'description' => '> 单用户调用频率:30次/秒。', + 'title' => '查询用户域名', + 'summary' => '调用DescribeDcdnUserDomains查询用户名下所有的DCDN域名,支持域名模糊匹配过滤和域名状态过滤。', + 'description' => '> 单用户调用频率:80次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnIpaDomainDetail' => [ - 'summary' => '调用DescribeDcdnIpaDomainDetail获取指定加速域名配置的基本信息。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2024-05-11T03:00:16.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2023-08-29T08:43:00.000Z', 'description' => '请求参数发生变更、响应参数发生变更'], + ['createdAt' => '2023-08-02T02:24:51.000Z', 'description' => '响应参数发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserDomains'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserDomains', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/*'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"AA75AADB-5E25-4970-B480-EAA1F5658483\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 12,\\n \\"TotalCount\\": 12,\\n \\"Domains\\": {\\n \\"PageData\\": [\\n {\\n \\"GmtCreated\\": \\"2015-10-28T11:05:50Z\\",\\n \\"Description\\": \\"audit failed\\",\\n \\"SSLProtocol\\": \\"on\\",\\n \\"ResourceGroupId\\": \\"rg-acfmv6jutt**\\",\\n \\"Sandbox\\": \\"normal\\",\\n \\"DomainStatus\\": \\"online\\",\\n \\"Cname\\": \\"test.aliyun.com.w.alikunlun.com\\",\\n \\"GmtModified\\": \\"2015-10-28T09:31:59Z\\",\\n \\"DomainName\\": \\"www.example.com\\",\\n \\"DomainId\\": 11223344,\\n \\"Sources\\": {\\n \\"Source\\": [\\n {\\n \\"Type\\": \\"oss\\",\\n \\"Weight\\": \\"20\\",\\n \\"Priority\\": \\"20\\",\\n \\"Port\\": 80,\\n \\"Content\\": \\"example.com\\"\\n }\\n ]\\n },\\n \\"Scene\\": \\"apiscene\\",\\n \\"FunctionType\\": \\"routine\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnUserDomainsResponse>\\n <RequestId>AA75AADB-5E25-4970-B480-EAA1F5658483</RequestId>\\n <PageNumber>1</PageNumber>\\n <PageSize>12</PageSize>\\n <TotalCount>12</TotalCount>\\n <Domains>\\n <GmtCreated>2015-10-28T11:05:50Z</GmtCreated>\\n <Description>audit failed</Description>\\n <SSLProtocol>on</SSLProtocol>\\n <ResourceGroupId>rg-acfmv6jutt**</ResourceGroupId>\\n <Sandbox>normal</Sandbox>\\n <DomainStatus>online</DomainStatus>\\n <Cname>test.aliyun.com.w.alikunlun.com</Cname>\\n <GmtModified>2015-10-28T09:31:59Z</GmtModified>\\n <DomainName>www.example.com</DomainName>\\n <DomainId>11223344</DomainId>\\n <Sources>\\n <Type>oss</Type>\\n <Weight>20</Weight>\\n <Priority>20</Priority>\\n <Port>80</Port>\\n <Content>example.com</Content>\\n </Sources>\\n </Domains>\\n</DescribeDcdnUserDomainsResponse>","errorExample":""}]', + ], + 'DescribeDcdnUserDomainsByFunc' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -19906,19 +16323,57 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ + 'name' => 'FuncId', + 'in' => 'query', + 'schema' => ['description' => '功能ID,您可在[域名配置功能参数](~~410622~~)文档,根据功能名称搜索查询。'."\n" + .'例如:配置回源HOST(set_req_host_header)功能ID为18。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '7'], + ], + [ + 'name' => 'FuncFilter', + 'in' => 'query', + 'schema' => ['description' => '是否开通funcid功能。'."\n" + ."\n" + .'- **config**:开通。'."\n" + .'- **unconfig**:未开通。', 'type' => 'string', 'required' => false, 'example' => 'config'], + ], + [ 'name' => 'DomainName', 'in' => 'query', + 'schema' => ['description' => '加速域名。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '页码,默认值:**1**。'."\n" + .'取值范围:**1~100000**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100000', 'minimum' => '1', 'example' => '1', 'default' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '单页显示域名的数量,默认值:**20**。'."\n" + .'取值范围:**1~500**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'minimum' => '1', 'example' => '20', 'default' => '20'], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => '资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmyuji4b6r4**'], + ], + [ + 'name' => 'MatchType', + 'in' => 'query', 'schema' => [ - 'description' => '接入全站加速IPA进行加速的域名,仅支持单个查询。', + 'description' => '查询类型,支持以下2种类型,默认为精确查询。'."\n" + ."\n" + .'- fuzzy_match:模糊查询。'."\n" + .'- exact_match:精确查询。', 'type' => 'string', - 'required' => true, - 'example' => 'example.com', + 'required' => false, + 'example' => 'exact_match', + 'enum' => ['fuzzy_match', 'exact_match'], ], ], ], @@ -19927,136 +16382,56 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '09ABE829-6CD3-4FE0-AFEE-556113E29727', - ], - 'DomainDetail' => [ - 'description' => '域名详情。', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'AA75AADB-5E25-4970-B480-EAA1F5658483'], + 'PageNumber' => ['description' => '页码。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'PageSize' => ['description' => '单页显示域名的数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '5'], + 'TotalCount' => ['description' => '域名总个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '16'], + 'Domains' => [ 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'GmtCreated' => [ - 'description' => '创建时间。', - 'type' => 'string', - 'example' => '2017-11-27T06:51:26Z', - ], - 'SSLPub' => [ - 'description' => '如果开启HTTPS,此处为证书公钥。', - 'type' => 'string', - 'example' => 'SSLPub', - ], - 'Description' => [ - 'description' => '描述。', - 'type' => 'string', - 'example' => 'audit failed', - ], - 'SSLProtocol' => [ - 'description' => '是否开启SSL证书。取值:'."\n" - .'- **on**:开启。'."\n" - .'- **off**:关闭。', - 'type' => 'string', - 'example' => 'on', - ], - 'ResourceGroupId' => [ - 'description' => '资源组ID。', - 'type' => 'string', - 'example' => 'rg-acfmyuji4b6xxxx', - ], - 'CertName' => [ - 'description' => '如果开启HTTPS,此处为证书名称。', - 'type' => 'string', - 'example' => 'yourCertName', - ], - 'Scope' => [ - 'description' => '加速区域。取值:'."\n" - ."\n" - .'- domestic:仅中国内地。'."\n" - ."\n" - .'- overseas:全球(不包含中国内地)。'."\n" - ."\n" - .'- global:全球。', - 'type' => 'string', - 'example' => 'overseas', - ], - 'Cname' => [ - 'description' => 'CNAME。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DomainStatus' => [ - 'description' => '加速域名运行状态。取值:'."\n" - ."\n" - .'- **online**:启用。'."\n" - ."\n" - .'- **offline**:停用。'."\n" - ."\n" - .'- **configuring**:配置中。'."\n" - ."\n" - .'- **configure_failed**:配置失败。'."\n" - ."\n" - .'- **checking**:正在审核。'."\n" - ."\n" - .'- **check_failed**:审核失败。', - 'type' => 'string', - 'example' => 'online', - ], - 'GmtModified' => [ - 'description' => '最近修改时间。', - 'type' => 'string', - 'example' => '2017-11-27T06:51:26Z', - ], - 'DomainName' => [ - 'description' => '接入全站加速IPA进行加速的域名。'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'Sources' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Source' => [ - 'description' => '源站信息。', - 'type' => 'array', - 'items' => [ + 'PageData' => [ + 'description' => '由PageData组成的数组格式,返回加速域名的状态信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'GmtCreated' => ['description' => '加速域名创建时间。', 'type' => 'string', 'example' => '2015-10-28T09:32:51Z'], + 'SslProtocol' => ['description' => 'HTTPS开关。取值:'."\n" + ."\n" + .'- **on**:已开启。'."\n" + .'- **off**:未开启。', 'type' => 'string', 'example' => 'on'], + 'Description' => ['description' => '审核失败原因。', 'type' => 'string', 'example' => 'audit failed'], + 'ResourceGroupId' => ['description' => '资源组ID。', 'type' => 'string', 'example' => 'rg-acfmyuji4b6r4**'], + 'Sandbox' => ['description' => '沙箱。', 'type' => 'string', 'example' => 'normal'], + 'DomainStatus' => ['description' => '加速域名状态。取值:'."\n" + ."\n" + .'- **online**:启用。'."\n" + .'- **offline**:停用。'."\n" + .'- **configuring**:配置中。'."\n" + .'- **configure_failed**:配置失败。'."\n" + .'- **checking**:正在审核。'."\n" + .'- **check_failed**:审核失败。', 'type' => 'string', 'example' => 'configure_failed'], + 'Cname' => ['description' => '加速域名对应的CNAME域名。', 'type' => 'string', 'example' => 'example.com.w.alikunlun.net'], + 'GmtModified' => ['description' => '加速域名修改时间。', 'type' => 'string', 'example' => '2015-10-28T11:05:50Z'], + 'DomainName' => ['description' => '加速域名名称。', 'type' => 'string', 'example' => 'example.com'], + 'Sources' => [ 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'Type' => [ - 'description' => '源站类型。取值:'."\n" - ."\n" - .'- **ipaddr**:IP源站。'."\n" - ."\n" - .'- **domain**:域名源站。'."\n" - ."\n" - .'- **oss**:不支持OSS。'."\n", - 'type' => 'string', - 'example' => 'oss', - ], - 'Weight' => [ - 'description' => '回源权重。', - 'type' => 'string', - 'example' => '10', - ], - 'Enabled' => [ - 'description' => '状态。', - 'type' => 'string', - 'example' => 'online', - ], - 'Priority' => [ - 'description' => '优先级。', - 'type' => 'string', - 'example' => '50', - ], - 'Port' => [ - 'description' => '自定义端口,范围:**0**~**65535**。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'Content' => [ - 'description' => '回源地址。', - 'type' => 'string', - 'example' => 'xxx.oss-cn-hangzhou.aliyuncs.com', + 'Source' => [ + 'description' => '源站信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => '源站类型。', 'type' => 'string', 'example' => 'oss'], + 'Weight' => ['description' => '回源权重。', 'type' => 'string', 'example' => '20'], + 'Priority' => ['description' => '优先级。', 'type' => 'string', 'example' => '20'], + 'Port' => ['description' => '源站端口。', 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'Content' => ['description' => '源站地址。', 'type' => 'string', 'example' => 'image.developer.aliyundoc.com'], + ], + ], ], ], ], @@ -20069,185 +16444,214 @@ ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"09ABE829-6CD3-4FE0-AFEE-556113E29727\\",\\n \\"DomainDetail\\": {\\n \\"GmtCreated\\": \\"2017-11-27T06:51:26Z\\",\\n \\"SSLPub\\": \\"SSLPub\\",\\n \\"Description\\": \\"audit failed\\",\\n \\"SSLProtocol\\": \\"on\\",\\n \\"ResourceGroupId\\": \\"rg-acfmyuji4b6xxxx\\",\\n \\"CertName\\": \\"yourCertName\\",\\n \\"Scope\\": \\"overseas\\",\\n \\"Cname\\": \\"example.com\\",\\n \\"DomainStatus\\": \\"online\\",\\n \\"GmtModified\\": \\"2017-11-27T06:51:26Z\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Sources\\": {\\n \\"Source\\": [\\n {\\n \\"Type\\": \\"oss\\",\\n \\"Weight\\": \\"10\\",\\n \\"Enabled\\": \\"online\\",\\n \\"Priority\\": \\"50\\",\\n \\"Port\\": 80,\\n \\"Content\\": \\"xxx.oss-cn-hangzhou.aliyuncs.com\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnIpaDomainDetailResponse>\\n<RequestId>09ABE829-6CD3-4FE0-AFEE-556113E29727</RequestId>\\n<DomainDetail>\\n <Cname>example.com.dcdn7mhp.com</Cname>\\n <ResourceGroupId>rg-acfmyuji4b6xxxx</ResourceGroupId>\\n <DomainStatus>online</DomainStatus>\\n <DomainName>example.com</DomainName>\\n <Sources>\\n <Source>\\n <Enabled>online</Enabled>\\n <Port>80</Port>\\n <Type>oss</Type>\\n <Content>xxx.oss-cn-hangzhou.aliyuncs.com</Content>\\n <Priority>50</Priority>\\n <Weight>10</Weight>\\n </Source>\\n </Sources>\\n <GmtModified>2017-11-27T06:51:26Z</GmtModified>\\n <GmtCreated>2017-11-27T06:51:25Z</GmtCreated>\\n</DomainDetail>\\n</DescribeDcdnIpaDomainDetailResponse>","errorExample":""}]', - 'title' => '获取IPA层的基本配置信息', - 'description' => '> 单用户调用频率:30次/秒。', + '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' => 'PageSize参数错误,请重新填写。'], + ['errorCode' => 'InvalidDomainStatus.ValueNotSupported', 'errorMessage' => 'The specified value of DomainStatus is invalid.', 'description' => 'DomainStatus值错误,请重新填写。'], + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => '域名格式错误。'], + ['errorCode' => 'InvalidDomainSearchType.ValueNotSupported', 'errorMessage' => 'The specified value of DomainSearchType is invalid.', 'description' => 'DomainSearchType值错误,请重新填写。'], + ['errorCode' => 'InvalidChangeStartTime.Malformed', 'errorMessage' => 'The specified ChangeStartTime is invalid.', 'description' => '更新开始时间非法。'], + ['errorCode' => 'InvalidChangeEndTime.Malformed', 'errorMessage' => 'The specified ChangeEndTime is invalid.', 'description' => '更新结束时间非法。'], + ], + ], + 'title' => '查询域名-按功能', + 'summary' => '调用DescribeDcdnUserDomainsByFunc通过FuncId查询用户名下所有配置了指定功能的DCDN域名。', + 'description' => '> 单用户调用频率:100次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteDcdnIpaSpecificConfig' => [ - 'summary' => '调用DeleteDcdnIpaSpecificConfig删除指定域名的IPA层配置。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2023-10-16T07:45:07.000Z', 'description' => '请求参数发生变更、响应参数发生变更'], + ['createdAt' => '2023-03-02T02:57:33.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserDomainsByFunc'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserDomainsByFunc', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"AA75AADB-5E25-4970-B480-EAA1F5658483\\",\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 5,\\n \\"TotalCount\\": 16,\\n \\"Domains\\": {\\n \\"PageData\\": [\\n {\\n \\"GmtCreated\\": \\"2015-10-28T09:32:51Z\\",\\n \\"SslProtocol\\": \\"on\\",\\n \\"Description\\": \\"audit failed\\",\\n \\"ResourceGroupId\\": \\"rg-acfmyuji4b6r4**\\",\\n \\"Sandbox\\": \\"normal\\",\\n \\"DomainStatus\\": \\"configure_failed\\",\\n \\"Cname\\": \\"example.com.w.alikunlun.net\\",\\n \\"GmtModified\\": \\"2015-10-28T11:05:50Z\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Sources\\": {\\n \\"Source\\": [\\n {\\n \\"Type\\": \\"oss\\",\\n \\"Weight\\": \\"20\\",\\n \\"Priority\\": \\"20\\",\\n \\"Port\\": 80,\\n \\"Content\\": \\"image.developer.aliyundoc.com\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnUserDomainsByFuncResponse>\\n<PageNumber>1</PageNumber>\\n<TotalCount>16</TotalCount>\\n<PageSize>5</PageSize>\\n<RequestId>AA75AADB-5E25-4970-B480-EAA1F5658483</RequestId>\\n<Domains>\\n <PageData>\\n <DomainStatus>configure_failed</DomainStatus>\\n <DomainName>example.com</DomainName>\\n <GmtModified>2015-10-28T11:05:52Z</GmtModified>\\n <GmtCreated>2015-10-28T09:32:51Z</GmtCreated>\\n <Description>audit failed</Description>\\n <ResourceGroupId>rg-xxxxx</ResourceGroupId>\\n </PageData>\\n <PageData>\\n <DomainStatus>configure_failed</DomainStatus>\\n <DomainName>example.org</DomainName>\\n <GmtModified>2015-10-28T11:05:50Z</GmtModified>\\n <GmtCreated>2015-10-28T09:31:59Z</GmtCreated>\\n <ResourceGroupId>rg-xxxxx</ResourceGroupId>\\n </PageData>\\n <PageData>\\n <Cname>example.net.w.alikunlun.net</Cname>\\n <DomainStatus>online</DomainStatus>\\n <DomainName>example.net</DomainName>\\n <GmtModified>2015-10-27T06:26:34Z</GmtModified>\\n <GmtCreated>2015-10-23T09:30:00Z</GmtCreated>\\n <ResourceGroupId>rg-xxxxx</ResourceGroupId>\\n </PageData>\\n <PageData>\\n <Cname>example.edu.w.kunlunAr.com</Cname>\\n <DomainStatus>online</DomainStatus>\\n <DomainName>example.edu</DomainName>\\n <GmtModified>2015-10-23T09:23:29Z</GmtModified>\\n <GmtCreated>2015-10-23T09:23:20Z</GmtCreated>\\n <ResourceGroupId>rg-xxxxx</ResourceGroupId>\\n </PageData>\\n <PageData>\\n <Cname>aliyundoc.com.w.alikunlun.com</Cname>\\n <DomainStatus>online</DomainStatus>\\n <DomainName>aliyundoc.com</DomainName>\\n <GmtModified>2015-10-23T09:02:11Z</GmtModified>\\n <GmtCreated>2015-10-23T09:01:57Z</GmtCreated>\\n <ResourceGroupId>rg-xxxxx</ResourceGroupId>\\n </PageData>\\n</Domains>\\n</DescribeDcdnUserDomainsByFuncResponse>","errorExample":""}]', + ], + 'DescribeDcdnUserQuota' => [ + 'summary' => '调用DescribeDcdnUserQuota查询用户资源上限及已使用情况。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn2JMMUY', - ], - ], - 'parameters' => [ - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '您的加速域名,仅支持单个域名设置。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'ConfigId', - 'in' => 'query', - 'schema' => [ - 'description' => '配置ID,您可以调用[DescribeDcdnDomainConfigs](~~130625~~)查询配置ID。', - 'type' => 'string', - 'required' => true, - 'example' => '50035**', - ], - ], + 'abilityTreeCode' => '111560', + 'abilityTreeNodes' => ['FEATUREdcdnZA9EPX'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], + 'BlockQuota' => ['description' => '封禁上限,单位:个。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'RefreshUrlRemain' => ['description' => '刷新URL余量,单位:个。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'DomainQuota' => ['description' => '加速域名数上限,单位:个。', 'type' => 'integer', 'format' => 'int32', 'example' => '50'], + 'BlockRemain' => ['description' => '封禁余量,单位:个。', 'type' => 'integer', 'format' => 'int32', 'example' => '500'], + 'PreloadRemain' => ['description' => '预热余量,单位:个。', 'type' => 'integer', 'format' => 'int32', 'example' => '300'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'BFFCDFAD-DACC-484E-9BE6-0AF3B3A0DD23'], + 'RefreshUrlQuota' => ['description' => '刷新URL上限,单位:个。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'PreloadQuota' => ['description' => '预热上限,单位:个。', 'type' => 'integer', 'format' => 'int32', 'example' => '500'], + 'RefreshDirQuota' => ['description' => '刷新目录上限,单位:个。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'RefreshDirRemain' => ['description' => '刷新目录余量,单位:个。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'IgnoreParamsQuota' => ['description' => '忽略参数刷新上限,单位:个。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'IgnoreParamsRemain' => ['description' => '忽略参数刷新余量,单位:个。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Invalid%s.ValueNotSupported', - 'errorMessage' => 'FunctionName [%s] is not supported.', - ], - ], - 403 => [ - [ - 'errorCode' => 'DcdnIpaServiceNotFound', - 'errorMessage' => 'The DCDN IPA service has not been activated.', - ], - ], - ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDcdnIpaSpecificConfigResponse>\\r\\n <RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</DeleteDcdnIpaSpecificConfigResponse>","errorExample":""}]', - 'title' => '删除加速域名的IPA层配置', - 'description' => '> 单用户调用频率:10次/秒。', + 'title' => '查询用户资源使用信息', + 'description' => '> 单用户调用频率:30次/秒。 ', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainProperty' => [ - 'summary' => '调用DescribeDcdnDomainProperty查询IPA的协议类型。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2022-10-13T02:30:44.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserQuota'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserQuota', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"BlockQuota\\": 20,\\n \\"RefreshUrlRemain\\": 100,\\n \\"DomainQuota\\": 50,\\n \\"BlockRemain\\": 500,\\n \\"PreloadRemain\\": 300,\\n \\"RequestId\\": \\"BFFCDFAD-DACC-484E-9BE6-0AF3B3A0DD23\\",\\n \\"RefreshUrlQuota\\": 100,\\n \\"PreloadQuota\\": 500,\\n \\"RefreshDirQuota\\": 100,\\n \\"RefreshDirRemain\\": 100,\\n \\"IgnoreParamsQuota\\": 100,\\n \\"IgnoreParamsRemain\\": 10\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnUserQuotaResponse>\\r\\n\\t<DomainQuota>20</DomainQuota>\\r\\n\\t<RefreshUrlQuota>1000</RefreshUrlQuota>\\r\\n\\t<RefreshDirQuota>500</RefreshDirQuota>\\r\\n\\t<RefreshUrlRemain>500</RefreshUrlRemain>\\r\\n\\t<RefreshDirRemain>300</RefreshDirRemain>\\r\\n\\t<PreloadQuota>300</PreloadQuota>\\r\\n\\t<PreloadRemain>100</PreloadRemain>\\r\\n\\t<BlockQuota>100</BlockQuota>\\r\\n\\t<BlockRemain>100</BlockRemain>\\r\\n\\t<RequestId>BFFCDFAD-DACC-484E-9BE6-0AF3B3A0DD23</RequestId>\\r\\n</DescribeDcdnUserQuotaResponse>\\r\\n\\t\\r\\n","errorExample":""}]', + ], + 'DescribeDcdnUserRealTimeDeliveryField' => [ + 'summary' => '调用DescribeDcdnUserRealTimeDeliveryField查询用户选择的字段列表。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeCode' => '111561', + 'abilityTreeNodes' => ['FEATUREdcdn9K10I1'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'BusinessType', 'in' => 'query', - 'schema' => [ - 'description' => '待查询的加速域名,只支持查询单个域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '业务类型,取值:'."\n" + ."\n" + .'- **cdn_log_access_l1**(默认值):用户访问日志。'."\n" + .'- **cdn_log_er**:边缘程序日志。'."\n" + .'- **cdn_log_waf**:WAF拦截日志。', 'type' => 'string', 'required' => false, 'example' => 'cdn_log_access_l1', 'default' => 'dcdn_log_access_l1'], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB', - ], - 'DomainName' => [ - 'description' => '查询到的加速域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'Protocol' => [ - 'description' => '协议名称。取值:'."\n" - .'- **udp**:UDP协议。'."\n" - .'- **tcp**:TCP协议。', - 'type' => 'string', - 'example' => 'udp', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4'], + 'Content' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Fields' => [ + 'description' => '域名配置结果信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Description' => ['description' => '字段描述。', 'type' => 'string', 'example' => 'Access time'], + 'Selected' => ['description' => '是否选择该字段。'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'FieldName' => ['description' => '字段名称。', 'type' => 'string', 'example' => 'unixtime'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ - 404 => [ - [ - 'errorCode' => 'InvalidDomain.NotFound', - 'errorMessage' => 'The specified domain does not exist.', - ], + 400 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal exception occurred, please try again later.', 'description' => '触发内部异常,请稍后再试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Protocol\\": \\"udp\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainPropertyResponse>\\n<RequestId>34AB41F1-04A5-496F-8C8D-634BDBE6A9FB</RequestId>\\n<DomainName>example.com</DomainName>\\n<Protocol>udp</Protocol>\\n</DescribeDcdnDomainPropertyResponse>","errorExample":""}]', - 'title' => '查询IPA的协议类型', - 'description' => '> 单用户调用频率:10次/秒。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4\\",\\n \\"Content\\": {\\n \\"Fields\\": [\\n {\\n \\"Description\\": \\"Access time\\",\\n \\"Selected\\": true,\\n \\"FieldName\\": \\"unixtime\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnUserRealTimeDeliveryFieldResponse>\\n<RequestId>3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4</RequestId>\\n<Content>\\n <Fields>\\n <FieldName>unixtime</FieldName>\\n <Description>访问时间</Description>\\n <Selected>true</Selected>\\n </Fields>\\n <Fields>\\n <FieldName>client_ip</FieldName>\\n <Description>用户真实IP</Description>\\n <Selected>false</Selected>\\n </Fields>\\n</Content>\\n</DescribeDcdnUserRealTimeDeliveryFieldResponse>","errorExample":""}]', + 'title' => '查询用户选择的字段列表', + 'description' => '> 单用户调用频率:100次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainIpaBpsData' => [ - 'summary' => '调用DescribeDcdnDomainIpaBpsData获取加速域名四层加速的网络带宽监控数据,支持获取最近90天的数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2024-12-18T07:22:52.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserRealTimeDeliveryField'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserRealTimeDeliveryField', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + ], + 'DescribeDcdnUserResourcePackage' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -20258,165 +16662,78 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111562', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '加速域名。'."\n" - ."\n" - .'多个域名用英文逗号(,)分隔,默认查询所有加速域名。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的起始时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的结束时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], - ], - [ - 'name' => 'TimeMerge', - 'in' => 'query', - 'schema' => [ - 'description' => '是否自适应计算**Interval**值,如果**timeMerge**=**1**,会根据**startTime**和**endTime**计算出合适的**inteval**值,和**Interval**参数任选。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'Interval', + 'name' => 'Status', 'in' => 'query', 'schema' => [ - 'description' => '查询数据的时间粒度,单位为秒。'."\n" - ."\n" - .'根据您指定**StartTime**和**EndTime**两者的时间跨度,该参数取值如下:'."\n" - ."\n" - .'- 3天以内(不包含3天整):支持**300**、**3600**、 **86400**,如果不传该参数,默认值为**300**。'."\n" - ."\n" - .'- 3~31天(不包含31天整):支持**3600**和**86400**,如果不传该参数,默认值为**3600**。'."\n" + 'description' => '资源包状态,默认值为valid。取值:'."\n" ."\n" - .'- 31天及以上:支持**86400**,如果不传该参数,默认值为**86400**。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], - ], - [ - 'name' => 'FixTimeGap', - 'in' => 'query', - 'schema' => [ - 'description' => '是否补零。取值:'."\n" - .'- **true**:补零。'."\n" - .'- **false**:不补零。', - 'type' => 'string', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'IspNameEn', - 'in' => 'query', - 'schema' => [ - 'description' => '运营商英文名。'."\n" + .'- **valid**:有效。'."\n" ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有运营商。', - 'type' => 'string', - 'required' => false, - 'example' => 'Unicom', - ], - ], - [ - 'name' => 'LocationNameEn', - 'in' => 'query', - 'schema' => [ - 'description' => '地域商英文名。'."\n" + .'- **closed**:无效。'."\n" ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有地域。', + .'- **exhaust**:耗尽。', 'type' => 'string', 'required' => false, - 'example' => 'beijing', + 'enumValueTitles' => [], + 'example' => 'valid', + 'default' => 'valid', ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '请求ID。'."\n", 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => ' 数据间隔时间。单位:秒。', - 'type' => 'string', - 'example' => '300', - ], - 'BpsDataPerInterval' => [ + 'RequestId' => ['description' => '请求ID。'."\n", 'type' => 'string', 'example' => '96ED3127-EC7A-57C5-AFA6-A689B24B2530'], + 'ResourcePackageInfos' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DataModule' => [ - 'description' => '每个时间间隔的网络带宽数据。', + 'ResourcePackageInfo' => [ + 'description' => '由ResourcePackageInfo组成的数组格式。'."\n", 'type' => 'array', 'items' => [ + 'description' => '由ResourcePackageInfo组成的数组格式。'."\n", 'type' => 'object', 'properties' => [ - 'IpaBps' => [ - 'description' => '带宽数据值,单位:bit/second。', - 'type' => 'number', - 'format' => 'float', - 'example' => '11288111', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], + 'EndTime' => ['description' => '失效时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2022-08-24T16:00:00Z'], + 'Status' => ['description' => '资源包状态。取值:'."\n" + ."\n" + .'- **valid**:有效。'."\n" + ."\n" + .'- **closed**:无效。'."\n" + ."\n" + .'- **exhaust**:耗尽。', 'type' => 'string', 'example' => 'valid'], + 'DisplayName' => ['description' => '资源包名称。', 'type' => 'string', 'example' => 'Downstream Data Package (Australia Sydney)'], + 'StartTime' => ['description' => '生效时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n", 'type' => 'string', 'example' => '2021-08-24T04:09:22Z'], + 'CommodityCode' => ['description' => '资源包商品代码。', 'type' => 'string', 'example' => 'dcdnpaybag'], + 'InstanceId' => ['description' => '资源包ID。', 'type' => 'string', 'example' => 'CDNFLOWBAG-cn-7pp2bihrb01ii0'], + 'TemplateName' => ['description' => '模板名。', 'type' => 'string', 'example' => 'FPT_dcdnpaybag_deadlineAcc_1541151058'], + 'CurrCapacity' => ['description' => '资源包余量。'."\n" + ."\n" + .'- 流量包单位:byte。'."\n" + ."\n" + .'- 请求包单位:次。', 'type' => 'string', 'example' => '10000000'], + 'InitCapacity' => ['description' => '资源包总量。'."\n" + ."\n" + .'- 流量包单位:byte。'."\n" + ."\n" + .'- 请求包单位:次。', 'type' => 'string', 'example' => '10000000'], + 'Region' => ['description' => '地域。', 'type' => 'string', 'example' => 'CN'], + 'CurrCapacityShowValue' => ['description' => '实例当前显示剩余容量。', 'type' => 'string', 'example' => '49.975789'."\n"], + 'CurrCapacityShowUnit' => ['description' => '实例当前显示剩余容量单位。', 'type' => 'string', 'example' => 'GB'."\n"], + 'CurrCapacityBaseUnit' => ['description' => '实例当前剩余容量单位。', 'type' => 'string', 'example' => 'Byte'], + 'InitCapacityShowValue' => ['description' => '资源包显示总量。', 'type' => 'string', 'example' => '100.000000'."\n"], + 'InitCapacityShowUnit' => ['description' => '资源包显示总量单位。', 'type' => 'string', 'example' => 'GB'."\n"], + 'InitCapacityBaseUnit' => ['description' => '资源包总量单位。', 'type' => 'string', 'example' => 'Byte'], ], ], ], @@ -20427,45 +16744,45 @@ ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + 403 => [ + ['errorCode' => 'DcdnServiceNotFound', 'errorMessage' => 'The DCDN service is not activated.', 'description' => '您的账户未开通DCDN服务,请开通后重试。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"BpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"IpaBps\\": 11288111,\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainIpaBpsDataResponse>\\r\\n\\t<BpsDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<IpaBps>11288111</IpaBps>\\r\\n\\t\\t</DataModule>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T20:05:00Z</TimeStamp>\\r\\n\\t\\t\\t<IpaBps>11288111</IpaBps>\\r\\n\\t\\t</DataModule>\\r\\n\\t</BpsDataPerInterval>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>300</DataInterval>\\r\\n\\t<RequestId>3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F</RequestId>\\r\\n\\t<StartTime>2017-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2017-12-10T21:00:00Z</EndTime>\\r\\n</DescribeDcdnDomainIpaBpsDataResponse>","errorExample":""}]', - 'title' => '获取四层加速的带宽数据', - 'description' => '> '."\n" - .'> - 该接口获取数据的单位为:bit/second。'."\n" - .'> - 不指定**StartTime**和**EndTime**,默认返回过去24小时的数据;指定**StartTime**和**EndTime**,返回指定起止时间的数据。'."\n" - .'> - 单用户调用频率:100次/秒。', + 'title' => '查询资源包信息', + 'summary' => '调用DescribeDcdnUserResourcePackage查询您所有资源包信息,包括资源包总量、余量、生效时间、失效时间、状态等。', + 'description' => '> 单用户调用频率:30次/秒。 ', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainIpaTrafficData' => [ - 'summary' => '调用DescribeDcdnDomainIpaTrafficData获取加速域名的四层加速网络流量监控数据,支持获取最近90天的数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2025-05-08T06:54:43.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2025-04-25T02:22:39.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2025-04-25T02:05:02.000Z', 'description' => '响应参数发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserResourcePackage'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserResourcePackage', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"96ED3127-EC7A-57C5-AFA6-A689B24B2530\\",\\n \\"ResourcePackageInfos\\": {\\n \\"ResourcePackageInfo\\": [\\n {\\n \\"EndTime\\": \\"2022-08-24T16:00:00Z\\",\\n \\"Status\\": \\"valid\\",\\n \\"DisplayName\\": \\"Downstream Data Package (Australia Sydney)\\",\\n \\"StartTime\\": \\"2021-08-24T04:09:22Z\\",\\n \\"CommodityCode\\": \\"dcdnpaybag\\",\\n \\"InstanceId\\": \\"CDNFLOWBAG-cn-7pp2bihrb01ii0\\",\\n \\"TemplateName\\": \\"FPT_dcdnpaybag_deadlineAcc_1541151058\\",\\n \\"CurrCapacity\\": \\"10000000\\",\\n \\"InitCapacity\\": \\"10000000\\",\\n \\"Region\\": \\"CN\\",\\n \\"CurrCapacityShowValue\\": \\"49.975789\\\\n\\",\\n \\"CurrCapacityShowUnit\\": \\"GB\\\\n\\",\\n \\"CurrCapacityBaseUnit\\": \\"Byte\\",\\n \\"InitCapacityShowValue\\": \\"100.000000\\\\n\\",\\n \\"InitCapacityShowUnit\\": \\"GB\\\\n\\",\\n \\"InitCapacityBaseUnit\\": \\"Byte\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnUserResourcePackageResponse>\\n<RequestId>96ED3127-EC7A-57C5-AFA6-A689B24B2530</RequestId>\\n<ResourcePackageInfos>\\n <ResourcePackageInfo>\\n <Status>valid</Status>\\n <InitCapacity>10000000</InitCapacity>\\n <EndTime>2022-08-24T16:00:00Z</EndTime>\\n <InstanceId>CDNFLOWBAG-cn-7pp2bihrb01ii0</InstanceId>\\n <CommodityCode>dcdnpaybag</CommodityCode>\\n <DisplayName>静态HTTPS请求包</DisplayName>\\n <StartTime>2021-08-24T04:09:22Z</StartTime>\\n <TemplateName>FPT_dcdnpaybag_deadlineAcc_1541151058</TemplateName>\\n <CurrCapacity>10000000</CurrCapacity>\\n </ResourcePackageInfo>\\n <ResourcePackageInfo>\\n <Status>valid</Status>\\n <InitCapacity>1000000</InitCapacity>\\n <EndTime>2021-08-31T16:00:00Z</EndTime>\\n <InstanceId>CDNFLOWBAG-cn-z2q1t3xre0001x</InstanceId>\\n <CommodityCode>dcdnpaybag</CommodityCode>\\n <DisplayName>动态加速请求包</DisplayName>\\n <StartTime>2020-08-31T09:26:20Z</StartTime>\\n <TemplateName>FPT_dcdnpaybag_deadlineAcc_1541404502</TemplateName>\\n <CurrCapacity>1000000</CurrCapacity>\\n </ResourcePackageInfo>\\n <ResourcePackageInfo>\\n <Status>valid</Status>\\n <InitCapacity>1000000</InitCapacity>\\n <EndTime>2022-08-24T16:00:00Z</EndTime>\\n <InstanceId>CDNFLOWBAG-cn-7pp2bihrb01ijf</InstanceId>\\n <CommodityCode>dcdnpaybag</CommodityCode>\\n <DisplayName>动态加速请求包</DisplayName>\\n <StartTime>2021-08-24T04:09:22Z</StartTime>\\n <TemplateName>FPT_dcdnpaybag_deadlineAcc_1541404502</TemplateName>\\n <CurrCapacity>1000000</CurrCapacity>\\n </ResourcePackageInfo>\\n <ResourcePackageInfo>\\n <Status>closed</Status>\\n <InitCapacity>107374182400</InitCapacity>\\n <EndTime>2021-02-12T16:00:00Z</EndTime>\\n <InstanceId>CDNFLOWBAG-cn-mp91irkf600q2d</InstanceId>\\n <CommodityCode>dcdnpaybag</CommodityCode>\\n <DisplayName>下行流量(中国内地)</DisplayName>\\n <StartTime>2020-02-12T07:31:08Z</StartTime>\\n <TemplateName>FPT_dcdnpaybag_deadlineAcc_1541405199</TemplateName>\\n <CurrCapacity>0</CurrCapacity>\\n </ResourcePackageInfo>\\n <ResourcePackageInfo>\\n <Status>valid</Status>\\n <InitCapacity>1000000</InitCapacity>\\n <EndTime>2022-08-24T16:00:00Z</EndTime>\\n <InstanceId>CDNFLOWBAG-cn-7pp2bihrb01ik9</InstanceId>\\n <CommodityCode>dcdn_waf_bag</CommodityCode>\\n <DisplayName>边缘WAF请求数资源包</DisplayName>\\n <StartTime>2021-08-24T04:09:22Z</StartTime>\\n <TemplateName>FPT_dcdn_waf_bag_deadlineAcc_1612705404</TemplateName>\\n <CurrCapacity>1000000</CurrCapacity>\\n </ResourcePackageInfo>\\n</ResourcePackageInfos>\\n</DescribeDcdnUserResourcePackageResponse>","errorExample":""}]', + ], + 'DescribeDcdnUserSecDrop' => [ + 'summary' => '调用DescribeDcdnUserSecDrop查询DCDN用户某安全功能报文拦截数。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -20476,114 +16793,45 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '加速域名。'."\n" - ."\n" - .'多个域名用英文逗号(,)分隔,默认查询所有加速域名。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的起始时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的结束时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'> 结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], - ], - [ - 'name' => 'TimeMerge', - 'in' => 'query', - 'schema' => [ - 'description' => '是否自适应计算**interval**值,如果**timeMerge**=**1**,会根据**StartTime**和**EndTime**计算出合适的**inteval**值,和**interval**参数任选。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'Interval', - 'in' => 'query', - 'schema' => [ - 'description' => '查询数据的时间粒度,单位为秒。'."\n" - ."\n" - .'根据您指定**StartTime**和**EndTime**两者的时间跨度,该参数取值如下:'."\n" - ."\n" - .'- 3天以内(不包含3天整):支持**300**、**3600**、 **86400**,如果不传该参数,默认值为**300**。'."\n" - ."\n" - .'- 3~31天(不包含31天整):支持**3600**和**86400**,如果不传该参数,默认值为**3600**。'."\n" - ."\n" - .'- 31天及以上:支持**86400**,如果不传该参数,默认值为**86400**。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], - ], - [ - 'name' => 'FixTimeGap', + 'name' => 'Data', 'in' => 'query', - 'schema' => [ - 'description' => '是否补零。取值:'."\n" - ."\n" - .'- **true**:补零。'."\n" - ."\n" - .'- **false**:不补零。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '统计日期或月份:'."\n" + ."\n" + .'- 统计粒度为1天时,格式为"yyyymmdd",如"20201203"。'."\n" + .'- 统计粒度为1月时,格式为"yyyymm",如"202012"。', 'type' => 'string', 'required' => true, 'example' => '20201203'], ], [ - 'name' => 'IspNameEn', + 'name' => 'SecFunc', 'in' => 'query', 'schema' => [ - 'description' => '运营商英文名。'."\n" + 'description' => '安全功能:'."\n" ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有运营商。', + .'- waf:WAF功能;。'."\n" + .'- tmd:IP频次控制。'."\n" + .'- robot:机器流量识别。'."\n" + .'- l4_dm_drop:四层域名拦截。', 'type' => 'string', - 'required' => false, - 'example' => 'unicom', + 'required' => true, + 'example' => 'waf', + 'enum' => ['waf', 'tmd', 'robot', 'l4_dm_drop'], ], ], [ - 'name' => 'LocationNameEn', + 'name' => 'Metric', 'in' => 'query', 'schema' => [ - 'description' => '地域商英文名。'."\n" + 'description' => '统计粒度:'."\n" ."\n" - .'您可以调用[DescribeDcdnRegionAndIsp](~~207199~~)接口获取,默认查询所有地域。', + .'- 统计粒度为1天时,统计一天的拦截汇总数据。'."\n" + .'- 统计粒度为1月时,统计一个月的拦截汇总数据。', 'type' => 'string', - 'required' => false, - 'example' => 'beijing', + 'required' => true, + 'example' => '1day', + 'enum' => ['1day', '1month'], ], ], ], @@ -20592,105 +16840,48 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', - ], - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => '每条记录的时间间隔,以秒为单位。'."\n", - 'type' => 'string', - 'example' => '300', - ], - 'TrafficDataPerInterval' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'DataModule' => [ - 'description' => '每个时间间隔的流量数据。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'IpaTraffic' => [ - 'description' => '总流量。', - 'type' => 'number', - 'format' => 'float', - 'example' => '423304182', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - ], - ], - ], - ], - ], + 'Msg' => ['description' => '是否找到信息。'."\n" + ."\n" + .'- Found:是。'."\n" + .'- Not Found:否。', 'type' => 'string', 'example' => 'Found'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '4A1295C0-7A5C-4F27-8D70-C3A648E7037F'], + 'Drops' => ['description' => '拦截请求数。', 'type' => 'integer', 'format' => 'int32', 'example' => '233023208'], + 'UuidStr' => ['description' => '根据请求参数拼接的字符串,用于定位没有数据的原因。', 'type' => 'string', 'example' => '1day10811******6429wafDCDN'], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"TrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"IpaTraffic\\": 423304182,\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainIpaTrafficDataResponse>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>300</DataInterval>\\r\\n\\t<TrafficDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<IpaTraffic>423304182</IpaTraffic>\\r\\n\\t\\t</DataModule>\\r\\n\\t</TrafficDataPerInterval>\\r\\n\\t<RequestId>B955107D-E658-4E77-B913-E0AC3D31693E</RequestId>\\r\\n\\t<StartTime>2017-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2017-12-10T21:00:00Z</EndTime>\\r\\n</DescribeDcdnDomainIpaTrafficDataResponse>","errorExample":""}]', - 'title' => '获取四层加速流量监控数据', - 'description' => '> '."\n" - .'> - 不指定**StartTime**和**EndTime**,默认返回过去24小时的数据;指定**StartTime**和**EndTime**,返回指定起止时间的数据。'."\n" - .'> - 该接口获取数据的单位为:byte。'."\n" - .'> - 单用户调用频率:100次/秒。', + 'title' => '查询用户某安全功能报文拦截数', + 'description' => '> 单用户调用频率:50次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainIpaConnData' => [ - 'summary' => '调用DescribeDcdnDomainIpaConnData查询IPA用户连接数。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserSecDrop'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserSecDrop', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Msg\\": \\"Found\\",\\n \\"RequestId\\": \\"4A1295C0-7A5C-4F27-8D70-C3A648E7037F\\",\\n \\"Drops\\": 233023208,\\n \\"UuidStr\\": \\"1day10811******6429wafDCDN\\"\\n}","errorExample":""},{"type":"xml","example":"<RequestId>4A1295C0-7A5C-4F27-8D70-C3A648E7037F</RequestId>\\n<Msg>Found</Msg>\\n<Drops>233023208</Drops>\\n<UuidStr>1day10811******6429wafDCDN</UuidStr>","errorExample":""}]', + ], + 'DescribeDcdnUserSecDropByMinute' => [ + 'summary' => '调用DescribeDcdnUserSecDropByMinute获取边缘应用层某一时间段的安全报文拦截总数。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -20701,286 +16892,236 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ + 'name' => 'SecFunc', + 'in' => 'query', + 'schema' => ['description' => '安全功能名称。', 'type' => 'string', 'required' => true, 'example' => 'robot'], + ], + [ + 'name' => 'RuleName', + 'in' => 'query', + 'schema' => ['description' => '触发规则。', 'type' => 'string', 'required' => false, 'example' => 'robot_ai'], + ], + [ + 'name' => 'Object', + 'in' => 'query', + 'schema' => ['description' => '触发对象。', 'type' => 'string', 'required' => false, 'example' => 'robot_fingerprint_ai'], + ], + [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'IPA层应用加速域名,多个域名用英文逗号(,)分隔。'."\n" - .'> 若参数为空,默认返回所有加速域名合并后数据。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example1.com', - ], + 'schema' => ['description' => '域名。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的起始时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-02-21T07:00:00Z', - ], + 'schema' => ['description' => '获取数据的起始时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。如 "2006-01-02T15:04:04Z"', 'type' => 'string', 'required' => false, 'example' => '2006-01-02T15:04:04Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的结束时间点。'."\n" - ."\n" - .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - .'> 结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-02-22T7:00:00Z', - ], + 'schema' => ['description' => '获取数据的结束时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。如 "2006-01-02T15:05:04Z"'."\n" + ."\n" + .'> 结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2006-01-02T15:05:04Z'], ], [ - 'name' => 'SplitBy', + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '页面大小,最大100。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '100', 'example' => '2', 'default' => '20'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '页面号码,从1开始。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '10', 'default' => '1'], + ], + [ + 'name' => 'Lang', 'in' => 'query', 'schema' => [ - 'description' => '查询结果分组方式。取值:'."\n" - ."\n" - .'- domain:按加速域名分组。'."\n" - ."\n" - .'- 参数为空(默认):查询结果不分组。', + 'description' => '语言。取值:en或者zh。默认en。', 'type' => 'string', - 'required' => false, - 'example' => 'domain', + 'required' => true, + 'example' => 'zh', + 'enum' => ['zh', 'en'], ], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2015-02-22T15:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2015-02-21T15:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A2A1EEF8-043E-43A1-807C-BEAC18EA1807', - ], - 'ConnectionDataPerInterval' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'DataModule' => [ - 'description' => '每个时间间隔的用户连接数。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2022-02-21T15:00:00+08:00', - ], - 'Domain' => [ - 'description' => '加速域名。', - 'type' => 'string', - 'example' => 'example1.com', - ], - 'Connections' => [ - 'description' => 'IPA用户连接数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '189095', - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '8143fA8A-B2B2-4915-538D-546B538D25FA'], + 'Description' => ['description' => 'HTTP请响应说明描述。', 'type' => 'string', 'example' => 'OK'], + 'Len' => ['description' => '当前返回的数据条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'PageNumber' => ['description' => '页面号码。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'PageSize' => ['description' => '页面大小。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'TotalCount' => ['description' => '总条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '5738'], + 'Rows' => [ + 'description' => '数组。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Domain' => ['description' => '域名。', 'type' => 'string', 'example' => 'example.aliyundoc.com'], + 'TmStr' => ['description' => '统计的起始时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2021-01-31T15:04:04Z'], + 'Drops' => ['description' => '5分钟拦截总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '264'], + 'Object' => ['description' => '触发对象。', 'type' => 'string', 'example' => 'Normal mode rule'], + 'SecFunc' => ['description' => '安全功能或者安全类型。', 'type' => 'string', 'example' => 'robot'], + 'RuleName' => ['description' => '触发规则。', 'type' => 'string', 'example' => 'normal_mode_rule'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidTimeRange', - 'errorMessage' => 'The time span between the StartTime and the EndTime cannot exceed 31 days.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-02-22T15:00:00Z\\",\\n \\"StartTime\\": \\"2015-02-21T15:00:00Z\\",\\n \\"RequestId\\": \\"A2A1EEF8-043E-43A1-807C-BEAC18EA1807\\",\\n \\"ConnectionDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TimeStamp\\": \\"2022-02-21T15:00:00+08:00\\",\\n \\"Domain\\": \\"example1.com\\",\\n \\"Connections\\": 189095\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainIpaConnDataResponse>\\n<RequestId>A2A1EEF8-043E-43A1-807C-BEAC18EA1807</RequestId>\\n<StartTime>2015-02-21T15:00:00Z</StartTime>\\n<EndTime>2015-02-22T15:00:00Z</EndTime>\\n<ConnectionDataPerInterval>\\n <TimeStamp>2022-02-21T15:00:00+08:00</TimeStamp>\\n <domain>example1.com</domain>\\n <Connections>189095</Connections>\\n</ConnectionDataPerInterval>\\n<ConnectionDataPerInterval>\\n <TimeStamp>2022-02-21T15:05:00+08:00</TimeStamp>\\n <domain>example2.com</domain>\\n <Connections>194044</Connections>\\n</ConnectionDataPerInterval>\\n</DescribeDcdnDomainIpaConnDataResponse>","errorExample":""}]', - 'title' => '查询IPA用户连接数', - 'description' => '> '."\n" - .'> - 单用户调用频率:10次/秒。'."\n" - .'> - 不指定**StartTime**和**EndTime**,默认返回过去24小时的数据;指定**StartTime**和**EndTime**,该接口返回指定时间段的数据。'."\n" - .'> - 数据最小查询粒度为5分钟;单次查询的最大时间跨度为31天;可查询历史数据时间范围最大为366天;数据延迟一般不超过10分钟。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8143fA8A-B2B2-4915-538D-546B538D25FA\\",\\n \\"Description\\": \\"OK\\",\\n \\"Len\\": 2,\\n \\"PageNumber\\": 10,\\n \\"PageSize\\": 2,\\n \\"TotalCount\\": 5738,\\n \\"Rows\\": [\\n {\\n \\"Domain\\": \\"example.aliyundoc.com\\",\\n \\"TmStr\\": \\"2021-01-31T15:04:04Z\\",\\n \\"Drops\\": 264,\\n \\"Object\\": \\"Normal mode rule\\",\\n \\"SecFunc\\": \\"robot\\",\\n \\"RuleName\\": \\"normal_mode_rule\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnUserSecDropByMinuteResponse>\\n<TotalCount>5738</TotalCount>\\n<PageSize>2</PageSize>\\n<PageNumber>10</PageNumber>\\n<Len>2</Len>\\n<Rows>\\n <RuleName>正常模式规则</RuleName>\\n <Object>正常模式规则</Object>\\n <SecFunc>robot</SecFunc>\\n <TmStr>2021-01-31T15:04:04Z</TmStr>\\n <Domain>example.com</Domain>\\n <Drops>164</Drops>\\n</Rows>\\n<Rows>\\n <RuleName>正常模式规则</RuleName>\\n <Object>正常模式规则</Object>\\n <SecFunc>robot</SecFunc>\\n <TmStr>2021-01-31T15:04:04Z</TmStr>\\n <Domain>example.com</Domain>\\n <Drops>264</Drops>\\n</Rows>\\n</DescribeDcdnUserSecDropByMinuteResponse>","errorExample":""}]', + 'title' => '查询边缘应用层安全报文拦截总数', + 'description' => '> 单用户调用频率:50次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnIpaDomainCidr' => [ - 'summary' => '调用DescribeDcdnIpaDomainCidr查询IPA加速域名的回源节点IP段。'."\n" - .'此API需要申请访问权限,如需使用请提交工单。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2022-12-07T03:31:11.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserSecDropByMinute'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserSecDropByMinute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + ], + ], + 'DescribeDcdnUserTags' => [ + 'summary' => '调用DescribeDcdnUserTags查询用户标签。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn2JMMUY', - ], - ], - 'parameters' => [ - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'title' => 'A short description of struct', - 'description' => '您的加速域名,仅支持单个域名设置。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], + 'abilityTreeCode' => '111565', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], - 'Cidr' => [ - 'description' => '查询域名对应的回源IP段列表,以CIDR形式表示,包含IPv4与IPv6。', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB'], + 'Tags' => [ + 'description' => '标签。', 'type' => 'array', 'items' => [ - 'description' => '具体IP段信息。', - 'type' => 'string', - 'example' => '1.1.1.0/24', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签键。', 'type' => 'string', 'example' => 'region'], + 'Value' => [ + 'type' => 'array', + 'items' => ['description' => '标签值。', 'type' => 'string', 'example' => 'hangzhou'], + ], + ], ], - 'example' => '["1.1.1.0/24","2.2.2.0/24","1111:2222:3333:4444:5555:0:0:0/80"]', ], ], ], ], ], - 'errorCodes' => [ - 404 => [ - [ - 'errorCode' => 'InvalidDomain.NotFound', - 'errorMessage' => 'The domain does not exist, or it does not belong to you.', - ], + 'title' => '查询用户标签', + 'description' => '> 单用户调用频率:100次/秒。 ', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-03-02T08:35:57.000Z', 'description' => '响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserTags'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserTags', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\",\\n \\"Cidr\\": [\\n \\"1.1.1.0/24\\"\\n ]\\n}","type":"json"}]', - 'title' => '查询IPA加速域名的回源节点IP段', - 'description' => '> 全局调用频率限制:50次/秒;单用户调用频率限制:10次/秒', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"region\\",\\n \\"Value\\": [\\n \\"hangzhou\\"\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnUserTagsResponse>\\n<Tags>\\n <Key>env</Key>\\n <Value>product</Value>\\n <Value>pre</Value>\\n <Value>daily</Value>\\n</Tags>\\n<Tags>\\n <Key>region</Key>\\n <Value>hangzhou</Value>\\n</Tags>\\n<RequestId>34AB41F1-04A5-496F-8C8D-634BDBE6A9FB</RequestId>\\n</DescribeDcdnUserTagsResponse>","errorExample":""}]', ], - 'CreateRoutine' => [ - 'summary' => '调用CreateRoutine创建一个边缘函数(Routine)。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnUserVipsByDomain' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111452', - 'abilityTreeNodes' => [ - 'FEATUREdcdn75UYDO', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Name', - 'in' => 'formData', + 'name' => 'DomainName', + 'in' => 'query', 'schema' => [ - 'description' => 'Routine函数名, 同一个账号下命名唯一。', + 'description' => '域名,只支持单个域名。', 'type' => 'string', 'required' => true, - 'example' => 'test', + 'enumValueTitles' => ['example.com' => 'example.com'], + 'example' => 'example.com'."\n", ], ], [ - 'name' => 'Description', - 'in' => 'formData', + 'name' => 'Available', + 'in' => 'query', 'schema' => [ - 'description' => 'Routine描述。', + 'description' => '是否查询健康VIP。取值:'."\n" + ."\n" + .'- **on**:健康VIP。'."\n" + ."\n" + .'- **off**:全部VIP。', 'type' => 'string', 'required' => false, - 'example' => 'the description of this routine', - ], - ], - [ - 'name' => 'EnvConf', - 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => 'Env环境配置。', - 'type' => 'object', - 'required' => false, - 'example' => '{"staging":{"SpecName":"50ms"},"production":{"SpecName":"50ms"}}', + 'example' => 'on', + 'enum' => ['on', 'off'], ], ], ], @@ -20989,15 +17130,18 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => '返回“"Status": "OK"”。', + 'DomainName' => ['description' => '域名。', 'type' => 'string', 'example' => 'example.com'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '820E7900-5CA9-4AEF-B0DD-20ED5F64BE55'], + 'Vips' => [ 'type' => 'object', - 'example' => '{"Status": "OK"}', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'itemNode' => true, + 'properties' => [ + 'Vip' => [ + 'description' => 'VIP地址列表。', + 'type' => 'array', + 'items' => ['description' => 'VIP列表。', 'type' => 'string', 'example' => '122.72.xxx.xxx'], + ], + ], ], ], ], @@ -21005,64 +17149,57 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', - ], + ['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' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"Status\\": \\"OK\\"\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateRoutineResponse>\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\n<Content>\\n <Status>OK</Status>\\n</Content>\\n</CreateRoutineResponse>","errorExample":""}]', - 'title' => '创建边缘函数', - 'description' => '> - 入参必须符合EnvConf的各项值规范。函数的描述,长度不允许超过50个字符。'."\n" - .'> - 该接口仅能指定Production和Staging环境。'."\n" - .'> - API调用频率:100次/秒。', - 'requestParamsDescription' => '### EnvConf参数格式'."\n" - .'```'."\n" - .'"EnvConf": { // 每个环境的配置。'."\n" - .' "staging": { //模拟环境的配置。'."\n" - .' "SpecName": "50ms"// 规格名字,从DescribeRoutineSpec接口查询有哪些规格可选,例如5ms、50ms、100ms。'."\n" - .' }'."\n" - .' "production": { //生产环境的配置。'."\n" - .' "SpecName": "50ms"'."\n" - .' }'."\n" - .'}'."\n" - .'```', - ], - 'DeleteRoutine' => [ - 'summary' => '调用DeleteRoutine删除边缘函数(EdgeRoutine)的函数(Routine)配置。', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询节点IP列表-L1', + 'summary' => '调用DescribeDcdnUserVipsByDomain查询域名的IP列表。', + 'description' => '> 单用户调用频率:30次/秒。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserVipsByDomain'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserVipsByDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"RequestId\\": \\"820E7900-5CA9-4AEF-B0DD-20ED5F64BE55\\",\\n \\"Vips\\": {\\n \\"Vip\\": [\\n \\"122.72.xxx.xxx\\"\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribeDcdnVerifyContent' => [ + 'summary' => '调用DescribeDcdnVerifyContent获取域名的归属校验内容。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111467', - 'abilityTreeNodes' => [ - 'FEATUREdcdn75UYDO', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Name', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Routine函数名, 同一个账号下命名唯一。', - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '待获取归属校验内容的域名,只支持传入单个域名。', 'type' => 'string', 'required' => true, 'example' => '**example**.com'], ], ], 'responses' => [ @@ -21070,162 +17207,116 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => '返回“"Status": "OK"”。', - 'type' => 'object', - 'example' => '{"Status": "OK"}', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], + 'Content' => ['description' => '校验内容。', 'type' => 'string', 'example' => 'verify_dffeb6610035dcb78b413a59c31cd9**'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"Status\\": \\"OK\\"\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteRoutineResponse>\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\n<Content>\\n <Status>OK</Status>\\n</Content>\\n</DeleteRoutineResponse>","errorExample":""}]', - 'title' => '删除边缘函数的函数配置', - 'description' => '> API调用频率:100次/秒。', + 'title' => '获取归属校验内容', + 'description' => '> 单用户调用频率:100次/秒。 ', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteRoutineCodeRevision' => [ - 'summary' => '调用DeleteRoutineCodeRevision删除边缘函数指定版本的代码。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2022-12-14T02:23:19.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnVerifyContent'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnVerifyContent', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": \\"verify_dffeb6610035dcb78b413a59c31cd9**\\",\\n \\"RequestId\\": \\"34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnVerifyContentResponse>\\n<Content>verify_dffeb6610035dcb78b413a59c31cd91f</Content>\\n<RequestId>34AB41F1-04A5-496F-8C8D-634BDBE6A9FB</RequestId>\\n</DescribeDcdnVerifyContentResponse>","errorExample":""}]', + ], + 'DescribeDcdnWafBotAppKey' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111468', - 'abilityTreeNodes' => [ - 'FEATUREdcdn75UYDO', - ], - ], - 'parameters' => [ - [ - 'name' => 'Name', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Routine函数名, 同一个账号下命名唯一。', - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], - ], - [ - 'name' => 'SelectCodeRevision', - 'in' => 'formData', - 'schema' => [ - 'description' => '需要删除的代码版本号。', - 'type' => 'string', - 'required' => true, - 'example' => '123456', - ], - ], + 'abilityTreeCode' => '152891', + 'abilityTreeNodes' => ['FEATUREdcdnV3YEJ8'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => '返回“"Status": "OK"”。', - 'type' => 'object', - 'example' => '{"Status": "OK"}', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'F2542B96-B535-5BF9-8EEE-1CF11B20CCA8'], + 'AppKey' => ['description' => '阿里云账号对应的SDK认证密钥。', 'type' => 'string', 'example' => 'examp1eapp_key_xxxiuMWTX4Gw'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', + 'title' => '查询阿里云账号对应的SDK认证密钥', + 'summary' => '调用DescribeDcdnWafBotAppKey查询阿里云账号对应的SDK认证密钥。该密钥用于发起SDK初始化请求,需要在集成代码中使用。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafBotAppKey'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafBotAppKey', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"Status\\": \\"OK\\"\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteRoutineCodeRevisionResponse>\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\n<Content>\\n <Status>OK</Status>\\n</Content>\\n</DeleteRoutineCodeRevisionResponse>","errorExample":""}]', - 'title' => '删除边缘函数代码', - 'description' => '> API调用频率:100次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F2542B96-B535-5BF9-8EEE-1CF11B20CCA8\\",\\n \\"AppKey\\": \\"examp1eapp_key_xxxiuMWTX4Gw\\"\\n}","type":"json"}]', ], - 'DeleteRoutineConfEnvs' => [ - 'summary' => '调用DeleteRoutineConfEnvs删除边缘函数Env列表中的自定义灰度环境。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnWafDefaultRules' => [ + 'summary' => '调用DescribeDcdnWafDefaultRules查询WAF规则默认配置。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111469', - 'abilityTreeNodes' => [ - 'FEATUREdcdn75UYDO', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Name', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Routine函数名, 同一个账号下命名唯一。', - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], - ], - [ - 'name' => 'Envs', - 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => '需要删除的Env列表中的自定义灰度环境。', - 'type' => 'object', - 'required' => true, - 'example' => '["presetCanaryZheJiang"]', - ], + 'name' => 'QueryArgs', + 'in' => 'query', + 'schema' => ['description' => '查询条件,JSON序列化后的字符串。'."\n" + .'格式如下:` QueryArgs={"DefenseScene":"anti_scan"}`', 'type' => 'string', 'required' => false, 'example' => '{"DefenseScene":"anti_scan"}'], ], ], 'responses' => [ @@ -21233,46 +17324,77 @@ 'schema' => [ 'type' => 'object', 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '15C66C7B-671A-4297-9187-2C4477247A123425345'], 'Content' => [ - 'description' => '返回“"Status": "OK"”。', - 'type' => 'object', - 'example' => '{"Status": "OK"}', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'description' => '规则结构体。', + 'type' => 'array', + 'items' => [ + 'description' => '规则结构体。', + 'type' => 'object', + 'properties' => [ + 'DefenseScene' => ['description' => '防护场景,取值如下:'."\n" + .'- **waf_group**:Web基础防护。'."\n" + .'- **anti_scan**:扫描防护。', 'type' => 'string', 'example' => 'anti_scan'], + 'Rules' => [ + 'description' => '规则结构体。', + 'type' => 'array', + 'items' => [ + 'description' => '规则结构体。', + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => '规则类型。取值如下:'."\n" + ."\n" + .'- **waf_group**:Web基础防护。'."\n" + .'- **high_frequency**:高频扫描封禁。'."\n" + .'- **directory_traversal**:目录遍历封禁。'."\n" + .'- **scan_tools**:扫描工具封禁。', 'type' => 'string', 'example' => 'waf_group'], + 'Name' => ['description' => '规则默认名称。', 'type' => 'string', 'example' => 'Default_WafGroup_Rule'], + 'Status' => ['description' => '规则默认状态,取值如下:'."\n" + ."\n" + .'- **on**:开启规则。'."\n" + .'- **off**:关闭规则。', 'type' => 'string', 'example' => 'on'], + 'Config' => ['description' => '规则默认配置。', 'type' => 'string', 'example' => '{"wafGroupIds":"1012"}'], + 'Action' => ['description' => '规则默认动作。取值如下:'."\n" + .'- **monitor**:观察。'."\n" + .'- **deny**:拦截。'."\n" + .'- **block**:阻断。', 'type' => 'string', 'example' => 'block'], + ], + ], + ], + ], + ], ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询WAF规则默认配置', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafDefaultRules'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafDefaultRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"Status\\": \\"OK\\"\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteRoutineConfEnvsResponse>\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\n<Content>\\n <Status>OK</Status>\\n</Content>\\n</DeleteRoutineConfEnvsResponse>","errorExample":""}]', - 'title' => '删除边缘函数代码的灰度环境', - 'description' => '> - 仅允许删除自定义增加的Preset Canary。Production和Staging环境不允许删除。'."\n" - .'> - API调用频率:100次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A123425345\\",\\n \\"Content\\": [\\n {\\n \\"DefenseScene\\": \\"anti_scan\\",\\n \\"Rules\\": [\\n {\\n \\"Type\\": \\"waf_group\\",\\n \\"Name\\": \\"Default_WafGroup_Rule\\",\\n \\"Status\\": \\"on\\",\\n \\"Config\\": \\"{\\\\\\"wafGroupIds\\\\\\":\\\\\\"1012\\\\\\"}\\",\\n \\"Action\\": \\"block\\"\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]', ], - 'DescribeRoutine' => [ - 'summary' => '调用DescribeRoutine获取某个边缘函数ER(EdgeRoutine)的元信息,包括每个环境的ER配置、配置版本、代码版本等信息。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnWafDomain' => [ + 'summary' => '调用DescribeDcdnWafDomain查询WAF全量域名列表和开通WAF功能的加速域名的相关信息(包括加速域名ACL状态、CC状态、创建状态和WAF开通状态等)。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -21283,79 +17405,110 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Name', - 'in' => 'formData', + 'name' => 'RegionId', + 'in' => 'query', 'schema' => [ - 'description' => '边缘函数名, 同一个账号下命名唯一。', + 'description' => 'WAF管控区域。', 'type' => 'string', 'required' => true, - 'example' => 'test', + 'example' => 'cn-hangzhou', + 'enum' => ['cn-hangzhou', 'ap-southeast-1'], ], ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '加速域名。若参数为空,则返回所有加速域名。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => '资源组。若参数为空,代表默认资源组。', 'type' => 'string', 'required' => false, 'example' => '/'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => '包含EdgeRoutine的各项信息。具体字段说明请参见下表。', - 'type' => 'object', - 'example' => 'CodeRevs、EnvConf、Description、Envs和CreationTime', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4DBA68F5-04A9-406B-B1E4-F2CB635E103F', + 'TotalCount' => ['description' => '加速域名数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CB1A380B-09F0-41BB-802B-72F8FD6DA2FE'], + 'OutPutDomains' => [ + 'description' => '加速域名信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AclStatus' => ['description' => 'ACL状态。'."\n" + ."\n" + .'- 0:关闭。'."\n" + .'- 1:开通。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Status' => ['description' => '域名创建状态:'."\n" + ."\n" + .'- 1:域名创建成功/域名有效。'."\n" + .'- 10:域名创建中。'."\n" + .'- 11:域名创建失败。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Domain' => ['description' => '开通了WAF的加速域名。', 'type' => 'string', 'example' => 'example.com'], + 'CcStatus' => ['description' => 'CC状态。'."\n" + ."\n" + .'- 0:关闭。'."\n" + .'- 1:开通。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'WafStatus' => ['description' => 'WAF状态。'."\n" + ."\n" + .'- 0:关闭。'."\n" + .'- 1:开通。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + ], + 'description' => '', + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ['errorCode' => 'InvalidDomainName', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => '参数DomainName不合法,请根据请求参数规定重新输入。'], + ], + 404 => [ + ['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'The specified domain does not exist.', 'description' => '该域名不存在。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"4DBA68F5-04A9-406B-B1E4-F2CB635E103F\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeRoutineResponse>\\n <RequestId>4DBA68F5-04A9-406B-B1E4-F2CB635E103F</RequestId>\\n <Content>\\n <CodeRevs>\\n <CodeDescription>IkhlbGxvIFdvcmxkIg==</CodeDescription>\\n <CreationTime>2021-05-31T13:20:14Z</CreationTime>\\n <CodeRevision>1622467214654495147</CodeRevision>\\n </CodeRevs>\\n <CodeRevs>\\n <CodeDescription>IkhlbGxvIFdvcmxkIg==</CodeDescription>\\n <CreationTime>2021-05-31T13:20:36Z</CreationTime>\\n <CodeRevision>1622467236337778954</CodeRevision>\\n </CodeRevs>\\n <CodeRevs>\\n <CodeDescription>IkhlbGxvIFdvcmxkIEZyb20gU3RhZ2luZyBFbnYi</CodeDescription>\\n <CreationTime/>\\n <CodeRevision>unstable</CodeRevision>\\n </CodeRevs>\\n <CodeRevs>\\n <CodeDescription>SGVsbG8gV29ybGQgRnJvbSBDb21taXQ=</CodeDescription>\\n <CreationTime>2021-05-31T13:25:44Z</CreationTime>\\n <CodeRevision>1622467544804919489</CodeRevision>\\n </CodeRevs>\\n <EnvConf>\\n <presetCanaryZhejiang>\\n <SpecName>100ms</SpecName>\\n <CodeRev>1622467236337778954</CodeRev>\\n <AllowedHosts>test-e.alicdn.com</AllowedHosts>\\n <AllowedHosts>test-f.alicdn.com</AllowedHosts>\\n </presetCanaryZhejiang>\\n <staging>\\n <SpecName>50ms</SpecName>\\n <CodeRev/>\\n <AllowedHosts>test-a.alicdn.com</AllowedHosts>\\n <AllowedHosts>test-b.alicdn.com</AllowedHosts>\\n </staging>\\n <presetCanaryBeijing>\\n <SpecName>5ms</SpecName>\\n <CodeRev>1622467236337778954</CodeRev>\\n <AllowedHosts>test-g.alicdn.com</AllowedHosts>\\n <AllowedHosts>test-h.alicdn.com</AllowedHosts>\\n </presetCanaryBeijing>\\n <production>\\n <SpecName>50ms</SpecName>\\n <CodeRev>1622467236337778954</CodeRev>\\n <AllowedHosts>test-c.alicdn.com</AllowedHosts>\\n <AllowedHosts>test-d.alicdn.com</AllowedHosts>\\n </production>\\n </EnvConf>\\n <Description>InRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIHJvdXRpbmUi</Description>\\n <Envs>production</Envs>\\n <Envs>staging</Envs>\\n <Envs>presetCanaryZhejiang</Envs>\\n <Envs>presetCanaryBeijing</Envs>\\n <CreationTime>2021-05-31T13:14:23.132925407Z</CreationTime>\\n </Content>\\n</DescribeRoutineResponse>","errorExample":""}]', - 'title' => '获取某个边缘函数ER的元信息', - 'description' => '> API调用频率:100次/秒。', + 'title' => '查询WAF全量域名列表', + 'description' => '该API适用于旧版WAF防护。'."\n" + .'> 单用户调用频率:150次/秒。', 'requestParamsDescription' => ' ', - 'responseParamsDescription' => '### Content字段参数说明'."\n" - .'| 名称 | 类型 | 示例值 | 描述 |'."\n" - .'| ----------------- | ------ | -------------------------------------------- | ------------------------------------------------------------ |'."\n" - .'| CreationTime | String | 2021-05-31T13:20:14Z | Routine的创建时间。 |'."\n" - .'| Description | String | InRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIHJvdXRpbmUi | Routine的描述信息,以base64编码存储。 |'."\n" - .'| Envs | JSON | production | Routine的所有灰度环境集合。 |'."\n" - .'| EnvConf | JSON | | Routine的所有灰度环境信息,包含每个灰度环境的CPU规格(SpecName),代码版本号(CodeRev)和允许关联的DCDN域名(AllowedHosts)。 |'."\n" - .'| ㄴSpecName | String | 100ms | CPU规格时间片。 |'."\n" - .'| ㄴCodeRev | String | 1622467214654495147 | 代码版本号。 |'."\n" - .'| ㄴAllowedHosts | String | test-e.alicdn.com | 允许关联的DCDN域名。 |'."\n" - .'| CodeRevs | JSON | | Routine的所有代码版本,包含每个版本的描述信息(CodeDescription),创建时间(CreationTime)和版本号(CodeRevision)。 |'."\n" - .'| ㄴCreationTime | String | 2021-05-31T13:20:14Z | 代码创建时间。 |'."\n" - .'| ㄴCodeDescription | String | IkhlbGxvIFdvcmxkIg== | 代码版本描述,以base64编码存储。 |'."\n" - .'| ㄴCodeRevision | String | 1622467236337778954 | 代码版本号。 |', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeRoutineCanaryEnvs' => [ - 'summary' => '调用DescribeRoutineCanaryEnvs获取边缘函数ER支持的Canary环境列表。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafDomain'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-802B-72F8FD6DA2FE\\",\\n \\"OutPutDomains\\": [\\n {\\n \\"AclStatus\\": 1,\\n \\"Status\\": 1,\\n \\"Domain\\": \\"example.com\\",\\n \\"CcStatus\\": 1,\\n \\"WafStatus\\": 1\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<TotalCount>1</TotalCount>\\n<OutputDomains>\\n <AclStatus>1</AclStatus>\\n <CcStatus>1</CcStatus>\\n <Domain>example.com</Domain>\\n <Status>1</Status>\\n <WafStatus>1</WafStatus>\\n</OutputDomains>\\n<RequestId>CB1A380B-09F0-41BB-802B-72F8FD6DA2FE</RequestId>","errorExample":""}]', + ], + 'DescribeDcdnWafDomainDetail' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -21366,25 +17519,45 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], + ], + 'parameters' => [ + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '加速域名,精准匹配,仅支持查询单个域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => '目前支持的Canary环境列表。', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'BEA5625F-8FCF-48F4-851B-CA63946DA630'], + 'Domain' => [ + 'description' => '加速域名。', 'type' => 'object', - 'example' => 'presetCanaryShanghai', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CDCD94C0-F7FE-412F-B8F8-7E3C610C78E5', + 'properties' => [ + 'DomainName' => ['description' => '加速域名。', 'type' => 'string', 'example' => 'example.com'], + 'DefenseScenes' => [ + 'description' => '防护策略类型。'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DefenseScene' => ['description' => '防护策略类型,目前支持以下场景:'."\n" + ."\n" + .'- waf_group:Web基础防护。'."\n" + ."\n" + .'- custom_acl:自定义防护策略。'."\n" + ."\n" + .'- whitelist:白名单。', 'type' => 'string', 'example' => 'waf_group'], + 'PolicyId' => ['description' => '防护策略ID,如果有多个ID,只显示一个。', 'type' => 'integer', 'format' => 'int64', 'example' => '10000002'], + 'PolicyIds' => ['description' => '防护策略ID,多个ID用半角逗号(,)分隔。', 'type' => 'string', 'example' => '10000001,10000004'], + ], + ], + ], + ], ], ], ], @@ -21392,29 +17565,37 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"CDCD94C0-F7FE-412F-B8F8-7E3C610C78E5\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeRoutineCanaryEnvsResponse>\\n <RequestId>CDCD94C0-F7FE-412F-B8F8-7E3C610C78E5</RequestId>\\n <Content>\\n <CanaryEnvs>presetCanaryGuangdong</CanaryEnvs>\\n <CanaryEnvs>presetCanarySichuan</CanaryEnvs>\\n <CanaryEnvs>presetCanaryOverseas</CanaryEnvs>\\n <CanaryEnvs>presetCanaryBeijing</CanaryEnvs>\\n <CanaryEnvs>presetCanaryNeimenggu</CanaryEnvs>\\n <CanaryEnvs>presetCanaryHunan</CanaryEnvs>\\n <CanaryEnvs>presetCanaryHainan</CanaryEnvs>\\n <CanaryEnvs>presetCanaryGuizhou</CanaryEnvs>\\n <CanaryEnvs>presetCanaryLiaoning</CanaryEnvs>\\n <CanaryEnvs>presetCanaryZhejiang</CanaryEnvs>\\n <CanaryEnvs>presetCanaryHubei</CanaryEnvs>\\n <CanaryEnvs>presetCanaryMacau</CanaryEnvs>\\n <CanaryEnvs>presetCanaryShanghai</CanaryEnvs>\\n <CanaryEnvs>presetCanaryAnhui</CanaryEnvs>\\n <CanaryEnvs>presetCanaryTaiwan</CanaryEnvs>\\n <CanaryEnvs>presetCanaryShandong</CanaryEnvs>\\n <CanaryEnvs>presetCanaryNingxia</CanaryEnvs>\\n <CanaryEnvs>presetCanaryChongqing</CanaryEnvs>\\n <CanaryEnvs>presetCanaryJilin</CanaryEnvs>\\n <CanaryEnvs>presetCanaryJiangsu</CanaryEnvs>\\n <CanaryEnvs>presetCanaryYunnan</CanaryEnvs>\\n <CanaryEnvs>presetCanaryHong-Kong</CanaryEnvs>\\n <CanaryEnvs>presetCanaryHebei</CanaryEnvs>\\n <CanaryEnvs>presetCanaryShanxi</CanaryEnvs>\\n <CanaryEnvs>presetCanaryJiangxi</CanaryEnvs>\\n <CanaryEnvs>presetCanaryHeilongjiang</CanaryEnvs>\\n <CanaryEnvs>presetCanaryXizang</CanaryEnvs>\\n <CanaryEnvs>presetCanaryGuangxi</CanaryEnvs>\\n <CanaryEnvs>presetCanaryShaanxi</CanaryEnvs>\\n <CanaryEnvs>presetCanaryGansu</CanaryEnvs>\\n <CanaryEnvs>presetCanaryQinghai</CanaryEnvs>\\n <CanaryEnvs>presetCanaryXinjiang</CanaryEnvs>\\n <CanaryEnvs>presetCanaryTianjin</CanaryEnvs>\\n <CanaryEnvs>presetCanaryFujian</CanaryEnvs>\\n <CanaryEnvs>presetCanaryHenan</CanaryEnvs>\\n </Content>\\n</DescribeRoutineCanaryEnvsResponse>","errorExample":""}]', - 'title' => '获取边缘函数ER支持的Canary环境列表', - 'description' => '> API调用频率:100次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeRoutineCodeRevision' => [ - 'summary' => '调用DescribeRoutineCodeRevision获取边缘函数ER的某个版本的JS代码。', - 'methods' => [ - 'get', - 'post', + 'title' => '按域名精准查询防护策略', + 'summary' => '调用DescribeDcdnWafDomainDetail获取指定域名的防护策略信息。', + 'description' => '> 单用户调用频率:20次/秒。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafDomainDetail'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafDomainDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'WafDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BEA5625F-8FCF-48F4-851B-CA63946DA630\\",\\n \\"Domain\\": {\\n \\"DomainName\\": \\"example.com\\",\\n \\"DefenseScenes\\": [\\n {\\n \\"DefenseScene\\": \\"waf_group\\",\\n \\"PolicyId\\": 10000002,\\n \\"PolicyIds\\": \\"10000001,10000004\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafDomainDetailResponse>\\n <RequestId>BEA5625F-8FCF-48F4-851B-CA63946DA630</RequestId>\\n <Domain>\\n <DomainName>example.com</DomainName>\\n <DefenseScenes>\\n <DefenseScene>waf_group</DefenseScene>\\n <PolicyId>10000002</PolicyId>\\n <PolicyIds>10000002,10000003</PolicyIds>\\n </DefenseScenes>\\n <DefenseScenes>\\n <DefenseScene>custom_acl</DefenseScene>\\n <PolicyId>10000001</PolicyId>\\n <PolicyIds>10000001,10000004</PolicyIds>\\n </DefenseScenes>\\n </Domain>\\n</DescribeDcdnWafDomainDetailResponse>","errorExample":""}]', + ], + 'DescribeDcdnWafDomains' => [ + 'summary' => '调用DescribeDcdnWafDomains获取接入WAF防护的加速域名,支持模糊搜索。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -21425,30 +17606,27 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '133321', + 'abilityTreeNodes' => ['FEATUREdcdnSU2QP6'], ], 'parameters' => [ [ - 'name' => 'Name', - 'in' => 'formData', - 'schema' => [ - 'description' => '边缘函数名, 同一个账号下命名唯一。', - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], + 'name' => 'QueryArgs', + 'in' => 'query', + 'schema' => ['description' => '设置查询条件,支持域名模糊匹配过滤。'."\n" + .'```QueryArgs={"DomainNameLike":"加速域名"}```', 'type' => 'string', 'required' => false, 'example' => '{"DomainNameLike":"example.com"}'], ], [ - 'name' => 'SelectCodeRevision', - 'in' => 'formData', - 'schema' => [ - 'description' => '需要查看的JS代码版本号。', - 'type' => 'string', - 'required' => true, - 'example' => '1611151912787121550', - ], + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '页码。取值范围为:**1**~**100000**。'."\n" + ."\n" + .'默认值为**1**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页显示的域名个数,默认值**20**,取值范围:**1**~**500**之间的任意整数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'example' => '20', 'default' => '20'], ], ], 'responses' => [ @@ -21456,104 +17634,64 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => '边缘函数的JS代码。', - 'type' => 'object', - 'example' => 'CreationTime和ErCode', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'D24F0C48-1B27-4C58-8B84-1A0C001A514E', + 'PageSize' => ['description' => '每页显示的域名个数,同请求参数的PageSize。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '153ca2cd-3c01-44be-b408-64dbc6c88630'], + 'PageNumber' => ['description' => '页码,同请求参数的PageNumber。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TotalCount' => ['description' => '防护域名总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '15'], + 'Domains' => [ + 'description' => '防护域名。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'PolicyCount' => ['description' => '该防护域名配置的防护策略个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], + 'ClientIpTag' => ['description' => '获取建连IP的Header。', 'type' => 'string', 'example' => 'X-Forwarded-For'], + 'DomainName' => ['description' => '防护域名名称。', 'type' => 'string', 'example' => 'example.com'], + ], + 'description' => '', + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"D24F0C48-1B27-4C58-8B84-1A0C001A514E\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeRoutineCodeRevisionResponse>\\n<RequestId>D24F0C48-1B27-4C58-8B84-1A0C001A514E</RequestId>\\n<Content>\\n <CreationTime>2021-05-31T13:20:36Z</CreationTime>\\n <ErCode>LyoqCiAqIEFkZCB0aGUgbmVjZXNzYXJ5IGV2ZW50IGxpc3RlbmVyCiAqIEBwYXJhbSB7RXZlbnR9IGZldGNoIGV2ZW50LCB7RnVuY3Rpb259IGFzeW5jIGZ1bmN0aW9uCiAqLwphZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIGV2ZW50ID0+IHsKICBldmVudC5yZXNwb25kV2l0aChoYW5kbGVSZXF1ZXN0KGV2ZW50LnJlcXVlc3QpKTsKfSkKCi8qKgogKiBNYWtlIGEgcmVzcG9uc2UgdG8gY2xpZW50CiAqIEBwYXJhbSB7UmVxdWVzdH0gcmVxdWVzdAogKi8KYXN5bmMgZnVuY3Rpb24gaGFuZGxlUmVxdWVzdChyZXF1ZXN0KSB7CiAgcmV0dXJuIG5ldyBSZXNwb25zZSgnSGVsbG8gV29ybGQhJywgeyBzdGF0dXM6IDIwMCB9KTsKfQo=</ErCode>\\n</Content>\\n</DescribeRoutineCodeRevisionResponse>","errorExample":""}]', - 'title' => '获取边缘函数ER的JS代码', - 'description' => '> API调用频率:100次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeRoutineSpec' => [ - 'summary' => '调用DescribeRoutineSpec获取边缘函数可供选择的函数规格(内测阶段有3个CPU时间片规格:5ms、50ms、100ms)。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 20,\\n \\"RequestId\\": \\"153ca2cd-3c01-44be-b408-64dbc6c88630\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 15,\\n \\"Domains\\": [\\n {\\n \\"PolicyCount\\": 3,\\n \\"ClientIpTag\\": \\"X-Forwarded-For\\",\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafDomainsResponse>\\n <RequestId>153ca2cd-3c01-44be-b408-64dbc6c88630</RequestId>\\n <TotalCount>15</TotalCount>\\n <Domains>\\n <DomainName>example.com</DomainName>\\n <PolicyCount>3</PolicyCount>\\n <ClientIpTag/>\\n </Domains>\\n <Domains>\\n <DomainName>example2.com</DomainName>\\n <policyCount>3</policyCount>\\n <ClientIpTag>X-Forwarded-For</ClientIpTag>\\n </Domains>\\n <PageNumber>1</PageNumber>\\n <PageSize>20</PageSize>\\n</DescribeDcdnWafDomainsResponse>","errorExample":""}]', + 'title' => '获取接入WAF防护的加速域名', + 'description' => '该API适用于新版WAF防护。'."\n" + .'> 单用户调用频率:20次/秒。', + 'changeSet' => [ + ['createdAt' => '2024-11-28T01:42:50.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2022-12-14T06:38:35.000Z', 'description' => '错误码发生变更'], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafDomains'], ], ], - 'parameters' => [], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Content' => [ - 'description' => '时间片规格。取值:5ms、50ms和100ms。', - 'type' => 'object', - 'example' => '5ms、50ms、100ms', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'AE4E1B80-D5F3-47DB-824A-DA98A21854C8', - ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafDomains', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"AE4E1B80-D5F3-47DB-824A-DA98A21854C8\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeRoutineSpecResponse>\\n<RequestId>AE4E1B80-D5F3-47DB-824A-DA98A21854C8</RequestId>\\n<Content>\\n <Specs>5ms</Specs>\\n <Specs>50ms</Specs>\\n <Specs>100ms</Specs>\\n</Content>\\n</DescribeRoutineSpecResponse>","errorExample":""}]', - 'title' => '获取边缘函数ER可供选择的函数规格', - 'description' => '> API调用频率:100次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'DescribeRoutineUserInfo' => [ - 'summary' => '调用DescribeRoutineUserInfo获取阿里云账号绑定的相关信息(绑定的subdomain,以及创建的routine列表)。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnWafFilterInfo' => [ + 'summary' => '调用DescribeDcdnWafFilterInfo查询自定义防护规则中匹配条件的匹配字段、逻辑符和匹配内容等信息。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -21564,68 +17702,138 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + ], + 'parameters' => [ + [ + 'name' => 'DefenseScenes', + 'in' => 'query', + 'schema' => ['description' => '防护策略类型列表,多个用逗号(,)分隔。目前支持以下场景:'."\n" + .'- waf_group:Web基础防护'."\n" + ."\n" + .'- custom_acl:自定义防护策略'."\n" + ."\n" + .'- whitelist:白名单'."\n" + ."\n" + .'>不传时,代表返回全部信息。', 'type' => 'string', 'required' => false, 'example' => 'custom_acl'], + ], + [ + 'name' => 'Language', + 'in' => 'query', + 'schema' => ['description' => '设置返回信息语言。取值范围:'."\n" + ."\n" + .'- en(默认):英文'."\n" + ."\n" + .'- cn:简体中文'."\n", 'type' => 'string', 'required' => true, 'example' => 'cn'], ], ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '153ca2cd-3c01-44be-204c-64dbc6c88630'], 'Content' => [ - 'description' => '接口返回的内容。', - 'type' => 'object', - 'example' => '绑定的Subdomain和Routine列表', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '691DEEE5-4BDB-47F3-930E-F57176427717', + 'description' => '查询到的信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DefenseScene' => ['description' => '防护策略类型,同请求参数的DefenseScene。', 'type' => 'string', 'example' => 'custom_acl'], + 'Fields' => [ + 'description' => '匹配条件信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ExtendField' => ['description' => '匹配字段的扩展tip,无此字段或此字段为空表示无扩展字段。', 'type' => 'string', 'example' => 'Custom header'], + 'MatchField' => ['description' => '匹配字段。', 'type' => 'string', 'example' => 'Header'], + 'LogicalSymbol' => [ + 'description' => '逻辑符。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => '可输入的匹配内容个数,取值:'."\n" + ."\n" + .'- multi:可输入多个匹配内容。'."\n" + ."\n" + .'- single:仅可输入单个匹配内容。'."\n" + ."\n" + .'- none:不能输入。', 'type' => 'string', 'example' => 'multi'], + 'Symbol' => ['description' => '代码内部传给后端逻辑符。', 'type' => 'string', 'example' => 'match-one'], + 'Tip' => ['description' => '匹配内容中显示的提示信息。', 'type' => 'string', 'example' => 'You can enter multiple values, up to 50. Press Enter to confirm.'], + 'Attributes' => ['description' => '可设置的属性,位域变量,具体内容见下表<br>例:1(0000 0001)表示可开启大小写敏感,不可开启流式匹配;3(0000 0011)表示可开启大小写敏感,也可开启流式匹配'."\n" + ."\n" + .'- 位(低位到高位)- 描述'."\n" + .'- 1 - 大小写敏感'."\n" + .'- 2 - 流式匹配'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'MaxLength' => ['description' => '匹配内容可输入的最大个数限制,根据Type取值不同,该参数取值如下:'."\n" + ."\n" + .'- 取值为**multi**时,表示可输入的最大个数限制。'."\n" + ."\n" + .'- 取值为**single**时,该参数为1。'."\n" + ."\n" + .'- 取值为**none**时,该参数为0。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '50'], + 'Description' => ['description' => '控制台显示逻辑符。', 'type' => 'string', 'example' => 'Equal to one of multiple values.'], + 'Regexp' => [ + 'description' => '正则表达式。', + 'type' => 'object', + 'properties' => [ + 'Pattern' => ['description' => '正则表达式。', 'type' => 'string', 'example' => '^\\S+$'], + 'ErrMsg' => ['description' => '匹配不上正则表达式的错误信息。', 'type' => 'string', 'example' => 'Specify this field.'], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', - ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"153ca2cd-3c01-44be-204c-64dbc6c88630\\",\\n \\"Content\\": [\\n {\\n \\"DefenseScene\\": \\"custom_acl\\",\\n \\"Fields\\": [\\n {\\n \\"ExtendField\\": \\"Custom header\\",\\n \\"MatchField\\": \\"Header\\",\\n \\"LogicalSymbol\\": [\\n {\\n \\"Type\\": \\"multi\\",\\n \\"Symbol\\": \\"match-one\\",\\n \\"Tip\\": \\"You can enter multiple values, up to 50. Press Enter to confirm.\\",\\n \\"Attributes\\": 1,\\n \\"MaxLength\\": 50,\\n \\"Description\\": \\"Equal to one of multiple values.\\",\\n \\"Regexp\\": {\\n \\"Pattern\\": \\"^\\\\\\\\S+$\\",\\n \\"ErrMsg\\": \\"Specify this field.\\"\\n }\\n }\\n ]\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafFilterInfoResponse>\\n <RequestId>153ca2cd-3c01-44be-204c-64dbc6c88630</RequestId>\\n <Content>\\n <DefenseScene>custom_acl</DefenseScene>\\n <Fields>\\n <ExtendField>自定义Header</ExtendField>\\n <MatchField>Header</MatchField>\\n <LogicalSymbol>\\n <Type>multi</Type>\\n <Symbol>match-one</Symbol>\\n <Tip>可以输入多个,最多50个,按回车键确认</Tip>\\n <Attributes>1</Attributes>\\n <MaxLength>50</MaxLength>\\n <Description>等于多值之一</Description>\\n <Regexp>\\n <Pattern>^\\\\S+$</Pattern>\\n <ErrMsg>字段不能为空</ErrMsg>\\n </Regexp>\\n </LogicalSymbol>\\n </Fields>\\n </Content>\\n</DescribeDcdnWafFilterInfoResponse>","errorExample":""}]', + 'title' => '获取自定义防护规则的匹配条件信息', + 'description' => '> 单用户调用频率:20次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-11-21T02:12:38.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2022-12-08T02:04:58.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafFilterInfo'], ], - 403 => [ - [ - 'errorCode' => '%sServiceNotFound', - 'errorMessage' => 'The [%s] service is not activated.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafFilterInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"691DEEE5-4BDB-47F3-930E-F57176427717\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeRoutineUserInfoResponse>\\n<RequestId>691DEEE5-4BDB-47F3-930E-F57176427717</RequestId>\\n<Content>\\n <Routines>\\n <RoutineName>test</RoutineName>\\n <Description>the description of this routine</Description>\\n <CreationTime>2021-05-20 04:00:00 PM</CreationTime>\\n </Routines>\\n <Routines>\\n <RoutineName>test-slc</RoutineName>\\n <Description>InRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIHJvdXRpbmUi</Description>\\n <CreationTime>2021-05-31T13:14:23.132925407Z</CreationTime>\\n </Routines>\\n <Subdomains>subdomain-slc2</Subdomains>\\n</Content>\\n</DescribeRoutineUserInfoResponse>","errorExample":""}]', - 'title' => '获取阿里云账号绑定的相关信息', - 'description' => '> API调用频率:100次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => '### Content参数'."\n" - .'| 名称 | 类型 | 示例值 | 描述 |'."\n" - .'| -------------- | ------ | -------------------------------- | ------------------------- |'."\n" - .'| Routines | Array | | 各个Routine的基本信息。 |'."\n" - .'| ㄴRoutineName | String | test | Routine名称。 |'."\n" - .'| ㄴDescription | String | the description of this routine | Routine描述。 |'."\n" - .'| ㄴCreationTime | String | 2021/5/20 16:00 | Routine创建时间。 |'."\n" - .'| Subdomains | Array | subdomain-slc2 | 当前用户的子域Subdomain。 |', - 'extraInfo' => ' ', ], - 'DescribeUserErStatus' => [ - 'summary' => '调用DescribeUserErStatus查看边缘函数ER是否开通或者欠费。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnWafGeoInfo' => [ + 'summary' => '调用DescribeDcdnWafGeoInfo查询WAF区域封禁功能支持的国家和地区。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -21636,391 +17844,554 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + ], + 'parameters' => [ + [ + 'name' => 'Language', + 'in' => 'query', + 'schema' => ['description' => '设置返回信息语言,取值:'."\n" + ."\n" + .'- cn:中文'."\n" + ."\n" + .'- en:英文', 'type' => 'string', 'required' => true, 'example' => 'cn'], ], ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'InDebt' => [ - 'description' => '边缘函数ER是否欠费。'."\n" - ."\n" - .'- true:欠费。'."\n" - .'- false:未欠费。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'OnService' => [ - 'description' => '边缘函数ER是否可用。'."\n" - ."\n" - .'- true:可用。'."\n" - .'- false:不可用。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4F51E9C3-728F-4E35-952D-0ED87A06A8A1', - ], - 'InDebtOverdue' => [ - 'description' => '边缘函数ER是否欠费超时。'."\n" - ."\n" - .'- true:超时。'."\n" - .'- false:未超时。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Enabled' => [ - 'description' => '是否开通边缘函数ER。'."\n" - ."\n" - .'- true:开通。'."\n" - .'- false:未开通。', - 'type' => 'boolean', - 'example' => 'true', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE'], + 'Content' => [ + 'description' => '国家地区信息分类。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => '区域类型。'."\n" + ."\n" + .'- CN:中国境内。'."\n" + ."\n" + .'- Other:中国境外。', 'type' => 'string', 'example' => 'CN'], + 'Continents' => [ + 'description' => '国家地区信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Name' => ['description' => '国家地区所属大区。', 'type' => 'string', 'example' => 'China'], + 'Regions' => [ + 'description' => '地区信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Name' => ['description' => '国家地区名称。', 'type' => 'string', 'example' => 'Beijing'], + 'Value' => ['description' => '国家地区代码值。', 'type' => 'string', 'example' => '110000'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], ], ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"InDebt\\": false,\\n \\"OnService\\": true,\\n \\"RequestId\\": \\"4F51E9C3-728F-4E35-952D-0ED87A06A8A1\\",\\n \\"InDebtOverdue\\": false,\\n \\"Enabled\\": true\\n}","errorExample":""},{"type":"xml","example":"<DescribeUserErStatusResponse>\\n <InDebt>false</InDebt>\\n <OnService>true</OnService>\\n <RequestId>4F51E9C3-728F-4E35-952D-0ED87A06A8A1</RequestId>\\n <InDebtOverdue>false</InDebtOverdue>\\n <Enabled>true</Enabled>\\n</DescribeUserErStatusResponse>","errorExample":""}]', - 'title' => '查看边缘函数ER是否开通或者欠费', - 'description' => '> 单用户调用频率:30次/秒。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"66A98669-CC6E-4F3E-80A6-3014697B11AE\\",\\n \\"Content\\": [\\n {\\n \\"Type\\": \\"CN\\",\\n \\"Continents\\": [\\n {\\n \\"Name\\": \\"China\\",\\n \\"Regions\\": [\\n {\\n \\"Name\\": \\"Beijing\\",\\n \\"Value\\": \\"110000\\"\\n }\\n ]\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafGeoInfoResponse>\\n<RequestId>66A98669-CC6E-4F3E-80A6-3014697B11AE</RequestId>\\n<Content>\\n <Type>CN</Type>\\n <Continent>\\n <Name>中国境内</Name>\\n <Regions>\\n <Name>北京市</Name>\\n <Value>110000</Value>\\n </Regions>\\n <Regions>\\n <Name>中国台湾</Name>\\n <Value>TW</Value>\\n </Regions>\\n </Continent>\\n</Content>\\n<Content>\\n <Type>Other</Type>\\n <Continent>\\n <Name>欧洲</Name>\\n <Regions>\\n <Name>安道尔共和国</Name>\\n <Value>AD</Value>\\n </Regions>\\n <Regions>\\n <Name>阿尔巴尼亚</Name>\\n <Value>AL</Value>\\n </Regions>\\n </Continent>\\n</Content>\\n</DescribeDcdnWafGeoInfoResponse>","errorExample":""}]', + 'title' => '查询WAF区域封禁支持的国家和地区', + 'description' => '> 单用户调用频率:20次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'EditRoutineConf' => [ - 'summary' => '调用EditRoutineConf修改边缘函数ER的配置。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2022-12-08T05:55:29.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafGeoInfo'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafGeoInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + ], + 'DescribeDcdnWafGroup' => [ + 'summary' => '调用DescribeDcdnWafGroup查询自定义WAF规则组细则,具体规则可分页。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111585', - 'abilityTreeNodes' => [ - 'FEATUREdcdn75UYDO', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Name', - 'in' => 'formData', + 'name' => 'Language', + 'in' => 'query', 'schema' => [ - 'description' => '边缘函数名, 同一个账号下命名唯一。', + 'description' => '语言类型,将以此语言返回。取值范围:'."\n" + ."\n" + .'- **en**:英文。'."\n" + .'- **zh**:中文。', 'type' => 'string', 'required' => true, - 'example' => 'test-slc', + 'example' => 'zh', + 'enum' => ['zh', 'en'], ], ], [ - 'name' => 'Description', - 'in' => 'formData', + 'name' => 'Id', + 'in' => 'query', + 'schema' => ['description' => 'WAF规则组ID。您可以通过[DescribeDcdnWafGroups](~~DescribeDcdnWafGroups~~)接口查询。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1012'], + ], + [ + 'name' => 'Scope', + 'in' => 'query', 'schema' => [ - 'description' => '边缘函数描述。', + 'description' => '待查询规则组的范围。'."\n" + .'- **in**:规则内,返回该规则组内的规则。'."\n" + .'- **out**:规则外,返回在规则全集中并且不在该规则组中的规则。', 'type' => 'string', - 'required' => false, - 'example' => 'the description of this routine', + 'required' => true, + 'example' => 'in', + 'enum' => ['in', 'out'], ], ], [ - 'name' => 'EnvConf', - 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => 'Env环境配置。', - 'type' => 'object', - 'required' => false, - 'example' => '{"staging":{"SpecName":"50ms","AllowedHosts":["test-a.alicdn.com","test-b.alicdn.com"]},"production":{"SpecName":"50ms","AllowedHosts":["test-c.alicdn.com","test-d.alicdn.com"]},"presetCanaryZhejiang":{"SpecName":"100ms","AllowedHosts":["test-e.alicdn.com","test-f.alicdn.com"]},"presetCanaryBeijing":{"SpecName":"5ms","AllowedHosts":["test-g.alicdn.com","test-h.alicdn.com"]},"presetCanaryNotExist":{"SpecName":"5ms","CodeRev":"1622446907645949975","AllowedHosts":["error hosts"]}}', - ], + 'name' => 'QueryArgs', + 'in' => 'query', + 'schema' => ['description' => '查询条件,JSON序列化后的字符串。格式如下:'."\n" + ."\n" + .'`QueryArgs={"PolicyIds":"防护策略ID范围","RuleIds":"防护规则ID范围","RuleNameLike":"防护规则名称","DomainNames":"防护域名","DefenseScenes":"waf_group","RuleStatus":"on","OrderBy":"GmtModified","Desc":"false"}`'."\n" + ."\n" + .'>不传默认查询所有防护规则。', 'type' => 'string', 'required' => false, 'example' => '{"RiskLevel":"","ProtectionType":"","ApplicationType":"","RuleIdLike":""}'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '当前页码,默认值**1**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '分页大小,默认**20**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'default' => '20'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => '执行错误描述和和各环境最新的配置版本号。', - 'type' => 'object', - 'example' => 'Description和EnvConfRev', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BAECB354-6D42-42C1-87DA-C9992EF1E7C8', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], + 'Id' => ['description' => '自定义WAF规则组ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '1012'], + 'Name' => ['description' => 'WAF规则组名称。', 'type' => 'string', 'example' => 'test'], + 'TemplateId' => ['description' => '模板ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '1012'], + 'Subscribe' => ['description' => '是否开启订阅。取值:'."\n" + ."\n" + .'- **on**:开启。'."\n" + .'- **off**:关闭。', 'type' => 'string', 'example' => 'on'], + 'TotalCount' => ['description' => '过滤出的规则总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '16'], + 'Rules' => [ + 'description' => '规则结构体。', + 'type' => 'array', + 'items' => [ + 'description' => '规则结构体。', + 'type' => 'object', + 'properties' => [ + 'GmtModified' => ['description' => '修改时间。', 'type' => 'string', 'example' => '2021-12-29T17:08:45Z'], + 'Id' => ['description' => '自定义WAF规则ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '100001'], + 'Name' => ['description' => 'WAF规则名称。', 'type' => 'string', 'example' => 'test'], + 'Description' => ['description' => 'WAF规则描述。', 'type' => 'string', 'example' => 'OK'], + 'RiskLevel' => ['description' => '规则风险等级。取值:'."\n" + ."\n" + .'- **0**:高风险。'."\n" + .'- **1**:中风险。'."\n" + .'- **2**:低风险。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'ProtectionType' => ['description' => '防护类型。取值如下:'."\n" + .'- **11**:SQL注入 '."\n" + .'- **12**:跨站脚本 '."\n" + .'- **13**:代码执行 '."\n" + .'- **14**:CRLF '."\n" + .'- **15**:本地文件包含 '."\n" + .'- **16**:远程文件包含'."\n" + .'- **17**:webshell '."\n" + .'- **19**:跨站请求伪造 '."\n" + .'- **20**:其他 '."\n" + .'- **21**:SEMA', 'type' => 'integer', 'format' => 'int32', 'example' => '11'], + 'ApplicationType' => ['description' => '应用类型。取值如下:'."\n" + ."\n" + .'- **0**:Common '."\n" + .'- **1**:Wordpress'."\n" + .'- **2**:Dedecms '."\n" + .'- **3**:Discuz '."\n" + .'- **4**:Phpcms '."\n" + .'- **5**:Ecshop '."\n" + .'- **6**:Shopex '."\n" + .'- **8**:Drupal '."\n" + .'- **8**:Joomla '."\n" + .'- **9**:Metinfo '."\n" + .'- **10**:Struts2 '."\n" + .'- **11**:Spring Boot '."\n" + .'- **12**:Jboss '."\n" + .'- **13**:Weblogic '."\n" + .'- **14**:Websphere '."\n" + .'- **15**:Tomcat '."\n" + .'- **16**:Elastic Search '."\n" + .'- **18**:Thinkphp '."\n" + .'- **19**:Fastjson '."\n" + .'- **20**:ImageMagick '."\n" + .'- **21**:PHPwind '."\n" + .'- **22**:phpMyAdmin '."\n" + .'- **23**:Resin '."\n" + .'- **24**:IIS '."\n" + .'- **99**:Others', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'CveId' => ['description' => 'CVE ID。', 'type' => 'string', 'example' => 'CVE-2021-22945'], + 'CveUrl' => ['description' => 'CVE链接。', 'type' => 'string', 'example' => 'https://nxx.nxxx.gov/vuln/detail/CVE-2022-XXXX'], + ], + ], ], + 'PageNumber' => ['description' => '页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '分页大小,默认**20**。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询自定义WAF规则组详情', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafGroup'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"BAECB354-6D42-42C1-87DA-C9992EF1E7C8\\"\\n}","errorExample":""},{"type":"xml","example":"<EditRoutineConfResponse>\\n <RequestId>BAECB354-6D42-42C1-87DA-C9992EF1E7C8</RequestId>\\n <Content>\\n <Description>Validate (Env: presetCanaryNotExist, Error: not valid canary name ) </Description>\\n <EnvConfRev>\\n <presetCanaryZhejiang>1622033526212272495</presetCanaryZhejiang>\\n <staging>1622033526008611202</staging>\\n <presetCanaryBeijing>1622033526223670241</presetCanaryBeijing>\\n <production>1622033526162527140</production>\\n </EnvConfRev>\\n </Content>\\n</EditRoutineConfResponse>","errorExample":""}]', - 'title' => '修改边缘函数ER的配置', - 'description' => '- 该参数可以只修改自己需要的配置,其他配置会延用之前的设置。'."\n" - .'- 如果需要删除某个配置,手动设置其value为空即可。'."\n" - .'- 该接口可新增Canary Env(命名必须符合规范,否则无法设置成功)。'."\n" - .'- 预置的灰度区域(34个中国区域+1个海外区域):'."\n" - .' - 海外区域:presetCanaryOverseas。'."\n" - .' - 34个中国区域:presetCanaryXX,例如北京区域就是presetCanaryBeijing。具体如下所示:Anhui 安徽,Beijing 北京,Chongqing 重庆,Fujian 福建,Gansu 甘肃,Guangdong 广东,Guangxi 广西,Guizhou 贵州,Hainan 海南,Hebei 河北,Heilongjiang 黑龙江,Henan 河南,Hong-Kong 香港,Hubei 湖北,Hunan 湖南,Jiangsu 江苏,Jiangxi 江西,Jilin 吉林,Liaoning 辽宁,Macau 澳门,Neimenggu 内蒙古,Ningxia 宁夏,Qinghai 青海,Shaanxi 陕西,Shandong 山东,Shanghai 上海,Shanxi 山西,Sichuan 四川,Taiwan 台湾,Tianjin 天津,Xinjiang 新疆,Xizang 西藏,Yunnan 云南,Zhejiang 浙江。'."\n" - .'- API调用频率:100次/秒。', - 'requestParamsDescription' => '### EnvConf字段描述'."\n" - ."\n" - .'| 名称 | 类型 | 描述 |'."\n" - .'| --------- | ------ | ----------------------------------- |'."\n" - .'| SpecName | String | CPU规格时间片。 |'."\n" - .'| CodeRev | String | 代码版本号。 |'."\n" - .'| AllowedHosts | String | 允许关联的CDN域名。|', - 'responseParamsDescription' => '### Content参数'."\n" - .'| 名称 | 类型 | 示例值 | 描述 |'."\n" - .'| ----------- | ------ | ------------------------------------------------------------ | ----------------------- |'."\n" - .'| Description | String | Validate (Env: presetCanaryNotExist, Error: not valid canary name ) | Routine描述。 |'."\n" - .'| EnvConfRev | JSON | 1622033526212272495 | 各Env环境的配置版本号。 |', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\",\\n \\"Id\\": 1012,\\n \\"Name\\": \\"test\\",\\n \\"TemplateId\\": 1012,\\n \\"Subscribe\\": \\"on\\",\\n \\"TotalCount\\": 16,\\n \\"Rules\\": [\\n {\\n \\"GmtModified\\": \\"2021-12-29T17:08:45Z\\",\\n \\"Id\\": 100001,\\n \\"Name\\": \\"test\\",\\n \\"Description\\": \\"OK\\",\\n \\"RiskLevel\\": 2,\\n \\"ProtectionType\\": 11,\\n \\"ApplicationType\\": 1,\\n \\"CveId\\": \\"CVE-2021-22945\\",\\n \\"CveUrl\\": \\"https://nxx.nxxx.gov/vuln/detail/CVE-2022-XXXX\\"\\n }\\n ],\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 20\\n}","type":"json"}]', ], - 'SetRoutineSubdomain' => [ - 'summary' => '调用SetRoutineSubdomain设置边缘函数ER子域。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnWafGroups' => [ + 'summary' => '调用DescribeDcdnWafGroups查询自定义WAF规则组列表。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '162567', + 'abilityTreeNodes' => ['FEATUREdcdnL8HX1L'], ], 'parameters' => [ [ - 'name' => 'Subdomains', - 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => '子域参数。'."\n" - ."\n" - .'参数格式为:'."\n" - .'```'."\n" - .'Subdomains: ['."\n" - .' "subdomain-test"'."\n" - .']'."\n" - .'```', - 'type' => 'object', - 'required' => true, - 'example' => '["subdomain-test"]', - ], + 'name' => 'Language', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => ['description' => '语言类型,将以此语言返回。取值范围:'."\n" + .'- **en**:英文(默认)。'."\n" + .'- **zh**:中文。', 'type' => 'string', 'required' => false, 'example' => 'zh'], + ], + [ + 'name' => 'QueryArgs', + 'in' => 'query', + 'schema' => ['description' => '查询条件,JSON序列化后的字符串。格式如下:'."\n" + .'`QueryArgs={"PolicyIds":"防护策略ID范围","RuleIds":"防护规则ID范围","RuleNameLike":"防护规则名称","DomainNames":"防护域名","DefenseScenes":"waf_group","RuleStatus":"on","OrderBy":"GmtModified","Desc":"false"}`'."\n" + .'>不传默认查询所有防护规则。', 'type' => 'string', 'required' => false, 'example' => '{"RuleIds":"100001,200002"}'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '当前页码,默认值**1**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '分页大小,默认**20**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'default' => '20'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => '返回“"Status": "OK"”。', - 'type' => 'object', - 'example' => ' {"Status": "OK"}', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], + 'TotalCount' => ['description' => 'WAF规则组总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '16'], + 'WafGroups' => [ + 'description' => 'WAF规则组列表。', + 'type' => 'array', + 'items' => [ + 'description' => 'WAF规则组列表。', + 'type' => 'object', + 'properties' => [ + 'GmtModified' => ['description' => '修改时间。', 'type' => 'string', 'example' => '2020-04-12 22:25:11'], + 'Id' => ['description' => '自定义WAF规则组ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '30000156'], + 'Name' => ['description' => 'WAF规则名称。', 'type' => 'string', 'example' => 'DCDN-test-operation-reports-1'], + 'RuleCount' => ['description' => '规则数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '452'], + 'TemplateId' => ['description' => '模板ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '1012'], + 'Subscribe' => ['description' => '是否开启订阅。取值范围:'."\n" + .'- **on**:开启订阅。'."\n" + .'- **off**:关闭订阅。', 'type' => 'string', 'example' => 'on'], + 'Policies' => [ + 'description' => '绑定该WAF规则组的策略。', + 'type' => 'array', + 'items' => [ + 'description' => '绑定该WAF规则组的策略。', + 'type' => 'object', + 'properties' => [ + 'Id' => ['description' => '策略ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '30000165'], + 'Name' => ['description' => '策略名称。', 'type' => 'string', 'example' => 'wasm-testmaster'], + 'Type' => ['description' => '策略类型。取值范围:'."\n" + ."\n" + .'- **custom**:自定义策略。'."\n" + .'- **default**:默认策略。', 'type' => 'string', 'example' => 'default'], + ], + ], + ], + ], + ], ], + 'PageNumber' => ['description' => '页码,默认值为1。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '分页大小,默认**20**。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询自定义WAF规则组列表', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafGroups'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafGroups', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"Status\\": \\"OK\\"\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<SetRoutineSubdomainResponse>\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\n<Content>\\n <Status>OK</Status>\\n</Content>\\n</SetRoutineSubdomainResponse>","errorExample":""}]', - 'title' => '设置边缘函数ER子域', - 'description' => '- 子域名称全局唯一,不同的RAM用户也不允许创建相同的子域。'."\n" - .' - API调用频率:100次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\",\\n \\"TotalCount\\": 16,\\n \\"WafGroups\\": [\\n {\\n \\"GmtModified\\": \\"2020-04-12 22:25:11\\",\\n \\"Id\\": 30000156,\\n \\"Name\\": \\"DCDN-test-operation-reports-1\\",\\n \\"RuleCount\\": 452,\\n \\"TemplateId\\": 1012,\\n \\"Subscribe\\": \\"on\\",\\n \\"Policies\\": [\\n {\\n \\"Id\\": 30000165,\\n \\"Name\\": \\"wasm-testmaster\\",\\n \\"Type\\": \\"default\\"\\n }\\n ]\\n }\\n ],\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 20\\n}","type":"json"}]', ], - 'UploadRoutineCode' => [ - 'summary' => '调用UploadRoutineCode上传边缘函数ER的代码。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnWafLogs' => [ + 'summary' => '调用DescribeDcdnWafLogs查询域名的离线WAF拦截日志下载地址。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111624', - 'abilityTreeNodes' => [ - 'FEATUREdcdn75UYDO', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Name', - 'in' => 'formData', + 'name' => 'DomainName', + 'in' => 'query', 'schema' => [ - 'description' => '边缘函数名, 同一个账号下命名唯一。', + 'description' => '域名,只支持单个查询。', 'type' => 'string', 'required' => true, - 'example' => 'test', + 'enumValueTitles' => [], + 'example' => 'example.com', ], ], [ - 'name' => 'CodeDescription', - 'in' => 'formData', - 'schema' => [ - 'description' => '代码版本描述。', - 'type' => 'string', - 'required' => true, - 'example' => 'Hello World', - ], + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '查询日志起始时间。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2017-12-21T08:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '查询日志结束时间。'."\n" + ."\n" + .'日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2017-12-22T08:00:00Z'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '分页大小,默认**300**,取值:**1~1000**。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '300', 'default' => '300'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '查询页数,取值范围:大于0的任意整数。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1', 'default' => '1'], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => '接口返回内容,包含代码版本号和代码上传的相关内容。', - 'type' => 'object', - 'example' => 'OssPostConfig和CodeRevision', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DFA2027F-86C0-4421-9593-581A7993696C', + 'DomainLogDetails' => [ + 'description' => 'DomainLogDetail组成的数据列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DomainName' => ['description' => 'WAF域名。', 'type' => 'string', 'example' => 'example.com'], + 'LogCount' => ['description' => '本页返回的总条数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'LogInfos' => [ + 'description' => 'LogInfoDetail组成的数据列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2015-05-23T14:00:00Z'], + 'LogName' => ['description' => '日志名称。', 'type' => 'string', 'example' => 'demo.aliyundoc.com_2015_05_23_2100_2200.xxxxxx.gz'], + 'LogPath' => ['description' => '日志路径。', 'type' => 'string', 'example' => 'guide.aliyundoc.com-hangzhou.xxx'], + 'LogSize' => ['description' => '日志大小,单位:字节。', 'type' => 'integer', 'format' => 'int64', 'example' => '258'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2015-05-23T13:00:00Z'], + ], + 'description' => '', + ], + ], + 'PageInfos' => [ + 'description' => 'PageInfoDetail组成的数据。', + 'type' => 'object', + 'properties' => [ + 'PageIndex' => ['description' => '返回数据的页码。', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'default' => '1'], + 'PageSize' => ['description' => '整页大小。', 'type' => 'integer', 'format' => 'int64', 'example' => '20', 'default' => '1000'], + 'Total' => ['description' => '总条数。', 'type' => 'integer', 'format' => 'int64', 'example' => '20'], + ], + ], + ], + 'description' => '', + ], ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0985A362-C81E-5A56-891D-90226BEECA7C'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', - ], + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"DFA2027F-86C0-4421-9593-581A7993696C\\"\\n}","errorExample":""},{"type":"xml","example":"<UploadRoutineCodeResponse>\\n<RequestId>DFA2027F-86C0-4421-9593-581A7993696C</RequestId>\\n<Content>\\n <OssPostConfig>\\n <OSSAccessKeyId>KiTr</OSSAccessKeyId>\\n <Signature>+VaGBmeMjdKTD1E=</Signature>\\n <callback>eyJjYWxsYmFja1VybCI6Imh0dHA6Ly9lci1ub2RlYXBpLmFsaXl1bmNzLmNvbS91cGxvYWRfY29kZV9vc3NfY2FsbGJhY2siLCJjYWxsYmFja0JvZHkiOiJPYmplY3Q9JHtvYmplY3R9JkNvZGVEZXNjcmlwdGlvbj0ke3g6Y29kZWRlc2NyaXB0aW9ufSIsImNhbGxiYWNrQm9keVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifQo=</callback>\\n <x:codeDescription>IkhlbGxvIFdvcmxkIg==</x:codeDescription>\\n <Url>http://cdn-edgejs.oss-cn-hangzhou.aliyuncs.com</Url>\\n <key>test.123.69188190343.js</key>\\n <policy>eyJleHBpcmF0aW9uIjoiMjAyMS0wNS0yNlQxMzowNzo0OVoiLCJjb25kaXRpb25zIjpbWyJlcSIsIiRrZXkiLCJ0ZXN0LXNsYy4xMzc3MjkyNjI4ODEwMzI3LjE2MjIwMzQxNjkxODgxOTAzNDMuanMiXSxbImVxIiwiJGNhbGxiYWNrIiwiZXlKallXeHNZbUZqYTFWeWJDSTZJbWgwZEhBNkx5OWxjaTF1YjJSbFlYQnBMbUZzYVhsMWJtTnpMbU52YlM5MWNHeHZZV1JmWTI5a1pWOXZjM05mWTJGc2JHSmhZMnNpTENKallXeHNZbUZqYTBKdlpIa2lPaUpQWW1wbFkzUTlKSHR2WW1wbFkzUjlKa052WkdWRVpYTmpjbWx3ZEdsdmJqMGtlM2c2WTI5a1pXUmxjMk55YVhCMGFXOXVmU0lzSW1OaGJHeGlZV05yUW05a2VWUjVjR1VpT2lKaGNIQnNhV05oZEdsdmJpOTRMWGQzZHkxbWIzSnRMWFZ5YkdWdVkyOWtaV1FpZlFvPSJdLFsiZXEiLCIkeDpjb2RlZGVzY3JpcHRpb24iLCJJa2hsYkd4dklGZHZjbXhrSWc9PSJdLFsiY29udGVudC1sZW5ndGgtcmFuZ2UiLDEsNDE5NDMwNF1dfQ==</policy>\\n </OssPostConfig>\\n <CodeRevision>1622034169188190343</CodeRevision>\\n</Content>\\n</UploadRoutineCodeResponse>","errorExample":""}]', - 'title' => '上传边缘函数ER的代码', - 'description' => '> - 上传一次边缘函数ER的代码,生成一个版本,用于代码管理和发布使用。'."\n" - .'> - 一个边缘函数ER最多保留10个版本代码,超出限制后需要手动调用DeleteRoutineCodeRevision删除无用的版本。'."\n" - .'> - API调用频率:100次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => '### Content参数'."\n" - ."\n" - .'| 名称 | 类型 | 示例值 | 描述 |'."\n" - .'| ------------------- | ------ | ------------------------------------------------------------ | ------------------------------------------------------------ |'."\n" - .'| CodeRevision | String | 1622034169188190000 | 代码版本号。 |'."\n" - .'| OssPostConfig | Json | | 上传JS代码所需要的请求内容。 |'."\n" - .'| ㄴOSSAccessKeyId | String | KiTr**** | 上传Object的AccessKey ID。 |'."\n" - .'| ㄴSignature | String | +VaGBmeMjdKTD1E= | 根据AccessKey Secret和Policy计算的签名信息,OSS验证该签名信息从而验证该Post请求的合法性。 |'."\n" - .'| ㄴcallback | String | eyJjYWxsYmFja1VybCI6Imh0dHA6Ly9lci**** | 是由一段经过Base64编码的JSON字符串(字段),构建callback参数的关键是指定请求回调的服务器URL(callbackUrl)以及回调的内容(callbackBody)。 |'."\n" - .'| ㄴx:codeDescription | String | IkhlbGxvIFdvcmxkIg== | 对当前代码版本的描述信息。 |'."\n" - .'| ㄴUrl | String | http://****.oss-cn-hangzhou.aliyuncs.com | 上传Object的OSS域名。 |'."\n" - .'| ㄴkey | String | test.123.69188190343.js | 上传Object的名称。 |'."\n" - .'| ㄴpolicy | String | eyJleHBpcmF0aW9uIjoiMjAyMS0wNS0yNlQxMz**** | 用于验证请求的合法性,为一段经过UTF-8和Base64编码的JSON文本,声明了Post请求必须满足的条件。 |', - 'extraInfo' => ' ', - ], - 'UploadStagingRoutineCode' => [ - 'summary' => '调用UploadStagingRoutineCode上传边缘函数ER的测试代码。', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询离线WAF拦截日志下载地址', + 'description' => '> - 如果不指定StartTime和EndTime,该接口默认读取过去24小时的数据;指定StartTime和EndTime时,按指定的起止时间查询。'."\n" + .'> - 查询数据的时间粒度为一小时。'."\n" + .'> - 单个用户的调用频率为:100次/秒。', + 'changeSet' => [ + ['createdAt' => '2023-01-03T08:47:25.000Z', 'description' => '响应参数发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafLogs'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafLogs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainLogDetails\\": [\\n {\\n \\"DomainName\\": \\"example.com\\",\\n \\"LogCount\\": 10,\\n \\"LogInfos\\": [\\n {\\n \\"EndTime\\": \\"2015-05-23T14:00:00Z\\",\\n \\"LogName\\": \\"demo.aliyundoc.com_2015_05_23_2100_2200.xxxxxx.gz\\",\\n \\"LogPath\\": \\"guide.aliyundoc.com-hangzhou.xxx\\",\\n \\"LogSize\\": 258,\\n \\"StartTime\\": \\"2015-05-23T13:00:00Z\\"\\n }\\n ],\\n \\"PageInfos\\": {\\n \\"PageIndex\\": 1,\\n \\"PageSize\\": 20,\\n \\"Total\\": 20\\n }\\n }\\n ],\\n \\"RequestId\\": \\"0985A362-C81E-5A56-891D-90226BEECA7C\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafLogsResponse>\\n <DomainLogDetails>\\n <DomainName>example.com\\n</DomainName>\\n <LogCount>10</LogCount>\\n <LogInfos>\\n <EndTime>2015-05-23T14:00:00Z\\n</EndTime>\\n <LogName>demo.aliyundoc.com_2015_05_23_2100_2200.xxxxxx.gz</LogName>\\n <LogPath>guide.aliyundoc.com-hangzhou.xxx\\n</LogPath>\\n <LogSize>258</LogSize>\\n <StartTime>2015-05-23T13:00:00Z\\n</StartTime>\\n </LogInfos>\\n <PageInfos>\\n <PageIndex>1</PageIndex>\\n <PageSize>20</PageSize>\\n <Total>20</Total>\\n </PageInfos>\\n </DomainLogDetails>\\n <RequestId>0985A362-C81E-5A56-891D-90226BEECA7C</RequestId>\\n</DescribeDcdnWafLogsResponse>","errorExample":""}]', + ], + 'DescribeDcdnWafPolicies' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111625', - 'abilityTreeNodes' => [ - 'FEATUREdcdn75UYDO', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Name', - 'in' => 'formData', - 'schema' => [ - 'description' => '边缘函数名, 同一个账号下命名唯一。', - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], + 'name' => 'QueryArgs', + 'in' => 'query', + 'schema' => ['description' => '按条件查询,JSON序列化后的字符串。'."\n" + .'格式如下:```QueryArgs={"PolicyIds":"防护策略ID","RuleIds":"防护规则ID范围","PolicyNameLike":"防护策略名称","DomainNames":"防护域名","PolicyType":"default","DefenseScenes":"waf_group","PolicyStatus":"on","OrderBy":"GmtModified","Desc":"false"}```'."\n" + .'>不传默认查询所有防护策略。', 'type' => 'string', 'required' => false, 'example' => '{"PolicyNameLIike":"test_policy"}'], ], [ - 'name' => 'CodeDescription', - 'in' => 'formData', - 'schema' => [ - 'description' => '版本描述。', - 'type' => 'string', - 'required' => false, - 'example' => 'desc', - ], + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '页码,默认值**1**,取值范围:**1**~**100000**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页显示的防护策略个数,默认值**20**,取值范围:**1**~**500**之前的任意整数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'example' => '20', 'default' => '20'], ], ], 'responses' => [ @@ -22028,97 +18399,90 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => '代码所需要的参数。', - 'type' => 'object', - 'example' => 'OssPostConfig和CodeRevision', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DFA2027F-86C0-4421-9593-581A7993696C', + 'PageSize' => ['description' => '每页显示的防护策略个数,默认值**20**,取值范围:**1**~**500**之前的任意整数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '153ca2cd-3c01-44be-2e83-64dbc6c88630'], + 'PageNumber' => ['description' => '页码。取值范围为:**1**~**100000**。默认值为**1**。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TotalCount' => ['description' => '防护策略个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '15'], + 'Policies' => [ + 'description' => '防护策略列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'PolicyStatus' => ['description' => '防护策略状态,同请求参数QueryArgs中PolicyStatus。', 'type' => 'string', 'example' => 'on'], + 'DefenseScene' => ['description' => '防护策略类型,同请求参数QueryArgs中DefenseScenes。', 'type' => 'string', 'example' => 'custom_acl'], + 'DomainCount' => ['description' => '使用该防护策略的域名个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '22'], + 'PolicyName' => ['description' => '防护策略名称。', 'type' => 'string', 'example' => 'policy_test'], + 'PolicyId' => ['description' => '防护策略ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '100001'], + 'RuleCount' => ['description' => '该防护策略下的防护规则个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '9'], + 'GmtModified' => ['description' => '修改时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2021-12-29T17:08:45Z'], + 'PolicyType' => ['description' => '是否为默认防护策略,同请求参数QueryArgs中PolicyType。', 'type' => 'string', 'example' => 'default'], + ], + ], ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', + 'title' => '查询用户配置的防护策略', + 'summary' => '调用DescribeDcdnWafPolicies查询用户已配置的WAF防护策略详细信息。', + 'description' => '> 单用户调用频率:20次/秒。', + 'requestParamsDescription' => '**QueryArgs取值说明**'."\n" + ."\n" + .'| 名称 | 类型|是否必选| 示例值| 描述|'."\n" + .'|------|-----|--------|--------|----|'."\n" + .'| PolicyIds| string|否| 10000001,10000002| 防护策略ID列表,精确查询,多个ID用英文逗号(,)分隔。|'."\n" + .'| RuleIds| string|否| 20000001,20000055| 防护规则ID范围,精确查询,多个ID用英文逗号(,)分隔。|'."\n" + .'| PolicyNameLike| string|否|policy_test| 防护策略名称,模糊查询。支持输入中文字符、英文字符(大小写)、数字(0~9)及下划线(_)。|'."\n" + .'| DomainNames| string|否| example.com| 防护域名列表,精确查询,最多输入50个,多个ID用英文逗号(,)分隔。|'."\n" + .'| PolicyType| string|否| default| 是否为默认防护策略。default:默认防护策略。custom:非默认防护策略。|'."\n" + .'| DefenseScenes| string|否| custom_acl| 防护策略精确查询,多个用英文逗号(,)分隔。目前支持以下场景:waf_group:Web基础防护。custom_acl:自定义防护策略。whitelist:白名单。|'."\n" + .'|PolicyStatus| string|否| on| 策略状态。on:开启。off:关闭。|'."\n" + .'| OrderBy| string|否| GmtModified| 排序列,支持排序的字段:GmtModified、PolicyId、PolicyName、PolicyStatus|'."\n" + .'| Desc| Boolean|否| false| 排列顺序,true:倒序。false(默认):正序。|', + 'changeSet' => [ + ['createdAt' => '2022-12-13T07:16:57.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafPolicies'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafPolicies', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"DFA2027F-86C0-4421-9593-581A7993696C\\"\\n}","errorExample":""},{"type":"xml","example":"<UploadStagingRoutineCodeResponse>\\n<RequestId>DFA2027F-86C0-4421-9593-581A7993696C</RequestId>\\n<Content>\\n <OssPostConfig>\\n <OSSAccessKeyId>KiTr</OSSAccessKeyId>\\n <Signature>+VaGBmeMjdKTD1E=</Signature>\\n <callback>eyJjYWxsYmFja1VybCI6Imh0dHA6Ly9lci1ub2RlYXBpLmFsaXl1bmNzLmNvbS91cGxvYWRfY29kZV9vc3NfY2FsbGJhY2siLCJjYWxsYmFja0JvZHkiOiJPYmplY3Q9JHtvYmplY3R9JkNvZGVEZXNjcmlwdGlvbj0ke3g6Y29kZWRlc2NyaXB0aW9ufSIsImNhbGxiYWNrQm9keVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifQo=</callback>\\n <x:codeDescription>IkhlbGxvIFdvcmxkIg==</x:codeDescription>\\n <Url>http://cdn-edgejs.oss-cn-hangzhou.aliyuncs.com</Url>\\n <key>test.123.69188190343.js</key>\\n <policy>eyJleHBpcmF0aW9uIjoiMjAyMS0wNS0yNlQxMzowNzo0OVoiLCJjb25kaXRpb25zIjpbWyJlcSIsIiRrZXkiLCJ0ZXN0LXNsYy4xMzc3MjkyNjI4ODEwMzI3LjE2MjIwMzQxNjkxODgxOTAzNDMuanMiXSxbImVxIiwiJGNhbGxiYWNrIiwiZXlKallXeHNZbUZqYTFWeWJDSTZJbWgwZEhBNkx5OWxjaTF1YjJSbFlYQnBMbUZzYVhsMWJtTnpMbU52YlM5MWNHeHZZV1JmWTI5a1pWOXZjM05mWTJGc2JHSmhZMnNpTENKallXeHNZbUZqYTBKdlpIa2lPaUpQWW1wbFkzUTlKSHR2WW1wbFkzUjlKa052WkdWRVpYTmpjbWx3ZEdsdmJqMGtlM2c2WTI5a1pXUmxjMk55YVhCMGFXOXVmU0lzSW1OaGJHeGlZV05yUW05a2VWUjVjR1VpT2lKaGNIQnNhV05oZEdsdmJpOTRMWGQzZHkxbWIzSnRMWFZ5YkdWdVkyOWtaV1FpZlFvPSJdLFsiZXEiLCIkeDpjb2RlZGVzY3JpcHRpb24iLCJJa2hsYkd4dklGZHZjbXhrSWc9PSJdLFsiY29udGVudC1sZW5ndGgtcmFuZ2UiLDEsNDE5NDMwNF1dfQ==</policy>\\n </OssPostConfig>\\n <CodeRevision>1622034169188190343</CodeRevision>\\n</Content>\\n</UploadStagingRoutineCodeResponse>","errorExample":""}]', - 'title' => '上传边缘函数ER的测试代码', - 'description' => '- 上传一次边缘函数ER的测试代码,生成一个版本号,占用一个CodeRev的代码版本数,仅用作测试使用。'."\n" - .'- 该参数自动发布代码为测试环境。'."\n" - .'- 一个边缘函数ER最多保留10个版本号,超出限制后需要手动调用DeleteRoutineCodeRevision删除无用的版本。'."\n" - .'- API调用频率:100次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 20,\\n \\"RequestId\\": \\"153ca2cd-3c01-44be-2e83-64dbc6c88630\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 15,\\n \\"Policies\\": [\\n {\\n \\"PolicyStatus\\": \\"on\\",\\n \\"DefenseScene\\": \\"custom_acl\\",\\n \\"DomainCount\\": 22,\\n \\"PolicyName\\": \\"policy_test\\",\\n \\"PolicyId\\": 100001,\\n \\"RuleCount\\": 9,\\n \\"GmtModified\\": \\"2021-12-29T17:08:45Z\\",\\n \\"PolicyType\\": \\"default\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafPoliciesResponse>\\n <RequestId>153ca2cd-3c01-44be-2e83-64dbc6c88630</RequestId>\\n <TotalCount>15</TotalCount>\\n <Policies>\\n <GmtModified>2021-12-29T17:08:45Z</GmtModified>\\n <PolicyId>100001</PolicyId>\\n <PolicyName>policy_test</PolicyName>\\n <PolicyType>default</PolicyType>\\n <PolicyStatus>on</PolicyStatus>\\n <DomainCount>22</DomainCount>\\n <RuleCount>9</RuleCount>\\n <DefenseScene>custom_acl</DefenseScene>\\n </Policies>\\n <Policies>\\n <GmtModified>2021-12-29T17:09:45Z</GmtModified>\\n <PolicyId>100002</PolicyId>\\n <PolicyName>policy_test2</PolicyName>\\n <PolicyType>custom</PolicyType>\\n <PolicyStatus>off</PolicyStatus>\\n <DomainCount>25</DomainCount>\\n <RuleCount>10</RuleCount>\\n <DefenseScene>waf_group</DefenseScene>\\n </Policies>\\n <PageNumber>1</PageNumber>\\n <PageSize>20</PageSize>\\n</DescribeDcdnWafPoliciesResponse>","errorExample":""}]', ], - 'PublishRoutineCodeRevision' => [ - 'summary' => '调用PublishRoutineCodeRevision发布指定版本的边缘函数ER代码到某个Env环境。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnWafPolicy' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111599', - 'abilityTreeNodes' => [ - 'FEATUREdcdn75UYDO', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Name', - 'in' => 'formData', - 'schema' => [ - 'description' => '边缘函数名, 同一个账号下命名唯一。', - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], - ], - [ - 'name' => 'SelectCodeRevision', - 'in' => 'formData', - 'schema' => [ - 'description' => '将要发布的边缘函数ER代码版本。', - 'type' => 'string', - 'required' => true, - 'example' => '1620876959997924701', - ], - ], - [ - 'name' => 'Envs', - 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => '将要发布的Env环境。'."\n" - ."\n" - .'> - production:环境名称,包含SpecName(环境名称)和AllowedHosts(域名白名单)。'."\n" - .'> - presetCanary:选填,根据您业务需要添加的灰度环境。', - 'type' => 'object', - 'required' => true, - 'example' => '["production","presetCanaryZhejiang"]', - ], + 'name' => 'PolicyId', + 'in' => 'query', + 'schema' => ['description' => '防护策略ID,仅支持单个输入。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1000001'], ], ], 'responses' => [ @@ -22126,15 +18490,35 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => '发布的代码版本号。', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE'], + 'Policy' => [ + 'description' => '防护策略信息。', 'type' => 'object', - 'example' => '{"CodeRevision": "1620876959997924701"}', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'A513734D-D17B-411E-864D-XXXX', + 'properties' => [ + 'PolicyStatus' => ['description' => '防护策略状态,取值:'."\n" + ."\n" + .'- on:开启。'."\n" + ."\n" + .'- off:关闭。', 'type' => 'string', 'example' => 'on'], + 'DefenseScene' => ['description' => '防护策略类型,目前支持以下场景:'."\n" + ."\n" + .'- waf_group:Web基础防护。'."\n" + ."\n" + .'- custom_acl:自定义防护策略。'."\n" + ."\n" + .'- whitelist:白名单。', 'type' => 'string', 'example' => 'waf_group'], + 'DomainCount' => ['description' => '使用该防护策略的域名个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '22'], + 'RuleConfigs' => ['description' => '该防护策略对应的具体防护规则配置(仅支持Bot场景)。具体请参见[BatchCreateDcdnWafRules](~~BatchCreateDcdnWafRules~~)。', 'type' => 'string', 'example' => '{"type":"target_type", "status":"on","config":{"target":"app"},"action":""}'], + 'PolicyName' => ['description' => '防护策略名称。', 'type' => 'string', 'example' => 'policy_test'], + 'PolicyId' => ['description' => '防护策略ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '100001'], + 'RuleCount' => ['description' => '该防护策略下的防护规则个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '9'], + 'GmtModified' => ['description' => '修改时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2021-12-29T17:08:45Z'], + 'PolicyType' => ['description' => '当前策略是否为默认策略,取值:'."\n" + ."\n" + .'- default:默认策略。'."\n" + ."\n" + .'- custom:非默认策略。', 'type' => 'string', 'example' => 'default'], + ], ], ], ], @@ -22142,64 +18526,64 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"CodeRevision\\": \\"1620876959997924701\\"\\n },\\n \\"RequestId\\": \\"A513734D-D17B-411E-864D-XXXX\\"\\n}","errorExample":""},{"type":"xml","example":"<PublishRoutineCodeRevisionResponse>\\n<RequestId>A513734D-D17B-411E-864D-XXXX</RequestId>\\n<Content>\\n <CodeRevision>1620876959997924701</CodeRevision>\\n</Content>\\n</PublishRoutineCodeRevisionResponse>","errorExample":""}]', - 'title' => '发布指定版本的边缘函数ER代码到某个Env环境', - 'description' => '> API调用频率:100次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CommitStagingRoutineCode' => [ - 'summary' => '调用CommitStagingRoutineCode把测试版本unstable的JS代码生成供线上Env环境使用的正式版本。', - 'methods' => [ - 'get', - 'post', + 'title' => '获取单个防护策略信息', + 'summary' => '调用DescribeDcdnWafPolicy获取指定防护策略详细信息。', + 'description' => '> 单用户调用频率:20次/秒。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafPolicy'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"66A98669-CC6E-4F3E-80A6-3014697B11AE\\",\\n \\"Policy\\": {\\n \\"PolicyStatus\\": \\"on\\",\\n \\"DefenseScene\\": \\"waf_group\\",\\n \\"DomainCount\\": 22,\\n \\"RuleConfigs\\": \\"{\\\\\\"type\\\\\\":\\\\\\"target_type\\\\\\", \\\\\\"status\\\\\\":\\\\\\"on\\\\\\",\\\\\\"config\\\\\\":{\\\\\\"target\\\\\\":\\\\\\"app\\\\\\"},\\\\\\"action\\\\\\":\\\\\\"\\\\\\"}\\",\\n \\"PolicyName\\": \\"policy_test\\",\\n \\"PolicyId\\": 100001,\\n \\"RuleCount\\": 9,\\n \\"GmtModified\\": \\"2021-12-29T17:08:45Z\\",\\n \\"PolicyType\\": \\"default\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafPolicyResponse>\\n <RequestId>66A98669-CC6E-4F3E-80A6-3014697B11AE</RequestId>\\n <Policy>\\n <PolicyStatus>on</PolicyStatus>\\n <DefenseScene>waf_group</DefenseScene>\\n <DomainCount>22</DomainCount>\\n <RuleConfigs>{ \\"type\\":\\"target_type\\", \\"status\\":\\"on\\", \\"config\\":{\\"target\\":\\"app\\"}, \\"action\\":\\"\\" }</RuleConfigs>\\n <PolicyName>policy_test</PolicyName>\\n <PolicyId>100001</PolicyId>\\n <RuleCount>9</RuleCount>\\n <GmtModified>2021-12-29T17:08:45Z</GmtModified>\\n <PolicyType>default</PolicyType>\\n </Policy>\\n</DescribeDcdnWafPolicyResponse>","errorExample":""}]', + ], + 'DescribeDcdnWafPolicyDomains' => [ + 'summary' => '调用DescribeDcdnWafPolicyDomains查询已接入指定WAF防护策略的加速域名。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111446', - 'abilityTreeNodes' => [ - 'FEATUREdcdn75UYDO', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Name', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Routine函数名,在同一个账号下唯一。', - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], + 'name' => 'PolicyId', + 'in' => 'query', + 'schema' => ['description' => '防护策略ID,仅支持单个输入。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '100001'], ], [ - 'name' => 'CodeDescription', - 'in' => 'formData', - 'schema' => [ - 'description' => '代码版本描述。', - 'type' => 'string', - 'required' => true, - 'example' => 'Hello World', - ], + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '页码,默认值**1**,取值范围:**1**~**100000**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页显示的域名个数,默认值**20**,取值范围:**1**~**500**之间的任意整数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'example' => '20', 'default' => '20'], ], ], 'responses' => [ @@ -22207,15 +18591,19 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => '代码版本号。', - 'type' => 'object', - 'example' => '1620876959997924701', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5CC228B4-7A67-4016-9C9F-4A4133494A91', + 'PageSize' => ['description' => '每页显示的域名个数,同请求参数的PageSize。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '153ca2cd-3c01-44be-b480-64dbc6c88630'], + 'PageNumber' => ['description' => '页码,同请求参数的PageNumber。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TotalCount' => ['description' => '查询到的域名总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'Domains' => [ + 'description' => '加速域名。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DomainName' => ['description' => '接入指定防护策略的加速域名。', 'type' => 'string', 'example' => 'example.com'], + ], + ], ], ], ], @@ -22223,29 +18611,35 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": 1620876959997924600,\\n \\"RequestId\\": \\"5CC228B4-7A67-4016-9C9F-4A4133494A91\\"\\n}","errorExample":""},{"type":"xml","example":"<CommitStagingRoutineCodeResponse>\\n<RequestId>A513734D-D17B-411E-864D-XXXX</RequestId>\\n<Content>\\n <CodeRevision>1620876959997924701</CodeRevision>\\n</Content>\\n</CommitStagingRoutineCodeResponse>","errorExample":""}]', - 'title' => '生成供线上Env环境使用的正式版本', - 'description' => '> API调用频率:100次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnErUsageData' => [ - 'summary' => '调用DescribeDcdnErUsageData查询边缘函数ER的执行次数。', - 'methods' => [ - 'get', - 'post', + 'title' => '获取接入指定防护策略的加速域名', + 'description' => '> 单用户调用频率:20次/秒。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafPolicyDomains'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafPolicyDomains', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 20,\\n \\"RequestId\\": \\"153ca2cd-3c01-44be-b480-64dbc6c88630\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 2,\\n \\"Domains\\": [\\n {\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafPolicyDomainsResponse>\\n <RequestId>153ca2cd-3c01-44be-b480-64dbc6c88630</RequestId>\\n <PageNumber>1</PageNumber>\\n <PageSize>20</PageSize>\\n <TotalCount>2</TotalCount>\\n <Domains>\\n <DomainName>example.com</DomainName>\\n </Domains>\\n <Domains>\\n <DomainName>example2.com</DomainName>\\n </Domains>\\n</DescribeDcdnWafPolicyDomainsResponse>","errorExample":""}]', + ], + 'DescribeDcdnWafPolicyValidDomains' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -22256,123 +18650,78 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn75UYDO', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'RoutineID', + 'name' => 'DefenseScene', 'in' => 'query', - 'schema' => [ - 'description' => '查询指定的边缘函数ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'routine1.test', - ], + 'schema' => ['description' => 'WAF防护策略类型,目前支持以下场景:'."\n" + ."\n" + .'- waf_group:Web基础防护'."\n" + ."\n" + .'- custom_acl:自定义防护策略'."\n" + ."\n" + .'- whitelist:白名单'."\n" + ."\n" + .'- ip_blacklist:IP黑名单。'."\n" + ."\n" + .'- region_block:区域封禁。'."\n" + ."\n" + .'- bot:Bot管理。'."\n", 'type' => 'string', 'required' => true, 'example' => 'custom_acl'], ], [ - 'name' => 'Spec', - 'in' => 'query', - 'schema' => [ - 'description' => '查询指定的边缘函数规格。取值:'."\n" - ."\n" - .'- 5ms'."\n" - ."\n" - .'- 50ms'."\n" - ."\n" - .'- 100ms', - 'type' => 'string', - 'required' => false, - 'example' => '50ms', - ], - ], - [ - 'name' => 'StartTime', + 'name' => 'DomainNameLike', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-10-30T16:00:00Z', - ], + 'schema' => ['description' => '防护域名,支持模糊查询。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ - 'name' => 'EndTime', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据结束时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - .'> 结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-10-31T16:00:00Z', - ], + 'schema' => ['description' => '页码。取值范围为:**1**~**100000**。默认值为**1**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ - 'name' => 'SplitBy', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '查询结果分组输出,可以按照函数ID(routine)或函数规格(spec)分组输出。'."\n" - ."\n" - .'>若参数为空,查询结果不分组。', - 'type' => 'string', - 'required' => false, - 'example' => 'routine', - ], + 'schema' => ['description' => '每页显示的域名个数,默认值**20**,取值范围:**1**~**500**之间的任意整数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'example' => '20', 'default' => '20'], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2018-10-31T16:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2018-10-30T16:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'C370DAF1-C838-4288-A1A0-9A87633D248E', - ], - 'ErAccData' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ErAccItem' => [ - 'description' => '数据列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ErAcc' => [ - 'description' => '边缘函数ER请求数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '125', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2018-10-30T13:00:00Z', - ], - 'Spec' => [ - 'description' => '函数规格,默认为空。请求参数SplitBy指定spec时分组输出。', - 'type' => 'string', - 'example' => '50ms', - ], - 'Routine' => [ - 'description' => '边缘函数ID,默认为空。请求参数SplitBy指定routine时分组输出。', - 'type' => 'string', - 'example' => 'routine1.test', + 'PageSize' => ['description' => '每页显示的域名个数,同请求参数的PageSize。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92C630'], + 'PageNumber' => ['description' => '页码,同请求参数的PageNumber。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TotalCount' => ['description' => '查询到的域名总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'Domains' => [ + 'description' => '防护域名列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'PolicyName' => ['description' => '防护策略名称。', 'type' => 'string', 'example' => 'test1'], + 'PolicyId' => ['description' => '防护策略ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '1000001'], + 'DomainName' => ['description' => '防护域名。', 'type' => 'string', 'example' => 'example.com'], + 'PolicyType' => ['description' => '是否为默认防护策略,取值:'."\n" + ."\n" + .'- default:默认'."\n" + ."\n" + .'- custom:非默认', 'type' => 'string', 'example' => 'default'], + 'Policies' => [ + 'description' => '域名所绑定的策略。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Id' => ['description' => '策略ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '10000002'], + 'Name' => ['description' => '策略名称。', 'type' => 'string', 'example' => 'test2'], + 'Type' => ['description' => '策略类型。', 'type' => 'string', 'example' => 'custom'], ], ], + 'required' => false, ], ], ], @@ -22383,69 +18732,83 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2018-10-31T16:00:00Z\\",\\n \\"StartTime\\": \\"2018-10-30T16:00:00Z\\",\\n \\"RequestId\\": \\"C370DAF1-C838-4288-A1A0-9A87633D248E\\",\\n \\"ErAccData\\": {\\n \\"ErAccItem\\": [\\n {\\n \\"ErAcc\\": 125,\\n \\"TimeStamp\\": \\"2018-10-30T13:00:00Z\\",\\n \\"Spec\\": \\"50ms\\",\\n \\"Routine\\": \\"routine1.test\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnErUsageDataResponse>\\n <EndTime>2018-10-31T16:00:00Z</EndTime>\\n <StartTime>2018-10-30T16:00:00Z</StartTime>\\n <RequestId>C370DAF1-C838-4288-A1A0-9A87633D248E</RequestId>\\n <ErAccData>\\n <ErAcc>125</ErAcc>\\n <TimeStamp>2018-10-30T13:00:00Z</TimeStamp>\\n <Spec>50ms</Spec>\\n <Routine>routine1.test</Routine>\\n </ErAccData>\\n <ErAccData>\\n <ErAcc>123</ErAcc>\\n <Spec>50ms</Spec>\\n <RoutineID>routine1.test</RoutineID>\\n <TimeStamp>2018-10-30T14:00:00Z</TimeStamp>\\n </ErAccData>\\n</DescribeDcdnErUsageDataResponse>","errorExample":""}]', - 'title' => '查询边缘函数ER的执行次数', - 'description' => '> '."\n" - .'> - 单用户调用频率:10次/秒。'."\n" - .'> - 支持查询的最小时间粒度为1小时;查询的最大时间跨度为24小时;可查询最大历史数据时间范围为366天。', - ], - 'DescribeEncryptRoutineUid' => [ - 'summary' => '调用DescribeEncryptRoutineUid查询边缘函数ER加密后的RoutineUid等相关信息。', - 'methods' => [ - 'get', - 'post', + 'title' => '查询可被自定义防护策略绑定的域名', + 'summary' => '调用DescribeDcdnWafPolicyValidDomains查询可被自定义防护策略绑定的域名列表。', + 'description' => '> 单用户调用频率:20次/秒。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafPolicyValidDomains'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafPolicyValidDomains', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 20,\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92C630\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 2,\\n \\"Domains\\": [\\n {\\n \\"PolicyName\\": \\"test1\\",\\n \\"PolicyId\\": 1000001,\\n \\"DomainName\\": \\"example.com\\",\\n \\"PolicyType\\": \\"default\\",\\n \\"Policies\\": [\\n {\\n \\"Id\\": 10000002,\\n \\"Name\\": \\"test2\\",\\n \\"Type\\": \\"custom\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafPolicyValidDomainsResponse>\\n <PageSize>20</PageSize>\\n <RequestId>3C6CCEC4-6B88-4D4A-93E4-D47B3D92C630</RequestId>\\n <PageNumber>1</PageNumber>\\n <TotalCount>2</TotalCount>\\n <Domains>\\n <PolicyName>test1</PolicyName>\\n <PolicyId>1000001</PolicyId>\\n <DomainName>example.com</DomainName>\\n <PolicyType>default</PolicyType>\\n <Policies>\\n <Id>10000002</Id>\\n <Name>test2</Name>\\n <Type>custom</Type>\\n </Policies>\\n </Domains>\\n</DescribeDcdnWafPolicyValidDomainsResponse>","errorExample":""}]', + ], + 'DescribeDcdnWafRule' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + ], + 'parameters' => [ + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => ['description' => '防护规则ID,仅支持单个输入。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1000001'], ], ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4DBA68F5-04A9-406B-B1E4-F2CB635E103F', - ], - 'Content' => [ - 'description' => '返回密文信息,其中包含了阿里云账号ID,时间戳和TTL。', - 'type' => 'string', - 'example' => 'XXXXXj20p4UB/xgdOH5LtXXXXXX', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE'], + 'Rule' => [ + 'description' => '防护规则信息。', + 'type' => 'object', + 'properties' => [ + 'RuleStatus' => ['description' => '防护规则状态,取值:'."\n" + ."\n" + .'- on:开启'."\n" + ."\n" + .'- off:关闭', 'type' => 'string', 'example' => 'on'], + 'DefenseScene' => ['description' => '防护策略类型,目前支持以下场景:'."\n" + ."\n" + .'- waf_group:Web基础防护'."\n" + ."\n" + .'- custom_acl:自定义防护策略'."\n" + ."\n" + .'- whitelist:白名单', 'type' => 'string', 'example' => 'custom_acl'], + 'PolicyId' => ['description' => '防护策略ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '200001'], + 'GmtModified' => ['description' => '修改时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2021-12-29T17:08:45Z'], + 'RuleId' => ['description' => '防护规则ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '100001'], + 'RuleName' => ['description' => '防护规则名称。', 'type' => 'string', 'example' => 'rule_1'], + 'RuleConfig' => ['description' => '防护规则配置。', 'type' => 'string', 'example' => '{"action":"monitor","actionExternal":"{}","ccStatus":1,"conditions":[{"key":"URL","opValue":"eq","targetKey":"request_uri","values":"/example"},{"key":"Header","opValue":"eq","subKey":"trt","targetKey":"header.trt","values":"3333"}],"effect":"service","name":"aaa333","origin":"custom","ratelimit":{"interval":5,"status":{"code":404,"count":2,"stat":{"mode":"count","value":2.0}},"target":"remote_addr","threshold":2,"ttl":1800}}'], + ], ], ], ], @@ -22453,50 +18816,65 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4DBA68F5-04A9-406B-B1E4-F2CB635E103F\\",\\n \\"Content\\": \\"XXXXXj20p4UB/xgdOH5LtXXXXXX\\"\\n}","type":"json"}]', - 'title' => '查询边缘函数ER的加密信息', - ], - 'DescribeRoutineRelatedDomains' => [ - 'summary' => '调用DescribeRoutineRelatedDomains查看边缘函数ER关联的域名列表。', - 'methods' => [ - 'get', - 'post', + 'title' => '获取单个防护规则信息', + 'summary' => '调用DescribeDcdnWafRule获取指定防护规则详细信息。', + 'description' => '> 单用户调用频率:20次/秒。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafRule'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"66A98669-CC6E-4F3E-80A6-3014697B11AE\\",\\n \\"Rule\\": {\\n \\"RuleStatus\\": \\"on\\",\\n \\"DefenseScene\\": \\"custom_acl\\",\\n \\"PolicyId\\": 200001,\\n \\"GmtModified\\": \\"2021-12-29T17:08:45Z\\",\\n \\"RuleId\\": 100001,\\n \\"RuleName\\": \\"rule_1\\",\\n \\"RuleConfig\\": \\"{\\\\\\"action\\\\\\":\\\\\\"monitor\\\\\\",\\\\\\"actionExternal\\\\\\":\\\\\\"{}\\\\\\",\\\\\\"ccStatus\\\\\\":1,\\\\\\"conditions\\\\\\":[{\\\\\\"key\\\\\\":\\\\\\"URL\\\\\\",\\\\\\"opValue\\\\\\":\\\\\\"eq\\\\\\",\\\\\\"targetKey\\\\\\":\\\\\\"request_uri\\\\\\",\\\\\\"values\\\\\\":\\\\\\"/example\\\\\\"},{\\\\\\"key\\\\\\":\\\\\\"Header\\\\\\",\\\\\\"opValue\\\\\\":\\\\\\"eq\\\\\\",\\\\\\"subKey\\\\\\":\\\\\\"trt\\\\\\",\\\\\\"targetKey\\\\\\":\\\\\\"header.trt\\\\\\",\\\\\\"values\\\\\\":\\\\\\"3333\\\\\\"}],\\\\\\"effect\\\\\\":\\\\\\"service\\\\\\",\\\\\\"name\\\\\\":\\\\\\"aaa333\\\\\\",\\\\\\"origin\\\\\\":\\\\\\"custom\\\\\\",\\\\\\"ratelimit\\\\\\":{\\\\\\"interval\\\\\\":5,\\\\\\"status\\\\\\":{\\\\\\"code\\\\\\":404,\\\\\\"count\\\\\\":2,\\\\\\"stat\\\\\\":{\\\\\\"mode\\\\\\":\\\\\\"count\\\\\\",\\\\\\"value\\\\\\":2.0}},\\\\\\"target\\\\\\":\\\\\\"remote_addr\\\\\\",\\\\\\"threshold\\\\\\":2,\\\\\\"ttl\\\\\\":1800}}\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafRuleResponse>\\n <Rule>\\n <GmtModified>2021-12-29T17:08:45Z</GmtModified>\\n <PolicyId>200001</PolicyId>\\n <RuleId>100001</RuleId>\\n <RuleName>rule_1</RuleName>\\n <RuleStatus>on</RuleStatus>\\n <RuleConfig>{\\"action\\":\\"monitor\\",\\"actionExternal\\":\\"{}\\",\\"ccStatus\\":1,\\"conditions\\":[{\\"key\\":\\"URL\\",\\"opValue\\":\\"eq\\",\\"targetKey\\":\\"request_uri\\",\\"values\\":\\"/example\\"},{\\"key\\":\\"Header\\",\\"opValue\\":\\"eq\\",\\"subKey\\":\\"trt\\",\\"targetKey\\":\\"header.trt\\",\\"values\\":\\"3333\\"}],\\"effect\\":\\"service\\",\\"name\\":\\"aaa333\\",\\"origin\\":\\"custom\\",\\"ratelimit\\":{\\"interval\\":5,\\"status\\":{\\"code\\":404,\\"count\\":2,\\"stat\\":{\\"mode\\":\\"count\\",\\"value\\":2.0}},\\"target\\":\\"remote_addr\\",\\"threshold\\":2,\\"ttl\\":1800}}</RuleConfig>\\n <DefenseScene>custom_acl</DefenseScene>\\n </Rule>\\n <RequestId>66A98669-CC6E-4F3E-80A6-3014697B11AE</RequestId>\\n</DescribeDcdnWafRuleResponse>","errorExample":""}]', + ], + 'DescribeDcdnWafRules' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnBQ0J3E'], ], 'parameters' => [ [ - 'name' => 'Name', - 'in' => 'formData', - 'schema' => [ - 'description' => '边缘函数Routine名, 同一个账号下命名唯一。', - 'type' => 'string', - 'required' => true, - 'example' => 'routine_test', - ], + 'name' => 'QueryArgs', + 'in' => 'query', + 'schema' => ['description' => '查询条件,JSON序列化后的字符串。'."\n" + .'格式如下:```QueryArgs={"PolicyIds":"防护策略ID范围","RuleIds":"防护规则ID范围","RuleNameLike":"防护规则名称","DomainNames":"防护域名","DefenseScenes":"waf_group","RuleStatus":"on","OrderBy":"GmtModified","Desc":"false"}```'."\n" + .'>不传默认查询所有防护规则。', 'type' => 'string', 'required' => false, 'example' => '{"RuleIds":"100001,200002"}'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '页码,默认值**1**,取值范围:**1**~**100000**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页显示的防护规则个数,默认值**20**,取值范围:**1**~**500**之间的任意整数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'example' => '20', 'default' => '20'], ], ], 'responses' => [ @@ -22504,434 +18882,226 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => '包含关联Routine的域名列表。', - 'type' => 'object', - 'example' => ' {"Domains": ['."\n" - .' "xxx.com",'."\n" - .' "yyy.com",'."\n" - .' ...'."\n" - .' ]}', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'FC0E34AC-0239-44A7-AB0E-800DE522C8DA', + 'PageSize' => ['description' => '每页显示的防护规则个数,同请求参数中PageSize。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE'], + 'PageNumber' => ['description' => '页码,同请求参数中PageNumber。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TotalCount' => ['description' => '防护规则总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '121'], + 'Rules' => [ + 'description' => '防护规则信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RuleStatus' => ['description' => '防护规则状态,同请求参数QueryArgs中RuleStatus。', 'type' => 'string', 'example' => 'on'], + 'DefenseScene' => ['description' => '防护策略类型,同请求参数QueryArgs中的DefenseScene。', 'type' => 'string', 'example' => 'custom_acl'], + 'PolicyId' => ['description' => '防护策略ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '200001'], + 'GmtModified' => ['description' => '修改时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2021-12-29T17:08:45Z'], + 'RuleId' => ['description' => '防护规则ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '100001'], + 'RuleName' => ['description' => '防护规则名称。', 'type' => 'string', 'example' => 'rule_1'], + 'RuleConfig' => ['description' => '防护规则配置信息。', 'type' => 'string', 'example' => '{"action":"monitor","actionExternal":"{}","ccStatus":1,"conditions":[{"key":"URL","opValue":"eq","targetKey":"request_uri","values":"/example"},{"key":"Header","opValue":"eq","subKey":"trt","targetKey":"header.trt","values":"3333"}],"effect":"service","name":"aaa333","origin":"custom","ratelimit":{"interval":5,"status":{"code":404,"count":2,"stat":{"mode":"count","value":2.0}},"target":"remote_addr","threshold":2,"ttl":1800}}'."\n"], + ], + ], ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', - ], + 'title' => '查询用户配置的防护规则', + 'summary' => '调用DescribeDcdnWafRules查询用户已配置的防护规则详细信息。', + 'description' => '> 单用户调用频率:20次/秒。', + 'requestParamsDescription' => '**QueryArgs取值说明**'."\n" + ."\n" + .'| 名称 | 类型|是否必选| 示例值| 描述|'."\n" + .'|------|-----|--------|--------|-----|'."\n" + .'| PolicyIds| string|否| 10000001,10000100| 防护策略ID范围,精确查询,多个ID用英文逗号(,)分隔。|'."\n" + .'| RuleIds| string|否| 100001,200002| 防护规则ID范围,精确查询,多个ID用英文逗号(,)分隔。|'."\n" + .'| RuleNameLike| string|否|rule_1| 防护规则名称,模糊查询。支持输入中文字符、英文字符(大小写)、数字(0~9)及下划线(_),最大输入64个字符。|'."\n" + .'| DomainNames| string|否| example.com| 防护域名列表,精确查询,最多输入50个,多个域名用英文逗号(,)分隔。|'."\n" + .'| DefenseScenes| string|否| custom_acl| 防护策略精确查询,多个用英文逗号(,)分隔。目前支持以下场景:waf\\_group:Web基础防护。custom\\_acl:自定义防护策略。whitelist:白名单。|'."\n" + .'|RuleStatus| string|否| on| 策略状态。on:开启。off:关闭。|'."\n" + .'| OrderBy| string|否| GmtModified| 排序列,支持排序的字段:GmtModified、RuleName、RuleStatus、RuleId和PolicyId。|'."\n" + .'| Desc| Boolean|否| false| 排列顺序。true:倒序。false(默认):正序。|', + 'changeSet' => [ + ['createdAt' => '2022-12-08T03:46:21.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafRules'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"FC0E34AC-0239-44A7-AB0E-800DE522C8DA\\"\\n}","type":"json"}]', - 'title' => '查询边缘函数ER关联的域名列表', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 20,\\n \\"RequestId\\": \\"66A98669-CC6E-4F3E-80A6-3014697B11AE\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 121,\\n \\"Rules\\": [\\n {\\n \\"RuleStatus\\": \\"on\\",\\n \\"DefenseScene\\": \\"custom_acl\\",\\n \\"PolicyId\\": 200001,\\n \\"GmtModified\\": \\"2021-12-29T17:08:45Z\\",\\n \\"RuleId\\": 100001,\\n \\"RuleName\\": \\"rule_1\\",\\n \\"RuleConfig\\": \\"{\\\\\\"action\\\\\\":\\\\\\"monitor\\\\\\",\\\\\\"actionExternal\\\\\\":\\\\\\"{}\\\\\\",\\\\\\"ccStatus\\\\\\":1,\\\\\\"conditions\\\\\\":[{\\\\\\"key\\\\\\":\\\\\\"URL\\\\\\",\\\\\\"opValue\\\\\\":\\\\\\"eq\\\\\\",\\\\\\"targetKey\\\\\\":\\\\\\"request_uri\\\\\\",\\\\\\"values\\\\\\":\\\\\\"/example\\\\\\"},{\\\\\\"key\\\\\\":\\\\\\"Header\\\\\\",\\\\\\"opValue\\\\\\":\\\\\\"eq\\\\\\",\\\\\\"subKey\\\\\\":\\\\\\"trt\\\\\\",\\\\\\"targetKey\\\\\\":\\\\\\"header.trt\\\\\\",\\\\\\"values\\\\\\":\\\\\\"3333\\\\\\"}],\\\\\\"effect\\\\\\":\\\\\\"service\\\\\\",\\\\\\"name\\\\\\":\\\\\\"aaa333\\\\\\",\\\\\\"origin\\\\\\":\\\\\\"custom\\\\\\",\\\\\\"ratelimit\\\\\\":{\\\\\\"interval\\\\\\":5,\\\\\\"status\\\\\\":{\\\\\\"code\\\\\\":404,\\\\\\"count\\\\\\":2,\\\\\\"stat\\\\\\":{\\\\\\"mode\\\\\\":\\\\\\"count\\\\\\",\\\\\\"value\\\\\\":2.0}},\\\\\\"target\\\\\\":\\\\\\"remote_addr\\\\\\",\\\\\\"threshold\\\\\\":2,\\\\\\"ttl\\\\\\":1800}}\\\\n\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafRulesResponse>\\n <TotalCount>121</TotalCount>\\n <Rules>\\n <GmtModified>2021-12-29T17:08:45Z</GmtModified>\\n <PolicyId>200001</PolicyId>\\n <RuleId>100001</RuleId>\\n <RuleName>rule_1</RuleName>\\n <RuleStatus>on</RuleStatus>\\n <RuleConfig>{\\"action\\":\\"monitor\\",\\"actionExternal\\":\\"{}\\",\\"ccStatus\\":1,\\"conditions\\":[{\\"key\\":\\"URL\\",\\"opValue\\":\\"eq\\",\\"targetKey\\":\\"request_uri\\",\\"values\\":\\"/example\\"},{\\"key\\":\\"Header\\",\\"opValue\\":\\"eq\\",\\"subKey\\":\\"trt\\",\\"targetKey\\":\\"header.trt\\",\\"values\\":\\"3333\\"}],\\"effect\\":\\"service\\",\\"name\\":\\"aaa333\\",\\"origin\\":\\"custom\\",\\"ratelimit\\":{\\"interval\\":5,\\"status\\":{\\"code\\":404,\\"count\\":2,\\"stat\\":{\\"mode\\":\\"count\\",\\"value\\":2.0}},\\"target\\":\\"remote_addr\\",\\"threshold\\":2,\\"ttl\\":1800}}</RuleConfig>\\n <DefenseScene>custom_acl</DefenseScene>\\n </Rules>\\n <Rules>\\n <GmtModified>2021-12-19T17:08:45Z</GmtModified>\\n <PolicyId>200001</PolicyId>\\n <RuleId>200002</RuleId>\\n <RuleStatus>off</RuleStatus>\\n <RuleConfig>{\\"action\\":\\"block\\"}</RuleConfig>\\n <DefenseScene>waf_group</DefenseScene>\\n </Rules>\\n <PageNumber>1</PageNumber>\\n <PageSize>20</PageSize>\\n <RequestId>66A98669-CC6E-4F3E-80A6-3014697B11AE</RequestId>\\n</DescribeDcdnWafRulesResponse>","errorExample":""}]', ], - 'RefreshErObjectCaches' => [ - 'summary' => '调用RefreshErObjectCaches刷新通过边缘函数 Cache API写入的缓存和通过fetch子请求写入的缓存。支持URL批量刷新。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'DescribeDcdnWafScenes' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '193439', - 'abilityTreeNodes' => [ - 'FEATUREdcdn75UYDO', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'ObjectPath', - 'in' => 'query', - 'schema' => [ - 'description' => '刷新URL。'."\n" - .'>- 多个URL之间用换行符(\\n)或(\\r\\n)分隔,ObjectPath的单条长度最长为1024个字符。'."\n" - .'>- 一次请求中的URL都必须属于同一个域名。'."\n" - .'>- 一次请求最多包含1000条URL。', - 'type' => 'string', - 'required' => true, - 'example' => 'http://example.com/examplefile.txt', - ], - ], - [ - 'name' => 'ObjectType', - 'in' => 'query', - 'schema' => [ - 'description' => '刷新类型。取值范围:'."\n" - ."\n" - .'- **File**(默认值):URL。'."\n" - .'- **Directory**:目录。'."\n" - .'- **Regex**:正则刷新。'."\n" - .'- **IgnoreParams**:去参数刷新。去参数指的是去除请求URL中`?`及`?`之后的参数,去参数刷新指的是用户先通过接口提交去参数后的URL,然后用户提交的待刷新URL将会与已缓存资源的URL进行去参数匹配,如果已缓存资源的URL去参数以后与待刷新URL匹配,那么CDN节点将对缓存资源执行刷新处理。'."\n" - ."\n" - .'>目录刷新默认采用标记资源过期的处理方式,不支持删除目录。目录刷新会将节点上对应目录置为过期,后续有用户访问时,DCDN节点将会回源站校验目录是否更新,有更新时从源站重新拉取新版本返回给用户,未有更新时源站响应304状态码。', - 'type' => 'string', - 'required' => true, - 'example' => 'File', - ], - ], - [ - 'name' => 'MergeDomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '合并刷新域名,刷新的时候会合并域名的调度域节点进行刷新。'."\n" - .'>多个域名之间用英文逗号(,)隔开。', - 'type' => 'string', - 'required' => false, - 'example' => 'a.test.com,b.test.com', - ], - ], - [ - 'name' => 'RoutineId', - 'in' => 'query', - 'schema' => [ - 'description' => '边缘函数脚本的程序ID,也叫函数ID,由"Name.Subdomain"组合而成,作为客户边缘函数代码的唯一标识。'."\n" - ."\n" - .'>- 当刷新Cache API写入的缓存时,需要指定此字段。'."\n" - .'>- 当刷新Fetch子请求写入的缓存时,不需要指定此字段。', - 'type' => 'string', - 'required' => false, - 'example' => ' test.mysubdomain', - ], - ], - [ - 'name' => 'Force', + 'name' => 'DefenseScenes', 'in' => 'query', - 'schema' => [ - 'description' => '当回源内容和源站资源对比后不一致时,是否刷新对应目录下的资源。默认为false。'."\n" - .'- **true**:刷新对应目录下的全部资源。'."\n" - .'- **false**:刷新对应目录下发生变更的资源。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '设置查询的防护策略类型,多个策略类型用英文逗号(,)分隔。目前支持以下场景:'."\n" + ."\n" + .'- waf_group:Web基础防护。'."\n" + ."\n" + .'- custom_acl:自定义防护策略。'."\n" + ."\n" + .'- whitelist:白名单。'."\n" + ."\n" + .'- ip_blacklist:IP黑名单。'."\n" + ."\n" + .'- region_block:区域封禁。'."\n" + ."\n" + .'- bot:Bot管理。'."\n" + ."\n" + .'>不传默认查询所有场景。'."\n", 'type' => 'string', 'required' => false, 'example' => 'waf_group,custom_acl,whitelist'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', - ], - 'RefreshTaskId' => [ - 'description' => '刷新返回的任务ID。多个ID用逗号(,)分隔。'."\n", - 'type' => 'string', - 'example' => '95248880', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '3D7BB13C-DD84-5654-A835-B8E1385DE274'], + 'DefenseScenes' => [ + 'description' => '防护策略类型。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'PolicyCount' => ['description' => '该策略类型已配置的策略总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'RuleCount' => ['description' => '该策略类型已配置的防护规则总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '12'], + 'DefenseScene' => ['description' => '防护策略类型,同请求参数DefenseScenes取值。', 'type' => 'string', 'example' => 'waf_group'], + ], + ], ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'SingleRequest.OverLimit', - 'errorMessage' => 'A maximum of 1000 URLs are supported for each request.', - ], - [ - 'errorCode' => 'InvalidObjectType.Malformed', - 'errorMessage' => 'The specified ObjectType is invalid.', - ], - [ - 'errorCode' => 'InvalidObjectPath.Malformed', - 'errorMessage' => 'The specified ObjectPath is invalid.', - ], - [ - 'errorCode' => 'InvalidObjectPath.Size.Malformed', - 'errorMessage' => 'The size of ObjectPath is bigger than 1000.', - ], - [ - 'errorCode' => 'QuotaExceeded.Refresh', - 'errorMessage' => 'You\'ve exceeded the prescribed refresh limits.', - ], - [ - 'errorCode' => 'InvalidExtensiveDomain.ValueNotSupported', - 'errorMessage' => 'The specified ExtensiveDomain is not supported.', - ], - [ - 'errorCode' => 'QuotaPerMinuteExceeded.Refresh', - 'errorMessage' => 'You tried to refresh too frequently; please try again later.', - ], - [ - 'errorCode' => 'TooMany.Refresh', - 'errorMessage' => 'The refresh queue is full; please try again later.', - ], - [ - 'errorCode' => 'PreloadQueueFull', - 'errorMessage' => 'Preload queue is full, please try again later!', - ], - [ - 'errorCode' => 'InvalidStations.Malformed', - 'errorMessage' => 'The specified Stations is invalid.', - ], - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => 'The parameters you provided are invalid.', - ], + 'title' => '查询用户使用的防护策略类型', + 'summary' => '调用DescribeDcdnWafScenes查询用户已使用的防护策略类型信息。', + 'description' => '> 单用户调用频率:20次/秒。', + 'changeSet' => [ + ['createdAt' => '2022-12-08T06:03:12.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafScenes'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafScenes', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\",\\n \\"RefreshTaskId\\": \\"95248880\\"\\n}","type":"json"}]', - 'title' => '刷新边缘函数缓存', - 'description' => '> '."\n" - .'> - 请求方式:支持POST请求,参数用form表单显示。'."\n" - .'> - 相关接口:刷新类接口包含[RefreshDcdnObjectCaches](~~130620~~)刷新接口。'."\n" - .'> - URL刷新配额(每日):默认情况下,一个账号每日最多可以提交10000条URL刷新和100个目录刷新,目录刷新包含子目录。'."\n" - .'> - 每次请求最多支持提交1000条URL刷新或者100个目录刷新。'."\n" - .'> - 单个域名每分钟最多支持提交1000条URL刷新。'."\n" - .'> - 单用户调用频率:30次/秒。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"3D7BB13C-DD84-5654-A835-B8E1385DE274\\",\\n \\"DefenseScenes\\": [\\n {\\n \\"PolicyCount\\": 10,\\n \\"RuleCount\\": 12,\\n \\"DefenseScene\\": \\"waf_group\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafScenesResponse>\\n <DefenseScenes>\\n <DefenseScene>waf_group</DefenseScene>\\n <RuleCount>12</RuleCount>\\n <PolicyCount>10</PolicyCount>\\n </DefenseScenes>\\n <DefenseScenes>\\n <DefenseScene>custom_acl</DefenseScene>\\n <RuleCount>5</RuleCount>\\n <PolicyCount>10</PolicyCount>\\n </DefenseScenes>\\n <DefenseScenes>\\n <DefenseScene>whitelist</DefenseScene>\\n <RuleCount>5</RuleCount>\\n <PolicyCount>10</PolicyCount>\\n </DefenseScenes>\\n <requestId>3D7BB13C-DD84-5654-A835-B8E1385DE274</requestId>\\n</DescribeDcdnWafScenesResponse>","errorExample":""}]', ], - 'SetDcdnDomainStagingConfig' => [ - 'summary' => '调用SetDcdnDomainStagingConfig设置或修改域名配置(灰度)。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnWafService' => [ + 'summary' => '调用DescribeDcdnWafService查询DCDN WAF服务状态,包括服务开通时间、版本信息、当前业务状态、请求数计费方式、规则数计费方式等。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn2JMMUY', - ], - ], - 'parameters' => [ - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,多个域名用英文逗号(,)分隔。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'Functions', - 'in' => 'query', - 'schema' => [ - 'description' => '功能列表,格式如下:'."\n" - ."\n" - .'- functionName(功能名称,必填):可配置功能请参见[功能列表](~~410622~~),多个参数之间用半角逗号(,)分隔。'."\n" - ."\n" - .'- argName(参数名称,必填):functionName的配置项(可配置多个配置项)。'."\n" - ."\n" - .'- argValue(参数值,必填):functionName的配置项的取值。'."\n" - ."\n" - .'- parentid(规则条件ID,非必填):通过配置[域名配置功能参数](~~410622~~)中的功能函数condition(规则引擎),可以创建出规则条件(规则条件可以通过识别用户请求中携带的各种参数来匹配和过滤用户请求),每一个规则条件被创建以后都会生成一个对应的[configid](~~410558~~),configid可以被当作ParentId参数被其他功能函数引用,这样规则条件就可以与功能配置一起组合形成更灵活的配置。'."\n" - ."\n" - .'parentId为 -1:表示删除该配置里面已有的规则条件。'."\n" - ."\n" - .' ```'."\n" - .' "functionArgs": [{'."\n" - .' "argName": "功能参数A", '."\n" - .' "argValue": "功能参数A对应的值"'."\n" - .' }, '."\n" - .' {'."\n" - .' "argName": "功能参数B", '."\n" - .' "argValue": "功能参数B对应的值"'."\n" - .' }], '."\n" - .'```'."\n" - ."\n" - .' "functionName": "功能名称",'."\n" - .' "parentId": 选填项,对应引用规则条件的configid'."\n" - .'}]'."\n" - ."\n" - .'不使用parentId的情况下,配置示例如下: 使用函数origin_request_header添加回源HTTP请求头的时候引用了configid=222728944812032的规则条件,请求参数如下:'."\n" - ."\n" - .' ```'."\n" - .' "functionArgs": [{'."\n" - .' "argName": "header_operation_type",'."\n" - .' "argValue": "add"'."\n" - .' }, {'."\n" - .' "argName": "header_name",'."\n" - .' "argValue": "Accept-Encoding"'."\n" - .' }, {'."\n" - .' "argName": "header_value",'."\n" - .' "argValue": "gzip"'."\n" - .' }, {'."\n" - .' "argName": "duplicate",'."\n" - .' "argValue": "off"'."\n" - .' }],'."\n" - .' "functionName": "origin_request_header"'."\n" - .'}]'."\n" - ."\n" - .'```'."\n" - ."\n" - .'使用parentId的情况下,配置示例如下: 使用函数origin_request_header添加回源HTTP请求头的时候引用了configid=222728944812032的规则条件,请求参数如下:'."\n" - ."\n" - .'```'."\n" - .' "functionArgs": [{'."\n" - .' "argName": "header_operation_type",'."\n" - .' "argValue": "add"'."\n" - .' }, {'."\n" - .' "argName": "header_name",'."\n" - .' "argValue": "Accept-Encoding"'."\n" - .' }, {'."\n" - .' "argName": "header_value",'."\n" - .' "argValue": "gzip"'."\n" - .' }, {'."\n" - .' "argName": "duplicate",'."\n" - .' "argValue": "off"'."\n" - .' }],'."\n" - .' "functionName": "origin_request_header",'."\n" - .' "parentId": 222728944812032'."\n" - .'}]'."\n" - .'```'."\n" - ."\n" - .'对一个已经使用了parentId的功能配置删除对parentId的引用,配置示例如下: 函数origin_request_header添加回源HTTP请求头的时候已经引用了configid=222728944812032的规则条件,现在要删掉对规则条件的引用,请求参数如下:'."\n" - ."\n" - .'```'."\n" - .' "functionArgs": [{'."\n" - .' "argName": "header_operation_type",'."\n" - .' "argValue": "add"'."\n" - .' }, {'."\n" - .' "argName": "header_name",'."\n" - .' "argValue": "Accept-Encoding"'."\n" - .' }, {'."\n" - .' "argName": "header_value",'."\n" - .' "argValue": "gzip"'."\n" - .' }, {'."\n" - .' "argName": "duplicate",'."\n" - .' "argValue": "off"'."\n" - .' }],'."\n" - .' "functionName": "origin_request_header",'."\n" - .' "parentId": -1'."\n" - .'}]'."\n" - .'```', - 'type' => 'string', - 'required' => true, - 'example' => ' '."\n" - .'[{"functionArgs": [{"argName": "key","argValue": "Content-Encoding"},{"argName": "value","argValue": "gzip"}],"functionName": "set_resp_header"} ]', - ], - ], + 'abilityTreeCode' => '133730', + 'abilityTreeNodes' => ['FEATUREdcdnZA9EPX'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], + 'Status' => ['description' => '业务状态,取值:'."\n" + ."\n" + .'- Normal:正常'."\n" + ."\n" + .'- WaitForExpire:等待停机'."\n" + ."\n" + .'- Expired:已过期'."\n" + ."\n" + .'- Released:释放', 'type' => 'string', 'example' => 'Normal'], + 'RequestBillingType' => ['description' => '请求数计费方式。', 'type' => 'string', 'example' => 'dcdn_waf_req'], + 'Edition' => ['description' => 'WAF版本信息。', 'type' => 'string', 'example' => 'dcdnwaf_afterpay'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '4A95CA90-E0F2-1BF6-99E0-8C1510CAF649'], + 'OpeningTime' => ['description' => '服务开通时间。', 'type' => 'string', 'example' => '2021-09-26T16:00:00Z'], + 'Enabled' => ['description' => '服务开通状态。'."\n" + ."\n" + .'- on:开通'."\n" + .'- off:未开通', 'type' => 'string', 'example' => 'on'], + 'RuleBillingType' => ['description' => '规则数计费方式,按SeCU数量计费。', 'type' => 'string', 'example' => 'dcdn_waf_rule'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidFunctionName.ValueNotSupported', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidArgName.ValueNotSupported', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidArgValue.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'InvalidRule.Malformed', - 'errorMessage' => '%s', - ], - [ - 'errorCode' => 'ConfigurationConflicts', - 'errorMessage' => 'The staging environment has a configuration in effect. You cannot modify the production environment configuration.', - ], - [ - 'errorCode' => 'GrayConfigExist', - 'errorMessage' => 'A canary configuration already exists under the domain.', - ], - [ - 'errorCode' => 'InvalidDomain.BelongToConfigGroup', - 'errorMessage' => 'The domain is bound to a configuration group. Modify the domain in the configuration group.', - ], - [ - 'errorCode' => 'EdgeScriptCountExceedLimit', - 'errorMessage' => 'The number of rules exceeds the default limit.', - ], - [ - 'errorCode' => 'EdgeScripOptionsHasInnerConfig', - 'errorMessage' => 'The extension has a background configuration or a parameter of this configuration is invalid. For more information, submit a ticket.', - ], - [ - 'errorCode' => 'EdgeScriptGrammarNotSupport', - 'errorMessage' => 'A background customization rule exists or a parameter of this configuration is invalid. For more information, submit a ticket.', - ], - [ - 'errorCode' => 'EdgeScriptNotSupportJs', - 'errorMessage' => 'JavaScript rules are not supported. For more information, submit a ticket.', + 'title' => '查询WAF服务状态', + 'description' => '> 单用户调用频率:20次/秒。', + 'changeSet' => [ + ['createdAt' => '2022-10-27T06:16:01.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafService'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<SetDcdnDomainStagingConfigResponse>\\r\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</SetDcdnDomainStagingConfigResponse>","errorExample":""}]', - 'title' => '设置或修改域名配置(灰度)', - 'description' => '> 单用户调用频率:30次/秒。', - 'requestParamsDescription' => '某些功能可以设置多条记录,例如:edge_function,当需要更新其中某条记录时,可通过该条记录的ConfigId(Long类型)来指定要修改的配置项。格式如下:'."\n" - .'```'."\n" - .'[{"functionArgs":[{"argName":"enable","argValue":"on"},{"argName":"pri","argValue":"1"},{"argName":"rule","argValue":"yyy"}],"ConfigId":123456,"functionName":"edge_function"}]'."\n" - .'```'."\n" - ."\n" - .'**功能说明**'."\n" - .'所有参数值均按照字符串类型处理。'."\n" - .'| 功能名称 | 参数 |'."\n" - .'| --- | --- |'."\n" - .'| edge_function:边缘函数 | 必填参数:<br />rule:DSL规则。<br />pri:优先级。<br />enable:本条规则是否生效,取值:on或off。<br /> 可选参数:<br />name:规则名称。<br />pos:规则执行位置。DCDN域名仅支持head,不支持foot。<br />brk:命中本条规则后,当前执行位置剩余规则均跳过。<br />option:option管控。<br />grammar:grammar管控。可选值:空、es2、js。<br />jsmode:js域名白单管控。可选值:redirect、bypass。<br /> |', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Status\\": \\"Normal\\",\\n \\"RequestBillingType\\": \\"dcdn_waf_req\\",\\n \\"Edition\\": \\"dcdnwaf_afterpay\\",\\n \\"RequestId\\": \\"4A95CA90-E0F2-1BF6-99E0-8C1510CAF649\\",\\n \\"OpeningTime\\": \\"2021-09-26T16:00:00Z\\",\\n \\"Enabled\\": \\"on\\",\\n \\"RuleBillingType\\": \\"dcdn_waf_rule\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafServiceResponse>\\n <RequestId>4A95CA90-E0F2-1BF6-99E0-8C1510CAF649</RequestId>\\n <RuleBillingType>dcdn_waf_rule</RuleBillingType>\\n <OpeningTime>2022-01-13T02:30:55Z</OpeningTime>\\n <RequestBillingType>dcdn_waf_req</RequestBillingType>\\n <Edition>dcdnwaf_afterpay</Edition>\\n <Status>Normal</Status>\\n <Enabled>on</Enabled>\\n</DescribeDcdnWafServiceResponse>","errorExample":""}]', ], - 'DescribeDcdnDomainStagingConfig' => [ - 'summary' => '调用DescribeDcdnDomainStagingConfig查询环境配置(灰度)。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnWafSpecInfo' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -22942,85 +19112,44 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn2JMMUY', - ], - ], - 'parameters' => [ - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '加速域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'FunctionNames', - 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => '功能列表名称,多个用逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'aliauth', - ], - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], + 'parameters' => [], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'C80705BF-0F76-41FA-BAD1-5B59296A4E59', - ], - 'DomainConfigs' => [ - 'description' => '加速域名配置。', + 'Edition' => ['description' => ' WAF版本信息。', 'type' => 'string', 'example' => 'dcdnwaf_afterpay'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '7281593a-f414-42c1-b7ba-2ce65e21cc00'], + 'SpecInfos' => [ + 'description' => '支持的防护策略类型及防护规则配置信息。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => '状态。取值:'."\n" - .'- success:成功。'."\n" - .'- testing:测试中。'."\n" - .'- failed:失败。'."\n" - .'- configuring:配置中。', - 'type' => 'string', - 'example' => 'success', - ], - 'ConfigId' => [ - 'description' => '配置ID。', - 'type' => 'string', - 'example' => '6295', - ], - 'FunctionName' => [ - 'description' => '功能名称。', - 'type' => 'string', - 'example' => 'aliauth', - ], - 'FunctionArgs' => [ - 'description' => '功能说明。', + 'DefenseScene' => ['description' => '防护策略类型,目前支持以下场景:'."\n" + ."\n" + .'- waf_group:Web基础防护。'."\n" + ."\n" + .'- custom_acl:自定义防护策略。'."\n" + ."\n" + .'- whitelist:白名单。'."\n" + ."\n" + .'- ip_blacklist:IP黑名单。'."\n" + ."\n" + .'- region_block:区域封禁。'."\n" + ."\n" + .'- bot:Bot管理。', 'type' => 'string', 'example' => 'custom_acl'], + 'Configs' => [ + 'description' => '防护规则对应的配置信息。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ArgName' => [ - 'description' => '配置名称。', - 'type' => 'string', - 'example' => 'auth_type', - ], - 'ArgValue' => [ - 'description' => '配置值。', - 'type' => 'string', - 'example' => 'req_auth', - ], + 'Value' => ['description' => '防护规则对应的配置表达式值。', 'type' => 'string', 'example' => 'on'], + 'Config' => ['description' => '防护规则对应的配置代码。', 'type' => 'string', 'example' => 'enable'], + 'Expr' => ['description' => '防护规则对应的配置表达式。', 'type' => 'string', 'example' => 'equal'], ], ], ], @@ -23031,67 +19160,80 @@ ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Invalid%s.ValueNotSupported', - 'errorMessage' => 'FunctionName [%s] is not supported.', + 'title' => '查询WAF版本信息', + 'summary' => '调用DescribeDcdnWafSpecInfo查询使用的DCDN WAF版本信息。', + 'description' => '> 单用户调用频率:20次/秒。', + 'changeSet' => [ + ['createdAt' => '2022-12-08T06:42:23.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafSpecInfo'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafSpecInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C80705BF-0F76-41FA-BAD1-5B59296A4E59\\",\\n \\"DomainConfigs\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"ConfigId\\": \\"6295\\",\\n \\"FunctionName\\": \\"aliauth\\",\\n \\"FunctionArgs\\": [\\n {\\n \\"ArgName\\": \\"auth_type\\",\\n \\"ArgValue\\": \\"req_auth\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainStagingConfigResponse>\\n<RequestId>C80705BF-0F76-41FA-BAD1-5B59296A4E59</RequestId>\\n<DomainConfigs>\\n <Status>success</Status>\\n <FunctionArgs>\\n <ArgName>auth_type</ArgName>\\n <ArgValue>req_auth</ArgValue>\\n </FunctionArgs>\\n <FunctionArgs>\\n <ArgName>ali_auth_dual</ArgName>\\n <ArgValue>on</ArgValue>\\n </FunctionArgs>\\n <ConfigId>6295</ConfigId>\\n <FunctionName>aliauth</FunctionName>\\n</DomainConfigs>\\n</DescribeDcdnDomainStagingConfigResponse>\\n","errorExample":""}]', - 'title' => '查询环境配置(灰度)', - 'description' => '> 单用户调用频率:30次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Edition\\": \\"dcdnwaf_afterpay\\",\\n \\"RequestId\\": \\"7281593a-f414-42c1-b7ba-2ce65e21cc00\\",\\n \\"SpecInfos\\": [\\n {\\n \\"DefenseScene\\": \\"custom_acl\\",\\n \\"Configs\\": [\\n {\\n \\"Value\\": \\"on\\",\\n \\"Config\\": \\"enable\\",\\n \\"Expr\\": \\"equal\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafSpecInfoResponse>\\n <RequestId>7281593a-f414-42c1-b7ba-2ce65e21cc00</RequestId>\\n <Edition>dcdnwaf_afterpay</Edition>\\n <SpecInfos>\\n <DefenseScene>custom_acl</DefenseScene>\\n <Configs>\\n <Config>enable</Config>\\n <Expr>equal</Expr>\\n <Value>on</Value>\\n </Configs>\\n <Configs>\\n <Code>custom_rules_number</Code>\\n <Expr>equal</Expr>\\n <Value>20</Value>\\n </Configs>\\n </SpecInfos>\\n <SpecInfos>\\n <DefenseScene>waf_group</DefenseScene>\\n <Configs>\\n <Config>enable</Config>\\n <Expr>equal</Expr>\\n <Value>on</Value>\\n </Configs>\\n </SpecInfos>\\n <SpecInfos>\\n <DefenseScene>whitelist</DefenseScene>\\n <Configs>\\n <Config>enable</Config>\\n <Expr>equal</Expr>\\n <Value>on</Value>\\n </Configs>\\n <Configs>\\n <Config>custom_rules_number</Config>\\n <Expr>equal</Expr>\\n <Value>20</Value>\\n </Configs>\\n </SpecInfos>\\n</DescribeDcdnWafSpecInfoResponse>","errorExample":""}]', ], - 'DeleteDcdnSpecificStagingConfig' => [ - 'summary' => '调用DeleteDcdnSpecificStagingConfig删除加速域名的配置(灰度)。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnWafUsageData' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn2JMMUY', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,仅支持传单个域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => '查询域名。若参数为空,默认返回所有加速域名。'."\n", 'type' => 'string', 'required' => false, 'example' => 'example.com'], ], [ - 'name' => 'ConfigId', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '配置ID,多个用逗号(,)分隔。'."\n" - ."\n" - .'您可以调用[DescribeDcdnDomainStagingConfig](~~DescribeDcdnDomainStagingConfig~~)查询配置ID。', - 'type' => 'string', - 'required' => true, - 'example' => '2317', - ], + 'schema' => ['description' => '获取数据起始时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2018-09-30T16:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据结束时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'>结束时间需大于起始时间。', 'type' => 'string', 'required' => false, 'example' => '2018-10-01T16:00:00Z'], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => ['description' => '查询数据的时间粒度,单位为秒。'."\n" + ."\n" + .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值。', 'type' => 'string', 'required' => false, 'example' => '300'], + ], + [ + 'name' => 'SplitBy', + 'in' => 'query', + 'schema' => ['description' => '查询结果分组方式。取值:'."\n" + ."\n" + .'- domain:按加速域名分组。'."\n" + ."\n" + .'- 参数为空(默认):查询结果不分组。', 'type' => 'string', 'required' => false, 'example' => 'domain'], ], ], 'responses' => [ @@ -23099,320 +19241,446 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2018-10-01T16:00:00Z'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2018-09-30T16:00:00Z'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CB1A380B-09F0-41BB-802B-72F8FD6DA2FE'], + 'WafUsageData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'WafUsageDataItem' => [ + 'description' => '加速域名使用WAF信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ObserveCnt' => ['description' => '观察的请求数。', 'type' => 'integer', 'format' => 'int64', 'example' => '300'], + 'Domain' => ['description' => '加速域名。', 'type' => 'string', 'example' => 'example.com'], + 'BlockCnt' => ['description' => '拦截的请求数。', 'type' => 'integer', 'format' => 'int64', 'example' => '300'], + 'AccessCnt' => ['description' => '正常访问的请求数。', 'type' => 'integer', 'format' => 'int64', 'example' => '600'], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2018-09-30T16:00:00Z'], + 'SecCu' => ['description' => '产生的SeCU计量单元数。', 'type' => 'integer', 'format' => 'int64', 'example' => '50'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid%s.ValueNotSupported', - 'errorMessage' => 'FunctionName [%s] is not supported.', - ], - [ - 'errorCode' => 'GrayConfigIsNull', - 'errorMessage' => 'You cannot delete all gary configurations. You can clear them by rolling back the simulation environment.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => '请同时提供开始时间和结束时间。'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified StartTime or EndTime is malformed.', 'description' => '开始时间或结束时间格式错误。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => '时间跨度超过限制,请参照接口文档,配置合理查询跨度。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDcdnSpecificStagingConfigResponse>\\r\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</DeleteDcdnSpecificStagingConfigResponse>\\r\\n","errorExample":""}]', - 'title' => '删除加速域名的配置(灰度)', - 'description' => '> 单用户调用频率:20次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'PublishDcdnStagingConfigToProduction' => [ - 'summary' => '调用PublishDcdnStagingConfigToProduction将模拟环境的全站加速配置发布到生产环境。', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => [], + 'title' => '查询WAF用量数据', + 'summary' => '调用DescribeDcdnWafUsageData查询WAF用量数据。', + 'description' => '> '."\n" + .'> - 单用户调用频率: 10次/秒'."\n" + .'> - 支持查询的最小时间粒度为5分钟;查询的最大时间跨度为31天;可查询最大历史数据时间范围为90天。', + 'changeSet' => [ + ['createdAt' => '2022-12-13T07:06:27.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafUsageData'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2018-10-01T16:00:00Z\\",\\n \\"StartTime\\": \\"2018-09-30T16:00:00Z\\",\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-802B-72F8FD6DA2FE\\",\\n \\"WafUsageData\\": {\\n \\"WafUsageDataItem\\": [\\n {\\n \\"ObserveCnt\\": 300,\\n \\"Domain\\": \\"example.com\\",\\n \\"BlockCnt\\": 300,\\n \\"AccessCnt\\": 600,\\n \\"TimeStamp\\": \\"2018-09-30T16:00:00Z\\",\\n \\"SecCu\\": 50\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafUsageDataResponse>\\n <RequestId>CB1A380B-09F0-41BB-802B-72F8FD6DA2FE</RequestId>\\n <WafUsageData>\\n <TimeStamp>2018-09-30T16:00:00Z</TimeStamp>\\n <Domain>example.com</Domain>\\n <SecCu>50</SecCu>\\n <AccessCnt>600</AccessCnt>\\n <BlockCnt>300</BlockCnt>\\n <ObserveCnt>300</ObserveCnt>\\n </WafUsageData>\\n <WafUsageData>\\n <TimeStamp>2018-09-30T16:05:00Z</TimeStamp>\\n <Domain>example.com</Domain>\\n <SecCu>50</SecCu>\\n <AccessCnt>600</AccessCnt>\\n <BlockCnt>300</BlockCnt>\\n <ObserveCnt>300</ObserveCnt>\\n </WafUsageData>\\n</DescribeDcdnWafUsageDataResponse>","errorExample":""}]', + ], + 'DescribeDcdnsecService' => [ + 'summary' => '调用DescribeDcdnsecService查询安全DCDN服务状态,包括服务开通时间、结束时间、当前业务状态等。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], - ], - 'parameters' => [ - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '加速域名,仅支持传单个域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'FunctionName', - 'in' => 'query', - 'schema' => [ - 'description' => '功能列表名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'aliauth', - ], - ], + 'abilityTreeCode' => '111544', + 'abilityTreeNodes' => ['FEATUREdcdnZA9EPX'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'EndTime' => ['description' => '服务到期时间。', 'type' => 'string', 'example' => '2021-09-26T16:00:00Z'], + 'StartTime' => ['description' => '服务开通时间。', 'type' => 'string', 'example' => '2021-08-26T02:52:08Z'], + 'ChangingAffectTime' => ['description' => '下次生效时间,GMT时间。', 'type' => 'string', 'example' => '2021-09-30T16:00:00Z'], + 'DomainNum' => ['description' => '用安全DCDN服务的加速域名数量。', 'type' => 'string', 'example' => '130'], + 'ChangingChargeType' => ['description' => '下次生效的计费类型。'."\n" + ."\n" + .'- **PayByTraffic**:流量。'."\n" + ."\n" + .'- **PayByBandwidth**:带宽。'."\n" + ."\n" + .'- **PayByBandwidth95**:月95。'."\n" + ."\n" + .'- **PayByBandwidth_monthavg**:月平均带宽。'."\n" + ."\n" + .'- **PayByBandwidth_month4th**:月第四峰值。'."\n" + ."\n" + .'- **PayByBandwidth_monthday95avg**:月平均95。'."\n" + ."\n" + .'- **PayByBandwidth_nighthalf95**:月95夜间减半。', 'type' => 'string', 'example' => 'PayByBandwidth'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'E20B46E1-9BCD-10E5-AAEF-6D7B737467A1'], + 'Version' => ['description' => '版本。', 'type' => 'string', 'example' => 'enterprise'], + 'RequestType' => ['description' => '请求数计费模式。', 'type' => 'string', 'example' => 'PayBySecRequest'], + 'FlowType' => ['description' => '流量计费模式。', 'type' => 'string', 'example' => 'PayBySecTraffic'], + 'InternetChargeType' => ['description' => '当前计费类型。'."\n" + ."\n" + .'- **PayByTraffic**:流量。'."\n" + ."\n" + .'- **PayByBandwidth**:带宽。'."\n" + ."\n" + .'- **PayByBandwidth95**:月95。'."\n" + ."\n" + .'- **PayByBandwidth_monthavg**:月平均带宽。'."\n" + ."\n" + .'- **PayByBandwidth_month4th**:月第四峰值。'."\n" + ."\n" + .'- **PayByBandwidth_monthday95avg**:月平均95。'."\n" + ."\n" + .'- **PayByBandwidth_nighthalf95**:月95夜间减半。', 'type' => 'string', 'example' => 'PayByTraffic'], + 'InstanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'dcdn_dcdnsec_public_cn-123***'], + 'OperationLocks' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LockReason' => [ + 'description' => '业务锁定状态。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'LockReason' => ['description' => '锁定原因。', 'type' => 'string', 'example' => ' financial'], + ], + ], + ], + ], ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'StagingConfig.Failed', - 'errorMessage' => 'The rules for the staging environment are being configured. Try again later.', - ], - ], - 404 => [ - [ - 'errorCode' => 'StagingConfig.NotFound', - 'errorMessage' => 'The staging configuration does not exist.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<PublishDcdnStagingConfigToProductionResponse>\\r\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</PublishDcdnStagingConfigToProductionResponse>\\r\\n","errorExample":""}]', - 'title' => '灰度环境转生产环境配置', - 'description' => '> 单用户调用频率:30次/秒。', + 'title' => '查询安全DCDN服务状态', + 'description' => '>单用户调用频率:20次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'RollbackDcdnStagingConfig' => [ - 'summary' => '调用RollbackDcdnStagingConfig将模拟环境的全站加速配置回滚成生产环境配置。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2022-10-13T02:27:10.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnsecService'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnsecService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2021-09-26T16:00:00Z\\",\\n \\"StartTime\\": \\"2021-08-26T02:52:08Z\\",\\n \\"ChangingAffectTime\\": \\"2021-09-30T16:00:00Z\\",\\n \\"DomainNum\\": \\"130\\",\\n \\"ChangingChargeType\\": \\"PayByBandwidth\\",\\n \\"RequestId\\": \\"E20B46E1-9BCD-10E5-AAEF-6D7B737467A1\\",\\n \\"Version\\": \\"enterprise\\",\\n \\"RequestType\\": \\"PayBySecRequest\\",\\n \\"FlowType\\": \\"PayBySecTraffic\\",\\n \\"InternetChargeType\\": \\"PayByTraffic\\",\\n \\"InstanceId\\": \\"dcdn_dcdnsec_public_cn-123***\\",\\n \\"OperationLocks\\": {\\n \\"LockReason\\": [\\n {\\n \\"LockReason\\": \\" financial\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnsecServiceResponse>\\n<RequestId>E20B46E1-9BCD-10E5-AAEF-6D7B737467A1</RequestId>\\n<EndTime>2021-09-26T16:00:00Z</EndTime>\\n<InstanceId>dcdn_dcdnsec_public_cn-123***</InstanceId>\\n<Version>enterprise</Version>\\n<StartTime>2021-08-26T02:52:08Z</StartTime>\\n<FlowType>PayBySecTraffic</FlowType>\\n<DomainNum>130</DomainNum>\\n<OperationLocks>\\n <LockReason>financial</LockReason>\\n</OperationLocks>\\n<RequestType>PayBySecRequest</RequestType>\\n</DescribeDcdnsecServiceResponse>","errorExample":""}]', + ], + 'DescribeDdosAllEventList' => [ + 'summary' => '调用DescribeDdosAllEventList查询攻击事件列表。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['title' => 'A short description of struct', 'description' => '开始时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => true, 'example' => '2023-03-27T16:00:00Z'], + ], + [ + 'name' => 'EndTime', 'in' => 'query', + 'schema' => ['description' => '结束时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" + .'结束时间需大于起始时间。开始结束时间跨度最长不超过31天。', 'type' => 'string', 'required' => false, 'example' => '2023-04-25T15:59:59Z'], + ], + [ + 'name' => 'EventType', + 'in' => 'query', + 'allowEmptyValue' => true, 'schema' => [ - 'description' => '加速域名,仅支持传单个域名。', + 'description' => '待查询的DDoS攻击事件的类型。取值:'."\n" + .'- - **web-cc**:表示Web资源耗尽型攻击。'."\n" + .'- - **cc**:表示连接型攻击。'."\n" + .'- - **traffic**:表示流量型攻击。'."\n" + ."\n\n" + .'不设置该参数表示查询所有类型的攻击事件。', 'type' => 'string', - 'required' => true, - 'example' => 'example.com', + 'required' => false, + 'example' => 'web-cc', + 'enum' => ['web-cc', 'cc', 'traffic'], + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '页码,默认值为1。取值范围:1-100000。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => '每页大小,默认为**10**。支持5,10,20。', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + 'default' => '10', + 'enum' => ['5', '10', '20'], ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'D73A4243-CFBD-5110-876F-09237E77ECBD'], + 'Total' => ['description' => '总条数。', 'type' => 'integer', 'format' => 'int64', 'example' => '20'], + 'PageNumber' => ['description' => '当前页码,默认值**1**。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '分页大小,默认**10**,支持5、10、20。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'DataList' => [ + 'description' => '事件列表。', + 'type' => 'array', + 'items' => [ + 'description' => '事件列表。', + 'type' => 'object', + 'properties' => [ + 'Target' => ['description' => '攻击目标。', 'type' => 'string', 'example' => 'example.com'], + 'StartTime' => ['description' => '开始时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2022-10-09T10:03:31Z'], + 'EndTime' => ['description' => '结束时间。'."\n" + .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'example' => '2022-11-26T15:59:00Z'], + 'EventType' => ['description' => '待查询的DDoS攻击事件的类型。取值:'."\n" + .'- **web-cc**:表示Web资源耗尽型攻击。'."\n" + .'- **cc**:表示连接型攻击。'."\n" + .'- **traffic**:表示流量型攻击。'."\n" + .'- 不设置该参数表示查询所有类型的攻击事件。', 'type' => 'string', 'example' => 'web-cc'], + 'Bps' => ['description' => '流量型攻击BPS峰值。', 'type' => 'integer', 'format' => 'int64', 'example' => '800'], + 'Pps' => ['description' => '流量型攻击PPS峰值。', 'type' => 'integer', 'format' => 'int64', 'example' => '12000'], + 'Cps' => ['description' => '连接型攻击CPS峰值。', 'type' => 'integer', 'format' => 'int64', 'example' => '50'], + 'Qps' => ['description' => 'Web资源耗尽型攻击QPS峰值。', 'type' => 'integer', 'format' => 'int64', 'example' => '7692'], + 'EventId' => ['description' => '事件ID。', 'type' => 'string', 'example' => '28069'], + ], + ], ], ], ], ], ], 'errorCodes' => [ - 404 => [ - [ - 'errorCode' => 'StagingConfig.NotFound', - 'errorMessage' => 'The staging configuration does not exist.', - ], + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => '内部错误,请重试,如果多次重试报错请提交工单。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<RollbackDcdnStagingConfigResponse>\\r\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</RollbackDcdnStagingConfigResponse>\\r\\n","errorExample":""}]', - 'title' => '灰度配置回滚', - 'description' => '> 单用户调用频率:30次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnStagingIp' => [ - 'summary' => '调用DescribeDcdnStagingIp获取公测节点有效VIP。', - 'methods' => [ - 'get', - 'post', + 'title' => '查询攻击事件列表', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDdosAllEventList'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDdosAllEventList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D73A4243-CFBD-5110-876F-09237E77ECBD\\",\\n \\"Total\\": 20,\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"DataList\\": [\\n {\\n \\"Target\\": \\"example.com\\",\\n \\"StartTime\\": \\"2022-10-09T10:03:31Z\\",\\n \\"EndTime\\": \\"2022-11-26T15:59:00Z\\",\\n \\"EventType\\": \\"web-cc\\",\\n \\"Bps\\": 800,\\n \\"Pps\\": 12000,\\n \\"Cps\\": 50,\\n \\"Qps\\": 7692,\\n \\"EventId\\": \\"28069\\"\\n }\\n ]\\n}","type":"json"}]', + ], + 'DescribeEncryptRoutineUid' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111550', - 'abilityTreeNodes' => [ - 'FEATUREdcdn33QGRH', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '1B9E0E83-24AC-49F4-9EE0-BF5EB03E8381', - ], - 'IPV4s' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'IPV4' => [ - 'type' => 'array', - 'items' => [ - 'description' => '由IPv4协议的IP地址组成的数据格式。', - 'type' => 'string', - 'example' => '192.168.xxx.xxx","192.168.xxx.xxx', - ], - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '4DBA68F5-04A9-406B-B1E4-F2CB635E103F'], + 'Content' => ['description' => '返回密文信息,其中包含了阿里云账号ID,时间戳和TTL。', 'type' => 'string', 'example' => 'XXXXXj20p4UB/xgdOH5LtXXXXXX'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"1B9E0E83-24AC-49F4-9EE0-BF5EB03E8381\\",\\n \\"IPV4s\\": {\\n \\"IPV4\\": [\\n \\"192.168.xxx.xxx\\\\\\",\\\\\\"192.168.xxx.xxx\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnStagingIpResponse>\\n <RequestId>1B9E0E83-24AC-49F4-9EE0-BF5EB03E8381</RequestId>\\n <IPV4s>192.168.xx.xx\\",\\"192.168.xx.xx</IPV4s>\\n</DescribeDcdnStagingIpResponse>","errorExample":""}]', - 'title' => '获取公测节点有效VIP', - 'description' => '> 单用户调用频率:30次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'BatchDeleteDcdnKvWithHighCapacity' => [ - 'summary' => '根据指定的键名列表批量删除指定KV存储空间下的键值对,最大允许上传100M的请求体。', - 'methods' => [ - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => '后端服务器发生错误:%s 。如果重试多次依然报错,请提交工单。'], + ], + ], + 'title' => '查询边缘函数ER的加密信息', + 'summary' => '调用DescribeEncryptRoutineUid查询边缘函数ER加密后的RoutineUid等相关信息。', + 'changeSet' => [ + ['createdAt' => '2022-09-09T06:05:51.000Z', 'description' => 'OpenAPI 下线'], ], - 'schemes' => [ - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeEncryptRoutineUid'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeEncryptRoutineUid', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4DBA68F5-04A9-406B-B1E4-F2CB635E103F\\",\\n \\"Content\\": \\"XXXXXj20p4UB/xgdOH5LtXXXXXX\\"\\n}","type":"json"}]', + ], + 'DescribeHighlightInfo' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '213943', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Namespace', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'title' => '', - 'description' => '调用[PutDcdnKvNamespace](~~PutDcdnKvNamespace~~)时指定的名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'test_namespace'."\n", - ], + 'schema' => ['description' => '获取数据的起始时间点。日期格式按照iso8601表示法,并使用utc时间,格式为yyyy-mm-ddthh:mm:ssz。', 'type' => 'string', 'required' => true, 'example' => '2023-02-19T16:00:00Z'], ], [ - 'name' => 'Url', + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '结束时间。日期格式按照iso8601表示法,并使用utc时间,格式为yyyy-mm-ddthh:mm:ssz。', 'type' => 'string', 'required' => false, 'example' => '2023-04-10T02:43:34Z'], + ], + [ + 'name' => 'TraceId', + 'in' => 'query', + 'schema' => ['description' => '日志链路ID。', 'type' => 'string', 'required' => true, 'example' => '800e749616838513398137319e'], + ], + [ + 'name' => 'Lang', 'in' => 'query', 'schema' => [ - 'description' => '存储有需要批量删除键值对的下载链接,此参数由调用SDK时自动生成,请使用SDK进行调用。', + 'description' => '访问语言。取值:'."\n" + ."\n" + .'- **en_US**(默认):英文'."\n" + ."\n" + .'- **zh_CN**:中文', 'type' => 'string', 'required' => true, - 'example' => 'https://xxxobject.oss-cn-reginon.aliyuncs.com/9d91_xxxxxxxxxxx_158bb6e0f97c477791209bb46bd599f7', - 'isFileTransferUrl' => true, + 'example' => 'en_US', + 'enum' => ['zh_CN', 'en_US'], ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'EEEBE525-F576-1196-8DAF-2D70CA3F4D2F', - ], - 'FailKeys' => [ - 'description' => '删除失败的键列表。', - 'type' => 'array', - 'items' => [ - 'description' => '删除失败的键名。', - 'type' => 'string', - 'example' => 'test_key1', - ], - ], - 'SuccessKeys' => [ - 'description' => '删除成功的键列表。', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], + 'DataModule' => [ + 'description' => '高亮数据的数据模型。', 'type' => 'array', 'items' => [ - 'description' => '删除成功的键名。', - 'type' => 'string', - 'example' => 'test_key1', + 'description' => '高亮数据的数据模型。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '高亮内容类型。', 'type' => 'string', 'example' => 'URL'], + 'Hit' => ['description' => '高亮数据。', 'type' => 'string', 'example' => '["data:image/php;base64"]'], + 'Raw' => ['description' => '完整数据。', 'type' => 'string', 'example' => 'data:image/php;base64,PD9waHAXXXXXXanVzdHR0dHXXXXXB0ZXN0Ijs/Pg=='], + ], ], ], ], @@ -23421,114 +19689,39 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid.Parameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidNameSpace.Malformed', - 'errorMessage' => 'The specified namespace is invalid.', - ], - [ - 'errorCode' => 'InvalidAccount.Malformed', - 'errorMessage' => 'The specified account is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.Malformed', - 'errorMessage' => 'The specified key is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.ExceedsMaximum', - 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', - ], - [ - 'errorCode' => 'InvalidValue.ExceedsMaximum', - 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', - ], - [ - 'errorCode' => 'InvalidKey.TooManyKeys', - 'errorMessage' => 'request contains too many keys.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], ], - 403 => [ - [ - 'errorCode' => 'InvalidKey.ExceedsCapacity', - 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidParameters', - 'errorMessage' => 'The specified authentication parameters are invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidTime', - 'errorMessage' => 'The specified authentication time is invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidToken', - 'errorMessage' => 'Token authentication failed.', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => '内部错误,请重试,如果多次重试报错请提交工单。'], + ], + ], + 'title' => '查询攻击详情的高亮数据', + 'summary' => '调用DescribeHighlightInfo查询攻击详情的高亮数据。根据被Web基础防护被拦截日志的Traceid,反查被拦截的具体原因,高亮数据就是匹配到被Web基础防护模块拦截到的内容。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeHighlightInfo'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidNameSpace.NotFound', - 'errorMessage' => 'The specified namespace does not exist.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeHighlightInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EEEBE525-F576-1196-8DAF-2D70CA3F4D2F\\",\\n \\"FailKeys\\": [\\n \\"test_key1\\"\\n ],\\n \\"SuccessKeys\\": [\\n \\"test_key1\\"\\n ]\\n}","type":"json"}]', - 'title' => '批量删除KV存储空间的大容量的键值对', - 'description' => '本接口与[BatchDeleteDcdnKv](~~BatchDeleteDcdnKv~~)的功能一样,只是允许上传更大请求体。当请求体较小时推荐直接使用[BatchDeleteDcdnKv](~~BatchDeleteDcdnKv~~)接口,从而减少服务端处理时间。本接口需要使用SDK进行调用。以golang SDK为例,需要使用BatchDeleteDcdnKvWithHighCapacityAdvance函数进行调用。'."\n" - .'```'."\n" - .'func TestBatchDeleteWithHighCapacity() error {'."\n" - .' // 配置初始化'."\n" - .' cfg := new(openapi.Config)'."\n" - .' cfg.SetAccessKeyId("xxxxxxxxx")'."\n" - .' cfg.SetAccessKeySecret("xxxxxxxxxx")'."\n" - .' cli, err := NewClient(cfg)'."\n" - .' if err != nil {'."\n" - .' return err'."\n" - .' }'."\n" - .' runtime := &util.RuntimeOptions{}'."\n" - ."\n" - .' // 构造待批量删除的键值对请求'."\n" - .' namespace := "test_batch_put"'."\n" - .' rawReq := BatchDeleteDcdnKvRequest{'."\n" - .' Namespace: &namespace,'."\n" - .' }'."\n" - .' for i := 0; i < 10000; i++ {'."\n" - .' key := fmt.Sprintf("test_key_%d", i)'."\n" - .' rawReq.Keys = append(rawReq.Keys, &key)'."\n" - .' }'."\n" - .' payload, err := json.Marshal(rawReq)'."\n" - .' if err != nil {'."\n" - .' return err'."\n" - .' }'."\n" - ."\n" - .' // 如果payload大于2M,则调用大容量接口进行删除'."\n" - .' reqHighCapacity := BatchDeleteDcdnKvWithHighCapacityAdvanceRequest{'."\n" - .' Namespace: &namespace,'."\n" - .' UrlObject: bytes.NewReader(payload),'."\n" - .' }'."\n" - .' resp, err := cli.BatchDeleteDcdnKvWithHighCapacityAdvance(&reqHighCapacity, runtime)'."\n" - .' if err != nil {'."\n" - .' return err'."\n" - .' }'."\n" - .' return nil'."\n" - .'}', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\",\\n \\"DataModule\\": [\\n {\\n \\"Key\\": \\"URL\\",\\n \\"Hit\\": \\"[\\\\\\"data:image/php;base64\\\\\\"]\\",\\n \\"Raw\\": \\"data:image/php;base64,PD9waHAXXXXXXanVzdHR0dHXXXXXB0ZXN0Ijs/Pg==\\"\\n }\\n ]\\n}","type":"json"}]', ], 'DescribeKvRealTimeQpsData' => [ 'summary' => '查询KV存储实时QPS数据。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -23541,45 +19734,28 @@ 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeCode' => '172111', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], 'autoTest' => true, ], 'parameters' => [ [ 'name' => 'NamespaceId', 'in' => 'query', - 'schema' => [ - 'description' => '命名空间ID,若参数为空,默认返回所有命名空间聚合的数据。'."\n" - ."\n" - .'支持多个命名空间查询,多个命名空间用半角逗号(,)分隔, 最多支持查询30个命名空间。', - 'type' => 'string', - 'required' => false, - 'example' => '534167033424646***', - ], + 'schema' => ['description' => '命名空间ID,若参数为空,默认返回所有命名空间聚合的数据。'."\n" + ."\n" + .'支持多个命名空间查询,多个命名空间用半角逗号(,)分隔, 最多支持查询30个命名空间。', 'type' => 'string', 'required' => false, 'example' => '534167033424646***'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'最小数据粒度为5分钟。不填默认读取过去24小时数据。', - 'type' => 'string', - 'required' => false, - 'example' => '2022-08-10T16:00:00Z', - ], + 'schema' => ['description' => '获取数据起始时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'最小数据粒度为5分钟。不填默认读取过去24小时数据。', 'type' => 'string', 'required' => false, 'example' => '2022-08-10T16:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据结束时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2022-08-10T15:59:59Z', - ], + 'schema' => ['description' => '获取数据结束时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2022-08-10T15:59:59Z'], ], [ 'name' => 'AccessType', @@ -23610,10 +19786,7 @@ 'type' => 'string', 'required' => false, 'example' => 'type', - 'enum' => [ - 'type', - 'namespace', - ], + 'enum' => ['type', 'namespace'], ], ], [ @@ -23629,10 +19802,7 @@ 'type' => 'string', 'required' => false, 'example' => '60', - 'enum' => [ - '60', - '300', - ], + 'enum' => ['60', '300'], ], ], ], @@ -23643,61 +19813,21 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92C***', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2023-01-10T16:00:00Z', - ], - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2023-01-18T15:59:59Z', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92C***'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2023-01-10T16:00:00Z'], + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2023-01-18T15:59:59Z'], 'KvQpsData' => [ 'description' => 'QPS明细数据。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2023-01-10T16:00:00Z', - ], - 'NamespaceId' => [ - 'description' => 'Namespace ID。仅当**SplitBy**指定**namespace**时返回该字段。', - 'type' => 'string', - 'example' => '534167033424646***', - ], - 'AccessType' => [ - 'description' => '请求类型。仅当**SplitBy**指定**type**时返回该字段。', - 'type' => 'string', - 'example' => 'get', - ], - 'Qps' => [ - 'description' => '平均每秒请求次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '5236', - ], - 'KeyQps' => [ - 'description' => '平均每秒操作键值对次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1234', - ], - 'KeySuccQps' => [ - 'description' => '平均每秒操作键值对成功次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1233', - ], + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2023-01-10T16:00:00Z'], + 'NamespaceId' => ['description' => 'Namespace ID。仅当**SplitBy**指定**namespace**时返回该字段。', 'type' => 'string', 'example' => '534167033424646***'], + 'AccessType' => ['description' => '请求类型。仅当**SplitBy**指定**type**时返回该字段。', 'type' => 'string', 'example' => 'get'], + 'Qps' => ['description' => '平均每秒请求次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '5236'], + 'KeyQps' => ['description' => '平均每秒操作键值对次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1234'], + 'KeySuccQps' => ['description' => '平均每秒操作键值对成功次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1233'], ], ], ], @@ -23708,29 +19838,10 @@ 'description' => '聚合数据。', 'type' => 'object', 'properties' => [ - 'AccessType' => [ - 'description' => '请求类型。仅当**SplitBy**指定**type**时返回该字段。', - 'type' => 'string', - 'example' => 'get', - ], - 'Acc' => [ - 'description' => '请求次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '123', - ], - 'KeyAcc' => [ - 'description' => '操作键值对次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1234', - ], - 'KeySuccAcc' => [ - 'description' => '操作键值对成功次数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1233', - ], + 'AccessType' => ['description' => '请求类型。仅当**SplitBy**指定**type**时返回该字段。', 'type' => 'string', 'example' => 'get'], + 'Acc' => ['description' => '请求次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '123'], + 'KeyAcc' => ['description' => '操作键值对次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1234'], + 'KeySuccAcc' => ['description' => '操作键值对成功次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1233'], ], ], ], @@ -23740,32 +19851,14 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidTimeSpan', - 'errorMessage' => 'The time span exceeds the limit.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => '时间跨度超过限制,请参照接口文档,配置合理查询跨度。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92C***\\",\\n \\"StartTime\\": \\"2023-01-10T16:00:00Z\\",\\n \\"EndTime\\": \\"2023-01-18T15:59:59Z\\",\\n \\"KvQpsData\\": [\\n {\\n \\"TimeStamp\\": \\"2023-01-10T16:00:00Z\\",\\n \\"NamespaceId\\": \\"534167033424646***\\",\\n \\"AccessType\\": \\"get\\",\\n \\"Qps\\": 5236,\\n \\"KeyQps\\": 1234,\\n \\"KeySuccQps\\": 1233\\n }\\n ],\\n \\"AggregateData\\": [\\n {\\n \\"AccessType\\": \\"get\\",\\n \\"Acc\\": 123,\\n \\"KeyAcc\\": 1234,\\n \\"KeySuccAcc\\": 1233\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeKvRealTimeQpsDataResponse>\\n <RequestId>3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F</RequestId>\\n <StartTime>2023-01-10T16:00:00Z</StartTime>\\n <EndTime>2023-01-18T15:59:59Z</EndTime>\\n <KvQpsData>\\n <TimeStamp>2023-01-10T16:00:00Z</TimeStamp>\\n <NamespaceId>534167033424646140</NamespaceId>\\n <AccessType>get</AccessType>\\n <Qps>5236</Qps>\\n </KvQpsData>\\n</DescribeKvRealTimeQpsDataResponse>","errorExample":""}]', + 'staticInfo' => ['returnType' => 'synchronous'], 'title' => '查询KV存储实时QPS数据', 'description' => '> 单用户调用频率:10次/秒'."\n" ."\n" @@ -23777,83 +19870,129 @@ .'| -------------- | -------------- | ------ |'."\n" .'| 1分钟 | 1天 | 60天 | '."\n" .'| 5分钟 | 3天 | 60天 |', - ], - 'PutDcdnKvWithHighCapacity' => [ - 'summary' => '设置Namespace的key-value对,支持最大25M的请求体', - 'methods' => [ - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeKvRealTimeQpsData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeKvRealTimeQpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92C***\\",\\n \\"StartTime\\": \\"2023-01-10T16:00:00Z\\",\\n \\"EndTime\\": \\"2023-01-18T15:59:59Z\\",\\n \\"KvQpsData\\": [\\n {\\n \\"TimeStamp\\": \\"2023-01-10T16:00:00Z\\",\\n \\"NamespaceId\\": \\"534167033424646***\\",\\n \\"AccessType\\": \\"get\\",\\n \\"Qps\\": 5236,\\n \\"KeyQps\\": 1234,\\n \\"KeySuccQps\\": 1233\\n }\\n ],\\n \\"AggregateData\\": [\\n {\\n \\"AccessType\\": \\"get\\",\\n \\"Acc\\": 123,\\n \\"KeyAcc\\": 1234,\\n \\"KeySuccAcc\\": 1233\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeKvRealTimeQpsDataResponse>\\n <RequestId>3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F</RequestId>\\n <StartTime>2023-01-10T16:00:00Z</StartTime>\\n <EndTime>2023-01-18T15:59:59Z</EndTime>\\n <KvQpsData>\\n <TimeStamp>2023-01-10T16:00:00Z</TimeStamp>\\n <NamespaceId>534167033424646140</NamespaceId>\\n <AccessType>get</AccessType>\\n <Qps>5236</Qps>\\n </KvQpsData>\\n</DescribeKvRealTimeQpsDataResponse>","errorExample":""}]', + ], + 'DescribeKvUsageData' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '213942', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Namespace', + 'name' => 'NamespaceId', 'in' => 'query', - 'schema' => [ - 'description' => '调用[PutDcdnKvNamespace](~~PutDcdnKvNamespace~~)时指定的名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'test_namesapce', - ], + 'schema' => ['title' => '', 'description' => '命名空间ID,若参数为空,默认返回所有命名空间聚合的数据。'."\n" + ."\n" + .'支持多个命名空间查询,多个命名空间用半角逗号(,)分隔, 最多支持查询30个命名空间。', 'type' => 'string', 'required' => false, 'example' => '12423131231****'], ], [ - 'name' => 'Key', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '需要设置的键名称,最长不超过512个字符,不能包含空格、反斜杠(/)。', - 'type' => 'string', - 'required' => true, - 'example' => 'test_key', - ], + 'schema' => ['description' => '获取数据起始时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'."\n" + ."\n" + .'最小数据粒度为1小时。不填默认读取过去7天的数据。', 'type' => 'string', 'required' => false, 'example' => '2022-08-10T00:00:00Z'], ], [ - 'name' => 'Url', + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '获取数据结束时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2022-08-10T23:59:59Z'], + ], + [ + 'name' => 'Field', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['description' => '请求数据类型,可以指定为:**acc**。', 'type' => 'string', 'required' => true, 'example' => 'acc'], + ], + [ + 'name' => 'AccessType', + 'in' => 'query', + 'schema' => ['description' => '访问类型,若参数为空,则默认返回所有类型聚合的结果。可以指定为:'."\n" + ."\n" + .'- **get**:GET请求。'."\n" + .'- **put**:PUT请求。'."\n" + .'- **list**:LIST请求。'."\n" + .'- **delete**:DELETE请求。', 'type' => 'string', 'required' => false, 'example' => 'get'], + ], + [ + 'name' => 'ResponseType', + 'in' => 'query', + 'schema' => ['description' => '响应数据类型,取值:'."\n" + .'- **detail**:详细数据'."\n" + .'- **total**:汇总数据'."\n" + ."\n" + .'默认为**detail**。', 'type' => 'string', 'required' => false, 'example' => 'detail', 'default' => 'detail'], + ], + [ + 'name' => 'SplitBy', 'in' => 'query', 'schema' => [ - 'description' => '存储有需要设置的键值对的下载链接,此参数由调用SDK时自动生成,请使用SDK进行调用。', + 'description' => '分组键,可以指定为**type**、**namespace**。'."\n" + ."\n" + .'- **type**:指定后数据将会按时序被分组输出,且仅返回5分钟粒度数据。'."\n" + .'- **namespace**:指定后数据将按照namespace分组输出,不会对数据进行补零。'."\n" + .'- 为空时:默认为**type**。'."\n" + ."\n" + .'**ResponseType**为**total**时,不支持分组返回**namespace**,将继续按照**type**分组返回。', 'type' => 'string', - 'required' => true, - 'example' => 'https://xxxobject.oss-cn-reginon.aliyuncs.com/9d91_xxxxxxxxxxx_158bb6e0f97c477791209bb46bd599f7', + 'required' => false, + 'example' => 'type', + 'enum' => ['type', 'namespace'], ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'Length' => [ - 'description' => '键值对中的值的长度。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '4', - ], - 'Value' => [ - 'description' => '键的内容, 超过256个字符长度,将取前100及后100字符并省略中间。', - 'type' => 'string', - 'example' => 'test', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'EEEBE525-F576-1196-8DAF-2D70CA3F4D2F', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7'], + 'StartTime' => ['description' => '开始时间。', 'type' => 'string', 'example' => '2022-11-06T16:00:00Z'], + 'EndTime' => ['description' => '结束时间。', 'type' => 'string', 'example' => '2022-11-18T15:59:59Z'], + 'KvUsageData' => [ + 'description' => '用量明细。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TimeStamp' => ['description' => '时间片起始时刻。', 'type' => 'string', 'example' => '2022-11-14T15:00:03Z'], + 'NamespaceId' => ['description' => 'Namespace ID。仅当**SplitBy**指定**namespace**时返回该字段。', 'type' => 'string', 'example' => '534167033424646144'], + 'AccessType' => ['description' => '请求类型。仅当**SplitBy**指定**type**时返回该字段。', 'type' => 'string', 'example' => 'get'], + 'Acc' => ['description' => '访问次数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1340000'], + ], + 'description' => '', + ], ], ], ], @@ -23861,189 +20000,75 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid.Parameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidAccount.Malformed', - 'errorMessage' => 'The specified account is invalid.', - ], - [ - 'errorCode' => 'InvalidNameSpace.Malformed', - 'errorMessage' => 'The specified namespace is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.Malformed', - 'errorMessage' => 'The specified key is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.ExceedsMaximum', - 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', - ], - [ - 'errorCode' => 'InvalidValue.ExceedsMaximum', - 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', - ], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => '结束时间早于开始时间,请检查。'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => '时间跨度超过限制,请参照接口文档,配置合理查询跨度。'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => '不支持该开始时间,请重新填写。'], + ['errorCode' => 'InvalidParameterField', 'errorMessage' => 'The specified Field is invalid.', 'description' => 'Field参数错误'], ], - 403 => [ - [ - 'errorCode' => 'InvalidKey.ExceedsCapacity', - 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidParameters', - 'errorMessage' => 'The specified authentication parameters are invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidTime', - 'errorMessage' => 'The specified authentication time is invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidToken', - 'errorMessage' => 'Token authentication failed.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidResource', - 'errorMessage' => 'Resource authentication failed.', - ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询KV存储用量数据', + 'summary' => '调用DescribeKvUsageData查询KV存储的用量数据。', + 'description' => '> '."\n" + .'> - 单用户调用频率:5次/秒'."\n" + .'> - 用量数据为请求次数。'."\n" + ."\n" + .'**支持查询的时间粒度**:'."\n" + .'本API仅支持1小时粒度的数据查询。'."\n" + ."\n" + .'| 时间粒度 | 单次查询的最大时间跨度 | 可查询历史数据时间范围 | 数据延迟 |'."\n" + .'| -------------- | -------------- | ------ |-----|'."\n" + .'| 1小时 | 31天 | 90天 | 一般延迟3-4小时 |', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeKvUsageData'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidAccount.NotFound', - 'errorMessage' => 'The specified account does not exist.', - ], - [ - 'errorCode' => 'InvalidNameSpace.NotFound', - 'errorMessage' => 'The specified namespace does not exist.', - ], - [ - 'errorCode' => 'InvalidKey.NotFound', - 'errorMessage' => 'The specified key does not exist.', - ], - ], - 406 => [ - [ - 'errorCode' => 'InvalidNameSpace.Duplicate', - 'errorMessage' => 'The specified namespace already exists.', - ], - [ - 'errorCode' => 'InvalidNameSpace.QuotaFull', - 'errorMessage' => 'The maximum number of namespaces is exceeded.', - ], - [ - 'errorCode' => 'InvalidKey.QuotaFull', - 'errorMessage' => 'The maximum number of keys is exceeded.', - ], - ], - 429 => [ - [ - 'errorCode' => 'TooManyRequests', - 'errorMessage' => 'Too many requests are submitted.', - ], - [ - 'errorCode' => 'TooQuickRequests', - 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeKvUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Length\\": 4,\\n \\"Value\\": \\"test\\",\\n \\"RequestId\\": \\"EEEBE525-F576-1196-8DAF-2D70CA3F4D2F\\"\\n}","type":"json"}]', - 'title' => '设置KV存储空间的单个大容量键值对', - 'description' => '本接口与[PutDcdnKv](~~PutDcdnKv~~)的功能一样,只是允许上传更大请求体。当请求体较小时推荐直接使用[PutDcdnKv](~~PutDcdnKv~~)接口,从而减少服务端处理时间。本接口需要使用SDK进行调用。以golang SDK为例,需要使用PutDcdnKvWithHighCapacityAdvance函数进行调用。'."\n" - .'```'."\n" - .'func TestPutDcdnKvWithHighCapacity() {'."\n" - .' // 配置初始化'."\n" - .' cfg := new(openapi.Config)'."\n" - .' cfg.SetAccessKeyId("xxxxxxxxx")'."\n" - .' cfg.SetAccessKeySecret("xxxxxxxxxx")'."\n" - .' cli, err := NewClient(cfg)'."\n" - .' if err != nil {'."\n" - .' return err'."\n" - .' }'."\n" - .' runtime := &util.RuntimeOptions{}'."\n" - ."\n" - .' // 构造待上传的键值对请求'."\n" - .' namespace := "test-put-kv"'."\n" - .' key := "test_PutDcdnKvWithHighCapacity_0"'."\n" - .' value := strings.Repeat("t", 10*1024*1024)'."\n" - .' rawReq := &PutDcdnKvRequest{'."\n" - .' Namespace: &namespace,'."\n" - .' Key: &key,'."\n" - .' Value: &value,'."\n" - .' }'."\n" - .' payload, err := json.Marshal(rawReq)'."\n" - .' if err != nil {'."\n" - .' return err'."\n" - .' }'."\n" - ."\n" - .' // 如果payload大于2M,则调用大容量接口进行上传'."\n" - .' reqHighCapacity := &PutDcdnKvWithHighCapacityAdvanceRequest{'."\n" - .' Namespace: &namespace,'."\n" - .' Key: &key,'."\n" - .' UrlObject: bytes.NewReader([]byte(payload)),'."\n" - .' }'."\n" - ."\n" - .' resp, err := cli.PutDcdnKvWithHighCapacityAdvance(reqHighCapacity, runtime)'."\n" - .' if err != nil {'."\n" - .' return err'."\n" - .' }'."\n" - .' return nil'."\n" - .'}', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB87556CA7\\",\\n \\"StartTime\\": \\"2022-11-06T16:00:00Z\\",\\n \\"EndTime\\": \\"2022-11-18T15:59:59Z\\",\\n \\"KvUsageData\\": [\\n {\\n \\"TimeStamp\\": \\"2022-11-14T15:00:03Z\\",\\n \\"NamespaceId\\": \\"534167033424646144\\",\\n \\"AccessType\\": \\"get\\",\\n \\"Acc\\": 1340000\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeKvUsageDataResponse>\\n <RequestId>9732E117-8A37-49FD-A36F-ABBB87556CA7</RequestId>\\n <StartTime>2022-11-06T16:00:00Z</StartTime>\\n <EndTime>2022-11-18T15:59:59Z</EndTime>\\n <KvUsageData>\\n <TimeStamp>2022-11-14T15:00:03Z</TimeStamp>\\n <NamespaceId>534167033424646144</NamespaceId>\\n <AccessType>get</AccessType>\\n <Acc>1340000</Acc>\\n </KvUsageData>\\n</DescribeKvUsageDataResponse>","errorExample":""}]', ], - 'BatchDeleteDcdnKv' => [ - 'summary' => '根据指定的键名列表来批量删除指定KV存储空间的键值对。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'DescribeRDDomainConfig' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '213944', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Namespace', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'title' => '', - 'description' => '调用[PutDcdnKvNamespace](~~PutDcdnKvNamespace~~)时指定的名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'test_namespace', - ], + 'schema' => ['title' => 'A short description of struct', 'description' => '加速域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'Keys', - 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => '要批量删除的键名称列表, 最多删除10000个键。', - 'type' => 'array', - 'items' => [ - 'description' => '要删除的键名。', - 'type' => 'string', - 'required' => false, - 'example' => 'test_key1', - ], - 'required' => true, - ], + 'name' => 'FunctionName', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['title' => '幂等参数', 'description' => '功能名称,默认查询源站组(source_group)功能。', 'type' => 'string', 'required' => false, 'example' => 'source_group', 'default' => 'source_group'], ], ], 'responses' => [ @@ -24053,297 +20078,145 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'EEEBE525-F576-1196-8DAF-2D70CA3F4D2F'."\n", - ], - 'FailKeys' => [ - 'description' => '删除失败的键列表。', - 'type' => 'array', - 'items' => [ - 'description' => '删除失败的键名。', - 'type' => 'string', - 'example' => 'test_key1', - ], - ], - 'SuccessKeys' => [ - 'description' => '删除成功的键列表。', + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'C80705BF-0F76-41FA-BAD1-5B59296A4E59'], + 'DomainConfigs' => [ + 'description' => '域名配置信息。', 'type' => 'array', 'items' => [ - 'description' => '删除成功的键名。', - 'type' => 'string', - 'example' => 'test_key2', + 'type' => 'object', + 'properties' => [ + 'ConfigId' => ['description' => '配置ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '6295'], + 'Status' => ['description' => '状态。取值:'."\n" + ."\n" + .'- **success**:成功。'."\n" + .'- **testing**:测试中。'."\n" + .'- **failed**:失败。'."\n" + .'- **configuring**:配置中。', 'type' => 'string', 'example' => 'success'], + 'FunctionArgs' => [ + 'description' => '功能配置。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ArgName' => ['description' => '配置名称。', 'type' => 'string', 'example' => 'source_group_name'], + 'ArgValue' => ['description' => '配置值。', 'type' => 'string', 'example' => '123'], + ], + ], + ], + 'FunctionName' => ['description' => '功能名称。', 'type' => 'string', 'example' => 'set_req_host_header'], + 'ParentId' => ['description' => '高级条件配置ID。', 'type' => 'string', 'example' => '1234567'], + ], ], ], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Invalid.Parameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidNameSpace.Malformed', - 'errorMessage' => 'The specified namespace is invalid.', - ], - [ - 'errorCode' => 'InvalidAccount.Malformed', - 'errorMessage' => 'The specified account is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.Malformed', - 'errorMessage' => 'The specified key is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.ExceedsMaximum', - 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', - ], - [ - 'errorCode' => 'InvalidValue.ExceedsMaximum', - 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', - ], - [ - 'errorCode' => 'InvalidKey.TooManyKeys', - 'errorMessage' => 'request contains too many keys.', - ], - ], - 403 => [ - [ - 'errorCode' => 'InvalidKey.ExceedsCapacity', - 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidParameters', - 'errorMessage' => 'The specified authentication parameters are invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidTime', - 'errorMessage' => 'The specified authentication time is invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidToken', - 'errorMessage' => 'Token authentication failed.', - ], + 'title' => '查询用户RD下的域名功能配置', + 'summary' => '调用DescribeRDDomainConfig查询用户RD下的域名功能配置。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRDDomainConfig'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidNameSpace.NotFound', - 'errorMessage' => 'The specified namespace does not exist.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeRDDomainConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EEEBE525-F576-1196-8DAF-2D70CA3F4D2F\\\\n\\",\\n \\"FailKeys\\": [\\n \\"test_key1\\"\\n ],\\n \\"SuccessKeys\\": [\\n \\"test_key2\\"\\n ]\\n}","type":"json"}]', - 'title' => '批量删除KV存储空间的键值对', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C80705BF-0F76-41FA-BAD1-5B59296A4E59\\",\\n \\"DomainConfigs\\": [\\n {\\n \\"ConfigId\\": 6295,\\n \\"Status\\": \\"success\\",\\n \\"FunctionArgs\\": [\\n {\\n \\"ArgName\\": \\"source_group_name\\",\\n \\"ArgValue\\": \\"123\\"\\n }\\n ],\\n \\"FunctionName\\": \\"set_req_host_header\\",\\n \\"ParentId\\": \\"1234567\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeRDDomainConfigResponse>\\n <RequestId>C80705BF-0F76-41FA-BAD1-5B59296A4E59</RequestId>\\n <DomainConfigs>\\n <ConfigId>6295</ConfigId>\\n <Status>success</Status>\\n <FunctionArgs>\\n <ArgName>source_group_name</ArgName>\\n <ArgValue>123</ArgValue>\\n </FunctionArgs>\\n <FunctionArgs>\\n <ArgName>source_info</ArgName>\\n <ArgValue>1.1.2.1_1_20_1,1.2.3.4_2_34_3</ArgValue>\\n </FunctionArgs>\\n <FunctionArgs>\\n <ArgName>retry_times</ArgName>\\n <ArgValue>1</ArgValue>\\n </FunctionArgs>\\n <FunctionArgs>\\n <ArgName>retry_status_rule</ArgName>\\n <ArgValue>123</ArgValue>\\n </FunctionArgs>\\n <FunctionArgs>\\n <ArgName>failback_source</ArgName>\\n <ArgValue>off</ArgValue>\\n </FunctionArgs>\\n <FunctionName>set_req_host_header</FunctionName>\\n <ParentId>1234567</ParentId>\\n </DomainConfigs>\\n</DescribeRDDomainConfigResponse>","errorExample":""}]', ], - 'BatchPutDcdnKvWithHighCapacity' => [ - 'summary' => '根据指定的键名列表来批量设置指定KV存储空间的键值对,请求体最大支持100M。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'DescribeRoutine' => [ + 'summary' => '调用DescribeRoutine获取某个边缘函数ER(EdgeRoutine)的元信息,包括每个环境的ER配置、配置版本、代码版本等信息。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '213941', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Namespace', - 'in' => 'query', - 'schema' => [ - 'title' => '', - 'description' => '调用[PutDcdnKvNamespace](~~PutDcdnKvNamespace~~)时指定的名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'test_namespace', - ], - ], - [ - 'name' => 'Url', - 'in' => 'query', - 'schema' => [ - 'description' => '存储有需要批量设置的键值对的下载链接,此参数由调用SDK时自动生成,请使用SDK进行调用。', - 'type' => 'string', - 'required' => true, - 'example' => 'https://xxxobject.oss-cn-reginon.aliyuncs.com/9d91_xxxxxxxxxxx_158bb6e0f97c477791209bb46bd599f7', - 'isFileTransferUrl' => true, - ], + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => '边缘函数名, 同一个账号下命名唯一。', 'type' => 'string', 'required' => true, 'example' => 'test'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'EEEBE525-F576-1196-8DAF-2D70CA3F4D2F'."\n", - ], - 'FailKeys' => [ - 'description' => '写失败的键列表。', - 'type' => 'array', - 'items' => [ - 'description' => '写失败的键名。', - 'type' => 'string', - 'example' => 'test_key1', - ], - ], - 'SuccessKeys' => [ - 'description' => '写成功的键列表。', - 'type' => 'array', - 'items' => [ - 'description' => '写成功的键名。', - 'type' => 'string', - 'example' => 'test_key2', - ], - ], + 'Content' => ['description' => '包含EdgeRoutine的各项信息。具体字段说明请参见下表。', 'type' => 'object', 'example' => 'CodeRevs, EnvConf, Description, Envs, and CreationTime'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '4DBA68F5-04A9-406B-B1E4-F2CB635E103F'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid.Parameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidNameSpace.Malformed', - 'errorMessage' => 'The specified namespace is invalid.', - ], - [ - 'errorCode' => 'InvalidAccount.Malformed', - 'errorMessage' => 'The specified account is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.Malformed', - 'errorMessage' => 'The specified key is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.ExceedsMaximum', - 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', - ], - [ - 'errorCode' => 'InvalidValue.ExceedsMaximum', - 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', - ], - [ - 'errorCode' => 'InvalidKey.TooManyKeys', - 'errorMessage' => 'request contains too many keys.', - ], + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => '后端服务器发生错误:%s 。如果重试多次依然报错,请提交工单。'], ], - 403 => [ - [ - 'errorCode' => 'InvalidKey.ExceedsCapacity', - 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidParameters', - 'errorMessage' => 'The specified authentication parameters are invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidTime', - 'errorMessage' => 'The specified authentication time is invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidToken', - 'errorMessage' => 'Token authentication failed.', - ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"4DBA68F5-04A9-406B-B1E4-F2CB635E103F\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeRoutineResponse>\\n <RequestId>4DBA68F5-04A9-406B-B1E4-F2CB635E103F</RequestId>\\n <Content>\\n <CodeRevs>\\n <CodeDescription>IkhlbGxvIFdvcmxkIg==</CodeDescription>\\n <CreationTime>2021-05-31T13:20:14Z</CreationTime>\\n <CodeRevision>1622467214654495147</CodeRevision>\\n </CodeRevs>\\n <CodeRevs>\\n <CodeDescription>IkhlbGxvIFdvcmxkIg==</CodeDescription>\\n <CreationTime>2021-05-31T13:20:36Z</CreationTime>\\n <CodeRevision>1622467236337778954</CodeRevision>\\n </CodeRevs>\\n <CodeRevs>\\n <CodeDescription>IkhlbGxvIFdvcmxkIEZyb20gU3RhZ2luZyBFbnYi</CodeDescription>\\n <CreationTime/>\\n <CodeRevision>unstable</CodeRevision>\\n </CodeRevs>\\n <CodeRevs>\\n <CodeDescription>SGVsbG8gV29ybGQgRnJvbSBDb21taXQ=</CodeDescription>\\n <CreationTime>2021-05-31T13:25:44Z</CreationTime>\\n <CodeRevision>1622467544804919489</CodeRevision>\\n </CodeRevs>\\n <EnvConf>\\n <presetCanaryZhejiang>\\n <SpecName>100ms</SpecName>\\n <CodeRev>1622467236337778954</CodeRev>\\n <AllowedHosts>test-e.alicdn.com</AllowedHosts>\\n <AllowedHosts>test-f.alicdn.com</AllowedHosts>\\n </presetCanaryZhejiang>\\n <staging>\\n <SpecName>50ms</SpecName>\\n <CodeRev/>\\n <AllowedHosts>test-a.alicdn.com</AllowedHosts>\\n <AllowedHosts>test-b.alicdn.com</AllowedHosts>\\n </staging>\\n <presetCanaryBeijing>\\n <SpecName>5ms</SpecName>\\n <CodeRev>1622467236337778954</CodeRev>\\n <AllowedHosts>test-g.alicdn.com</AllowedHosts>\\n <AllowedHosts>test-h.alicdn.com</AllowedHosts>\\n </presetCanaryBeijing>\\n <production>\\n <SpecName>50ms</SpecName>\\n <CodeRev>1622467236337778954</CodeRev>\\n <AllowedHosts>test-c.alicdn.com</AllowedHosts>\\n <AllowedHosts>test-d.alicdn.com</AllowedHosts>\\n </production>\\n </EnvConf>\\n <Description>InRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIHJvdXRpbmUi</Description>\\n <Envs>production</Envs>\\n <Envs>staging</Envs>\\n <Envs>presetCanaryZhejiang</Envs>\\n <Envs>presetCanaryBeijing</Envs>\\n <CreationTime>2021-05-31T13:14:23.132925407Z</CreationTime>\\n </Content>\\n</DescribeRoutineResponse>","errorExample":""}]', + 'title' => '获取某个边缘函数ER的元信息', + 'description' => '> API调用频率:100次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => '### Content字段参数说明'."\n" + .'| 名称 | 类型 | 示例值 | 描述 |'."\n" + .'| ----------------- | ------ | -------------------------------------------- | ------------------------------------------------------------ |'."\n" + .'| CreationTime | String | 2021-05-31T13:20:14Z | Routine的创建时间。 |'."\n" + .'| Description | String | InRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIHJvdXRpbmUi | Routine的描述信息,以base64编码存储。 |'."\n" + .'| Envs | JSON | production | Routine的所有灰度环境集合。 |'."\n" + .'| EnvConf | JSON | | Routine的所有灰度环境信息,包含每个灰度环境的CPU规格(SpecName),代码版本号(CodeRev)和允许关联的DCDN域名(AllowedHosts)。 |'."\n" + .'| ㄴSpecName | String | 100ms | CPU规格时间片。 |'."\n" + .'| ㄴCodeRev | String | 1622467214654495147 | 代码版本号。 |'."\n" + .'| ㄴAllowedHosts | String | test-e.alicdn.com | 允许关联的DCDN域名。 |'."\n" + .'| CodeRevs | JSON | | Routine的所有代码版本,包含每个版本的描述信息(CodeDescription),创建时间(CreationTime)和版本号(CodeRevision)。 |'."\n" + .'| ㄴCreationTime | String | 2021-05-31T13:20:14Z | 代码创建时间。 |'."\n" + .'| ㄴCodeDescription | String | IkhlbGxvIFdvcmxkIg== | 代码版本描述,以base64编码存储。 |'."\n" + .'| ㄴCodeRevision | String | 1622467236337778954 | 代码版本号。 |', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRoutine'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidNameSpace.NotFound', - 'errorMessage' => 'The specified namespace does not exist.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeRoutine', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EEEBE525-F576-1196-8DAF-2D70CA3F4D2F\\\\n\\",\\n \\"FailKeys\\": [\\n \\"test_key1\\"\\n ],\\n \\"SuccessKeys\\": [\\n \\"test_key2\\"\\n ]\\n}","type":"json"}]', - 'title' => '批量设置KV存储空间的大容量键值对', - 'description' => '本接口与[BatchPutDcdnKv](~~BatchPutDcdnKv~~)的功能一样,只是允许上传更大请求体。当请求体较小时推荐直接使用[BatchPutDcdnKv](~~BatchPutDcdnKv~~)接口,从而减少服务端处理时间。本接口需要使用SDK进行调用。以golang SDK为例,需要使用BatchPutDcdnKvWithHighCapacityAdvance函数进行调用。'."\n" - .'```'."\n" - .'func TestBatchPutDcdnKvWithHighCapacity() error {'."\n" - .' // 配置初始化'."\n" - .' cfg := new(openapi.Config)'."\n" - .' cfg.SetAccessKeyId("xxxxxxxxx")'."\n" - .' cfg.SetAccessKeySecret("xxxxxxxxxx")'."\n" - .' cli, err := NewClient(cfg)'."\n" - .' if err != nil {'."\n" - .' return err'."\n" - .' }'."\n" - .' runtime := &util.RuntimeOptions{}'."\n" - ."\n" - .' // 构造待批量上传的键值对请求'."\n" - .' namespace := "test_batch_put"'."\n" - .' numKv := 10000'."\n" - .' kvList := make([]*BatchPutDcdnKvRequestKvList, numKv)'."\n" - .' test_value := strings.Repeat("a", 10*1024)'."\n" - .' for i := 0; i < numKv; i++ {'."\n" - .' key := fmt.Sprintf("test_key_%d", i)'."\n" - .' value := test_value'."\n" - .' kvList[i] = &BatchPutDcdnKvRequestKvList{'."\n" - .' Key: &key,'."\n" - .' Value: &value,'."\n" - .' }'."\n" - .' }'."\n" - .' rawReq := BatchPutDcdnKvRequest{'."\n" - .' Namespace: &namespace,'."\n" - .' KvList: kvList,'."\n" - .' }'."\n" - ."\n" - .' payload, err := json.Marshal(rawReq)'."\n" - .' if err != nil {'."\n" - .' return err'."\n" - .' }'."\n" - ."\n" - .' // 如果payload大于2M,则调用大容量接口进行上传'."\n" - .' reqHighCapacity := BatchPutDcdnKvWithHighCapacityAdvanceRequest{'."\n" - .' Namespace: &namespace,'."\n" - .' UrlObject: bytes.NewReader(payload),'."\n" - .' }'."\n" - .' resp, err := cli.BatchPutDcdnKvWithHighCapacityAdvance(&reqHighCapacity, runtime)'."\n" - .' if err != nil {'."\n" - .' return err'."\n" - .' }'."\n" - .' return nil'."\n" - .'}', ], - 'GetDcdnKvDetail' => [ - 'summary' => '查询键值对的值和TTL信息。', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'https', - ], + 'DescribeRoutineCanaryEnvs' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -24354,368 +20227,146 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '247787', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], - ], - 'parameters' => [ - [ - 'name' => 'Namespace', - 'in' => 'query', - 'schema' => [ - 'description' => 'KV存储空间名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'test_namespace', - ], - ], - [ - 'name' => 'Key', - 'in' => 'query', - 'schema' => [ - 'description' => '查询的Key名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'key1', - ], - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Value' => [ - 'description' => '键的内容。', - 'type' => 'string', - 'example' => 'test', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'EDBD3EB3-97DA-5465-AEF5-8DCA5DC5E395'."\n", - ], - 'ExpirationTtl' => [ - 'description' => '过期时间(相对时间,单位:秒),同时设置Expiration和ExpirationTtl时,以ExpirationTtl为准。', - 'type' => 'string', - 'example' => '3600', - ], + 'Content' => ['description' => '目前支持的Canary环境列表。', 'type' => 'object', 'example' => 'presetCanaryShanghai'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CDCD94C0-F7FE-412F-B8F8-7E3C610C78E5'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid.Parameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidAccount.Malformed', - 'errorMessage' => 'The specified account is invalid.', - ], - [ - 'errorCode' => 'InvalidNameSpace.Malformed', - 'errorMessage' => 'The specified namespace is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.Malformed', - 'errorMessage' => 'The specified key is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.ExceedsMaximum', - 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', - ], - [ - 'errorCode' => 'InvalidValue.ExceedsMaximum', - 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', - ], + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => '后端服务器发生错误:%s 。如果重试多次依然报错,请提交工单。'], ], - 403 => [ - [ - 'errorCode' => 'InvalidKey.ExceedsCapacity', - 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidParameters', - 'errorMessage' => 'The specified authentication parameters are invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidTime', - 'errorMessage' => 'The specified authentication time is invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidToken', - 'errorMessage' => 'Token authentication failed.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidResource', - 'errorMessage' => 'Resource authentication failed.', - ], + ], + 'title' => '获取边缘函数ER支持的Canary环境列表', + 'summary' => '调用DescribeRoutineCanaryEnvs获取边缘函数ER支持的Canary环境列表。', + 'description' => '> API调用频率:100次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRoutineCanaryEnvs'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidAccount.NotFound', - 'errorMessage' => 'The specified account does not exist.', - ], - [ - 'errorCode' => 'InvalidNameSpace.NotFound', - 'errorMessage' => 'The specified namespace does not exist.', - ], - [ - 'errorCode' => 'InvalidKey.NotFound', - 'errorMessage' => 'The specified key does not exist.', - ], - ], - 406 => [ - [ - 'errorCode' => 'InvalidNameSpace.Duplicate', - 'errorMessage' => 'The specified namespace already exists.', - ], - [ - 'errorCode' => 'InvalidNameSpace.QuotaFull', - 'errorMessage' => 'The maximum number of namespaces is exceeded.', - ], - [ - 'errorCode' => 'InvalidKey.QuotaFull', - 'errorMessage' => 'The maximum number of keys is exceeded.', - ], - ], - 429 => [ - [ - 'errorCode' => 'TooManyRequests', - 'errorMessage' => 'Too many requests are submitted.', - ], - [ - 'errorCode' => 'TooQuickRequests', - 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeRoutineCanaryEnvs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Value\\": \\"test\\",\\n \\"RequestId\\": \\"EDBD3EB3-97DA-5465-AEF5-8DCA5DC5E395\\\\n\\",\\n \\"ExpirationTtl\\": \\"3600\\"\\n}","type":"json"}]', - 'title' => '查询键值对的值和TTL信息', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"CDCD94C0-F7FE-412F-B8F8-7E3C610C78E5\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeRoutineCanaryEnvsResponse>\\n <RequestId>CDCD94C0-F7FE-412F-B8F8-7E3C610C78E5</RequestId>\\n <Content>\\n <CanaryEnvs>presetCanaryGuangdong</CanaryEnvs>\\n <CanaryEnvs>presetCanarySichuan</CanaryEnvs>\\n <CanaryEnvs>presetCanaryOverseas</CanaryEnvs>\\n <CanaryEnvs>presetCanaryBeijing</CanaryEnvs>\\n <CanaryEnvs>presetCanaryNeimenggu</CanaryEnvs>\\n <CanaryEnvs>presetCanaryHunan</CanaryEnvs>\\n <CanaryEnvs>presetCanaryHainan</CanaryEnvs>\\n <CanaryEnvs>presetCanaryGuizhou</CanaryEnvs>\\n <CanaryEnvs>presetCanaryLiaoning</CanaryEnvs>\\n <CanaryEnvs>presetCanaryZhejiang</CanaryEnvs>\\n <CanaryEnvs>presetCanaryHubei</CanaryEnvs>\\n <CanaryEnvs>presetCanaryMacau</CanaryEnvs>\\n <CanaryEnvs>presetCanaryShanghai</CanaryEnvs>\\n <CanaryEnvs>presetCanaryAnhui</CanaryEnvs>\\n <CanaryEnvs>presetCanaryTaiwan</CanaryEnvs>\\n <CanaryEnvs>presetCanaryShandong</CanaryEnvs>\\n <CanaryEnvs>presetCanaryNingxia</CanaryEnvs>\\n <CanaryEnvs>presetCanaryChongqing</CanaryEnvs>\\n <CanaryEnvs>presetCanaryJilin</CanaryEnvs>\\n <CanaryEnvs>presetCanaryJiangsu</CanaryEnvs>\\n <CanaryEnvs>presetCanaryYunnan</CanaryEnvs>\\n <CanaryEnvs>presetCanaryHong-Kong</CanaryEnvs>\\n <CanaryEnvs>presetCanaryHebei</CanaryEnvs>\\n <CanaryEnvs>presetCanaryShanxi</CanaryEnvs>\\n <CanaryEnvs>presetCanaryJiangxi</CanaryEnvs>\\n <CanaryEnvs>presetCanaryHeilongjiang</CanaryEnvs>\\n <CanaryEnvs>presetCanaryXizang</CanaryEnvs>\\n <CanaryEnvs>presetCanaryGuangxi</CanaryEnvs>\\n <CanaryEnvs>presetCanaryShaanxi</CanaryEnvs>\\n <CanaryEnvs>presetCanaryGansu</CanaryEnvs>\\n <CanaryEnvs>presetCanaryQinghai</CanaryEnvs>\\n <CanaryEnvs>presetCanaryXinjiang</CanaryEnvs>\\n <CanaryEnvs>presetCanaryTianjin</CanaryEnvs>\\n <CanaryEnvs>presetCanaryFujian</CanaryEnvs>\\n <CanaryEnvs>presetCanaryHenan</CanaryEnvs>\\n </Content>\\n</DescribeRoutineCanaryEnvsResponse>","errorExample":""}]', ], - 'BatchPutDcdnKv' => [ - 'summary' => '调用BatchPutDcdnKv批量设置指定Namespace的Key-Value(KV)对。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'DescribeRoutineCodeRevision' => [ + 'summary' => '调用DescribeRoutineCodeRevision获取边缘函数ER的某个版本的JS代码。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '189479', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Namespace', - 'in' => 'query', - 'schema' => [ - 'title' => '', - 'description' => 'Namespace名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'ns1', - ], + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => '边缘函数名, 同一个账号下命名唯一。', 'type' => 'string', 'required' => true, 'example' => 'test'], ], [ - 'name' => 'KvList', + 'name' => 'SelectCodeRevision', 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => '需要批量设置的键值对列表,总大小最大2 M(2*1000*1000)。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '需要设置的键名称,最长不超过512个字符,不能包含空格、反斜杠(/)。', - 'type' => 'string', - 'required' => true, - 'example' => 'test_key', - ], - 'Value' => [ - 'description' => '键的内容。', - 'type' => 'string', - 'required' => true, - 'example' => 'test_value', - ], - 'Expiration' => [ - 'description' => '过期时间(秒级时间戳,不能小于当前时间),同时设置Expiration和ExpirationTtl时,以ExpirationTtl为准。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1690081381', - ], - 'ExpirationTtl' => [ - 'description' => '过期时间(相对时间,单位:秒),同时设置Expiration和ExpirationTtl时,以ExpirationTtl为准。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '3600', - ], - ], - 'required' => true, - ], - 'required' => true, - 'maxItems' => 5000, - ], + 'schema' => ['description' => '需要查看的JS代码版本号。', 'type' => 'string', 'required' => true, 'example' => '1611151912787121550'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '156A6B-677B1A-4297B7-9187B7-2B44792', - ], - 'FailKeys' => [ - 'description' => '写失败的key列表。', - 'type' => 'array', - 'items' => [ - 'description' => '写失败的key。', - 'type' => 'string', - 'example' => 'testKey1', - ], - ], - 'SuccessKeys' => [ - 'description' => '写成功的key列表。', - 'type' => 'array', - 'items' => [ - 'description' => '写成功的key。', - 'type' => 'string', - 'example' => 'testKey2', - ], - ], + 'Content' => ['description' => '边缘函数的JS代码。', 'type' => 'object', 'example' => 'CreationTime and ErrCode'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'D24F0C48-1B27-4C58-8B84-1A0C001A514E'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid.Parameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidNameSpace.Malformed', - 'errorMessage' => 'The specified namespace is invalid.', - ], - [ - 'errorCode' => 'InvalidAccount.Malformed', - 'errorMessage' => 'The specified account is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.Malformed', - 'errorMessage' => 'The specified key is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.ExceedsMaximum', - 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', - ], - [ - 'errorCode' => 'InvalidValue.ExceedsMaximum', - 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', - ], - [ - 'errorCode' => 'InvalidKey.TooManyKeys', - 'errorMessage' => 'request contains too many keys.', - ], + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => '后端服务器发生错误:%s 。如果重试多次依然报错,请提交工单。'], ], - 403 => [ - [ - 'errorCode' => 'InvalidKey.ExceedsCapacity', - 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidParameters', - 'errorMessage' => 'The specified authentication parameters are invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidTime', - 'errorMessage' => 'The specified authentication time is invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidToken', - 'errorMessage' => 'Token authentication failed.', - ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"D24F0C48-1B27-4C58-8B84-1A0C001A514E\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeRoutineCodeRevisionResponse>\\n<RequestId>D24F0C48-1B27-4C58-8B84-1A0C001A514E</RequestId>\\n<Content>\\n <CreationTime>2021-05-31T13:20:36Z</CreationTime>\\n <ErCode>LyoqCiAqIEFkZCB0aGUgbmVjZXNzYXJ5IGV2ZW50IGxpc3RlbmVyCiAqIEBwYXJhbSB7RXZlbnR9IGZldGNoIGV2ZW50LCB7RnVuY3Rpb259IGFzeW5jIGZ1bmN0aW9uCiAqLwphZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIGV2ZW50ID0+IHsKICBldmVudC5yZXNwb25kV2l0aChoYW5kbGVSZXF1ZXN0KGV2ZW50LnJlcXVlc3QpKTsKfSkKCi8qKgogKiBNYWtlIGEgcmVzcG9uc2UgdG8gY2xpZW50CiAqIEBwYXJhbSB7UmVxdWVzdH0gcmVxdWVzdAogKi8KYXN5bmMgZnVuY3Rpb24gaGFuZGxlUmVxdWVzdChyZXF1ZXN0KSB7CiAgcmV0dXJuIG5ldyBSZXNwb25zZSgnSGVsbG8gV29ybGQhJywgeyBzdGF0dXM6IDIwMCB9KTsKfQo=</ErCode>\\n</Content>\\n</DescribeRoutineCodeRevisionResponse>","errorExample":""}]', + 'title' => '获取边缘函数ER的JS代码', + 'description' => '> API调用频率:100次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRoutineCodeRevision'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidNameSpace.NotFound', - 'errorMessage' => 'The specified namespace does not exist.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeRoutineCodeRevision', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"156A6B-677B1A-4297B7-9187B7-2B44792\\",\\n \\"FailKeys\\": [\\n \\"testKey1\\"\\n ],\\n \\"SuccessKeys\\": [\\n \\"testKey2\\"\\n ]\\n}","type":"json"}]', - 'title' => '批量设置Namespace的key-value对', ], - 'DescribeDcdnKvNamespace' => [ - 'summary' => '调用DescribeDcdnKvNamespace查询某个Namespace的信息。', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeRoutineRelatedDomains' => [ + 'summary' => '调用DescribeRoutineRelatedDomains查看边缘函数ER关联的域名列表。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '121114', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Namespace', - 'in' => 'query', - 'schema' => [ - 'description' => 'Namespace名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'ns1', - 'maxLength' => 64, - 'pattern' => '^[0-9a-zA-Z_-]+$', - ], + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => '边缘函数Routine名, 同一个账号下命名唯一。', 'type' => 'string', 'required' => true, 'example' => 'routine_test'], ], ], 'responses' => [ @@ -24723,501 +20374,179 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => 'Namespace状态,取值:'."\n" - ."\n" - .'- **online**:正常。'."\n" - .'- **delete**:待删除。'."\n" - .'- **deleting**:删除中。'."\n" - .'- **deleted**:已删除。', - 'type' => 'string', - 'example' => 'online', - ], - 'Namespace' => [ - 'description' => 'Namespace名称。', - 'type' => 'string', - 'example' => 'ns1', - ], - 'NamespaceId' => [ - 'description' => 'Namespace ID。', - 'type' => 'string', - 'example' => '12423131231****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C', - ], - 'Description' => [ - 'description' => 'Namespace描述信息。', - 'type' => 'string', - 'example' => 'the first namespace', - ], - 'CapacityString' => [ - 'description' => 'Namespace可用容量。', - 'type' => 'string', - 'example' => '1 GB', - ], - 'CapacityUsedString' => [ - 'description' => 'Namespace已用容量。', - 'type' => 'string', - 'example' => '100 MB', - ], - 'Mode' => [ - 'description' => '模式(Mode)'."\n" - .'- 普通模式(Normal):默认模式,在边缘未获取到KV时,尝试从中心查询KV信息,从而保证全局数据一致性。'."\n" - ."\n" - .'- 快速模式(Rapid):在边缘未获取到KV时,不再向中心查询,而是直接返回“key不存在”。开启该模式将提升KV查询性能。但可能造成KV查询命中率下降,若有需求请通过工单申请开通。', - 'type' => 'string', - 'example' => 'Normal', - ], - 'Capacity' => [ - 'description' => 'Namespace可用容量,单位为字节。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1073741824', - ], - 'CapacityUsed' => [ - 'description' => 'Namespace已用容量,单位为字节。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10048576', - ], + 'Content' => ['description' => '包含关联Routine的域名列表。', 'type' => 'object', 'example' => ' {"Domains": ['."\n" + .' "xxx.com",'."\n" + .' "yyy.com",'."\n" + .' ...'."\n" + .' ]}'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'FC0E34AC-0239-44A7-AB0E-800DE522C8DA'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid.Parameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidAccount.Malformed', - 'errorMessage' => 'The specified account is invalid.', - ], - [ - 'errorCode' => 'InvalidNameSpace.Malformed', - 'errorMessage' => 'The specified namespace is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.Malformed', - 'errorMessage' => 'The specified key is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.ExceedsMaximum', - 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', - ], - [ - 'errorCode' => 'InvalidValue.ExceedsMaximum', - 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', - ], + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => '后端服务器发生错误:%s 。如果重试多次依然报错,请提交工单。'], ], - 403 => [ - [ - 'errorCode' => 'InvalidKey.ExceedsCapacity', - 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidParameters', - 'errorMessage' => 'The specified authentication parameters are invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidTime', - 'errorMessage' => 'The specified authentication time is invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidToken', - 'errorMessage' => 'Token authentication failed.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidResource', - 'errorMessage' => 'Resource authentication failed.', - ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询边缘函数ER关联的域名列表', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRoutineRelatedDomains'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidAccount.NotFound', - 'errorMessage' => 'The specified account does not exist.', - ], - [ - 'errorCode' => 'InvalidNameSpace.NotFound', - 'errorMessage' => 'The specified namespace does not exist.', - ], - [ - 'errorCode' => 'InvalidKey.NotFound', - 'errorMessage' => 'The specified key does not exist.', - ], - ], - 406 => [ - [ - 'errorCode' => 'InvalidNameSpace.Duplicate', - 'errorMessage' => 'The specified namespace already exists.', - ], - [ - 'errorCode' => 'InvalidNameSpace.QuotaFull', - 'errorMessage' => 'The maximum number of namespaces is exceeded.', - ], - [ - 'errorCode' => 'InvalidKey.QuotaFull', - 'errorMessage' => 'The maximum number of keys is exceeded.', - ], - ], - 429 => [ - [ - 'errorCode' => 'TooManyRequests', - 'errorMessage' => 'Too many requests are submitted.', - ], - [ - 'errorCode' => 'TooQuickRequests', - 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeRoutineRelatedDomains', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Status\\": \\"online\\",\\n \\"Namespace\\": \\"ns1\\",\\n \\"NamespaceId\\": \\"12423131231****\\",\\n \\"RequestId\\": \\"D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C\\",\\n \\"Description\\": \\"the first namespace\\",\\n \\"CapacityString\\": \\"1 GB\\",\\n \\"CapacityUsedString\\": \\"100 MB\\",\\n \\"Mode\\": \\"Normal\\",\\n \\"Capacity\\": 1073741824,\\n \\"CapacityUsed\\": 10048576\\n}","type":"json"}]', - 'title' => '查询Namespace信息', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"FC0E34AC-0239-44A7-AB0E-800DE522C8DA\\"\\n}","type":"json"}]', ], - 'PutDcdnKvNamespace' => [ - 'summary' => '调用PutDcdnKvNamespace给账号下新增Namespace。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeRoutineSpec' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '121111', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], - ], - 'parameters' => [ - [ - 'name' => 'Description', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Namespace描述信息。', - 'type' => 'string', - 'required' => false, - 'example' => 'the first namespace', - 'maxLength' => 1024, - ], - ], - [ - 'name' => 'Namespace', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Namespace名称,不区分大小写,可以包含字母、数字、上划线和下划线。', - 'type' => 'string', - 'required' => true, - 'example' => 'ns1', - 'maxLength' => 64, - 'pattern' => '^[0-9a-zA-Z_-]+$', - ], - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => 'Namespace状态,取值:'."\n" - ."\n" - .'- **online**:正常。'."\n" - ."\n" - .'- **delete**:待删除。'."\n" - ."\n" - .'- **deleting**:删除中。'."\n" - ."\n" - .'- **deleted**:已删除。', - 'type' => 'string', - 'example' => 'online', - ], - 'Namespace' => [ - 'description' => 'Namespace名称。', - 'type' => 'string', - 'example' => 'ns1', - ], - 'NamespaceId' => [ - 'description' => 'Namespace ID。', - 'type' => 'string', - 'example' => '12423131231****', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C', - ], - 'Description' => [ - 'description' => 'Namespace描述信息,最大长度为1024个字符。', - 'type' => 'string', - 'example' => 'the first namespace', - 'maxLength' => 1024, - ], + 'Content' => ['description' => '时间片规格。取值:5ms、50ms和100ms。', 'type' => 'object', 'example' => '5ms、50ms、100ms'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'AE4E1B80-D5F3-47DB-824A-DA98A21854C8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid.Parameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidAccount.Malformed', - 'errorMessage' => 'The specified account is invalid.', - ], - [ - 'errorCode' => 'InvalidNameSpace.Malformed', - 'errorMessage' => 'The specified namespace is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.Malformed', - 'errorMessage' => 'The specified key is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.ExceedsMaximum', - 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', - ], - [ - 'errorCode' => 'InvalidValue.ExceedsMaximum', - 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', - ], + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => '后端服务器发生错误:%s 。如果重试多次依然报错,请提交工单。'], ], - 403 => [ - [ - 'errorCode' => 'InvalidKey.ExceedsCapacity', - 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidParameters', - 'errorMessage' => 'The specified authentication parameters are invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidTime', - 'errorMessage' => 'The specified authentication time is invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidToken', - 'errorMessage' => 'Token authentication failed.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidResource', - 'errorMessage' => 'Resource authentication failed.', - ], + ], + 'title' => '获取边缘函数ER可供选择的函数规格', + 'summary' => '调用DescribeRoutineSpec获取边缘函数可供选择的函数规格(内测阶段有3个CPU时间片规格:5ms、50ms、100ms)。', + 'description' => '> API调用频率:100次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRoutineSpec'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidAccount.NotFound', - 'errorMessage' => 'The specified account does not exist.', - ], - [ - 'errorCode' => 'InvalidNameSpace.NotFound', - 'errorMessage' => 'The specified namespace does not exist.', - ], - [ - 'errorCode' => 'InvalidKey.NotFound', - 'errorMessage' => 'The specified key does not exist.', - ], - ], - 406 => [ - [ - 'errorCode' => 'InvalidNameSpace.Duplicate', - 'errorMessage' => 'The specified namespace already exists.', - ], - [ - 'errorCode' => 'InvalidNameSpace.QuotaFull', - 'errorMessage' => 'The maximum number of namespaces is exceeded.', - ], - [ - 'errorCode' => 'InvalidKey.QuotaFull', - 'errorMessage' => 'The maximum number of keys is exceeded.', - ], - ], - 429 => [ - [ - 'errorCode' => 'TooManyRequests', - 'errorMessage' => 'Too many requests are submitted.', - ], - [ - 'errorCode' => 'TooQuickRequests', - 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeRoutineSpec', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Status\\": \\"online\\",\\n \\"Namespace\\": \\"ns1\\",\\n \\"NamespaceId\\": \\"12423131231****\\",\\n \\"RequestId\\": \\"D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C\\",\\n \\"Description\\": \\"the first namespace\\"\\n}","type":"json"}]', - 'title' => '添加Namespace', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"AE4E1B80-D5F3-47DB-824A-DA98A21854C8\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeRoutineSpecResponse>\\n<RequestId>AE4E1B80-D5F3-47DB-824A-DA98A21854C8</RequestId>\\n<Content>\\n <Specs>5ms</Specs>\\n <Specs>50ms</Specs>\\n <Specs>100ms</Specs>\\n</Content>\\n</DescribeRoutineSpecResponse>","errorExample":""}]', ], - 'DeleteDcdnKvNamespace' => [ - 'summary' => '删除账号下某个Namespace。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeRoutineUserInfo' => [ + 'summary' => '调用DescribeRoutineUserInfo获取阿里云账号绑定的相关信息(绑定的subdomain,以及创建的routine列表)。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'deprecated' => false, + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '121113', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], - ], - 'parameters' => [ - [ - 'name' => 'Namespace', - 'in' => 'query', - 'schema' => [ - 'description' => 'Namespace名称。可通过调用[PutDcdnKvNamespace](~~PutDcdnKvNamespace~~)查询名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'ns1', - 'maxLength' => 64, - 'pattern' => '^[0-9a-zA-Z_-]+$', - ], - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID', - 'type' => 'string', - 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C。', - ], + 'Content' => ['description' => '接口返回的内容。', 'type' => 'object', 'example' => 'Bindable Subdomain and Routine list'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '691DEEE5-4BDB-47F3-930E-F57176427717'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid.Parameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidAccount.Malformed', - 'errorMessage' => 'The specified account is invalid.', - ], - [ - 'errorCode' => 'InvalidNameSpace.Malformed', - 'errorMessage' => 'The specified namespace is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.Malformed', - 'errorMessage' => 'The specified key is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.ExceedsMaximum', - 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', - ], - [ - 'errorCode' => 'InvalidValue.ExceedsMaximum', - 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', - ], + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => '后端服务器发生错误:%s 。如果重试多次依然报错,请提交工单。'], ], 403 => [ - [ - 'errorCode' => 'InvalidKey.ExceedsCapacity', - 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidParameters', - 'errorMessage' => 'The specified authentication parameters are invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidTime', - 'errorMessage' => 'The specified authentication time is invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidToken', - 'errorMessage' => 'Token authentication failed.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidResource', - 'errorMessage' => 'Resource authentication failed.', - ], - ], - [ - [ - 'errorCode' => 'InvalidAccount.NotFound', - 'errorMessage' => 'The specified account does not exist.', - ], - [ - 'errorCode' => 'InvalidNameSpace.NotFound', - 'errorMessage' => 'The specified namespace does not exist.', - ], - [ - 'errorCode' => 'InvalidKey.NotFound', - 'errorMessage' => 'The specified key does not exist.', - ], + ['errorCode' => '%sServiceNotFound', 'errorMessage' => 'The [%s] service is not activated.', 'description' => '服务没有开通。'], ], - 406 => [ - [ - 'errorCode' => 'InvalidNameSpace.Duplicate', - 'errorMessage' => 'The specified namespace already exists.', - ], - [ - 'errorCode' => 'InvalidNameSpace.QuotaFull', - 'errorMessage' => 'The maximum number of namespaces is exceeded.', - ], - [ - 'errorCode' => 'InvalidKey.QuotaFull', - 'errorMessage' => 'The maximum number of keys is exceeded.', - ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"691DEEE5-4BDB-47F3-930E-F57176427717\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeRoutineUserInfoResponse>\\n<RequestId>691DEEE5-4BDB-47F3-930E-F57176427717</RequestId>\\n<Content>\\n <Routines>\\n <RoutineName>test</RoutineName>\\n <Description>the description of this routine</Description>\\n <CreationTime>2021-05-20 04:00:00 PM</CreationTime>\\n </Routines>\\n <Routines>\\n <RoutineName>test-slc</RoutineName>\\n <Description>InRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIHJvdXRpbmUi</Description>\\n <CreationTime>2021-05-31T13:14:23.132925407Z</CreationTime>\\n </Routines>\\n <Subdomains>subdomain-slc2</Subdomains>\\n</Content>\\n</DescribeRoutineUserInfoResponse>","errorExample":""}]', + 'title' => '获取阿里云账号绑定的相关信息', + 'description' => '> API调用频率:100次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => '### Content参数'."\n" + .'| 名称 | 类型 | 示例值 | 描述 |'."\n" + .'| -------------- | ------ | -------------------------------- | ------------------------- |'."\n" + .'| Routines | Array | | 各个Routine的基本信息。 |'."\n" + .'| ㄴRoutineName | String | test | Routine名称。 |'."\n" + .'| ㄴDescription | String | the description of this routine | Routine描述。 |'."\n" + .'| ㄴCreationTime | String | 2021/5/20 16:00 | Routine创建时间。 |'."\n" + .'| Subdomains | Array | subdomain-slc2 | 当前用户的子域Subdomain。 |', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRoutineUserInfo'], ], - 429 => [ - [ - 'errorCode' => 'TooManyRequests', - 'errorMessage' => 'Too many requests are submitted.', - ], - [ - 'errorCode' => 'TooQuickRequests', - 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeRoutineUserInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C。\\"\\n}","type":"json"}]', - 'title' => '删除Namespace', ], - 'DescribeDcdnKvAccount' => [ - 'summary' => '调用DescribeDcdnKvAccount查询账户信息和所拥有的Namespace信息。', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeUserDcdnIpaStatus' => [ + 'summary' => '调用DescribeUserDcdnIpaStatus查询全站加速IPA是否开通、是否欠费。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -25228,10 +20557,9 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '121116', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111577', + 'abilityTreeNodes' => ['FEATUREdcdnTP4C37'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [], 'responses' => [ @@ -25239,216 +20567,46 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => '账户状态。'."\n" - ."\n" - .'- **online**:开启。'."\n" - .'- **offline**:关闭。', - 'type' => 'string', - 'example' => 'online', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C', - ], - 'NamespaceUsed' => [ - 'description' => '账号下已申请namespace数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'NamespaceQuota' => [ - 'description' => '账号下最多可申请的Namespace数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'CapacityString' => [ - 'description' => '账户下所有Namespace可用容量。', - 'type' => 'string', - 'example' => '1 GB', - ], - 'CapacityUsedString' => [ - 'description' => '账户下所有Namespace已用容量。', - 'type' => 'string', - 'example' => '100 MB', - ], - 'NamespaceList' => [ - 'description' => '账号命名空间列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'Namespace状态,取值:'."\n" - ."\n" - .'- **online**:正常。'."\n" - ."\n" - .'- **delete**:待删除。'."\n" - ."\n" - .'- **deleting**:删除中。'."\n" - ."\n" - .'- **deleted**:已删除。', - 'type' => 'string', - 'example' => 'online', - ], - 'Namespace' => [ - 'description' => 'Namespace名称。', - 'type' => 'string', - 'example' => 'ns1', - ], - 'NamespaceId' => [ - 'description' => 'Namespace ID。', - 'type' => 'string', - 'example' => '12423131231****', - ], - 'Description' => [ - 'description' => 'Namespace描述信息。', - 'type' => 'string', - 'example' => 'the first namespace', - ], - 'CapacityString' => [ - 'description' => 'Namespace可用容量。', - 'type' => 'string', - 'example' => '1 GB', - ], - 'CapacityUsedString' => [ - 'description' => 'Namespace已用容量。', - 'type' => 'string', - 'example' => '100 MB', - ], - 'Capacity' => [ - 'description' => 'Namespace可用容量,单位为字节。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1073741824', - ], - 'CapacityUsed' => [ - 'description' => 'Namespace已用容量,单位为字节。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10048576', - ], - ], - ], - ], - 'Capacity' => [ - 'description' => '账户下所有Namespace的可用容量,单位为字节。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1073741824', - ], - 'CapacityUsed' => [ - 'description' => '账户下所有Namespace的已用容量,单位为字节。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10048576', - ], + 'InDebt' => ['description' => '是否欠费。', 'type' => 'boolean', 'example' => 'false'], + 'OnService' => ['description' => '服务是否可用(不欠费)。', 'type' => 'boolean', 'example' => 'true'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '4F51E9C3-728F-4E35-952D-0ED87A06A8A1'], + 'InDebtOverdue' => ['description' => '是否欠费超期。', 'type' => 'boolean', 'example' => 'false'], + 'Enabled' => ['description' => '是否已开通IPA服务。'."\n", 'type' => 'boolean', 'example' => 'true'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Invalid.Parameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidAccount.Malformed', - 'errorMessage' => 'The specified account is invalid.', - ], - [ - 'errorCode' => 'InvalidNameSpace.Malformed', - 'errorMessage' => 'The specified namespace is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.Malformed', - 'errorMessage' => 'The specified key is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.ExceedsMaximum', - 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', - ], - [ - 'errorCode' => 'InvalidValue.ExceedsMaximum', - 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', - ], - ], - 403 => [ - [ - 'errorCode' => 'InvalidKey.ExceedsCapacity', - 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidParameters', - 'errorMessage' => 'The specified authentication parameters are invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidTime', - 'errorMessage' => 'The specified authentication time is invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidToken', - 'errorMessage' => 'Token authentication failed.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidResource', - 'errorMessage' => 'Resource authentication failed.', - ], + 'title' => '获取IPA服务开通状态', + 'description' => '> 单用户调用频率:20次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-10-27T03:00:49.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUserDcdnIpaStatus'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidAccount.NotFound', - 'errorMessage' => 'The specified account does not exist.', - ], - [ - 'errorCode' => 'InvalidNameSpace.NotFound', - 'errorMessage' => 'The specified namespace does not exist.', - ], - [ - 'errorCode' => 'InvalidKey.NotFound', - 'errorMessage' => 'The specified key does not exist.', - ], - ], - 406 => [ - [ - 'errorCode' => 'InvalidNameSpace.Duplicate', - 'errorMessage' => 'The specified namespace already exists.', - ], - [ - 'errorCode' => 'InvalidNameSpace.QuotaFull', - 'errorMessage' => 'The maximum number of namespaces is exceeded.', - ], - [ - 'errorCode' => 'InvalidKey.QuotaFull', - 'errorMessage' => 'The maximum number of keys is exceeded.', - ], - ], - 429 => [ - [ - 'errorCode' => 'TooManyRequests', - 'errorMessage' => 'Too many requests are submitted.', - ], - [ - 'errorCode' => 'TooQuickRequests', - 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeUserDcdnIpaStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Status\\": \\"online\\",\\n \\"RequestId\\": \\"D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C\\",\\n \\"NamespaceUsed\\": 1,\\n \\"NamespaceQuota\\": 10,\\n \\"CapacityString\\": \\"1 GB\\",\\n \\"CapacityUsedString\\": \\"100 MB\\",\\n \\"NamespaceList\\": [\\n {\\n \\"Status\\": \\"online\\",\\n \\"Namespace\\": \\"ns1\\",\\n \\"NamespaceId\\": \\"12423131231****\\",\\n \\"Description\\": \\"the first namespace\\",\\n \\"CapacityString\\": \\"1 GB\\",\\n \\"CapacityUsedString\\": \\"100 MB\\",\\n \\"Capacity\\": 1073741824,\\n \\"CapacityUsed\\": 10048576\\n }\\n ],\\n \\"Capacity\\": 1073741824,\\n \\"CapacityUsed\\": 10048576\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnKvAccountResponse>\\n <Status>online,offline</Status>\\n <RequestId>D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C</RequestId>\\n <NamespaceUsed>1</NamespaceUsed>\\n <NamespaceQuota>10</NamespaceQuota>\\n <CapacityString>1 GB</CapacityString>\\n <CapacityUsedString>100 MB</CapacityUsedString>\\n <NamespaceList>\\n <Status>online</Status>\\n <Namespace>ns1</Namespace>\\n <NamespaceId>12423131231****</NamespaceId>\\n <Description>the first namespace</Description>\\n <CapacityString>1 GB</CapacityString>\\n <CapacityUsedString>100 MB</CapacityUsedString>\\n </NamespaceList>\\n</DescribeDcdnKvAccountResponse>","errorExample":""}]', - 'title' => '查询KV信息', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"InDebt\\": false,\\n \\"OnService\\": true,\\n \\"RequestId\\": \\"4F51E9C3-728F-4E35-952D-0ED87A06A8A1\\",\\n \\"InDebtOverdue\\": false,\\n \\"Enabled\\": true\\n}","errorExample":""},{"type":"xml","example":"<DescribeUserDcdnIpaStatusResponse>\\r\\n\\t<Enabled>true</Enabled>\\r\\n\\t<InDebtOverdue>false</InDebtOverdue>\\r\\n\\t<InDebt>false</InDebt>\\r\\n\\t<OnService>true</OnService>\\r\\n\\t<RequestId>4F51E9C3-728F-4E35-952D-0ED87A06A8A1</RequestId>\\r\\n</DescribeUserDcdnIpaStatusResponse>\\r\\n\\t\\r\\n","errorExample":""}]', ], - 'DescribeDcdnKvAccountStatus' => [ - 'summary' => '查询账户的KV状态信息。', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeUserDcdnStatus' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -25459,10 +20617,9 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '138504', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111578', + 'abilityTreeNodes' => ['FEATUREdcdnTP4C37'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [], 'responses' => [ @@ -25470,123 +20627,48 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => '账户状态。'."\n" - ."\n" - .'- **online**:开启。'."\n" - .'- **offline**:关闭。', - 'type' => 'string', - 'example' => 'online', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5C1E43DC-9E51-4771-82C0-7D5ECEB547A1', - ], + 'InDebt' => ['description' => '是否欠费。', 'type' => 'boolean', 'example' => 'false'], + 'OnService' => ['description' => '服务是否可用。'."\n", 'type' => 'boolean', 'example' => 'true'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '4F51E9C3-728F-4E35-952D-0ED87A06A8A1'], + 'InDebtOverdue' => ['description' => '是否欠费超期。', 'type' => 'boolean', 'example' => 'false'], + 'Enabled' => ['description' => '是否已开通全站加速服务。', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Invalid.Parameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidAccount.Malformed', - 'errorMessage' => 'The specified account is invalid.', - ], - [ - 'errorCode' => 'InvalidNameSpace.Malformed', - 'errorMessage' => 'The specified namespace is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.Malformed', - 'errorMessage' => 'The specified key is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.ExceedsMaximum', - 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', - ], - [ - 'errorCode' => 'InvalidValue.ExceedsMaximum', - 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', - ], - ], - 403 => [ - [ - 'errorCode' => 'InvalidKey.ExceedsCapacity', - 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidParameters', - 'errorMessage' => 'The specified authentication parameters are invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidTime', - 'errorMessage' => 'The specified authentication time is invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidToken', - 'errorMessage' => 'Token authentication failed.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidResource', - 'errorMessage' => 'Resource authentication failed.', - ], + 'title' => '查询DCDN服务是否可用', + 'summary' => '调用DescribeUserDcdnStatus查询全站加速是否欠费、是否可用。', + 'description' => '> 单用户调用频率:30次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-10-27T03:17:51.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUserDcdnStatus'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidAccount.NotFound', - 'errorMessage' => 'The specified account does not exist.', - ], - [ - 'errorCode' => 'InvalidNameSpace.NotFound', - 'errorMessage' => 'The specified namespace does not exist.', - ], - [ - 'errorCode' => 'InvalidKey.NotFound', - 'errorMessage' => 'The specified key does not exist.', - ], - ], - 406 => [ - [ - 'errorCode' => 'InvalidNameSpace.Duplicate', - 'errorMessage' => 'The specified namespace already exists.', - ], - [ - 'errorCode' => 'InvalidNameSpace.QuotaFull', - 'errorMessage' => 'The maximum number of namespaces is exceeded.', - ], - [ - 'errorCode' => 'InvalidKey.QuotaFull', - 'errorMessage' => 'The maximum number of keys is exceeded.', - ], - ], - 429 => [ - [ - 'errorCode' => 'TooManyRequests', - 'errorMessage' => 'Too many requests are submitted.', - ], - [ - 'errorCode' => 'TooQuickRequests', - 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeUserDcdnStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Status\\": \\"online\\",\\n \\"RequestId\\": \\"5C1E43DC-9E51-4771-82C0-7D5ECEB547A1\\"\\n}","type":"json"}]', - 'title' => '查询账户的KV状态信息', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"InDebt\\": false,\\n \\"OnService\\": true,\\n \\"RequestId\\": \\"4F51E9C3-728F-4E35-952D-0ED87A06A8A1\\",\\n \\"InDebtOverdue\\": false,\\n \\"Enabled\\": true\\n}","errorExample":""},{"type":"xml","example":"<DescribeUserDcdnStatusResponse>\\r\\n\\t<Enabled>true</Enabled>\\r\\n\\t<InDebtOverdue>false</InDebtOverdue>\\r\\n\\t<InDebt>false</InDebt>\\r\\n\\t<OnService>true</OnService>\\r\\n\\t<RequestId>4F51E9C3-728F-4E35-952D-0ED87A06A8A1</RequestId>\\r\\n</DescribeUserDcdnStatusResponse>\\r\\n\\t\\r\\n","errorExample":""}]', ], - 'GetDcdnKv' => [ - 'summary' => '调用GetDcdnKv查询Key-Value(KV)对的某个Key值。', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeUserErStatus' => [ + 'summary' => '调用DescribeUserErStatus查看边缘函数ER是否开通或者欠费。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -25597,152 +20679,67 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '121109', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], - ], - 'parameters' => [ - [ - 'name' => 'Namespace', - 'in' => 'query', - 'schema' => [ - 'description' => 'Namespace名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'ns1', - ], - ], - [ - 'name' => 'Key', - 'in' => 'query', - 'schema' => [ - 'description' => '查询的Key名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'key1', - ], - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Value' => [ - 'description' => 'Key值。', - 'type' => 'string', - 'example' => 'value1', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C', - ], + 'InDebt' => ['description' => '边缘函数ER是否欠费。'."\n" + ."\n" + .'- true:欠费。'."\n" + .'- false:未欠费。', 'type' => 'boolean', 'example' => 'false'], + 'OnService' => ['description' => '边缘函数ER是否可用。'."\n" + ."\n" + .'- true:可用。'."\n" + .'- false:不可用。', 'type' => 'boolean', 'example' => 'true'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '4F51E9C3-728F-4E35-952D-0ED87A06A8A1'], + 'InDebtOverdue' => ['description' => '边缘函数ER是否欠费超时。'."\n" + ."\n" + .'- true:超时。'."\n" + .'- false:未超时。', 'type' => 'boolean', 'example' => 'false'], + 'Enabled' => ['description' => '是否开通边缘函数ER。'."\n" + ."\n" + .'- true:开通。'."\n" + .'- false:未开通。', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Invalid.Parameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidAccount.Malformed', - 'errorMessage' => 'The specified account is invalid.', - ], - [ - 'errorCode' => 'InvalidNameSpace.Malformed', - 'errorMessage' => 'The specified namespace is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.Malformed', - 'errorMessage' => 'The specified key is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.ExceedsMaximum', - 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', - ], - [ - 'errorCode' => 'InvalidValue.ExceedsMaximum', - 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', - ], - ], - 403 => [ - [ - 'errorCode' => 'InvalidKey.ExceedsCapacity', - 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidParameters', - 'errorMessage' => 'The specified authentication parameters are invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidTime', - 'errorMessage' => 'The specified authentication time is invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidToken', - 'errorMessage' => 'Token authentication failed.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidResource', - 'errorMessage' => 'Resource authentication failed.', - ], + 'title' => '查看边缘函数ER是否开通或者欠费', + 'description' => '> 单用户调用频率:30次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-10-27T02:28:06.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUserErStatus'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidAccount.NotFound', - 'errorMessage' => 'The specified account does not exist.', - ], - [ - 'errorCode' => 'InvalidNameSpace.NotFound', - 'errorMessage' => 'The specified namespace does not exist.', - ], - [ - 'errorCode' => 'InvalidKey.NotFound', - 'errorMessage' => 'The specified key does not exist.', - ], - ], - 406 => [ - [ - 'errorCode' => 'InvalidNameSpace.Duplicate', - 'errorMessage' => 'The specified namespace already exists.', - ], - [ - 'errorCode' => 'InvalidNameSpace.QuotaFull', - 'errorMessage' => 'The maximum number of namespaces is exceeded.', - ], - [ - 'errorCode' => 'InvalidKey.QuotaFull', - 'errorMessage' => 'The maximum number of keys is exceeded.', - ], - ], - 429 => [ - [ - 'errorCode' => 'TooManyRequests', - 'errorMessage' => 'Too many requests are submitted.', - ], - [ - 'errorCode' => 'TooQuickRequests', - 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeUserErStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Value\\": \\"value1\\",\\n \\"RequestId\\": \\"D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C\\"\\n}","type":"json"}]', - 'title' => '查询Key-Value对的某个Key值', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"InDebt\\": false,\\n \\"OnService\\": true,\\n \\"RequestId\\": \\"4F51E9C3-728F-4E35-952D-0ED87A06A8A1\\",\\n \\"InDebtOverdue\\": false,\\n \\"Enabled\\": true\\n}","errorExample":""},{"type":"xml","example":"<DescribeUserErStatusResponse>\\n <InDebt>false</InDebt>\\n <OnService>true</OnService>\\n <RequestId>4F51E9C3-728F-4E35-952D-0ED87A06A8A1</RequestId>\\n <InDebtOverdue>false</InDebtOverdue>\\n <Enabled>true</Enabled>\\n</DescribeUserErStatusResponse>","errorExample":""}]', ], - 'ListDcdnKv' => [ - 'summary' => '调用ListDcdnKv遍历账户下指定Namespace的Key值。', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeUserLogserviceStatus' => [ + 'summary' => '调用DescribeUserLogserviceStatus查看Logservice服务是否开通或者欠费。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -25753,211 +20750,69 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '121112', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], - ], - 'parameters' => [ - [ - 'name' => 'Namespace', - 'in' => 'query', - 'schema' => [ - 'description' => 'Namespace名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'ns1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '指定返回的页大小,默认为50,最大为100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '50', - 'default' => '50', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => '指定页码,PageNumber\\*PageSize最大不可超过50000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '10', - 'default' => '1', - ], - ], - [ - 'name' => 'Prefix', - 'in' => 'query', - 'schema' => [ - 'description' => '指定查找前缀。', - 'type' => 'string', - 'required' => false, - 'example' => 'prefix-', - ], - ], + 'abilityTreeCode' => '111580', + 'abilityTreeNodes' => ['FEATUREdcdnZA9EPX'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C', - ], - 'PageSize' => [ - 'description' => '返回的记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'PageNumber' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'TotalCount' => [ - 'description' => '总记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1024', - ], - 'Keys' => [ - 'description' => '本次遍历获取的Key。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Name' => [ - 'description' => '遍历到的Key值。', - 'type' => 'string', - 'example' => 'Key1', - ], - 'UpdateTime' => [ - 'description' => 'Key的更新时间。', - 'type' => 'string', - 'example' => '2021-12-13T07:46:03Z', - ], - ], - ], - ], + 'InDebt' => ['description' => 'Logservice服务是否欠费。'."\n" + ."\n" + .'- true:欠费。'."\n" + .'- false:未欠费。', 'type' => 'boolean', 'example' => 'false'], + 'OnService' => ['description' => 'Logservice服务是否可用。'."\n" + ."\n" + .'- true:可用。'."\n" + .'- false:不可用。', 'type' => 'boolean', 'example' => 'true'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '4F51E9C3-728F-4E35-952D-0ED87A06A8A1'], + 'InDebtOverdue' => ['description' => 'Logservice服务是否欠费超时。'."\n" + ."\n" + .'- true:超时。'."\n" + .'- false:未超时。', 'type' => 'boolean', 'example' => 'false'], + 'Enabled' => ['description' => '是否开通Logservice服务。'."\n" + ."\n" + .'- true:开通。'."\n" + .'- false:未开通。', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Invalid.Parameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidAccount.Malformed', - 'errorMessage' => 'The specified account is invalid.', - ], - [ - 'errorCode' => 'InvalidNameSpace.Malformed', - 'errorMessage' => 'The specified namespace is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.Malformed', - 'errorMessage' => 'The specified key is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.ExceedsMaximum', - 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', - ], - [ - 'errorCode' => 'InvalidValue.ExceedsMaximum', - 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', - ], - ], - 403 => [ - [ - 'errorCode' => 'InvalidKey.ExceedsCapacity', - 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidParameters', - 'errorMessage' => 'The specified authentication parameters are invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidTime', - 'errorMessage' => 'The specified authentication time is invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidToken', - 'errorMessage' => 'Token authentication failed.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidResource', - 'errorMessage' => 'Resource authentication failed.', - ], + 'title' => '查看Logservice服务是否开通或者欠费', + 'description' => '> 单用户调用频率:20次/秒。 ', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-10-27T02:16:05.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUserLogserviceStatus'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidAccount.NotFound', - 'errorMessage' => 'The specified account does not exist.', - ], - [ - 'errorCode' => 'InvalidNameSpace.NotFound', - 'errorMessage' => 'The specified namespace does not exist.', - ], - [ - 'errorCode' => 'InvalidKey.NotFound', - 'errorMessage' => 'The specified key does not exist.', - ], - ], - 406 => [ - [ - 'errorCode' => 'InvalidNameSpace.Duplicate', - 'errorMessage' => 'The specified namespace already exists.', - ], - [ - 'errorCode' => 'InvalidNameSpace.QuotaFull', - 'errorMessage' => 'The maximum number of namespaces is exceeded.', - ], - [ - 'errorCode' => 'InvalidKey.QuotaFull', - 'errorMessage' => 'The maximum number of keys is exceeded.', - ], - ], - 429 => [ - [ - 'errorCode' => 'TooManyRequests', - 'errorMessage' => 'Too many requests are submitted.', - ], - [ - 'errorCode' => 'TooQuickRequests', - 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeUserLogserviceStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C\\",\\n \\"PageSize\\": 50,\\n \\"PageNumber\\": 100,\\n \\"TotalCount\\": 1024,\\n \\"Keys\\": [\\n {\\n \\"Name\\": \\"Key1\\",\\n \\"UpdateTime\\": \\"2021-12-13T07:46:03Z\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListDcdnKvResponse>\\n <RequestId>D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C</RequestId>\\n <PageSize>50</PageSize>\\n <PageNumber>100</PageNumber>\\n <TotalCount>1024</TotalCount>\\n <Keys>\\n <Name>Key1</Name>\\n <UpdateTime>2021-12-13T07:46:03Z</UpdateTime>\\n </Keys>\\n</ListDcdnKvResponse>","errorExample":""}]', - 'title' => '遍历Namespace的Key值', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"InDebt\\": false,\\n \\"OnService\\": true,\\n \\"RequestId\\": \\"4F51E9C3-728F-4E35-952D-0ED87A06A8A1\\",\\n \\"InDebtOverdue\\": false,\\n \\"Enabled\\": true\\n}","errorExample":""},{"type":"xml","example":"<DescribeUserLogserviceStatusResponse>\\n<Enabled>true</Enabled>\\n<InDebtOverdue>false</InDebtOverdue>\\n<InDebt>false</InDebt>\\n<OnService>true</OnService>\\n<RequestId>4F51E9C3-728F-4E35-952D-0ED87A06A\\n</DescribeUserLogserviceStatusResponse>","errorExample":""}]', ], - 'PutDcdnKv' => [ - 'summary' => '调用PutDcdnKv设置指定Namespace的Key-Value(KV)对。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'EditRoutineConf' => [ + 'summary' => '调用EditRoutineConf修改边缘函数ER的配置。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -25968,63 +20823,25 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '121110', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111585', + 'abilityTreeNodes' => ['FEATUREdcdn75UYDO'], ], 'parameters' => [ [ - 'name' => 'Namespace', - 'in' => 'query', - 'schema' => [ - 'description' => 'Namespace名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'ns1', - ], - ], - [ - 'name' => 'Key', - 'in' => 'query', - 'schema' => [ - 'description' => '需要设置的Key名称,最长不超过512个字符,不能包含空格、反斜杠(/)。', - 'type' => 'string', - 'required' => true, - 'example' => 'key1', - ], - ], - [ - 'name' => 'Value', + 'name' => 'Name', 'in' => 'formData', - 'schema' => [ - 'description' => 'Key的内容,最大2 MB(2\\*1000\\*1000)。', - 'type' => 'string', - 'required' => true, - 'example' => 'value1', - ], + 'schema' => ['description' => '边缘函数名, 同一个账号下命名唯一。', 'type' => 'string', 'required' => true, 'example' => 'test-slc'], ], [ - 'name' => 'Expiration', - 'in' => 'query', - 'schema' => [ - 'description' => '过期时间(秒级时间戳,不能小于当前时间),同时设置Expiration和ExpirationTtl时,以ExpirationTtl为准。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1690081381', - ], + 'name' => 'Description', + 'in' => 'formData', + 'schema' => ['description' => '边缘函数描述。', 'type' => 'string', 'required' => false, 'example' => 'the description of this routine'], ], [ - 'name' => 'ExpirationTtl', - 'in' => 'query', - 'schema' => [ - 'description' => '过期时间(相对时间,单位:秒),同时设置Expiration和ExpirationTtl时,以ExpirationTtl为准。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '3600', - ], + 'name' => 'EnvConf', + 'in' => 'formData', + 'style' => 'json', + 'schema' => ['description' => 'Env环境配置。', 'type' => 'object', 'required' => false, 'example' => '{"staging":{"SpecName":"50ms","AllowedHosts":["test-a.alicdn.com","test-b.alicdn.com"]},"production":{"SpecName":"50ms","AllowedHosts":["test-c.alicdn.com","test-d.alicdn.com"]},"presetCanaryZhejiang":{"SpecName":"100ms","AllowedHosts":["test-e.alicdn.com","test-f.alicdn.com"]},"presetCanaryBeijing":{"SpecName":"5ms","AllowedHosts":["test-g.alicdn.com","test-h.alicdn.com"]},"presetCanaryNotExist":{"SpecName":"5ms","CodeRev":"1622446907645949975","AllowedHosts":["error hosts"]}}'], ], ], 'responses' => [ @@ -26032,165 +20849,86 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Length' => [ - 'description' => 'Key的长度。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'Value' => [ - 'description' => 'Key的内容, 超过256个字符长度,将取前100及后100字符并省略中间。', - 'type' => 'string', - 'example' => 'value1', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '96ED3127-EC7A-57C5-AFA6-A689B24B2530', - ], + 'Content' => ['description' => '执行错误描述和和各环境最新的配置版本号。', 'type' => 'object', 'example' => 'Description and EnvConfRev'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'BAECB354-6D42-42C1-87DA-C9992EF1E7C8'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid.Parameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidAccount.Malformed', - 'errorMessage' => 'The specified account is invalid.', - ], - [ - 'errorCode' => 'InvalidNameSpace.Malformed', - 'errorMessage' => 'The specified namespace is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.Malformed', - 'errorMessage' => 'The specified key is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.ExceedsMaximum', - 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', - ], - [ - 'errorCode' => 'InvalidValue.ExceedsMaximum', - 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', - ], + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => '后端服务器发生错误:%s 。如果重试多次依然报错,请提交工单。'], ], - 403 => [ - [ - 'errorCode' => 'InvalidKey.ExceedsCapacity', - 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidParameters', - 'errorMessage' => 'The specified authentication parameters are invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidTime', - 'errorMessage' => 'The specified authentication time is invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidToken', - 'errorMessage' => 'Token authentication failed.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidResource', - 'errorMessage' => 'Resource authentication failed.', - ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"BAECB354-6D42-42C1-87DA-C9992EF1E7C8\\"\\n}","errorExample":""},{"type":"xml","example":"<EditRoutineConfResponse>\\n <RequestId>BAECB354-6D42-42C1-87DA-C9992EF1E7C8</RequestId>\\n <Content>\\n <Description>Validate (Env: presetCanaryNotExist, Error: not valid canary name ) </Description>\\n <EnvConfRev>\\n <presetCanaryZhejiang>1622033526212272495</presetCanaryZhejiang>\\n <staging>1622033526008611202</staging>\\n <presetCanaryBeijing>1622033526223670241</presetCanaryBeijing>\\n <production>1622033526162527140</production>\\n </EnvConfRev>\\n </Content>\\n</EditRoutineConfResponse>","errorExample":""}]', + 'title' => '修改边缘函数ER的配置', + 'description' => '- 该参数可以只修改自己需要的配置,其他配置会延用之前的设置。'."\n" + .'- 如果需要删除某个配置,手动设置其value为空即可。'."\n" + .'- 该接口可新增Canary Env(命名必须符合规范,否则无法设置成功)。'."\n" + .'- 预置的灰度区域(34个中国区域+1个海外区域):'."\n" + .' - 海外区域:presetCanaryOverseas。'."\n" + .' - 34个中国区域:presetCanaryXX,例如北京区域就是presetCanaryBeijing。具体如下所示:Anhui 安徽,Beijing 北京,Chongqing 重庆,Fujian 福建,Gansu 甘肃,Guangdong 广东,Guangxi 广西,Guizhou 贵州,Hainan 海南,Hebei 河北,Heilongjiang 黑龙江,Henan 河南,Hong-Kong 香港,Hubei 湖北,Hunan 湖南,Jiangsu 江苏,Jiangxi 江西,Jilin 吉林,Liaoning 辽宁,Macau 澳门,Neimenggu 内蒙古,Ningxia 宁夏,Qinghai 青海,Shaanxi 陕西,Shandong 山东,Shanghai 上海,Shanxi 山西,Sichuan 四川,Taiwan 台湾,Tianjin 天津,Xinjiang 新疆,Xizang 西藏,Yunnan 云南,Zhejiang 浙江。'."\n" + .'- API调用频率:100次/秒。', + 'requestParamsDescription' => '### EnvConf字段描述'."\n" + ."\n" + .'| 名称 | 类型 | 描述 |'."\n" + .'| --------- | ------ | ----------------------------------- |'."\n" + .'| SpecName | String | CPU规格时间片。 |'."\n" + .'| CodeRev | String | 代码版本号。 |'."\n" + .'| AllowedHosts | String | 允许关联的CDN域名。|', + 'responseParamsDescription' => '### Content参数'."\n" + .'| 名称 | 类型 | 示例值 | 描述 |'."\n" + .'| ----------- | ------ | ------------------------------------------------------------ | ----------------------- |'."\n" + .'| Description | String | Validate (Env: presetCanaryNotExist, Error: not valid canary name ) | Routine描述。 |'."\n" + .'| EnvConfRev | JSON | 1622033526212272495 | 各Env环境的配置版本号。 |', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EditRoutineConf'], ], + ], + 'ramActions' => [ [ - [ - 'errorCode' => 'InvalidAccount.NotFound', - 'errorMessage' => 'The specified account does not exist.', - ], - [ - 'errorCode' => 'InvalidNameSpace.NotFound', - 'errorMessage' => 'The specified namespace does not exist.', - ], - [ - 'errorCode' => 'InvalidKey.NotFound', - 'errorMessage' => 'The specified key does not exist.', - ], - ], - 406 => [ - [ - 'errorCode' => 'InvalidNameSpace.Duplicate', - 'errorMessage' => 'The specified namespace already exists.', - ], - [ - 'errorCode' => 'InvalidNameSpace.QuotaFull', - 'errorMessage' => 'The maximum number of namespaces is exceeded.', - ], - [ - 'errorCode' => 'InvalidKey.QuotaFull', - 'errorMessage' => 'The maximum number of keys is exceeded.', - ], - ], - 429 => [ - [ - 'errorCode' => 'TooManyRequests', - 'errorMessage' => 'Too many requests are submitted.', - ], - [ - 'errorCode' => 'TooQuickRequests', - 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:EditRoutineConf', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Length\\": 5,\\n \\"Value\\": \\"value1\\",\\n \\"RequestId\\": \\"96ED3127-EC7A-57C5-AFA6-A689B24B2530\\"\\n}","type":"json"}]', - 'title' => '设置Namespace的Key-Value对', - 'description' => '> 单用户调用频率:50次/秒。', ], - 'DeleteDcdnKv' => [ - 'summary' => 'EdgeKv产品在全站加速边缘节点提供一个全球通用的KV(Key-Value)数据库,调用DeleteDcdnKv删除Namespace的Key-Value(KV)对。', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetDcdnKv' => [ + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '121108', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '121109', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'Namespace', 'in' => 'query', - 'schema' => [ - 'description' => '调用[PutDcdnKvNamespace](~~PutDcdnKvNamespace~~)时指定的名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'ns1', - ], + 'schema' => ['description' => 'Namespace名称。', 'type' => 'string', 'required' => true, 'example' => 'ns1'], ], [ 'name' => 'Key', 'in' => 'query', - 'schema' => [ - 'description' => '要删除的Key名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'test_key_1', - ], + 'schema' => ['description' => '查询的Key名称。', 'type' => 'string', 'required' => true, 'example' => 'key1'], ], ], 'responses' => [ @@ -26198,151 +20936,93 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C', - ], + 'Value' => ['description' => 'Key值。', 'type' => 'string', 'example' => 'value1'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid.Parameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidAccount.Malformed', - 'errorMessage' => 'The specified account is invalid.', - ], - [ - 'errorCode' => 'InvalidNameSpace.Malformed', - 'errorMessage' => 'The specified namespace is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.Malformed', - 'errorMessage' => 'The specified key is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.ExceedsMaximum', - 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', - ], - [ - 'errorCode' => 'InvalidValue.ExceedsMaximum', - 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', - ], + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '输入参数无效'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => '账号输入不对,比如输入为空'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'namespace输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'key输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'key长度不能超过512B'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'value长度不能越过2000000B'], ], 403 => [ - [ - 'errorCode' => 'InvalidKey.ExceedsCapacity', - 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidParameters', - 'errorMessage' => 'The specified authentication parameters are invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidTime', - 'errorMessage' => 'The specified authentication time is invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidToken', - 'errorMessage' => 'Token authentication failed.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidResource', - 'errorMessage' => 'Resource authentication failed.', - ], + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'namespace容量超过限制,单个namespace最大容量为1G'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => '鉴权参数输入错误'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => '您输入的鉴权时间参数无效,请检查参数值后重试。'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => '您输入的token无效,请检查并输入正确的token后进行重试。'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => '资源校验失败'], ], [ - [ - 'errorCode' => 'InvalidAccount.NotFound', - 'errorMessage' => 'The specified account does not exist.', - ], - [ - 'errorCode' => 'InvalidNameSpace.NotFound', - 'errorMessage' => 'The specified namespace does not exist.', - ], - [ - 'errorCode' => 'InvalidKey.NotFound', - 'errorMessage' => 'The specified key does not exist.', - ], + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account does not exist.', 'description' => '账号不存在,未创建'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'namespace不存在'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => '请求的key不存在'], ], 406 => [ - [ - 'errorCode' => 'InvalidNameSpace.Duplicate', - 'errorMessage' => 'The specified namespace already exists.', - ], - [ - 'errorCode' => 'InvalidNameSpace.QuotaFull', - 'errorMessage' => 'The maximum number of namespaces is exceeded.', - ], - [ - 'errorCode' => 'InvalidKey.QuotaFull', - 'errorMessage' => 'The maximum number of keys is exceeded.', - ], + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'namespace已存在'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'namespace个数超过quota限制'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'key个数超过quota限制'], ], 429 => [ - [ - 'errorCode' => 'TooManyRequests', - 'errorMessage' => 'Too many requests are submitted.', - ], - [ - 'errorCode' => 'TooQuickRequests', - 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', - ], + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests are submitted.', 'description' => '请求速率过快'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'key put/delete操作太频繁'], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C\\"\\n}","type":"json"}]', - 'title' => '删除Namespace的Key-Value对', - ], - 'GetDcdnKvStatus' => [ - 'summary' => '调用GetDcdnKvStatus按Key值查询KV状态信息。', - 'methods' => [ - 'get', - 'post', + 'title' => '查询Key-Value对的某个Key值', + 'summary' => '调用GetDcdnKv查询Key-Value(KV)对的某个Key值。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDcdnKv'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:GetDcdnKv', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Value\\": \\"value1\\",\\n \\"RequestId\\": \\"D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C\\"\\n}","type":"json"}]', + ], + 'GetDcdnKvDetail' => [ + 'summary' => '查询键值对的值和TTL信息。', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '194812', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '247787', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'Namespace', 'in' => 'query', - 'schema' => [ - 'description' => 'Namespace名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'ns1', - ], + 'schema' => ['description' => 'KV存储空间名称。', 'type' => 'string', 'required' => true, 'example' => 'test_namespace'], ], [ 'name' => 'Key', 'in' => 'query', - 'schema' => [ - 'description' => '查询的Key名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'key1', - ], + 'schema' => ['description' => '查询的Key名称。', 'type' => 'string', 'required' => true, 'example' => 'key1'], ], ], 'responses' => [ @@ -26350,196 +21030,99 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Complete' => [ - 'description' => '配置的Key是否已全网生效。'."\n" - .'- **true**:已全网生效。'."\n" - .'- **false**:未全网生效。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], - 'Expire' => [ - 'description' => '配置的Key的超时时间(绝对时间戳,如2023-09-11T15:39:44+08:00),当永久存储时不返回。', - 'type' => 'string', - 'example' => '2023-09-11T15:39:44+08:00', - ], + 'Value' => ['description' => '键的内容。', 'type' => 'string', 'example' => 'test'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'EDBD3EB3-97DA-5465-AEF5-8DCA5DC5E395'."\n"], + 'ExpirationTtl' => ['description' => '过期时间(相对时间,单位:秒),同时设置Expiration和ExpirationTtl时,以ExpirationTtl为准。', 'type' => 'string', 'example' => '3600'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid.Parameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidAccount.Malformed', - 'errorMessage' => 'The specified account is invalid.', - ], - [ - 'errorCode' => 'InvalidNameSpace.Malformed', - 'errorMessage' => 'The specified namespace is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.Malformed', - 'errorMessage' => 'The specified key is invalid.', - ], - [ - 'errorCode' => 'InvalidKey.ExceedsMaximum', - 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', - ], - [ - 'errorCode' => 'InvalidValue.ExceedsMaximum', - 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', - ], + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '输入参数无效'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => '账号输入不对,比如输入为空'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'namespace输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'key输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'key长度不能超过512B'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'value长度不能越过2000000B'], ], 403 => [ - [ - 'errorCode' => 'InvalidKey.ExceedsCapacity', - 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidParameters', - 'errorMessage' => 'The specified authentication parameters are invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidTime', - 'errorMessage' => 'The specified authentication time is invalid.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidToken', - 'errorMessage' => 'Token authentication failed.', - ], - [ - 'errorCode' => 'Unauthorized.InvalidResource', - 'errorMessage' => 'Resource authentication failed.', - ], + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'namespace容量超过限制,单个namespace最大容量为1G'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => '鉴权参数输入错误'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => '您输入的鉴权时间参数无效,请检查参数值后重试。'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => '您输入的token无效,请检查并输入正确的token后进行重试。'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => '资源校验失败'], ], [ - [ - 'errorCode' => 'InvalidAccount.NotFound', - 'errorMessage' => 'The specified account does not exist.', - ], - [ - 'errorCode' => 'InvalidNameSpace.NotFound', - 'errorMessage' => 'The specified namespace does not exist.', - ], - [ - 'errorCode' => 'InvalidKey.NotFound', - 'errorMessage' => 'The specified key does not exist.', - ], + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account does not exist.', 'description' => '账号不存在,未创建'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'namespace不存在'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => '请求的key不存在'], ], 406 => [ - [ - 'errorCode' => 'InvalidNameSpace.Duplicate', - 'errorMessage' => 'The specified namespace already exists.', - ], - [ - 'errorCode' => 'InvalidNameSpace.QuotaFull', - 'errorMessage' => 'The maximum number of namespaces is exceeded.', - ], - [ - 'errorCode' => 'InvalidKey.QuotaFull', - 'errorMessage' => 'The maximum number of keys is exceeded.', - ], + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'namespace已存在'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'namespace个数超过quota限制'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'key个数超过quota限制'], ], 429 => [ - [ - 'errorCode' => 'TooManyRequests', - 'errorMessage' => 'Too many requests are submitted.', - ], - [ - 'errorCode' => 'TooQuickRequests', - 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', - ], + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests are submitted.', 'description' => '请求速率过快'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'key put/delete操作太频繁'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Complete\\": true,\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\",\\n \\"Expire\\": \\"2023-09-11T15:39:44+08:00\\"\\n}","type":"json"}]', - 'title' => '查询KV状态信息-按Key值', - ], - 'DescribeDcdnUserSecDrop' => [ - 'summary' => '调用DescribeDcdnUserSecDrop查询DCDN用户某安全功能报文拦截数。', - 'methods' => [ - 'get', - 'post', + 'title' => '查询键值对的值和TTL信息', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDcdnKvDetail'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:GetDcdnKvDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Value\\": \\"test\\",\\n \\"RequestId\\": \\"EDBD3EB3-97DA-5465-AEF5-8DCA5DC5E395\\\\n\\",\\n \\"ExpirationTtl\\": \\"3600\\"\\n}","type":"json"}]', + ], + 'GetDcdnKvStatus' => [ + 'summary' => '调用GetDcdnKvStatus按Key值查询KV状态信息。', + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '194812', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Data', + 'name' => 'Namespace', 'in' => 'query', - 'schema' => [ - 'description' => '统计日期或月份:'."\n" - ."\n" - .'- 统计粒度为1天时,格式为"yyyymmdd",如"20201203"。'."\n" - .'- 统计粒度为1月时,格式为"yyyymm",如"202012"。', - 'type' => 'string', - 'required' => true, - 'example' => '20201203', - ], + 'schema' => ['description' => 'Namespace名称。', 'type' => 'string', 'required' => true, 'example' => 'ns1'], ], [ - 'name' => 'SecFunc', - 'in' => 'query', - 'schema' => [ - 'description' => '安全功能:'."\n" - ."\n" - .'- waf:WAF功能;。'."\n" - .'- tmd:IP频次控制。'."\n" - .'- robot:机器流量识别。'."\n" - .'- l4_dm_drop:四层域名拦截。', - 'type' => 'string', - 'required' => true, - 'example' => 'waf', - 'enum' => [ - 'waf', - 'tmd', - 'robot', - 'l4_dm_drop', - ], - ], - ], - [ - 'name' => 'Metric', + 'name' => 'Key', 'in' => 'query', - 'schema' => [ - 'description' => '统计粒度:'."\n" - ."\n" - .'- 统计粒度为1天时,统计一天的拦截汇总数据。'."\n" - .'- 统计粒度为1月时,统计一个月的拦截汇总数据。', - 'type' => 'string', - 'required' => true, - 'example' => '1day', - 'enum' => [ - '1day', - '1month', - ], - ], + 'schema' => ['description' => '查询的Key名称。', 'type' => 'string', 'required' => true, 'example' => 'key1'], ], ], 'responses' => [ @@ -26547,160 +21130,73 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Msg' => [ - 'description' => '是否找到信息。'."\n" - ."\n" - .'- Found:是。'."\n" - .'- Not Found:否。', - 'type' => 'string', - 'example' => 'Found', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4A1295C0-7A5C-4F27-8D70-C3A648E7037F', - ], - 'Drops' => [ - 'description' => '拦截请求数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '233023208', - ], - 'UuidStr' => [ - 'description' => '根据请求参数拼接的字符串,用于定位没有数据的原因。', - 'type' => 'string', - 'example' => '1day10811******6429wafDCDN', - ], + 'Complete' => ['description' => '配置的Key是否已全网生效。'."\n" + .'- **true**:已全网生效。'."\n" + .'- **false**:未全网生效。', 'type' => 'boolean', 'example' => 'true'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], + 'Expire' => ['description' => '配置的Key的超时时间(绝对时间戳,如2023-09-11T15:39:44+08:00),当永久存储时不返回。', 'type' => 'string', 'example' => '2023-09-11T15:39:44+08:00'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Msg\\": \\"Found\\",\\n \\"RequestId\\": \\"4A1295C0-7A5C-4F27-8D70-C3A648E7037F\\",\\n \\"Drops\\": 233023208,\\n \\"UuidStr\\": \\"1day10811******6429wafDCDN\\"\\n}","errorExample":""},{"type":"xml","example":"<RequestId>4A1295C0-7A5C-4F27-8D70-C3A648E7037F</RequestId>\\n<Msg>Found</Msg>\\n<Drops>233023208</Drops>\\n<UuidStr>1day10811******6429wafDCDN</UuidStr>","errorExample":""}]', - 'title' => '查询用户某安全功能报文拦截数', - 'description' => '> 单用户调用频率:50次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnSecFuncInfo' => [ - 'summary' => '调用DescribeDcdnSecFuncInfo为DCDN控制台界面提供边缘安全下拉列表。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '输入参数无效'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => '账号输入不对,比如输入为空'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'namespace输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'key输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'key长度不能超过512B'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'value长度不能越过2000000B'], ], - ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'namespace容量超过限制,单个namespace最大容量为1G'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => '鉴权参数输入错误'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => '您输入的鉴权时间参数无效,请检查参数值后重试。'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => '您输入的token无效,请检查并输入正确的token后进行重试。'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => '资源校验失败'], ], - ], - 'parameters' => [ [ - 'name' => 'SecFuncType', - 'in' => 'query', - 'schema' => [ - 'description' => '下拉列表类型:RobotRuleName,RobotObject。', - 'type' => 'string', - 'required' => true, - 'example' => 'RobotRuleName', - ], + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account does not exist.', 'description' => '账号不存在,未创建'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'namespace不存在'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => '请求的key不存在'], ], - [ - 'name' => 'Lang', - 'in' => 'query', - 'schema' => [ - 'description' => '语言类型,将以此语言返回。取值范围:'."\n" - .'- **en**:英文 (默认)。'."\n" - .'- **zh**:中文。', - 'type' => 'string', - 'required' => true, - 'example' => 'en', - 'enum' => [ - 'zh', - 'en', - ], - ], + 406 => [ + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'namespace已存在'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'namespace个数超过quota限制'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'key个数超过quota限制'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests are submitted.', 'description' => '请求速率过快'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'key put/delete操作太频繁'], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '30A3A25A-86B3-4C1D-BAA8-12B8607A5CFD', - ], - 'Description' => [ - 'description' => 'HTTP请响应说明描述。', - 'type' => 'string', - 'example' => 'OK', - ], - 'RetCode' => [ - 'description' => 'HTTP请响应返回码。'."\n" - ."\n" - .'- 0:OK。'."\n" - .'- 非0:返回错误。', - 'type' => 'string', - 'example' => '0', - ], - 'HttpStatus' => [ - 'description' => 'HTTP响应状态码。', - 'type' => 'string', - 'example' => '200', - ], - 'Content' => [ - 'description' => '代码所需要的参数。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Label' => [ - 'description' => '根据语言设置显示中文或英文。', - 'type' => 'string', - 'example' => 'ai_defense', - ], - 'Value' => [ - 'description' => '下拉列表取值项。', - 'type' => 'string', - 'example' => 'ai_defense', - ], - ], - ], - ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询KV状态信息-按Key值', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDcdnKvStatus'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:GetDcdnKvStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"30A3A25A-86B3-4C1D-BAA8-12B8607A5CFD\\",\\n \\"Description\\": \\"OK\\",\\n \\"RetCode\\": \\"0\\",\\n \\"HttpStatus\\": \\"200\\",\\n \\"Content\\": [\\n {\\n \\"Label\\": \\"ai_defense\\",\\n \\"Value\\": \\"ai_defense\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<RequestId>30A3A25A-86B3-4C1D-BAA8-12B8607A5CFD</RequestId>\\n<Content>\\n <Label>ai_defense</Label>\\n <Language>en</Language>\\n <Value>ai_defense</Value>\\n</Content>\\n<Content>\\n <Label>legal_spiders</Label>\\n <Language>en</Language>\\n <Value>legal_spiders</Value>\\n</Content>\\n<Content>\\n <Label>threat_intelligence</Label>\\n <Language>en</Language>\\n <Value>threat_intelligence</Value>\\n</Content>\\n<Description>OK</Description>\\n<RetCode>0</RetCode>\\n<HttpStatus>200</HttpStatus>","errorExample":""}]', - 'title' => '提供边缘安全下拉列表', - 'description' => '> 单用户调用频率:50次/秒。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Complete\\": true,\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\",\\n \\"Expire\\": \\"2023-09-11T15:39:44+08:00\\"\\n}","type":"json"}]', ], - 'DescribeDcdnUserSecDropByMinute' => [ - 'summary' => '调用DescribeDcdnUserSecDropByMinute获取边缘应用层某一时间段的安全报文拦截总数。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListDcdnKv' => [ + 'summary' => '调用ListDcdnKv遍历账户下指定Namespace的Key值。', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -26711,190 +21207,48 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '121112', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'SecFunc', - 'in' => 'query', - 'schema' => [ - 'description' => '安全功能名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'robot', - ], - ], - [ - 'name' => 'RuleName', - 'in' => 'query', - 'schema' => [ - 'description' => '触发规则。', - 'type' => 'string', - 'required' => false, - 'example' => 'robot_ai', - ], - ], - [ - 'name' => 'Object', - 'in' => 'query', - 'schema' => [ - 'description' => '触发对象。', - 'type' => 'string', - 'required' => false, - 'example' => 'robot_fingerprint_ai', - ], - ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的起始时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。如 "2006-01-02T15:04:04Z"', - 'type' => 'string', - 'required' => false, - 'example' => '2006-01-02T15:04:04Z', - ], - ], - [ - 'name' => 'EndTime', + 'name' => 'Namespace', 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的结束时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。如 "2006-01-02T15:05:04Z"'."\n" - ."\n" - .'> 结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2006-01-02T15:05:04Z', - ], + 'schema' => ['description' => 'Namespace名称。', 'type' => 'string', 'required' => true, 'example' => 'ns1'], ], [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '页面大小,最大100。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '100', - 'example' => '2', - 'default' => '20', - ], + 'schema' => ['description' => '指定返回的页大小,默认为50,最大为100。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '50', 'default' => '50'], ], [ 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => '页面号码,从1开始。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '10', - 'default' => '1', - ], + 'schema' => ['description' => '指定页码,PageNumber\\*PageSize最大不可超过50000。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '10', 'default' => '1'], ], [ - 'name' => 'Lang', + 'name' => 'Prefix', 'in' => 'query', - 'schema' => [ - 'description' => '语言。取值:en或者zh。默认en。', - 'type' => 'string', - 'required' => true, - 'example' => 'zh', - 'enum' => [ - 'zh', - 'en', - ], - ], + 'schema' => ['description' => '指定查找前缀。', 'type' => 'string', 'required' => false, 'example' => 'prefix-'], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '8143fA8A-B2B2-4915-538D-546B538D25FA', - ], - 'Description' => [ - 'description' => 'HTTP请响应说明描述。', - 'type' => 'string', - 'example' => 'OK', - ], - 'Len' => [ - 'description' => '当前返回的数据条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'PageNumber' => [ - 'description' => '页面号码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageSize' => [ - 'description' => '页面大小。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'TotalCount' => [ - 'description' => '总条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5738', - ], - 'Rows' => [ - 'description' => '数组。', + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C'], + 'PageSize' => ['description' => '返回的记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '50'], + 'PageNumber' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'TotalCount' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1024'], + 'Keys' => [ + 'description' => '本次遍历获取的Key。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Domain' => [ - 'description' => '域名。', - 'type' => 'string', - 'example' => 'example.aliyundoc.com', - ], - 'TmStr' => [ - 'description' => '统计的起始时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'example' => '2021-01-31T15:04:04Z', - ], - 'Drops' => [ - 'description' => '5分钟拦截总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '264', - ], - 'Object' => [ - 'description' => '触发对象。', - 'type' => 'string', - 'example' => '正常模式规则', - ], - 'SecFunc' => [ - 'description' => '安全功能或者安全类型。', - 'type' => 'string', - 'example' => 'robot', - ], - 'RuleName' => [ - 'description' => '触发规则。', - 'type' => 'string', - 'example' => '正常模式规则', - ], + 'Name' => ['description' => '遍历到的Key值。', 'type' => 'string', 'example' => 'Key1'], + 'UpdateTime' => ['description' => 'Key的更新时间。', 'type' => 'string', 'example' => '2021-12-13T07:46:03Z'], ], ], ], @@ -26902,22 +21256,63 @@ ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"8143fA8A-B2B2-4915-538D-546B538D25FA\\",\\n \\"Description\\": \\"OK\\",\\n \\"Len\\": 2,\\n \\"PageNumber\\": 10,\\n \\"PageSize\\": 2,\\n \\"TotalCount\\": 5738,\\n \\"Rows\\": [\\n {\\n \\"Domain\\": \\"example.aliyundoc.com\\",\\n \\"TmStr\\": \\"2021-01-31T15:04:04Z\\",\\n \\"Drops\\": 264,\\n \\"Object\\": \\"正常模式规则\\",\\n \\"SecFunc\\": \\"robot\\",\\n \\"RuleName\\": \\"正常模式规则\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnUserSecDropByMinuteResponse>\\n<TotalCount>5738</TotalCount>\\n<PageSize>2</PageSize>\\n<PageNumber>10</PageNumber>\\n<Len>2</Len>\\n<Rows>\\n <RuleName>正常模式规则</RuleName>\\n <Object>正常模式规则</Object>\\n <SecFunc>robot</SecFunc>\\n <TmStr>2021-01-31T15:04:04Z</TmStr>\\n <Domain>example.com</Domain>\\n <Drops>164</Drops>\\n</Rows>\\n<Rows>\\n <RuleName>正常模式规则</RuleName>\\n <Object>正常模式规则</Object>\\n <SecFunc>robot</SecFunc>\\n <TmStr>2021-01-31T15:04:04Z</TmStr>\\n <Domain>example.com</Domain>\\n <Drops>264</Drops>\\n</Rows>\\n</DescribeDcdnUserSecDropByMinuteResponse>","errorExample":""}]', - 'title' => '查询边缘应用层安全报文拦截总数', - 'description' => '> 单用户调用频率:50次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnBlockedRegions' => [ - 'summary' => '调用DescribeDcdnBlockedRegions查询区域封禁支持的国家和地区。', - 'methods' => [ - 'get', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '输入参数无效'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => '账号输入不对,比如输入为空'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'namespace输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'key输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'key长度不能超过512B'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'value长度不能越过2000000B'], + ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'namespace容量超过限制,单个namespace最大容量为1G'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => '鉴权参数输入错误'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => '您输入的鉴权时间参数无效,请检查参数值后重试。'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => '您输入的token无效,请检查并输入正确的token后进行重试。'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => '资源校验失败'], + ], + [ + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account does not exist.', 'description' => '账号不存在,未创建'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'namespace不存在'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => '请求的key不存在'], + ], + 406 => [ + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'namespace已存在'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'namespace个数超过quota限制'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'key个数超过quota限制'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests are submitted.', 'description' => '请求速率过快'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'key put/delete操作太频繁'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'title' => '遍历Namespace的Key值', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListDcdnKv'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:ListDcdnKv', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C\\",\\n \\"PageSize\\": 50,\\n \\"PageNumber\\": 100,\\n \\"TotalCount\\": 1024,\\n \\"Keys\\": [\\n {\\n \\"Name\\": \\"Key1\\",\\n \\"UpdateTime\\": \\"2021-12-13T07:46:03Z\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<ListDcdnKvResponse>\\n <RequestId>D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C</RequestId>\\n <PageSize>50</PageSize>\\n <PageNumber>100</PageNumber>\\n <TotalCount>1024</TotalCount>\\n <Keys>\\n <Name>Key1</Name>\\n <UpdateTime>2021-12-13T07:46:03Z</UpdateTime>\\n </Keys>\\n</ListDcdnKvResponse>","errorExample":""}]', + ], + 'ListDcdnRealTimeDeliveryProject' => [ + 'summary' => '调用ListDcdnRealTimeDeliveryProject查询用户开通的项目信息。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -26925,28 +21320,36 @@ ], 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111590', + 'abilityTreeNodes' => ['FEATUREdcdn9K10I1'], ], 'parameters' => [ [ - 'name' => 'Language', + 'name' => 'BusinessType', 'in' => 'query', - 'schema' => [ - 'description' => '语言。取值:zh、en和jp。', - 'type' => 'string', - 'required' => true, - 'example' => 'zh', - 'enum' => [ - 'zh', - 'en', - 'jp', - ], - ], + 'schema' => ['description' => '业务类型,取值:'."\n" + ."\n" + .'- **dcdn_log_access_l1**(默认值):用户访问日志。'."\n" + .'- **dcdn_log_er**:边缘程序日志。'."\n" + .'- **dcdn_log_waf**:WAF拦截日志。', 'type' => 'string', 'required' => false, 'example' => 'cdn_log_access_l1'], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '域名,仅支持单个域名查询。不填为空则表示查询所有域名。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => '第几页,取值范围为:**1**~**100000**,默认1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '分页大小,默认20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'default' => '20'], ], ], 'responses' => [ @@ -26954,252 +21357,113 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BFFCDFAD-DACC-484E-9BE6-0AF3B3A0DD23', - ], - 'InfoList' => [ + 'TotalCount' => ['description' => '查询总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4'], + 'Content' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'InfoItem' => [ - 'description' => '国家地区信息。', + 'Projects' => [ + 'description' => '域名配置结果信息。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'CountriesAndRegions' => [ - 'description' => '国家地区缩写。', - 'type' => 'string', - 'example' => 'AE', - ], - 'Continent' => [ - 'description' => '国家地区所属大区。', - 'type' => 'string', - 'example' => '中东', - ], - 'CountriesAndRegionsName' => [ - 'description' => '国家地区名称。', - 'type' => 'string', - 'example' => '阿拉伯联合酋长国', - ], + 'Type' => ['description' => '投递类型,目前仅支持**SLS_POST**(SLS投递)。', 'type' => 'string', 'example' => 'SLS_POST'], + 'SLSLogStore' => ['description' => '日志库名称。', 'type' => 'string', 'example' => 'example-cn'], + 'DataCenter' => ['description' => '数据中心。', 'type' => 'string', 'example' => 'cn'], + 'FieldName' => ['description' => '字段名称。所有字段请参见[实时日志采集字段说明](~~324199~~)。', 'type' => 'string', 'example' => 'field1,field2'], + 'ProjectName' => ['description' => '项目名称。', 'type' => 'string', 'example' => 'example'], + 'SamplingRate' => ['description' => '采样率。', 'type' => 'number', 'format' => 'float', 'example' => '1'], + 'SLSProject' => ['description' => '日志名称。', 'type' => 'string', 'example' => 'example-cn'], + 'DomainName' => ['description' => '域名列表,多个域名用半角逗号(,)隔开。', 'type' => 'string', 'example' => 'example.com,example.org'], + 'BusinessType' => ['description' => '业务类型,取值:'."\n" + ."\n" + .'- **dcdn_log_access_l1**(默认值):用户访问日志。'."\n" + .'- **dcdn_log_er**:边缘程序日志。'."\n" + .'- **dcdn_log_waf**:WAF拦截日志。', 'type' => 'string', 'example' => 'cdn_log_access_l1'], + 'SLSRegion' => ['description' => '日志区域名称。', 'type' => 'string', 'example' => 'cn-hangzhou'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => 'You must specify ArgValue.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + 500 => [ + ['errorCode' => 'Internal Exception', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => '内部错误,请稍后重试或联系我们。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BFFCDFAD-DACC-484E-9BE6-0AF3B3A0DD23\\",\\n \\"InfoList\\": {\\n \\"InfoItem\\": [\\n {\\n \\"CountriesAndRegions\\": \\"AE\\",\\n \\"Continent\\": \\"中东\\",\\n \\"CountriesAndRegionsName\\": \\"阿拉伯联合酋长国\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<RequestId>BFFCDFAD-DACC-484E-9BE6-0AF3B3A0DD23</RequestId>\\n<InfoList>\\n <InfoItem>\\n <Continent>中东</Continent>\\n <CountriesAndRegionsName>阿拉伯联合酋长国</CountriesAndRegionsName>\\n <CountriesAndRegions>AE</CountriesAndRegions>\\n </InfoItem>\\n</InfoList>","errorExample":""}]', - 'title' => '查询区域封禁支持的国家和地区', - 'description' => '> 单用户调用频率:50次/秒。 ', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询用户开通的项目信息', + 'description' => '> 单用户调用频率:100次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnsecService' => [ - 'summary' => '调用DescribeDcdnsecService查询安全DCDN服务状态,包括服务开通时间、结束时间、当前业务状态等。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2024-12-18T07:22:51.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2022-12-08T06:50:41.000Z', 'description' => '错误码发生变更'], ], - 'security' => [ - [ - 'AK' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListDcdnRealTimeDeliveryProject'], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '111544', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZA9EPX', - ], - 'tenantRelevance' => 'publicInformation', - ], - 'parameters' => [], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'EndTime' => [ - 'description' => '服务到期时间。', - 'type' => 'string', - 'example' => '2021-09-26T16:00:00Z', - ], - 'StartTime' => [ - 'description' => '服务开通时间。', - 'type' => 'string', - 'example' => '2021-08-26T02:52:08Z', - ], - 'ChangingAffectTime' => [ - 'description' => '下次生效时间,GMT时间。', - 'type' => 'string', - 'example' => '2021-09-30T16:00:00Z', - ], - 'DomainNum' => [ - 'description' => '用安全DCDN服务的加速域名数量。', - 'type' => 'string', - 'example' => '130', - ], - 'ChangingChargeType' => [ - 'description' => '下次生效的计费类型。'."\n" - ."\n" - .'- **PayByTraffic**:流量。'."\n" - ."\n" - .'- **PayByBandwidth**:带宽。'."\n" - ."\n" - .'- **PayByBandwidth95**:月95。'."\n" - ."\n" - .'- **PayByBandwidth_monthavg**:月平均带宽。'."\n" - ."\n" - .'- **PayByBandwidth_month4th**:月第四峰值。'."\n" - ."\n" - .'- **PayByBandwidth_monthday95avg**:月平均95。'."\n" - ."\n" - .'- **PayByBandwidth_nighthalf95**:月95夜间减半。', - 'type' => 'string', - 'example' => 'PayByBandwidth', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'E20B46E1-9BCD-10E5-AAEF-6D7B737467A1', - ], - 'Version' => [ - 'description' => '版本。', - 'type' => 'string', - 'example' => 'enterprise', - ], - 'RequestType' => [ - 'description' => '请求数计费模式。', - 'type' => 'string', - 'example' => 'PayBySecRequest', - ], - 'FlowType' => [ - 'description' => '流量计费模式。', - 'type' => 'string', - 'example' => 'PayBySecTraffic', - ], - 'InternetChargeType' => [ - 'description' => '当前计费类型。'."\n" - ."\n" - .'- **PayByTraffic**:流量。'."\n" - ."\n" - .'- **PayByBandwidth**:带宽。'."\n" - ."\n" - .'- **PayByBandwidth95**:月95。'."\n" - ."\n" - .'- **PayByBandwidth_monthavg**:月平均带宽。'."\n" - ."\n" - .'- **PayByBandwidth_month4th**:月第四峰值。'."\n" - ."\n" - .'- **PayByBandwidth_monthday95avg**:月平均95。'."\n" - ."\n" - .'- **PayByBandwidth_nighthalf95**:月95夜间减半。', - 'type' => 'string', - 'example' => 'PayByTraffic', - ], - 'InstanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'dcdn_dcdnsec_public_cn-123***', - ], - 'OperationLocks' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LockReason' => [ - 'description' => '业务锁定状态。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'LockReason' => [ - 'description' => '锁定原因。', - 'type' => 'string', - 'example' => ' financial', - ], - ], - ], - ], - ], - ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'dcdn:ListDcdnRealTimeDeliveryProject', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'RealTimeLogDelivery', 'arn' => 'acs:dcdn:*:{#accountId}:domain/*'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2021-09-26T16:00:00Z\\",\\n \\"StartTime\\": \\"2021-08-26T02:52:08Z\\",\\n \\"ChangingAffectTime\\": \\"2021-09-30T16:00:00Z\\",\\n \\"DomainNum\\": \\"130\\",\\n \\"ChangingChargeType\\": \\"PayByBandwidth\\",\\n \\"RequestId\\": \\"E20B46E1-9BCD-10E5-AAEF-6D7B737467A1\\",\\n \\"Version\\": \\"enterprise\\",\\n \\"RequestType\\": \\"PayBySecRequest\\",\\n \\"FlowType\\": \\"PayBySecTraffic\\",\\n \\"InternetChargeType\\": \\"PayByTraffic\\",\\n \\"InstanceId\\": \\"dcdn_dcdnsec_public_cn-123***\\",\\n \\"OperationLocks\\": {\\n \\"LockReason\\": [\\n {\\n \\"LockReason\\": \\" financial\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnsecServiceResponse>\\n<RequestId>E20B46E1-9BCD-10E5-AAEF-6D7B737467A1</RequestId>\\n<EndTime>2021-09-26T16:00:00Z</EndTime>\\n<InstanceId>dcdn_dcdnsec_public_cn-123***</InstanceId>\\n<Version>enterprise</Version>\\n<StartTime>2021-08-26T02:52:08Z</StartTime>\\n<FlowType>PayBySecTraffic</FlowType>\\n<DomainNum>130</DomainNum>\\n<OperationLocks>\\n <LockReason>financial</LockReason>\\n</OperationLocks>\\n<RequestType>PayBySecRequest</RequestType>\\n</DescribeDcdnsecServiceResponse>","errorExample":""}]', - 'title' => '查询安全DCDN服务状态', - 'description' => '>单用户调用频率:20次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 2,\\n \\"RequestId\\": \\"3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4\\",\\n \\"Content\\": {\\n \\"Projects\\": [\\n {\\n \\"Type\\": \\"SLS_POST\\",\\n \\"SLSLogStore\\": \\"example-cn\\",\\n \\"DataCenter\\": \\"cn\\",\\n \\"FieldName\\": \\"field1,field2\\",\\n \\"ProjectName\\": \\"example\\",\\n \\"SamplingRate\\": 1,\\n \\"SLSProject\\": \\"example-cn\\",\\n \\"DomainName\\": \\"example.com,example.org\\",\\n \\"BusinessType\\": \\"cdn_log_access_l1\\",\\n \\"SLSRegion\\": \\"cn-hangzhou\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<ListDcdnRealTimeDeliveryProjectResponse>\\n<RequestId>3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4</RequestId>\\n<Content>\\n <Projects>\\n <ProjectName>example</ProjectName>\\n <Type>SLS_POST</Type>\\n <DomainName>example.com,example.org</DomainName>\\n <FieldName>field1,field2</FieldName>\\n <SamplingRate>1</SamplingRate>\\n <DataCenter>cn</DataCenter>\\n <SLSRegion>cn-hangzhou</SLSRegion>\\n <SLSProject>example-cn</SLSProject>\\n <SLSLogStore>example-cn</SLSLogStore>\\n <BusinessType>cdn_log_access_l1</BusinessType>\\n </Projects>\\n <Projects>\\n <ProjectName>aliyundoc</ProjectName>\\n <Type>SLS_POST</Type>\\n <DomainName>example.org</DomainName>\\n <FieldName>field1,field2</FieldName>\\n <SamplingRate>1</SamplingRate>\\n <DataCenter>cn</DataCenter>\\n <SLSRegion>cn-hangzhou</SLSRegion>\\n <SLSProject>aliyundoc-cn</SLSProject>\\n <SLSLogStore>aliyundoc-cn</SLSLogStore>\\n <BusinessType>cdn_log_access_l1</BusinessType>\\n </Projects>\\n</Content>\\n<TotalCount>2</TotalCount>\\n</ListDcdnRealTimeDeliveryProjectResponse>","errorExample":""}]', ], - 'DescribeDcdnUserConfigs' => [ - 'summary' => '调用DescribeDcdnUserConfigs查询安全功能相关的配置。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifyDCdnDomainSchdmByProperty' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111557', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeCode' => '111594', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ - 'name' => 'FunctionName', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的配置,支持查询的配置如下:'."\n" - ."\n" - .'- domain\\_business\\_control:用户配置。'."\n" - ."\n" - .'- bot_basic:机器流量管理基础版 (合法爬虫,威胁情报)。'."\n" - ."\n" - .'- bot_Advance:机器流量管理高级版(合法爬虫,威胁情报,AI智能防护)。', - 'type' => 'string', - 'required' => true, - 'example' => 'domain_business_control', - ], + 'schema' => ['description' => '需修改加速区域的域名,仅支持单个修改。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'Property', + 'in' => 'query', + 'schema' => ['description' => '加速区域属性,{"coverage":"overseas"}。'."\n" + .'其中coverage参数的取值如下:'."\n" + ."\n" + .'- **domestic**:仅中国内地。'."\n" + ."\n" + .'- **overseas**:全球(不包含中国内地)。'."\n" + ."\n" + .'- **global**:全球。', 'type' => 'string', 'required' => true, 'example' => '{"coverage":"overseas"}'], ], ], 'responses' => [ @@ -27207,338 +21471,227 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '06D29681-B7CD-4034-A8CC-28AFFA213539', - ], - 'Configs' => [ - 'description' => '用户对应的配置。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ArgValue' => [ - 'description' => '配置值。取值:'."\n" - .'- cc_rule:CC规则。'."\n" - ."\n" - .'- ddos_dispatch:DDoS联动调度。'."\n" - ."\n" - .'- edge_safe:边缘应用安全。'."\n" - ."\n" - .'- blocked_regions:区域封禁。'."\n" - ."\n" - .'- http_acl_policy:精准访问控制。'."\n" - ."\n" - .'- bot_manager:机器流量管理。'."\n" - ."\n" - .'- ip_reputation:IP信誉库。', - 'type' => 'string', - 'example' => '{"dcdn_allow":["cc_rule","ddos_dispatch"]}', - ], - 'ArgName' => [ - 'description' => '配置名称。'."\n" - ."\n" - .'政企用户相关配置。', - 'type' => 'string', - 'example' => 'allow_function', - ], - 'FunctionName' => [ - 'description' => '功能名称。', - 'type' => 'string', - 'example' => 'domain_business_control', - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '15C66C7B-671A-4297-9187-2C4477247A74'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidArgValue.Malformed', - 'errorMessage' => 'The specified ArgValue is invalid.', - ], - [ - 'errorCode' => 'InvalidArgName.ValueNotSupported', - 'errorMessage' => '%s', - ], + ['errorCode' => 'Schedule.NotFound', 'errorMessage' => 'This domain does not have any available CDN resources in the accelerated area.', 'description' => '域名无可用调度域资源。'], + ['errorCode' => 'DomainTraffic.ExceedThreshold', 'errorMessage' => 'You are not allowed to perform this operation because the traffic peak of the last day exceeds the threshold.', 'description' => '域名昨日峰值超限不可切换'], + ['errorCode' => 'Domain.BeianInvalid', 'errorMessage' => 'You are not allowed to perform this operation because the ICP license of your domain is invalid in Chinese Mainland.', 'description' => '域名中国大陆区域备案无效'], + ['errorCode' => 'Schedule.ChangeFail', 'errorMessage' => 'Failed to change the accelerated area for the domain.', 'description' => '域名切换调度区域失败'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"06D29681-B7CD-4034-A8CC-28AFFA213539\\",\\n \\"Configs\\": [\\n {\\n \\"ArgValue\\": \\"{\\\\\\"dcdn_allow\\\\\\":[\\\\\\"cc_rule\\\\\\",\\\\\\"ddos_dispatch\\\\\\"]}\\",\\n \\"ArgName\\": \\"allow_function\\",\\n \\"FunctionName\\": \\"domain_business_control\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnUserConfigsResponse>\\n <RequestId>06D29681-B7CD-4034-A8CC-28AFFA213539</RequestId>\\n <Configs>\\n <FunctionName>domain_business_control</FunctionName>\\n <ArgValue>{\\"dcdn_allow\\":[\\"cc_rule\\",\\"ddos_dispatch\\"]}</ArgValue>\\n <ArgName>allow_function</ArgName>\\n </Configs>\\n</DescribeDcdnUserConfigsResponse>","errorExample":""}]', - 'title' => '查询安全功能相关配置', - 'description' => '> 单用户调用频率:30次/秒。', - ], - 'DescribeDcdnFullDomainsBlockIPConfig' => [ - 'summary' => '调用DescribeDcdnFullDomainsBlockIPConfig查询全量封禁的相关配置。', - 'methods' => [ - 'get', + 'title' => '修改域名的加速区域', + 'summary' => '调用ModifyDCdnDomainSchdmByProperty通过配置组修改域名的加速区域。', + 'description' => '> 单用户调用频率:100次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyDCdnDomainSchdmByProperty'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:ModifyDCdnDomainSchdmByProperty', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A74\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyDCdnDomainSchdmByPropertyResponse>\\r\\n\\t<RequestId>15C66C7B-671A-4297-9187-2C4477247A74</RequestId>\\r\\n</ModifyDCdnDomainSchdmByPropertyResponse>\\r\\n\\t\\r\\n","errorExample":""}]', + ], + 'ModifyDcdnWafGroup' => [ + 'summary' => '调用ModifyDcdnWafGroup修改自定义WAF规则组。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn2JMMUY', - ], + 'abilityTreeCode' => '162579', + 'abilityTreeNodes' => ['FEATUREdcdnL8HX1L'], ], 'parameters' => [ [ - 'name' => 'IPList', - 'in' => 'query', - 'schema' => [ - 'description' => '查询IP/IP段列表,多个IP请用半角逗号(,)分隔,最大支持50个。', - 'type' => 'string', - 'required' => false, - 'example' => '10.XX.XX.10/24', - ], + 'name' => 'Id', + 'in' => 'formData', + 'schema' => ['description' => '自定义WAF规则组ID。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '30000110'], + ], + [ + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => '自定义WAF规则组名称。', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + [ + 'name' => 'Rules', + 'in' => 'formData', + 'schema' => ['description' => '自定义WAF规则组中规则的增量修改,JSON序列化后的字符串。', 'type' => 'string', 'required' => false, 'example' => '{"All":false,"Op":"del","List":"900109"}'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0C58632F-BA12-1A1E-986D-09285752B42C', - ], - 'Message' => [ - 'description' => '结果信息,返回正常是为OSS链接,异常是为错误信息。', - 'type' => 'string', - 'example' => 'http://xxxx-api.oss-cn-hangzhou.aliyuncs.com/blocklist%2Fxxxxxxxxxxxx.txt?Expires=1682663947&OSSAccessKeyId=xxxxxxxxxx&Signature=xxxxxx', - ], - 'Code' => [ - 'description' => '结果信息码。'."\n" - ."\n" - .'Code不为0可能有以下三种情况:'."\n" - .'- IP格式不正确'."\n" - .'- IP个数超出限制'."\n" - .'- 其他', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '79B78B62-9006-5D6A-9DAB-303E134CD7AA'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'WafGroup.Name.Malformed', 'errorMessage' => 'The specified parameter Name is invalid.', 'description' => '指定的参数Name格式错误。'], + ['errorCode' => 'WafGroup.NotExist', 'errorMessage' => 'The specified WAF group does not exist.', 'description' => '指定的WAF规则组不存在。'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], ], - 406 => [ - [ - 'errorCode' => 'InvalidKey.QuotaFull', - 'errorMessage' => 'The maximum number of keys is exceeded.', - ], + 403 => [ + ['errorCode' => '%s.NotSupport', 'errorMessage' => 'The specified resource type %s is not supported.', 'description' => '不支持指定的资源类型。如需使用该类型资源,请与我们联系。'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => '该资源的数量超出了配额所规定的范围,如需申请更多的额度,请与我们联系。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => '内部错误,请重试,如果多次重试报错请提交工单。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '修改自定义WAF规则组', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:14.000Z', 'description' => '错误码发生变更'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0C58632F-BA12-1A1E-986D-09285752B42C\\",\\n \\"Message\\": \\"http://xxxx-api.oss-cn-hangzhou.aliyuncs.com/blocklist%2Fxxxxxxxxxxxx.txt?Expires=1682663947&OSSAccessKeyId=xxxxxxxxxx&Signature=xxxxxx\\",\\n \\"Code\\": 0\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnFullDomainsBlockIPConfigResponse>\\n <RequestId>0C58632F-BA12-1A1E-986D-09285752B42C</RequestId>\\n <Message>http://xxxx-api.oss-cn-hangzhou.aliyuncs.com/blocklist%2Fxxxxxxxxxxxx.txt?Expires=1682663947&OSSAccessKeyId=xxxxxxxxxx&Signature=xxxxxx</Message>\\n <Code>0</Code>\\n</DescribeDcdnFullDomainsBlockIPConfigResponse>","errorExample":""}]', - 'title' => '查询全量封禁配置', - 'description' => '>'."\n" - .'> - 对用户给定的IP/IP段,给出该用户当前时间生效的IP和对应过期时间;用户不指定IP时,返回当前全量生效的IP和对应过期时间。'."\n" - .'> - 结果写入OSS,以OSS链接返回 ,OSS文件中内容格式为`ip-对应过期时间,时间格式为YYYY-MM-DD hh:mm:ss `。'."\n" - .'> - OSS文件分享链接有效期为3天。', - ], - 'DescribeDcdnFullDomainsBlockIPHistory' => [ - 'summary' => '调用DescribeDcdnFullDomainsBlockIPHistory获取封禁历史记录。', - 'methods' => [ - 'get', - 'post', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyDcdnWafGroup'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:ModifyDcdnWafGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"79B78B62-9006-5D6A-9DAB-303E134CD7AA\\"\\n}","type":"json"}]', + ], + 'ModifyDcdnWafPolicy' => [ + 'summary' => '调用ModifyDcdnWafPolicy修改指定防护策略名称或状态。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '176189', - 'abilityTreeNodes' => [ - 'FEATUREdcdnSU2QP6', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'IPList', + 'name' => 'PolicyId', 'in' => 'formData', - 'schema' => [ - 'title' => 'A short description of struct', - 'description' => '查询IP/IP段。', - 'type' => 'string', - 'required' => true, - 'example' => '10.XX.XX.10/24', - ], + 'schema' => ['description' => '需要修改的防护策略ID,仅支持单个输入。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1000001'], ], [ - 'name' => 'StartTime', + 'name' => 'PolicyName', 'in' => 'formData', - 'schema' => [ - 'description' => '查询获取数据起始时间点,时间格式为:YYYY-MM-DDThh:mm:ssZ。', - 'type' => 'string', - 'required' => true, - 'example' => '2023-04-24T17:00:00Z', - ], + 'schema' => ['description' => '修改后的防护策略名称。'."\n" + ."\n" + .'>该参数与PolicyStatus至少传一个。', 'type' => 'string', 'required' => false, 'example' => 'policy_test'], ], [ - 'name' => 'EndTime', + 'name' => 'PolicyStatus', 'in' => 'formData', - 'schema' => [ - 'description' => '查询获取数据结束时间点,时间格式为:YYYY-MM-DDThh:mm:ssZ;结束时间需大于起始时间。', - 'type' => 'string', - 'required' => true, - 'example' => '2023-04-24T19:00:00Z', - ], + 'schema' => ['description' => '修改后的防护策略状态,取值:'."\n" + ."\n" + .'- **on**:开启。'."\n" + ."\n" + .'- **off**:关闭。'."\n" + ."\n" + .'>该参数与PolicyName至少传一个。', 'type' => 'string', 'required' => false, 'example' => 'on'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '13A2B792-9212-1CC9-8525-59EBEF3FFE01', - ], - 'IPBlockInfo' => [ - 'description' => '操作结果。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'BlockIP' => [ - 'description' => '下发的IP/IP段。', - 'type' => 'string', - 'example' => '1.XXX.XXX.0~1.XXX.XXX.255', - ], - 'DeliverTime' => [ - 'description' => '下发时间。', - 'type' => 'string', - 'example' => '2023-04-24 18:49:37', - ], - 'Status' => [ - 'description' => '下发状态。'."\n" - ."\n" - .'- Success:下发成功。'."\n" - .'- Failed:下发失败,或未有下发记录。', - 'type' => 'string', - 'example' => 'Success', - ], - 'OperationType' => [ - 'type' => 'string', - ], - 'BlockInterval' => [ - 'type' => 'string', - ], - 'UpdateType' => [ - 'type' => 'string', - ], - ], - ], - ], - 'Code' => [ - 'description' => '结果信息码。'."\n" - ."\n" - .'Code不为0可能有以下三种情况:'."\n" - .'- IP格式不正确'."\n" - .'- 时间格式不正确'."\n" - .'- 其他', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Description' => [ - 'description' => '接口返回状态描述。', - 'type' => 'string', - 'example' => 'OK', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CB1A380B-09F0-41BB-C730-72F8FD6DA2FE'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ['errorCode' => 'Policy.NotExist', 'errorMessage' => 'The specified policy does not exist.', 'description' => '指定的防护策略不存在。'], + ['errorCode' => 'PolicyName.AlreadyExists', 'errorMessage' => 'The specified policy name already exists.', 'description' => '指定的策略名称已存在。'], ], - 406 => [ - [ - 'errorCode' => 'InvalidKey.QuotaFull', - 'errorMessage' => 'The maximum number of keys is exceeded.', - ], + 403 => [ + ['errorCode' => '%s.NotSupport', 'errorMessage' => 'The specified resource type %s is not supported.', 'description' => '不支持指定的资源类型。如需使用该类型资源,请与我们联系。'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => '该资源的数量超出了配额所规定的范围,如需申请更多的额度,请与我们联系。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => '内部错误,请重试,如果多次重试报错请提交工单。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => '修改防护策略名称或状态', + 'description' => '> '."\n" + .'> - 单用户调用频率:20次/秒。'."\n" + .'> - 请求方式:支持POST请求。', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:14.000Z', 'description' => '错误码发生变更'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"13A2B792-9212-1CC9-8525-59EBEF3FFE01\\",\\n \\"IPBlockInfo\\": [\\n {\\n \\"BlockIP\\": \\"1.XXX.XXX.0~1.XXX.XXX.255\\",\\n \\"DeliverTime\\": \\"2023-04-24 18:49:37\\",\\n \\"Status\\": \\"Success\\",\\n \\"OperationType\\": \\"\\",\\n \\"BlockInterval\\": \\"\\",\\n \\"UpdateType\\": \\"\\"\\n }\\n ],\\n \\"Code\\": 0,\\n \\"Description\\": \\"OK\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnFullDomainsBlockIPHistoryResponse>\\n <Description>OK</Description>\\n <RequestId>13A2B792-9212-1CC9-8525-59EBEF3FFE01</RequestId>\\n <IPBlockInfo>\\n <Status>Success</Status>\\n <BlockIP>1.XXX.XX.0~1.XXX.XX.255</BlockIP>\\n <DeliverTime>2023-04-24 18:49:37</DeliverTime>\\n </IPBlockInfo>\\n <IPBlockInfo>\\n <Status>Success</Status>\\n <BlockIP>1.XXX.XX.0~1.XXX.XX.255</BlockIP>\\n <DeliverTime>2023-04-24 18:49:05</DeliverTime>\\n </IPBlockInfo>\\n <IPBlockInfo>\\n <Status>Success</Status>\\n <BlockIP>1.XXX.XX.0~1.XXX.XX.255</BlockIP>\\n <DeliverTime>2023-04-24 17:59:36</DeliverTime>\\n </IPBlockInfo>\\n <IPBlockInfo>\\n <Status>Success</Status>\\n <BlockIP>1.XXX.XX.0~1.XXX.XX.255</BlockIP>\\n <DeliverTime>2023-04-24 17:59:06</DeliverTime>\\n </IPBlockInfo>\\n <Code>0</Code>\\n</DescribeDcdnFullDomainsBlockIPHistoryResponse>","errorExample":""}]', - 'title' => '查询封禁历史', - 'description' => '- 对用户指定的IP和时间段,返回用户在该时间段对该IP的下发时间和对应结果。'."\n" - .'- 当指定的IP/IP段在指定时间段存在多条下发记录时,会按下发时间降序排列。'."\n" - .'- 查询时间段支持的最大范围为90天。'."\n" - .'- 给定IP和时间段不存在下发记录或下发失败时,下发时间为空。', - ], - 'SetDcdnFullDomainsBlockIP' => [ - 'summary' => '调用SetDcdnFullDomainsBlockIP可以对指定的IP或IP段,进行封禁解禁操作。', - 'methods' => [ - 'get', - 'post', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyDcdnWafPolicy'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:ModifyDcdnWafPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-C730-72F8FD6DA2FE\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyDcdnWafPolicyResponse>\\n <RequestId>CB1A380B-09F0-41BB-C730-72F8FD6DA2FE</RequestId>\\n</ModifyDcdnWafPolicyResponse>","errorExample":""}]', + ], + 'ModifyDcdnWafPolicyDomains' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -27549,61 +21702,38 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'IPList', + 'name' => 'PolicyId', 'in' => 'formData', - 'schema' => [ - 'description' => '封禁或解禁IP列表,有多个IP时请用半角逗号(,)分隔,最大支持1000个IP。', - 'type' => 'string', - 'required' => true, - 'example' => '1.XXX.XXX.1,2.XXX.XXX.2', - ], + 'schema' => ['description' => '防护策略ID,仅支持单个输入。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1000001'], ], [ - 'name' => 'OperationType', + 'name' => 'Method', 'in' => 'formData', - 'schema' => [ - 'description' => '操作动作。取值:'."\n" - .'- **block**:封禁。'."\n" - .'- **unblock**:解禁。', - 'type' => 'string', - 'required' => true, - 'example' => 'block', - 'enum' => [ - 'block', - 'unblock', - ], - ], + 'schema' => ['description' => '绑定方式,取值:'."\n" + ."\n" + .'- 0:替换'."\n" + .'- 1:添加'."\n" + .'- 不填默认替换。'."\n" + ."\n" + .'> - 仅**BindDomains**有值时生效。当**BindDomains**中存在域名已绑定到默认策略上时,返回错误`Policy.DefaultAndCustom.BindToSameDomain`。'."\n" + .'> - 当指定策略为默认策略时不生效(仅替换)。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], ], [ - 'name' => 'BlockInterval', + 'name' => 'BindDomains', 'in' => 'formData', - 'schema' => [ - 'description' => '封禁时长,单位为秒。设置为**0**时表示永久封禁。仅当**OperationType**为**block**时有效。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '3000', - ], + 'schema' => ['description' => '需绑定指定防护策略的域名,最多输入50个,多个域名用英文逗号(,)分隔。'."\n" + ."\n" + .'> **BindDomains**和**UnbindDomains**字段二选一。', 'type' => 'string', 'required' => false, 'example' => 'example.com,example2.com'], ], [ - 'name' => 'UpdateType', + 'name' => 'UnbindDomains', 'in' => 'formData', - 'schema' => [ - 'description' => '封禁时间类别。仅当**OperationType**为**block**时有效。取值:'."\n" - ."\n" - .'- **cover**:当前请求是采取配置覆盖方式。'."\n" - .'- **uncover**:采取时间计算比对最长方式。'."\n" - .'- 该参数为空时默认采取配置覆盖方式。', - 'type' => 'string', - 'required' => false, - 'example' => 'cover', - ], + 'schema' => ['description' => '需解绑指定防护策略的域名,最多输入50个,多个域名用英文逗号(,)分隔。'."\n" + .'> **BindDomains**和**UnbindDomains**字段二选一。', 'type' => 'string', 'required' => false, 'example' => 'example3.com'], ], ], 'responses' => [ @@ -27611,546 +21741,194 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '结果信息码。'."\n" - ."\n" - .'Code不为0的可能情况:参数不全、参数格式不正确等。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Message' => [ - 'description' => '结果信息。', - 'type' => 'string', - 'example' => 'OK', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-802B-72F8FD6DA2FE', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CB1A380B-09F0-41BB-2B35-72F8FD6DA2FE'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvaildParameter', - 'errorMessage' => 'The specified parameters are invalid.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ['errorCode' => 'Policy.NotExist', 'errorMessage' => 'The specified policy does not exist.', 'description' => '指定的防护策略不存在。'], + ['errorCode' => 'DomainBindAndUnbind.Overlapped', 'errorMessage' => 'The specified bind and unbind domain names overlap.', 'description' => '指定的绑定和解绑域名出现重叠。'], + ['errorCode' => 'Domain.Bound.DefaultAndCustom', 'errorMessage' => 'The specified domain name is bound to both default and custom policies.', 'description' => '指定的域名同时绑定了默认和自定义策略。'], + ['errorCode' => 'DefenseScene.MultiPolicies.NotSupport', 'errorMessage' => 'The specified defense scene does not support multiple policies bound to the same domain name.', 'description' => '指定的防护场景不支持同一域名绑定多个策略。'], ], 403 => [ - [ - 'errorCode' => 'OperationDeniedAccount', - 'errorMessage' => 'You are not authorized to perform this operation.', - ], + ['errorCode' => '%s.NotSupport', 'errorMessage' => 'The specified resource type %s is not supported.', 'description' => '不支持指定的资源类型。如需使用该类型资源,请与我们联系。'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => '该资源的数量超出了配额所规定的范围,如需申请更多的额度,请与我们联系。'], ], - 406 => [ - [ - 'errorCode' => 'InvalidKey.QuotaFull', - 'errorMessage' => 'The maximum number of keys is exceeded.', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => '内部错误,请重试,如果多次重试报错请提交工单。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 0,\\n \\"Message\\": \\"OK\\",\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-802B-72F8FD6DA2FE\\"\\n}","errorExample":""},{"type":"xml","example":"<SetDcdnFullDomainsBlockIPResponse>\\n <Code>0</Code>\\n <Message>OK</Message>\\n <RequestId>CB1A380B-09F0-41BB-802B-72F8FD6DA2FE</RequestId>\\n</SetDcdnFullDomainsBlockIPResponse>","errorExample":""}]', - 'title' => '批量封禁解禁指定域名的IP', - 'description' => '> 适用于封禁大批量IP,接口支持单次最大1000个IP/IP段。', - ], - 'DescribeDcdnAclFields' => [ - 'summary' => '调用DescribeDcdnAclFields为访问控制配置界面提供规则限制项。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], + 'title' => '修改防护策略绑定的域名', + 'summary' => '调用ModifyDcdnWafPolicyDomains修改指定防护策略绑定的域名。', + 'description' => '> '."\n" + .'> - 单用户调用频率:20次/秒。'."\n" + .'> - 请求方式:支持POST请求。', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:14.000Z', 'description' => '错误码发生变更'], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn33QGRH', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyDcdnWafPolicyDomains'], ], ], - 'parameters' => [ + 'ramActions' => [ [ - 'name' => 'Lang', - 'in' => 'query', - 'schema' => [ - 'description' => '访问语言。取值:'."\n" - ."\n" - .'- **en**(默认):英文'."\n" - ."\n" - .'- **zh**:中文', - 'type' => 'string', - 'required' => true, - 'example' => 'en', - 'enum' => [ - 'zh', - 'en', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:ModifyDcdnWafPolicyDomains', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '30A3A25A-86B3-4C1D-BAA8-12B8607A5CFD', - ], - 'Content' => [ - 'description' => '规则详情。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Fields' => [ - 'description' => '规则支持项及配置限制策略,需要JSON解码。', - 'type' => 'string', - 'example' => '\\"fieldList\\":[{\\"name\\":\\"alert\\",\\"display\\":\\"observe\\",\\"tip\\":\\"mark the request in the log without blocking it\\"},{\\"name\\":\\"bypass\\",\\"display\\":\\"bypass\\",\\"tip\\":\\"bypass security modules\\"}],\\"module\\":[{\\"name\\":\\"cc\\",\\"display\\":\\"Rate Limit\\",\\"tip\\":\\"bypass Rate Limit\\"},{\\"name\\":\\"bot\\",\\"display\\":\\"Bot Traffic Management\\",\\"tip\\":\\"bypass Bot Manager\\"}]', - ], - ], - ], - ], - ], - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"30A3A25A-86B3-4C1D-BAA8-12B8607A5CFD\\",\\n \\"Content\\": [\\n {\\n \\"Fields\\": \\"\\\\\\\\\\\\\\"fieldList\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"name\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"alert\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"display\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"observe\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"tip\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"mark the request in the log without blocking it\\\\\\\\\\\\\\"},{\\\\\\\\\\\\\\"name\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"bypass\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"display\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"bypass\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"tip\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"bypass security modules\\\\\\\\\\\\\\"}],\\\\\\\\\\\\\\"module\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"name\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"cc\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"display\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Rate Limit\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"tip\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"bypass Rate Limit\\\\\\\\\\\\\\"},{\\\\\\\\\\\\\\"name\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"bot\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"display\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Bot Traffic Management\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"tip\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"bypass Bot Manager\\\\\\\\\\\\\\"}]\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnAclFieldsResponse>\\t\\n<RequestId>30A3A25A-86B3-4C1D-BAA8-12B8607A5CFD</RequestId>\\n<Content>\\n <Fields>{\\"fieldList\\":[{\\"name\\":\\"alert\\",\\"display\\":\\"observe\\",\\"tip\\":\\"mark the request in the log without blocking it\\"},{\\"name\\":\\"bypass\\",\\"display\\":\\"bypass\\",\\"tip\\":\\"bypass security modules\\"}],\\"module\\":[{\\"name\\":\\"cc\\",\\"display\\":\\"Rate Limit\\",\\"tip\\":\\"bypass Rate Limit\\"},{\\"name\\":\\"bot\\",\\"display\\":\\"Bot Traffic Management\\",\\"tip\\":\\"bypass Bot Manager\\"}]}</Fields>\\n</Content>\\n</DescribeDcdnAclFieldsResponse>\\t","errorExample":""}]', - 'title' => '配置精准访问控制', - 'description' => '>单用户调用频率:3次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-2B35-72F8FD6DA2FE\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyDcdnWafPolicyDomainsResponse>\\n <RequestId>CB1A380B-09F0-41BB-2B35-72F8FD6DA2FE</RequestId>\\n</ModifyDcdnWafPolicyDomainsResponse>","errorExample":""}]', ], - 'DescribeDcdnDomainCcActivityLog' => [ - 'summary' => '调用DescribeDcdnDomainCcActivityLog查询频次控制规则拦截日志。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ModifyDcdnWafRule' => [ + 'summary' => '调用ModifyDcdnWafRule修改防护规则名称、状态或规则配置信息。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '需要查询的加速域名。支持批量域名查询,多个域名用半角逗号(,)分隔。'."\n" - ."\n" - .'若该参数为空,默认返回所有加速域名合并后数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的起始时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'最小数据粒度为5分钟。'."\n" - ."\n" - .'若该参数为空,默认读取过去24小时数据。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T20:00:00Z', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的结束时间点。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'结束时间需大于起始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T21:05:00Z', - ], - ], - [ - 'name' => 'TriggerObject', - 'in' => 'query', - 'schema' => [ - 'description' => '触发对象。'."\n" - ."\n" - .'若该参数为空,则查询所有拦截事件。', - 'type' => 'string', - 'required' => false, - 'example' => 'IP', - ], + 'name' => 'RuleId', + 'in' => 'formData', + 'schema' => ['description' => '防护规则ID,仅支持单个输入。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '200001'], ], [ - 'name' => 'Value', - 'in' => 'query', - 'schema' => [ - 'description' => '触发对象值。'."\n" - ."\n" - .'若该参数为空,则查询所有拦截事件。', - 'type' => 'string', - 'required' => false, - 'example' => '10.10.10.10', - ], + 'name' => 'RuleStatus', + 'in' => 'formData', + 'schema' => ['description' => '修改后的防护规则状态,取值:'."\n" + ."\n" + .'- **on**:开启。'."\n" + ."\n" + .'- **off**:关闭。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => 'off'], ], [ 'name' => 'RuleName', - 'in' => 'query', - 'schema' => [ - 'description' => '规则名称。'."\n" - ."\n" - .'- 正常模式:default_normal;'."\n" - ."\n" - .'- 紧急模式:default_attack;'."\n" - ."\n" - .'- 自定义模式:用户自定义规则名称,例如test2。'."\n" - ."\n\n" - .'若该参数为空,则查询所有拦截事件。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test2', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '单页显示数量。默认值:**30**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '100', - 'example' => '30', - 'default' => '30', - ], + 'in' => 'formData', + 'schema' => ['description' => '修改后的防护规则名称。'."\n", 'type' => 'string', 'required' => false, 'example' => 'test'], ], [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => '页码。默认值:**1**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'name' => 'RuleConfig', + 'in' => 'formData', + 'schema' => ['description' => '修改后的防护规则配置。'."\n" + ."\n" + .'>上传修改后的配置规则后,会直接覆盖之前的配置。'."\n", 'type' => 'string', 'required' => false, 'example' => '{"origin":"custom","conditions":[{"opValue":"eq","key":"URL","values":"/example"},{"opValue":"eq","key":"Header","values":"3333","subKey":"trt"}],"actionExternal":{},"action":"monitor","ccStatus":1,"ratelimit":{"target":"remote_addr","interval":"5","threshold":"2","effect":"rule","status":{"code":"404","count":"2"},"ttl":"1800"}}\''], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'PageIndex' => [ - 'description' => '返回数据的页码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', - ], - 'PageSize' => [ - 'description' => '整页大小。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '30', - ], - 'Total' => [ - 'description' => '总条数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - 'ActivityLog' => [ - 'description' => '拦截事件数据。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Value' => [ - 'description' => '触发对象值。', - 'type' => 'string', - 'example' => '10.10.10.10', - ], - 'Ttl' => [ - 'description' => '生效时长,单位:秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '300', - ], - 'Action' => [ - 'description' => '拦截动作。', - 'type' => 'string', - 'example' => 'deny', - ], - 'TriggerObject' => [ - 'description' => '触发对象。', - 'type' => 'string', - 'example' => 'IP', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2015-12-10T20:00:00Z', - ], - 'DomainName' => [ - 'description' => '加速域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'RuleName' => [ - 'description' => '拦截规则名称。', - 'type' => 'string', - 'example' => 'test2', - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CB1A380B-09F0-41BB-3C2B-72F8FD6DA2FE'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ['errorCode' => 'Rule.NotExist', 'errorMessage' => 'The specified rule does not exist.', 'description' => '指定的规则在当前上下文或系统配置中不存在。请确认规则标识符的存在,并确保它已被正确定义或实现。'], + ['errorCode' => 'RuleConfigs.Malformed', 'errorMessage' => 'The specified RuleConfigs format is invalid.', 'description' => '指定的参数RuleConfigs格式错误。'], + ['errorCode' => 'RuleName.AlreadyExists', 'errorMessage' => 'Rule name already exists in specified policy.', 'description' => '规则名称在指定的策略中已存在。'], + ['errorCode' => 'Rule.Name.CantBeModified', 'errorMessage' => 'The specified rule name can not be modified.', 'description' => '指定的规则名称不能被修改。'], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageIndex\\": 1,\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\",\\n \\"PageSize\\": 30,\\n \\"Total\\": 20,\\n \\"ActivityLog\\": [\\n {\\n \\"Value\\": \\"10.10.10.10\\",\\n \\"Ttl\\": 300,\\n \\"Action\\": \\"deny\\",\\n \\"TriggerObject\\": \\"IP\\",\\n \\"TimeStamp\\": \\"2015-12-10T20:00:00Z\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"RuleName\\": \\"test2\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainCcActivityLogResponse>\\n<Total>20</Total>\\n<PageSize>30</PageSize>\\n<PageIndex>1</PageIndex>\\n<RequestId>3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F</RequestId>\\n<ActivityLog>\\n <TimeStamp>2015-12-10T20:00:00Z</TimeStamp>\\n <Value>10.10.10.10</Value>\\n <TriggerObject>IP</TriggerObject>\\n <DomainName>example.com</DomainName>\\n <Ttl>300</Ttl>\\n <Action>deny</Action>\\n <RuleName>test2</RuleName>\\n</ActivityLog>\\n<ActivityLog>\\n <TimeStamp>2015-12-10T20:00:00Z</TimeStamp>\\n <Value>safari 5.1 – Windows</Value>\\n <TriggerObject>Header_UserAgent</TriggerObject>\\n <DomainName>example.com</DomainName>\\n <Ttl>300</Ttl>\\n <Action>deny</Action>\\n <RuleName>test2</RuleName>\\n</ActivityLog>\\n</DescribeDcdnDomainCcActivityLogResponse>","errorExample":""}]', - 'title' => '查询频次控制规则拦截日志', - 'description' => '> - 不指定StartTime和EndTime时,默认读取过去24小时的数据;同时支持按指定的起止时间查询,StartTime和EndTime两者需要同时指定。'."\n" - .'> - 最多可获取30天的数据。'."\n" - .'> - 单用户调用频率:50次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnSecSpecInfo' => [ - 'summary' => '调用DescribeDcdnSecSpecInfo查询安全DCDN版本及安全规则。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 403 => [ + ['errorCode' => '%s.NotSupport', 'errorMessage' => 'The specified resource type %s is not supported.', 'description' => '不支持指定的资源类型。如需使用该类型资源,请与我们联系。'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => '该资源的数量超出了配额所规定的范围,如需申请更多的额度,请与我们联系。'], ], - ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => '内部错误,请重试,如果多次重试报错请提交工单。'], ], ], - 'parameters' => [], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Version' => [ - 'description' => '安全DCDN版本。', - 'type' => 'string', - 'example' => 'enterprise', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '32f6cbb7-13e5-403a-9941-4d4e978dd227', - ], - 'SpecInfos' => [ - 'description' => '支持的规则代码及规则的配置信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'RuleCode' => [ - 'description' => '用户对应的安全规则代码。', - 'type' => 'string', - 'example' => 'accurate_***', - ], - 'RuleConfigs' => [ - 'description' => '安全规则对应的配置。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '安全规则对应的配置代码。', - 'type' => 'string', - 'example' => 'custom_****_number', - ], - 'Value' => [ - 'description' => '安全规则对应的配置表达式值。', - 'type' => 'string', - 'example' => '20', - ], - 'Expr' => [ - 'description' => '安全规则对应的配置表达式。', - 'type' => 'string', - 'example' => 'equal', - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'title' => '修改防护规则信息', + 'description' => '> '."\n" + .'> - 单用户调用频率:20次/秒。'."\n" + .'> - 请求方式:支持POST请求。'."\n" + .'> - 请求参数**RuleStatus**、**RuleName**和**RuleConfig**至少传一个。', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:15.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2023-03-10T01:53:02.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyDcdnWafRule'], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidVersion.NotFound', - 'errorMessage' => 'The version does not exist.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'dcdn:ModifyDcdnWafRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Version\\": \\"enterprise\\",\\n \\"RequestId\\": \\"32f6cbb7-13e5-403a-9941-4d4e978dd227\\",\\n \\"SpecInfos\\": [\\n {\\n \\"RuleCode\\": \\"accurate_***\\",\\n \\"RuleConfigs\\": [\\n {\\n \\"Code\\": \\"custom_****_number\\",\\n \\"Value\\": \\"20\\",\\n \\"Expr\\": \\"equal\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnSecSpecInfoResponse>\\n<RequestId>205DDD09-B23C-5ACD-BA88-3FB3DBEEBD74</RequestId>\\n<Version>enterprise</Version>\\n<SpecInfos>\\n <RuleConfigs>\\n <Expr>equal</Expr>\\n <Value>20</Value>\\n <Code>custom_****_number</Code>\\n </RuleConfigs>\\n <RuleCode>accurate_***</RuleCode>\\n</SpecInfos>\\n</DescribeDcdnSecSpecInfoResponse>","errorExample":""}]', - 'title' => '查询安全DCDN版本及安全规则', - 'description' => '>单用户调用频率:50次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-3C2B-72F8FD6DA2FE\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyDcdnWafRuleResponse>\\n <RequestId>CB1A380B-09F0-41BB-3C2B-72F8FD6DA2FE</RequestId>\\n</ModifyDcdnWafRuleResponse>","errorExample":""}]', ], - 'DescribeHighlightInfo' => [ - 'summary' => '调用DescribeHighlightInfo查询攻击详情的高亮数据。根据被Web基础防护被拦截日志的Traceid,反查被拦截的具体原因,高亮数据就是匹配到被Web基础防护模块拦截到的内容。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'OpenDcdnService' => [ + 'summary' => '调用OpenDcdnService开通DCDN服务。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111596', + 'abilityTreeNodes' => ['FEATUREdcdnZA9EPX'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据的起始时间点。日期格式按照iso8601表示法,并使用utc时间,格式为yyyy-mm-ddthh:mm:ssz。', - 'type' => 'string', - 'required' => true, - 'example' => '2023-02-19T16:00:00Z', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '结束时间。日期格式按照iso8601表示法,并使用utc时间,格式为yyyy-mm-ddthh:mm:ssz。', - 'type' => 'string', - 'required' => false, - 'example' => '2023-04-10T02:43:34Z', - ], - ], - [ - 'name' => 'TraceId', + 'name' => 'BillType', 'in' => 'query', - 'schema' => [ - 'description' => '日志链路ID。', - 'type' => 'string', - 'required' => true, - 'example' => '800e749616838513398137319e', - ], + 'schema' => ['description' => '开通服务的计费类型。取值:'."\n" + ."\n" + .'- **PayByTraffic**:按流量计费'."\n" + .'- **PayByBandwidth**:按带宽峰值', 'type' => 'string', 'required' => true, 'example' => 'PayByTraffic'], ], [ - 'name' => 'Lang', + 'name' => 'WebsocketBillType', 'in' => 'query', 'schema' => [ - 'description' => '访问语言。取值:'."\n" - ."\n" - .'- **en_US**(默认):英文'."\n" + 'description' => '开通服务的Websocket计费类型。取值:'."\n" ."\n" - .'- **zh_CN**:中文', + .'- **websockettraffic**:按流量计费'."\n" + .'- **websocketbps**:按带宽峰值', 'type' => 'string', 'required' => true, - 'example' => 'en_US', - 'enum' => [ - 'zh_CN', - 'en_US', - ], + 'example' => 'websockettraffic', + 'enum' => ['websockettraffic', 'websocketbps'], ], ], ], @@ -28159,668 +21937,214 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], - 'DataModule' => [ - 'description' => '高亮数据的数据模型。', - 'type' => 'array', - 'items' => [ - 'description' => '高亮数据的数据模型。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '高亮内容类型。', - 'type' => 'string', - 'example' => 'URL', - ], - 'Hit' => [ - 'description' => '高亮数据。', - 'type' => 'string', - 'example' => '["data:image/php;base64"]', - ], - 'Raw' => [ - 'description' => '完整数据。', - 'type' => 'string', - 'example' => 'data:image/php;base64,PD9waHAXXXXXXanVzdHR0dHXXXXXB0ZXN0Ijs/Pg==', - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '97C68796-EB7F-4D41-9D5B-12B909D76503'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', - ], + ['errorCode' => 'DcdnService.HasOpened', 'errorMessage' => 'Your DCDN service has been activated.', 'description' => '您已开通过全站加速。'], + ['errorCode' => 'InvalidComponent', 'errorMessage' => 'The specified value of parameter BillType is not valid.', 'description' => '计费类型非法,请重新输入。'], + ['errorCode' => 'NoRealNameAuthentication', 'errorMessage' => 'Real name authentication is needed.', 'description' => '您的账户未开通实名认证。'], + ['errorCode' => 'IncompleteInformation', 'errorMessage' => 'Your information is incomplete. Complete your information before the operation.', 'description' => '您的信息不完整,请先补充信息。'], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\",\\n \\"DataModule\\": [\\n {\\n \\"Key\\": \\"URL\\",\\n \\"Hit\\": \\"[\\\\\\"data:image/php;base64\\\\\\"]\\",\\n \\"Raw\\": \\"data:image/php;base64,PD9waHAXXXXXXanVzdHR0dHXXXXXB0ZXN0Ijs/Pg==\\"\\n }\\n ]\\n}","type":"json"}]', - 'title' => '查询攻击详情的高亮数据', - ], - 'DescribeDcdnWafBotAppKey' => [ - 'summary' => '调用DescribeDcdnWafBotAppKey查询阿里云账号对应的SDK认证密钥。该密钥用于发起SDK初始化请求,需要在集成代码中使用。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '152891', - 'abilityTreeNodes' => [ - 'FEATUREdcdnV3YEJ8', + 'title' => '开通DCDN服务', + 'description' => '>- 一个用户只能开通一次,且要求阿里云账号已通过实名认证。'."\n" + .'>- 单用户调用频率:5次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'OpenDcdnService'], ], - 'tenantRelevance' => 'publicInformation', ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'F2542B96-B535-5BF9-8EEE-1CF11B20CCA8', - ], - 'AppKey' => [ - 'description' => '阿里云账号对应的SDK认证密钥。', - 'type' => 'string', - 'example' => 'examp1eapp_key_xxxiuMWTX4Gw', - ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:OpenDcdnService', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F2542B96-B535-5BF9-8EEE-1CF11B20CCA8\\",\\n \\"AppKey\\": \\"examp1eapp_key_xxxiuMWTX4Gw\\"\\n}","type":"json"}]', - 'title' => '查询阿里云账号对应的SDK认证密钥', - 'parameters' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"97C68796-EB7F-4D41-9D5B-12B909D76503\\"\\n}","errorExample":""},{"type":"xml","example":"<OpenDcdnServiceResponse>\\r\\n<RequestId>97C68796-EB7F-4D41-9D5B-12B909D76503</RequestId>\\r\\n</OpenDcdnServiceResponse>","errorExample":""}]', ], - 'DescribeDdosAllEventList' => [ - 'summary' => '调用DescribeDdosAllEventList查询攻击事件列表。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'PreloadDcdnObjectCaches' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111597', + 'abilityTreeNodes' => ['FEATUREdcdn4TTNAL'], ], 'parameters' => [ [ - 'name' => 'StartTime', + 'name' => 'ObjectPath', 'in' => 'query', - 'schema' => [ - 'title' => 'A short description of struct', - 'description' => '开始时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => true, - 'example' => '2023-03-27T16:00:00Z', - ], + 'schema' => ['description' => '预热URL,格式为**加速域名/预热的文件**。'."\n" + .'>多个URL之间用换行符分隔,ObjectPath的单条长度最长为1024个字符。', 'type' => 'string', 'required' => true, 'example' => 'http://example.com/examplefile.txt'."\n" + .'http://example.com/examplefile2.txt'], ], [ - 'name' => 'EndTime', + 'name' => 'Area', 'in' => 'query', 'schema' => [ - 'description' => '结束时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - .'结束时间需大于起始时间。开始结束时间跨度最长不超过31天。', + 'description' => '预热区域,取值:'."\n" + .'- **domestic**:仅中国内地。'."\n" + .'- **overseas**:全球(不包含中国内地)。'."\n" + ."\n" + .'如果不传该参数,默认的预热区域为您的域名所配置的DCDN加速区域。具体如下:'."\n" + ."\n" + .'- 域名的加速区域为“**仅中国内地**”,预热区域是仅中国内地。'."\n" + .'- 域名的加速区域为“**全球**”,预热区域是全球。'."\n" + .'- 域名的加速区域为“**全球(不包含中国内地)**”,预热区域是全球(不包含中国内地)。', 'type' => 'string', 'required' => false, - 'example' => '2023-04-25T15:59:59Z', + 'example' => 'domestic', + 'enum' => ['domestic', 'overseas'], ], ], [ - 'name' => 'EventType', + 'name' => 'L2Preload', 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => '待查询的DDoS攻击事件的类型。取值:'."\n" - .'- - **web-cc**:表示Web资源耗尽型攻击。'."\n" - .'- - **cc**:表示连接型攻击。'."\n" - .'- - **traffic**:表示流量型攻击。'."\n" - ."\n\n" - .'不设置该参数表示查询所有类型的攻击事件。', - 'type' => 'string', - 'required' => false, - 'example' => 'web-cc', - 'enum' => [ - 'web-cc', - 'cc', - 'traffic', - ], - ], + 'schema' => ['description' => '是否直接预热到L2节点。取值:'."\n" + ."\n" + .'- **true**:代表预热的节点层级必须包含L2节点。'."\n" + ."\n" + .'- **false**:代表仅预热回源层节点(false为默认值,回源层节点可能是L2节点,也可能是L3节点)。'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'false'], ], [ - 'name' => 'PageNumber', + 'name' => 'WithHeader', 'in' => 'query', - 'schema' => [ - 'description' => '页码,默认值为1。取值范围:1-100000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['description' => '支持用户自定义预热Header,用JSON串格式提交。', 'type' => 'string', 'required' => false, 'example' => '{'."\n" + .' "Accept-Encoding": ['."\n" + .' "gzip"'."\n" + .' ]'."\n" + .'}'], ], [ - 'name' => 'PageSize', + 'name' => 'QueryHashkey', 'in' => 'query', - 'schema' => [ - 'description' => '每页大小,默认为**10**。支持5,10,20。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', - 'enum' => [ - '5', - '10', - '20', - ], - ], + 'schema' => ['description' => '配置了某些规则(如 URL 重写、参数过滤等)开启使用。该参数用于控制执行预热任务时是否开启hashkey查询模式。取值范围:'."\n" + .'- false:默认模式,不传参数的时候使用该模式,指的是直接使用提交的URL作为预热文件的hashkey。'."\n" + .'- true:根据域名的配置来查询预热URL实际使用的hashkey。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'D73A4243-CFBD-5110-876F-09237E77ECBD', - ], - 'Total' => [ - 'description' => '总条数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - 'PageNumber' => [ - 'description' => '当前页码,默认值**1**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '分页大小,默认**10**,支持5、10、20。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'DataList' => [ - 'description' => '事件列表。', - 'type' => 'array', - 'items' => [ - 'description' => '事件列表。', - 'type' => 'object', - 'properties' => [ - 'Target' => [ - 'description' => '攻击目标。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'StartTime' => [ - 'description' => '开始时间。日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'example' => '2022-10-09T10:03:31Z', - ], - 'EndTime' => [ - 'description' => '结束时间。'."\n" - .'日期格式按照ISO8601表示法,并使用UTC时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'example' => '2022-11-26T15:59:00Z', - ], - 'EventType' => [ - 'description' => '待查询的DDoS攻击事件的类型。取值:'."\n" - .'- **web-cc**:表示Web资源耗尽型攻击。'."\n" - .'- **cc**:表示连接型攻击。'."\n" - .'- **traffic**:表示流量型攻击。'."\n" - .'- 不设置该参数表示查询所有类型的攻击事件。', - 'type' => 'string', - 'example' => 'web-cc', - ], - 'Bps' => [ - 'description' => '流量型攻击BPS峰值。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '800', - ], - 'Pps' => [ - 'description' => '流量型攻击PPS峰值。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '12000', - ], - 'Cps' => [ - 'description' => '连接型攻击CPS峰值。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '50', - ], - 'Qps' => [ - 'description' => 'Web资源耗尽型攻击QPS峰值。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '7692', - ], - 'EventId' => [ - 'description' => '事件ID。', - 'type' => 'string', - 'example' => '28069', - ], - ], - ], - ], + 'PreloadTaskId' => ['description' => '预热返回的任务ID,多个任务ID用半角逗号(,)分隔。预热返回的任务ID会按照以下两条规则对预热任务做合并:'."\n" + ."\n" + .'- 同一个域名、同一秒钟提交的预热任务(URL颗粒度)会被合并为同一个RushTaskId。'."\n" + .'- 同一个域名、同一秒钟提交的预热任务(URL颗粒度)如果超过500条,那么会按照每500条合并为一个RushTaskId的方式处理。', 'type' => 'string', 'example' => '95248880'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'E5BD4B50-7A02-493A-AE0B-97B9024B4135'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', - ], + ['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' => 'ObjectPath错误,请填写正确的ObjectPath。'], + ['errorCode' => 'InvalidExtensiveDomain.ValueNotSupported', 'errorMessage' => 'The specified ExtensiveDomain is not supported.', 'description' => '不支持泛域名。'], + ['errorCode' => 'PreloadQueueFull', 'errorMessage' => 'The warming queue is full; please try again later.', 'description' => '域名正在预热的URL个数已经达到上限,请稍后重试。'], + ['errorCode' => 'InvalidObjectPath.ExceedsMaximum', 'errorMessage' => 'The maximum number of urls is exceeded.', 'description' => '提交URL数超过最大限制。'."\n"], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D73A4243-CFBD-5110-876F-09237E77ECBD\\",\\n \\"Total\\": 20,\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 10,\\n \\"DataList\\": [\\n {\\n \\"Target\\": \\"example.com\\",\\n \\"StartTime\\": \\"2022-10-09T10:03:31Z\\",\\n \\"EndTime\\": \\"2022-11-26T15:59:00Z\\",\\n \\"EventType\\": \\"web-cc\\",\\n \\"Bps\\": 800,\\n \\"Pps\\": 12000,\\n \\"Cps\\": 50,\\n \\"Qps\\": 7692,\\n \\"EventId\\": \\"28069\\"\\n }\\n ]\\n}","type":"json"}]', - 'title' => '查询攻击事件列表', - ], - 'DescribeDcdnDdosService' => [ - 'summary' => '调用DescribeDcdnDdosService查询DCDN DDoS服务状态。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '143162', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZA9EPX', - ], - 'tenantRelevance' => 'publicInformation', + 'title' => '预热URL', + 'summary' => '调用PreloadDcdnObjectCaches将源站的内容主动预热到L2 Cache节点上,用户首次访问可直接命中缓存,缓解源站压力。', + 'description' => '- 相关接口:刷新预热类接口包含[RefreshDcdnObjectCaches](~~130620~~)刷新接口和[PreloadDcdnObjectCaches](~~130636~~)预热接口。'."\n" + ."\n" + .'- 请求方式:支持POST请求,参数用form表单显示。'."\n" + ."\n" + .'- URL预热配额(每日):默认情况下,一个账号每日最多可以提交1000条URL预热任务,如果您账号的日带宽峰值大于200 Mbps,可通过<props="china">[配额管理](~~375348~~)</props><props="intl">[提交工单](https://account.alibabacloud.com/login/login.htm?oauth_callback=https%3A//ticket-intl.console.aliyun.com/%23/ticket/createIndex)</props>申请提升每日配额,阿里云将根据您业务的实际需求进行评估和配置。'."\n" + ."\n" + .'- 每次最多可以提交100条URL预热任务。'."\n" + ."\n" + .'- 预热队列规则:每个账号的预热队列最大为100,000条URL,DCDN根据URL提交的先后顺序进行预热,当预热队列中未完成的任务达到了100,000条URL时,阿里云DCDN将会采取排队机制(即完成排序最前的一条URL预热后才可以继续提交下一条URL预热)完成预热。'."\n" + ."\n" + .'- 单用户调用频率:15次/秒。'."\n" + ."\n" + .'#### 注意事项'."\n" + ."\n" + .'- 提交预热任务并成功执行后,DCDN节点会立即回源站加载所需资源,因此大批量提交预热任务会生成较多的并发下载任务,导致回源带宽和请求突增,增加源站压力。'."\n" + .'- 预热任务从提交到预热完成,实际执行时间视预热文件大小而定,大约需要5~30分钟,文件平均大小越小,预热速度越快。'."\n" + .'- 使用RAM用户来执行刷新或预热操作的,需要先获得授权,请参见[授予RAM用户刷新预热权限](~~445051~~)完成授权。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-11-21T01:58:47.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2024-11-03T02:47:56.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2023-07-25T12:31:26.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2023-01-11T07:50:59.000Z', 'description' => '请求参数发生变更、响应参数发生变更'], ], - 'parameters' => [], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '业务状态,取值:'."\n" - ."\n" - .'- **Normal**:正常'."\n" - ."\n" - .'- **WaitForExpire**:等待停机'."\n" - ."\n" - .'- **Expired**:已过期'."\n" - ."\n" - .'- **Released**:释放', - 'type' => 'string', - 'example' => 'Normal', - ], - 'ChangingAffectTime' => [ - 'description' => '下次生效时间,GMT时间。'."\n", - 'type' => 'string', - 'example' => '2018-03-31T16:00:00Z', - ], - 'OpeningTime' => [ - 'description' => '服务开通时间。', - 'type' => 'string', - 'example' => '2021-09-26T16:00:00Z', - ], - 'ChangingEdition' => [ - 'description' => '将变配生效的防护版本。取值范围:'."\n" - .'- **poc**:POC版。'."\n" - .'- **basic**:基础版。'."\n" - .'- **insurance**:保险版。'."\n" - .'- **unlimited**:无忧版。', - 'type' => 'string', - 'example' => 'basic', - ], - 'ChargeType' => [ - 'description' => '付费方式。取值范围:'."\n" - .'- **PayByBandwidth**:按日峰值带宽计费。'."\n" - .'- **PayByTraffic**:按使用流量计费。'."\n" - .'- **PayByBandwidth95**:按95带宽计费。', - 'type' => 'string', - 'example' => 'PayByTraffic', - ], - 'DomianNum' => [ - 'description' => '防护域名数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'ChangingProtectNum' => [ - 'description' => '变配防护次数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'ChangingDomianNum' => [ - 'description' => '变配防护域名数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '30', - ], - 'InstanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'xxx-12345', - ], - 'Edition' => [ - 'description' => '防护版本。取值范围:'."\n" - .'- **poc**:POC版。'."\n" - .'- **basic**:基础版。'."\n" - .'- **insurance**:保险版。'."\n" - .'- **unlimited**:无忧版。', - 'type' => 'string', - 'example' => 'poc', - ], - 'ChangingChargeType' => [ - 'description' => '变配后付费方式。取值范围:'."\n" - .'- **PayByBandwidth**:按日峰值带宽计费。'."\n" - .'- **PayByTraffic**:按使用流量计费。'."\n" - .'- **PayByBandwidth95**:按95带宽计费。', - 'type' => 'string', - 'example' => 'PayByBandwidth', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'C370DAF1-C838-4288-A1A0-9A87633D248E', - ], - 'ProtectNum' => [ - 'description' => '防护次数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'Enabled' => [ - 'description' => '服务开通状态。取值范围:'."\n" - .'- **on**:开通'."\n" - .'- **off**:未开通', - 'type' => 'string', - 'example' => 'on', - ], - 'EndingTime' => [ - 'description' => '服务到期时间。', - 'type' => 'string', - 'example' => '2023-09-26T16:00:00Z', - ], - ], - ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PreloadDcdnObjectCaches'], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Status\\": \\"Normal\\",\\n \\"ChangingAffectTime\\": \\"2018-03-31T16:00:00Z\\",\\n \\"OpeningTime\\": \\"2021-09-26T16:00:00Z\\",\\n \\"ChangingEdition\\": \\"basic\\",\\n \\"ChargeType\\": \\"PayByTraffic\\",\\n \\"DomianNum\\": 20,\\n \\"ChangingProtectNum\\": 100,\\n \\"ChangingDomianNum\\": 30,\\n \\"InstanceId\\": \\"xxx-12345\\",\\n \\"Edition\\": \\"poc\\",\\n \\"ChangingChargeType\\": \\"PayByBandwidth\\",\\n \\"RequestId\\": \\"C370DAF1-C838-4288-A1A0-9A87633D248E\\",\\n \\"ProtectNum\\": 100,\\n \\"Enabled\\": \\"on\\",\\n \\"EndingTime\\": \\"2023-09-26T16:00:00Z\\"\\n}","type":"json"}]', - 'title' => '查询DDoS服务状态', - ], - 'DescribeDcdnDdosSpecInfo' => [ - 'summary' => '调用DescribeDcdnDdosSpecInfo查询DCDN DDoS用户版本规格。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ + 'ramActions' => [ [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnO1ZP9O', - ], - ], - 'parameters' => [], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Edition' => [ - 'description' => '版本。取值范围:'."\n" - .'- **poc**:poc版'."\n" - .'- **basic**:基础版。'."\n" - .'- **insurance**:保险版。'."\n" - .'- **unlimited** :无忧版。'."\n" - .'- **port_enhancement**:特殊端口增强版。', - 'type' => 'string', - 'example' => 'insurance', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DEA8E7BE-33C6-56F5-AC56-74D50547CF34', - ], - 'Enable' => [ - 'description' => '用户是否开启DDoS防护服务 。取值范围:'."\n" - .'- **on**:开启。'."\n" - .'- **off**:关闭。', - 'type' => 'string', - 'example' => 'on', - ], - 'ProtectedArea' => [ - 'description' => '防护地区。取值范围:'."\n" - .'- **global**:全球。'."\n" - .'- **chinese_mainland**:中国内地。'."\n" - .'- **global_excluding_the_chinese_mainland**:全球(不包含中国内地)。', - 'type' => 'string', - 'example' => 'global', - ], - 'BandwidthLimit' => [ - 'description' => '单实例限制带宽。', - 'type' => 'string', - 'example' => '40Gbps', - ], - 'QpsLimit' => [ - 'description' => 'QPS限制。', - 'type' => 'string', - 'example' => '100', - ], - 'SpecInfos' => [ - 'description' => '支持的规则代码及规则的配置信息。', - 'type' => 'array', - 'items' => [ - 'description' => '支持的规则代码及规则的配置信息。', - 'type' => 'object', - 'properties' => [ - 'Rule' => [ - 'description' => '版本规则。取值范围:'."\n" - .'- **version_defense_num**:版本防护次数相关规则。'."\n" - .'- **domain_num**:域名数限制相关规则。'."\n" - .'- **defence_package_num**:额外防护次数包相关规则。', - 'type' => 'string', - 'example' => 'version_defense_num', - ], - 'Configs' => [ - 'description' => '版本规则对应的配置。', - 'type' => 'array', - 'items' => [ - 'description' => '版本规则对应的配置。', - 'type' => 'object', - 'properties' => [ - 'Value' => [ - 'description' => '版本规则对应的配置表达式值。', - 'type' => 'string', - 'example' => '1', - ], - 'Config' => [ - 'description' => '版本规则对应的配置代码。取值范围:'."\n" - .'- **total_defense_num**:版本总防护次数。'."\n" - .'- **consume_defense_num**:已使用的版本防护次数 。'."\n" - .'- **max_domain_num**:接入域名限制数。'."\n" - .'- **emain_domain_num**:已接入域名数 。'."\n" - .'- **defence_package_num**:额外购买的总防护次数。'."\n" - .'- **consume_defence_package_num**:额外购买的已使用的防护次数。', - 'type' => 'string', - 'example' => 'total_defense_num', - ], - 'Expr' => [ - 'description' => '版本规则对应的配置表达式。', - 'type' => 'string', - 'example' => 'equal', - ], - ], - ], - ], - ], - ], - ], - 'IsSpecialPort' => [ - 'description' => '是否支持自定义端口。取值范围:'."\n" - .'- **yes**:支持。'."\n" - .'- **no**:不支持。', - 'type' => 'string', - 'example' => 'no', - ], + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:PreloadDcdnObjectCaches', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', - ], - ], - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Edition\\": \\"insurance\\",\\n \\"RequestId\\": \\"DEA8E7BE-33C6-56F5-AC56-74D50547CF34\\",\\n \\"Enable\\": \\"on\\",\\n \\"ProtectedArea\\": \\"global\\",\\n \\"BandwidthLimit\\": \\"40Gbps\\",\\n \\"QpsLimit\\": \\"100\\",\\n \\"SpecInfos\\": [\\n {\\n \\"Rule\\": \\"version_defense_num\\",\\n \\"Configs\\": [\\n {\\n \\"Value\\": \\"1\\",\\n \\"Config\\": \\"total_defense_num\\",\\n \\"Expr\\": \\"equal\\"\\n }\\n ]\\n }\\n ],\\n \\"IsSpecialPort\\": \\"no\\"\\n}","type":"json"}]', - 'title' => '查询DDoS用户版本规格', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"PreloadTaskId\\": \\"95248880\\",\\n \\"RequestId\\": \\"E5BD4B50-7A02-493A-AE0B-97B9024B4135\\"\\n}","errorExample":""},{"type":"xml","example":"<PreloadDcdnObjectCachesResponse>\\r\\n\\t<PushTaskId>95248880</PushTaskId>\\r\\n\\t<RequestId>E5BD4B50-7A02-493A-AE0B-97B9024B4135</RequestId>\\r\\n</PreloadDcdnObjectCachesResponse>\\r\\n\\t\\r\\n","errorExample":""}]', ], - 'DescribeDcdnWafDomain' => [ - 'summary' => '调用DescribeDcdnWafDomain查询WAF全量域名列表和开通WAF功能的加速域名的相关信息(包括加速域名ACL状态、CC状态、创建状态和WAF开通状态等)。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'PublishDcdnStagingConfigToProduction' => [ + 'summary' => '调用PublishDcdnStagingConfigToProduction将模拟环境的全站加速配置发布到生产环境。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'WAF管控区域。', - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - 'enum' => [ - 'cn-hangzhou', - 'ap-southeast-1', - ], - ], - ], - [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '加速域名。若参数为空,则返回所有加速域名。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => '加速域名,仅支持传单个域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'FunctionName', 'in' => 'query', - 'schema' => [ - 'description' => '资源组。若参数为空,代表默认资源组。', - 'type' => 'string', - 'required' => false, - 'example' => '/', - ], + 'schema' => ['description' => '功能列表名称。', 'type' => 'string', 'required' => true, 'example' => 'aliauth'], ], ], 'responses' => [ @@ -28828,108 +22152,49 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'TotalCount' => [ - 'description' => '加速域名数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-802B-72F8FD6DA2FE', - ], - 'OutPutDomains' => [ - 'description' => '加速域名信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'AclStatus' => [ - 'description' => 'ACL状态。'."\n" - ."\n" - .'- 0:关闭。'."\n" - .'- 1:开通。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Status' => [ - 'description' => '域名创建状态:'."\n" - ."\n" - .'- 1:域名创建成功/域名有效。'."\n" - .'- 10:域名创建中。'."\n" - .'- 11:域名创建失败。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Domain' => [ - 'description' => '开通了WAF的加速域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'CcStatus' => [ - 'description' => 'CC状态。'."\n" - ."\n" - .'- 0:关闭。'."\n" - .'- 1:开通。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'WafStatus' => [ - 'description' => 'WAF状态。'."\n" - ."\n" - .'- 0:关闭。'."\n" - .'- 1:开通。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidDomainName', - 'errorMessage' => 'The specified DomainName is invalid.', - ], + ['errorCode' => 'StagingConfig.Failed', 'errorMessage' => 'The rules for the staging environment are being configured. Try again later.', 'description' => '模拟环境正在配置,请稍后重试。'], ], 404 => [ - [ - 'errorCode' => 'InvalidDomain.NotFound', - 'errorMessage' => 'The specified domain does not exist.', - ], + ['errorCode' => 'StagingConfig.NotFound', 'errorMessage' => 'The staging configuration does not exist.', 'description' => '该配置在模拟环境不存在。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-802B-72F8FD6DA2FE\\",\\n \\"OutPutDomains\\": [\\n {\\n \\"AclStatus\\": 1,\\n \\"Status\\": 1,\\n \\"Domain\\": \\"example.com\\",\\n \\"CcStatus\\": 1,\\n \\"WafStatus\\": 1\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<TotalCount>1</TotalCount>\\n<OutputDomains>\\n <AclStatus>1</AclStatus>\\n <CcStatus>1</CcStatus>\\n <Domain>example.com</Domain>\\n <Status>1</Status>\\n <WafStatus>1</WafStatus>\\n</OutputDomains>\\n<RequestId>CB1A380B-09F0-41BB-802B-72F8FD6DA2FE</RequestId>","errorExample":""}]', - 'title' => '查询WAF全量域名列表', - 'description' => '该API适用于旧版WAF防护。'."\n" - .'> 单用户调用频率:150次/秒。', + 'title' => '灰度环境转生产环境配置', + 'description' => '> 单用户调用频率:30次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateDcdnWafPolicy' => [ - 'summary' => '调用CreateDcdnWafPolicy设置WAF防护策略。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PublishDcdnStagingConfigToProduction'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:PublishDcdnStagingConfigToProduction', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<PublishDcdnStagingConfigToProductionResponse>\\r\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</PublishDcdnStagingConfigToProductionResponse>\\r\\n","errorExample":""}]', + ], + 'PublishRoutineCodeRevision' => [ + 'summary' => '调用PublishRoutineCodeRevision发布指定版本的边缘函数ER代码到某个Env环境。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -28937,74 +22202,31 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnV3G3FZ', - 'FEATUREdcdnSU2QP6', - ], + 'abilityTreeCode' => '111599', + 'abilityTreeNodes' => ['FEATUREdcdn75UYDO'], ], 'parameters' => [ [ - 'name' => 'PolicyName', + 'name' => 'Name', 'in' => 'formData', - 'schema' => [ - 'description' => '防护策略名称。支持输入中文字符、英文字符(大小写)、数字(0~9)及下划线(_),最大输入64个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'policy_test', - ], + 'schema' => ['description' => '边缘函数名, 同一个账号下命名唯一。', 'type' => 'string', 'required' => true, 'example' => 'test'], ], [ - 'name' => 'PolicyType', - 'in' => 'formData', - 'schema' => [ - 'description' => '设置当前策略是否为默认策略,取值:'."\n" - ."\n" - .'- default:默认策略。'."\n" - ."\n" - .'- custom:非默认策略。', - 'type' => 'string', - 'required' => true, - 'example' => 'default', - ], - ], - [ - 'name' => 'PolicyStatus', + 'name' => 'SelectCodeRevision', 'in' => 'formData', - 'schema' => [ - 'description' => '防护策略状态,取值:'."\n" - ."\n" - .'- on:开启。'."\n" - ."\n" - .'- off:关闭。', - 'type' => 'string', - 'required' => true, - 'example' => 'on', - ], + 'schema' => ['description' => '将要发布的边缘函数ER代码版本。', 'type' => 'string', 'required' => true, 'example' => '1620876959997924701'], ], [ - 'name' => 'DefenseScene', + 'name' => 'Envs', 'in' => 'formData', - 'schema' => [ - 'description' => 'WAF防护策略类型,取值:'."\n" - ."\n" - .'- waf_group:Web基础防护。'."\n" - ."\n" - .'- custom_acl:自定义防护策略。'."\n" - ."\n" - .'- whitelist:白名单。'."\n" - ."\n" - .'- ip_blacklist:IP黑名单。'."\n" - ."\n" - .'- region_block:区域封禁。'."\n" - ."\n" - .'- bot:Bot管理。', - 'type' => 'string', - 'required' => true, - 'example' => 'waf_group', - ], + 'style' => 'json', + 'schema' => ['description' => '将要发布的Env环境。'."\n" + ."\n" + .'> - production:环境名称,包含SpecName(环境名称)和AllowedHosts(域名白名单)。'."\n" + .'> - presetCanary:选填,根据您业务需要添加的灰度环境。', 'type' => 'object', 'required' => true, 'example' => '["production","presetCanaryZhejiang"]'], ], ], 'responses' => [ @@ -29012,69 +22234,47 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'PolicyId' => [ - 'description' => '创建的防护策略ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10000001', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-A198-72F8FD6DA2FE', - ], + 'Content' => ['description' => '发布的代码版本号。', 'type' => 'object', 'example' => '{"CodeRevision": "1620876959997924701"}'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A513734D-D17B-411E-864D-XXXX'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'Policy.DefaultExisted', - 'errorMessage' => 'The default policy is existed in specified defense scene.', - ], - [ - 'errorCode' => 'PolicyName.AlreadyExists', - 'errorMessage' => 'The specified policy name already exists.', - ], + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => '后端服务器发生错误:%s 。如果重试多次依然报错,请提交工单。'], ], - 403 => [ - [ - 'errorCode' => '%s.NotSupport', - 'errorMessage' => 'The specified resource type %s is not supported.', - ], - [ - 'errorCode' => '%s.OverQuota', - 'errorMessage' => 'The quantity of %s exceeds the quota.', - ], + ], + 'title' => '发布指定版本的边缘函数ER代码到某个Env环境', + 'description' => '> API调用频率:100次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PublishRoutineCodeRevision'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:PublishRoutineCodeRevision', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PolicyId\\": 10000001,\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-A198-72F8FD6DA2FE\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateDcdnWafPolicyResponse>\\n <PolicyId>10000001</PolicyId>\\n <RequestId>CB1A380B-09F0-41BB-A198-72F8FD6DA2FE</RequestId>\\n</CreateDcdnWafPolicyResponse>","errorExample":""}]', - 'title' => '设置防护策略', - 'description' => '> '."\n" - .'> - 单用户调用频率:20次/秒。'."\n" - .'> - 请求方式:支持POST请求。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"CodeRevision\\": \\"1620876959997924701\\"\\n },\\n \\"RequestId\\": \\"A513734D-D17B-411E-864D-XXXX\\"\\n}","errorExample":""},{"type":"xml","example":"<PublishRoutineCodeRevisionResponse>\\n<RequestId>A513734D-D17B-411E-864D-XXXX</RequestId>\\n<Content>\\n <CodeRevision>1620876959997924701</CodeRevision>\\n</Content>\\n</PublishRoutineCodeRevisionResponse>","errorExample":""}]', ], - 'BatchCreateDcdnWafRules' => [ - 'summary' => '调用BatchCreateDcdnWafRules设置WAF防护规则。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'PutDcdnKv' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -29082,34 +22282,37 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnV3YEJ8', - ], + 'abilityTreeCode' => '121110', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'PolicyId', - 'in' => 'formData', - 'schema' => [ - 'description' => '防护策略ID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1000001', - ], + 'name' => 'Namespace', + 'in' => 'query', + 'schema' => ['description' => 'Namespace名称。', 'type' => 'string', 'required' => true, 'example' => 'ns1'], ], [ - 'name' => 'RuleConfigs', + 'name' => 'Key', + 'in' => 'query', + 'schema' => ['description' => '需要设置的Key名称,最长不超过512个字符,不能包含空格、反斜杠(/)。', 'type' => 'string', 'required' => true, 'example' => 'key1'], + ], + [ + 'name' => 'Value', 'in' => 'formData', - 'schema' => [ - 'description' => '防护规则配置。', - 'type' => 'string', - 'required' => true, - 'example' => '[{"name":"example","action":"monitor","conditions":[{"key":"URL","opValue":"match-one","values":"1,2,3,4,5"},{"key":"Header","opValue":"contain-one","subKey":"example_subkey","values":"6,7,8,9,10"}],"ratelimit":{"target":"header","interval":10,"threshold":5,"ttl":1800,"subKey":"example_subkey","status":{"code":"502","count":5}},"ccStatus":"on","effect":"rule","status":"on"}]', - ], + 'schema' => ['description' => 'Key的内容,最大2 MB(2\\*1000\\*1000)。', 'type' => 'string', 'required' => true, 'example' => 'value1'], + ], + [ + 'name' => 'Expiration', + 'in' => 'query', + 'schema' => ['description' => '过期时间(秒级时间戳,不能小于当前时间),同时设置Expiration和ExpirationTtl时,以ExpirationTtl为准。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1690081381'], + ], + [ + 'name' => 'ExpirationTtl', + 'in' => 'query', + 'schema' => ['description' => '过期时间(相对时间,单位:秒),同时设置Expiration和ExpirationTtl时,以ExpirationTtl为准。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '3600'], ], ], 'responses' => [ @@ -29117,1333 +22320,98 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-280B-72F8FD6DA2FE', - ], - 'RuleIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RuleId' => [ - 'type' => 'array', - 'items' => [ - 'description' => '创建的规则ID列表。', - 'type' => 'string', - 'example' => '100001,200002', - ], - ], - ], - ], + 'Length' => ['description' => 'Key的长度。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'Value' => ['description' => 'Key的内容, 超过256个字符长度,将取前100及后100字符并省略中间。', 'type' => 'string', 'example' => 'value1'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '96ED3127-EC7A-57C5-AFA6-A689B24B2530'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'Policy.NotExist', - 'errorMessage' => 'The specified policy does not exist.', - ], - [ - 'errorCode' => 'RuleConfigs.Malformed', - 'errorMessage' => 'The specified RuleConfigs format is invalid.', - ], - [ - 'errorCode' => 'RuleName.AlreadyExists', - 'errorMessage' => 'Rule name already exists in specified policy.', - ], - [ - 'errorCode' => 'Rule.QuantityOverflow', - 'errorMessage' => 'Rules are overflowed quantity in specified policy.', - ], + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '输入参数无效'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => '账号输入不对,比如输入为空'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'namespace输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'key输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'key长度不能超过512B'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'value长度不能越过2000000B'], ], 403 => [ - [ - 'errorCode' => '%s.NotSupport', - 'errorMessage' => 'The specified resource type %s is not supported.', - ], - [ - 'errorCode' => '%s.OverQuota', - 'errorMessage' => 'The quantity of %s exceeds the quota.', - ], + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'namespace容量超过限制,单个namespace最大容量为1G'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => '鉴权参数输入错误'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => '您输入的鉴权时间参数无效,请检查参数值后重试。'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => '您输入的token无效,请检查并输入正确的token后进行重试。'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => '资源校验失败'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', - ], + [ + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account does not exist.', 'description' => '账号不存在,未创建'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'namespace不存在'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => '请求的key不存在'], + ], + 406 => [ + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'namespace已存在'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'namespace个数超过quota限制'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'key个数超过quota限制'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests are submitted.', 'description' => '请求速率过快'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'key put/delete操作太频繁'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-280B-72F8FD6DA2FE\\",\\n \\"RuleIds\\": {\\n \\"RuleId\\": [\\n \\"100001,200002\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<BatchCreateDcdnWafRulesResponse>\\n <RequestId>CB1A380B-09F0-41BB-280B-72F8FD6DA2FE</RequestId>\\n <RuleIds>100001,200002</RuleIds>\\n</BatchCreateDcdnWafRulesResponse>","errorExample":""}]', - 'title' => '配置防护规则', - 'description' => '> 单用户调用频率:20次/秒。', - 'requestParamsDescription' => '## RuleConfigs取值说明'."\n" - ."\n" - .'- RuleConfigs为列表切片,其中每个结构体代表一条规则。'."\n" - .'- 根据PolicyId对应的防护策略类型不同,RuleConfigs的格式也不同。'."\n" - ."\n" - .'### 防护场景1:Web正则防护(waf_group)'."\n" - ."\n" - .'| 参数 | 类型 | 必要 | 示例值 | 描述 |'."\n" - .'| ------ | ------ | ---- | ------|-------------------- |'."\n" - .'| status | String | 否 | on|防护规则开关,取值:on(开启),off(关闭)。默认为on。 |'."\n" - .'| action | String | 是 | block|规则动作,取值:block(拦截),monitor(观察)。 |'."\n" - .'| wafGroupIds | String | 否 | 1012| WAF规则组ID,默认为"1012",多个ID使用半角逗号(,)分隔。 |'."\n" - ."\n" - .'waf_group配置示例:'."\n" - .'```'."\n" - .'// Web正则防护目前仅支持一条策略下配置一条规则。'."\n" - .'['."\n" - .' {'."\n" - .' "status": "on",'."\n" - .' "action": "block"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - ."\n" - .'### 防护场景2:自定义规则(custom_acl)'."\n" - ."\n" - .'| 名称 | 类型|是否必选| 示例值| 描述|'."\n" - .'|------|-----|--------|-------|-----|'."\n" - .'| name| string|是| acl_1| 防护规则名称,支持输入英文字符(大小写)、数字(0~9)及下划线(_),最大输入64个字符。|'."\n" - .'| status| string|否| on| 取值:on(开启),off(关闭)。默认为on。|'."\n" - .'| conditions|Condition|是| [ {"key": "URI", "subKey": "","opValue": "contain", "values": "/login.php" }]| 触发规则条件,具体参数请参考**表1 Condition参数说明**。|'."\n" - .'| ccStatus| string|是| off| 频次控制开关,on(开启),off(关闭)。|'."\n" - .'| rateLimit| RateLimit|否| { "target": "Header", "subKey": "User-Agent", "interval": 5, "threshold": 2, "ttl": 1800}| 具体的频次控制规则,当ccStatus为on时必填。具体参数请参考**表2 RateLimit参数说明**。|'."\n" - .'| effect| string|否| service| 频次控制黑名单的生效范围,当ccStatus为on时必填,取值:rule(当前规则生效),service(全局生效)。|'."\n" - .'| action| string|是| deny| 规则动作,取值:deny(拦截)、js(JS验证)、monitor(观察)。|'."\n" - ."\n" - .'表1 Condition参数说明'."\n" - ."\n" - .'| 名称 | 类型|是否必选| 示例值| 描述|'."\n" - .'|------|-----|--------|--------|-----|'."\n" - .'| Key| string|是| Query String Parameter| 匹配字段,具体请参考[DescribeDcdnWafFilterInfo](~~423285~~)。|'."\n" - .'| subKey| string|否| action| 匹配子字段,具体请参考[DescribeDcdnWafFilterInfo](~~423285~~)。|'."\n" - .'| opValue|String|是| eq| 逻辑符,具体请参考[DescribeDcdnWafFilterInfo](~~423285~~)。|'."\n" - .'| values|String|否| js| 匹配内容,多值使用英文逗号(,)分隔,具体值参考[DescribeDcdnWafFilterInfo](~~423285~~)。|'."\n" - ."\n" - .'表2 RateLimit参数说明'."\n" - ."\n" - .'| 名称 | 类型|是否必选| 示例值| 描述|'."\n" - .'|------|-----|---------|--------|-----|'."\n" - .'| target| string|是| Header|频次控制的统计字段,取值:IP:表示统计同一个IP发起请求的频率。Header:表示统计包含指定Header的请求的频率。Query String Parameter:表示统计包含指定参数的请求的频率。Cookie Name:表示统计包含指定Cookie的请求的频率。Session:表示统计来自同一个会话发起请求的频率。|'."\n" - .'| subKey| string|否| User-Agent|统一字段的子字段,当target为Header、Query String Parameter或Cookie Name时必填。|'."\n" - .'| Interval|Integer|是| 5| 统计时长。取值范围:5~1800。单位:秒。|'."\n" - .'| threshold|Integer|是| 2| 统计阈值。取值范围:2~500000。单位:次。|'."\n" - .'| ttl|Integer|是| 1800| 黑名单超时时间。取值范围:60~86400。单位:秒。|'."\n" - .'| status|RateLimitStatus|否| {"code": "404", "ratio": 10} | 响应码统计。具体参数请参考**表3 RateLimitStatus参数说明**。|'."\n" - ."\n" - .'表3 RateLimitStatus参数说明'."\n" - ."\n" - .'| 名称 | 类型|是否必选| 示例值| 描述|'."\n" - .'|------|-----|--------|-------|-----|'."\n" - .'| codet| string|是| 404|HTTP状态码。|'."\n" - .'|ratio| Integer|否| 10|按比例(%)统计。取值:1~100,与count字段二选一。|'."\n" - .'|count| Integer|否| 10|按数量统计。取值:2~50000,与ratio字段二选一。|'."\n" - ."\n" - .'custom_acl配置示例:'."\n" - .'```'."\n" - .'['."\n" - .' // 访问控制'."\n" - .' {'."\n" - .' "name": "acl_1",'."\n" - .' "status": "off",'."\n" - .' "conditions":'."\n" - .' ['."\n" - .' {'."\n" - .' "key": "Query String Parameter",'."\n" - .' "subKey": "action",'."\n" - .' "opValue": "eq",'."\n" - .' "values": "js"'."\n" - .' }'."\n" - .' ],'."\n" - .' "ccStatus": "off",'."\n" - .' "action": "js"'."\n" - .' },'."\n" - .' // 频次控制'."\n" - .' {'."\n" - .' "name": "cc_1",'."\n" - .' "status": "on",'."\n" - .' "conditions": '."\n" - .' ['."\n" - .' {'."\n" - .' "key": "URI",'."\n" - .' "subKey": "",'."\n" - .' "opValue": "contain",'."\n" - .' "values": "/login.php"'."\n" - .' },'."\n" - .' {'."\n" - .' "key": "IP",'."\n" - .' "subKey": "",'."\n" - .' "opValue": "ip-contain",'."\n" - .' "values": "192.168.0.1/24"'."\n" - .' }'."\n" - .' ],'."\n" - .' "ccStatus": "on",'."\n" - .' "ratelimit":'."\n" - .' {'."\n" - .' "target": "Header",'."\n" - .' "subKey": "User-Agent",'."\n" - .' "interval": 5,'."\n" - .' "threshold": 2,'."\n" - .' "ttl": 1800,'."\n" - .' "status":'."\n" - .' {'."\n" - .' "code": "404",'."\n" - .' "ratio": 10'."\n" - .' }'."\n" - .' },'."\n" - .' "effect": "service",'."\n" - .' "action": "deny"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - ."\n\n" - .'### 防护场景3:白名单(whitelist)'."\n" - ."\n" - .'| 名称 | 类型|是否必选| 示例值| 描述|'."\n" - .'|------|-----|---------|-------|----|'."\n" - .'| name| string|是| on| 防护规则名称,支持输入英文字符(大小写)、数字(0~9)及下划线(_),最大输入64个字符。|'."\n" - .'| status| string|否| on| 防护规则开关,取值:on(默认):开启。off:关闭。|'."\n" - .'| conditions| Condition|是| [{ "key": "Http-Method","subKey": "","opValue": "match-one", "values": "GET,POST,DELETE" }]| 触发规则的条件。具体参数请参考**表1 Condition参数说明**。|'."\n" - .'| tags| String|是| [ "waf\\_group", "custom\\_acl"]| 防护策略类型列表。|'."\n" - .'| regularTypes| String|否| [ [ "sqli", "xss","code_exec", "crlf", "lfilei", "rfilei", "webshell","vvip", "other"]| 正则规则类型,当tags中出现waf\\_group时,此值可填,可选值:["sqli", "xss", "code_exec", "crlf", "lfilei", "rfilei", "webshell", "vvip", "other"]。|'."\n" - .'| regularRules| String|否| [ "100001", "100002", "100003"]| 正则规则,当tags中出现waf\\_group时,此值可填,且与regularTypes只能出现一个,值为字符串格式的六位数字组成的列表。|'."\n" - ."\n" - .'whitelist配置示例:'."\n" - ."\n" - .'```'."\n" - .'['."\n" - .' // 跳过全部场景'."\n" - .' {'."\n" - .' "name": "wl_all",'."\n" - .' "status": "on",'."\n" - .' "conditions":'."\n" - .' ['."\n" - .' {'."\n" - .' "key": "Http-Method",'."\n" - .' "subKey": "",'."\n" - .' "opValue": "match-one",'."\n" - .' "values": "GET,POST,DELETE"'."\n" - .' }'."\n" - .' ],'."\n" - .' "tags":'."\n" - .' ['."\n" - .' "waf_group",'."\n" - .' "custom_acl",'."\n" - .' "ip_blacklist",'."\n" - .' "region_block"'."\n" - .' ]'."\n" - .' },'."\n" - .' // 跳过waf_group的指定规则id'."\n" - .' {'."\n" - .' "name": "wl_waf_id",'."\n" - .' "status": "off",'."\n" - .' "conditions":'."\n" - .' ['."\n" - .' {'."\n" - .' "key": "Cookie Name",'."\n" - .' "subKey": "cdn-sec",'."\n" - .' "opValue": "prefix-match",'."\n" - .' "values": "a7sdsa9dsa8d8sa"'."\n" - .' },'."\n" - .' {'."\n" - .' "key": "Referer",'."\n" - .' "subKey": "",'."\n" - .' "opValue": "none",'."\n" - .' "values": ""'."\n" - .' }'."\n" - .' ],'."\n" - .' "tags":'."\n" - .' ['."\n" - .' "waf_group"'."\n" - .' ],'."\n" - .' "regularRules":'."\n" - .' ['."\n" - .' "100001",'."\n" - .' "100002",'."\n" - .' "100003"'."\n" - .' ]'."\n" - .' },'."\n" - .' {'."\n" - .' // 跳过waf_group的指定规则类型'."\n" - .' "name": "wl_waf_type",'."\n" - .' "status": "on",'."\n" - .' "conditions":'."\n" - .' ['."\n" - .' {'."\n" - .' "key": "Query String",'."\n" - .' "subKey": "",'."\n" - .' "opValue": "exists",'."\n" - .' "values": ""'."\n" - .' }'."\n" - .' ],'."\n" - .' "tags":'."\n" - .' ['."\n" - .' "waf_group"'."\n" - .' ],'."\n" - .' "regularTypes":'."\n" - .' ['."\n" - .' "sqli",'."\n" - .' "xss",'."\n" - .' "code_exec",'."\n" - .' "crlf",'."\n" - .' "lfilei",'."\n" - .' "rfilei",'."\n" - .' "webshell",'."\n" - .' "vvip",'."\n" - .' "other"'."\n" - .' ]'."\n" - .' },'."\n" - .' // 跳过自定义规则'."\n" - .' {'."\n" - .' "name": "wl_custom_acl",'."\n" - .' "status": "on",'."\n" - .' "conditions":'."\n" - .' ['."\n" - .' {'."\n" - .' "key": "Http-Method",'."\n" - .' "subKey": "",'."\n" - .' "opValue": "match-one",'."\n" - .' "values": "GET,POST,DELETE"'."\n" - .' }'."\n" - .' ],'."\n" - .' "tags":'."\n" - .' ['."\n" - .' "custom_acl"'."\n" - .' ]'."\n" - .' },'."\n" - .' // 跳过IP黑名单'."\n" - .' {'."\n" - .' "name": "wl_ip_blacklist",'."\n" - .' "status": "on",'."\n" - .' "conditions":'."\n" - .' ['."\n" - .' {'."\n" - .' "key": "Http-Method",'."\n" - .' "subKey": "",'."\n" - .' "opValue": "match-one",'."\n" - .' "values": "GET,POST,DELETE"'."\n" - .' }'."\n" - .' ],'."\n" - .' "tags":'."\n" - .' ['."\n" - .' "ip_blacklist"'."\n" - .' ]'."\n" - .' },'."\n" - .' // 跳过区域封禁'."\n" - .' {'."\n" - .' "name": "wl_region_block",'."\n" - .' "status": "on",'."\n" - .' "conditions":'."\n" - .' ['."\n" - .' {'."\n" - .' "key": "Http-Method",'."\n" - .' "subKey": "",'."\n" - .' "opValue": "match-one",'."\n" - .' "values": "GET,POST,DELETE"'."\n" - .' }'."\n" - .' ],'."\n" - .' "tags":'."\n" - .' ['."\n" - .' "region_block"'."\n" - .' ]'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - .'### 防护场景4:IP黑名单(ip_blacklist)'."\n" - .'| 名称 | 类型|是否必选| 示例值| 描述|'."\n" - .'|------|-----|--------|-------|------|'."\n" - .'| name| string|是| ipblacklist|防护规则名称,支持输入英文字符(大小写)、数字(0~9)及下划线(_),最大输入64个字符。|'."\n" - .'|status|string|否| on|防护规则开关,取值:取值:on(开启),off(关闭)。默认为on。|'."\n" - .'|remoteAddr| []String|是| ["192.168.0.1","10.10.10.10/24","::1","abcd::abcd","BCDE::BCDE"]|按IP地址过滤,具体请参见[DescribeDcdnWafFilterInfo](~~423285~~)。|'."\n" - .'|action|string|是| deny|规则动作,取值:deny(拦截),monitor(观察)。|'."\n" - ."\n\n" - .'ipblacklist配置示例:'."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "name": "ipblacklist",'."\n" - .' "status": "on",'."\n" - .' "remoteAddr": ["192.168.0.1","10.10.10.10/24","::1","abcd::abcd","BCDE::BCDE"],'."\n" - .' "action": "deny"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - ."\n" - .'### 防护场景5:区域封禁(region_block)'."\n" - .'| 名称 | 类型|是否必选| 示例值| 描述|'."\n" - .'|------|-----|--------|-------|-----|'."\n" - .'| status| string|否| on|防护规则开关,取值:on(开启),off(关闭)。默认为on。|'."\n" - .'|cnRegionList|string| 否|110000,TW,MO|中国境内封禁区域,逗号分隔。支持封禁的地区请参见[DescribeDcdnWafGeoInfo](~~433207~~)。|'."\n" - .'|otherRegionList|string|否| JP,GB|中国境外封禁区域,逗号分隔。支持封禁的地区请参见[DescribeDcdnWafGeoInfo](~~433207~~)。|'."\n" - .'|action|string|是| deny|规则动作,取值:deny(拦截),monitor(观察)。|'."\n" - ."\n" - .'> cnRegionList和otherRegionList至少填写其中一个。'."\n" - ."\n" - .'region_block配置示例:'."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "status": "on",'."\n" - .' "cnRegionList": "110000,TW,MO",'."\n" - .' "otherRegionList": "JP,GB",'."\n" - .' "action": "deny"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - .'### 防护场景6:Bot管理(bot)'."\n" - .'**规则模板**'."\n" - ."\n" - .'所有的规则参数都是以下四个,具体值参见具体规则分类。'."\n" - .'| 参数 | 类型 | 必要 | 描述 |'."\n" - .'| ------ | ---------- | ---- | ---------------------------- |'."\n" - .'| type | String | 是 | 规则类型,参见具体规则分类。 |'."\n" - .'| status | String | 是 |规则状态,取值:on(开启),off(关闭)。|'."\n" - .'| config | TargetType | 否 | 规则配置,参见具体规则分类。 |'."\n" - .'| action | String | 否 |规则动作,参见具体规则分类。 |'."\n" - ."\n" - .'**规则分类一:防护目标类型**'."\n" - ."\n" - .'| 参数 | 类型 | 必要 | 示例值|描述 |'."\n" - .'| ------ | ---------- | ---- | ------|---------------------- |'."\n" - .'| type | String | 是 | target_type |规则类型,取值:target_type。 |'."\n" - .'| status | String | 是 |on| 规则开关,取值:on(开启)。|'."\n" - .'| config | TargetType | 否 | {"target":"app"}|规则配置。格式如下:<br>target:防护目标类型,必填。取值范围包含web(网页/浏览器)和app(APP)。 |'."\n" - .'| action | String | 否 |置空| 规则动作,此处不涉及,置为空值。 |'."\n" - ."\n" - .'防护目标类型配置示例:'."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type":"target_type",'."\n" - .' "status":"on",'."\n" - .' "config":{"target":"app"},'."\n" - .' "action":""'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - .'**规则分类二:Web SDK集成**'."\n" - ."\n" - .'| 参数 | 类型 | 必要 | 示例值 | 描述 |'."\n" - .'| ------ | ------ | ---- | ------|---------------------- |'."\n" - .'| type | String | 是 | web_sdk|规则类型,取值:web_sdk。 |'."\n" - .'| status | String | 是 | on|规则开关,取值:on(开启)。 |'."\n" - .'| config | WebSdk | 否 | {"mode":"automatic","crossDomain":"example.com"}|规则配置。格式如下:<br>mode :Web SDK集成方式,必填。取值范围包含automatic(自动集成)和manual(手动集成)。<br>crossDomain:跨域的域名调用,选填,仅当mode取值为automatic时生效。 |'."\n" - .'| action | String | 否 | 置空|规则动作,此处不涉及,置为空值。 |'."\n" - ."\n" - .'Web SDK集成配置示例:'."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type":"web_sdk",'."\n" - .' "status":"on",'."\n" - .' "config":{"mode":"automatic","crossDomain":"example.com"},'."\n" - .' "action":""'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - .'**规则分类三:防护目标特征**'."\n" - ."\n" - .'| 参数 | 类型 | 必要 | 示例值 | 描述 |'."\n" - .'| ------ | ---------- | ---- | -------|--------------------- |'."\n" - .'| type | String | 是 | traffic_feature|规则类型,取值:traffic_feature。 |'."\n" - .'| status | String | 是 | on|规则开关,取值:on(开启)。 |'."\n" - .'| config | TrafficFeature | 是 | {"conditions":[{"key":"Header","subKey":"User-Agent","opValue":"contain","values":"Chrome"},{"key":"IP","subKey":"","opValue":"ip-contain","values":"192.168.0.1/24"}]}|规则配置。具体请参见**condition**。 |'."\n" - .'| action | String | 否 |置空| 规则动作,此处不涉及,置为空值。 |'."\n" - ."\n" - .'**condition**(匹配条件)'."\n" - .'| 参数 | 类型 | 必要 | 示例值|描述 |'."\n" - .'| ------- | ------ | ---- | ------|----------------------- |'."\n" - .'| key | String | 是 | Header|匹配字段,具体值请参见[DescribeDcdnWafFilterInfo](~~423285~~)。 |'."\n" - .'| subKey | String | 否 | User-Agent|匹配子字段,具体值请参见[DescribeDcdnWafFilterInfo](~~423285~~)。 |'."\n" - .'| opValue | String | 是 | contain|操作符,具体值请参见[DescribeDcdnWafFilterInfo](~~423285~~)。 |'."\n" - .'| values | String | 否 | Chrome|匹配内容,多值使用英文逗号分隔,具体值请参见[DescribeDcdnWafFilterInfo](~~423285~~)。 |'."\n" - ."\n" - .'防护目标特征配置示例:'."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type":"traffic_feature",'."\n" - .' "status":"on",'."\n" - .' "config":{"conditions":[{"key":"Header","subKey":"User-Agent","opValue":"contain","values":"Chrome"},{"key":"IP","subKey":"","opValue":"ip-contain","values":"192.168.0.1/24"}]},'."\n" - .' "action":""'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - .'**规则分类四:合法Bot管理**'."\n" - ."\n" - .'| 参数 | 类型 | 必要 | 示例值|描述 |'."\n" - .'| ------ | -------------|------ | ---- | ------------------------------ |'."\n" - .'| type | String | 是 | intelligence_crawler|规则类型,取值:intelligence_crawler。|'."\n" - .'| status | String | 是 | on|规则开关,取值:on(开启)。 |'."\n" - .'| config | IntelligenceCrawler | 否 | {"name":"intelligence_crawler_baidu"}|规则配置。取值请参见**name(搜索引擎蜘蛛白名单)**。 |'."\n" - .'| action | String | 是 | bypass|规则动作,取值:bypass(放行)。 |'."\n" - ."\n" - .'**name(搜索引擎蜘蛛白名单)**'."\n" - .'| 参数值 | 含义 |'."\n" - .'| ----------------- | ------------------------ |'."\n" - .'| intelligence_crawler_all | 合法搜索引擎白名单(Google、Bing、百度、搜狗、360、Yandex) |'."\n" - .'| intelligence_crawler_baidu | 百度蜘蛛白名单 |'."\n" - .'| intelligence_crawler_sogou | 搜狗蜘蛛白名单 |'."\n" - .'| intelligence_crawler_360 |360蜘蛛白名单 |'."\n" - .'| intelligence_crawler_google |Google蜘蛛白名单 |'."\n" - .'| intelligence_crawler_bing |Bing蜘蛛白名单 |'."\n" - .'| intelligence_crawler_yandex |andex蜘蛛白名单 |'."\n" - ."\n" - .'合法Bot管理配置示例:'."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type":"intelligence_crawler",'."\n" - .' "status":"on",'."\n" - .' "config":{"name":"intelligence_crawler_baidu"},'."\n" - .' "action":"bypass"'."\n" - .' },'."\n" - .' {'."\n" - .' "type":"intelligence_crawler",'."\n" - .' "status":"on",'."\n" - .' "config":{"name":"intelligence_crawler_google"},'."\n" - .' "action":"bypass"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - .'**规则分类五:简单脚本过滤(JavaScript挑战)**'."\n" - ."\n" - .'| 参数 | 类型 | 必要 | 示例值|描述 |'."\n" - .'| ------ | ------ | ---- | ------|------------ |'."\n" - .'| type | String | 是 | js|规则类型,取值:js。 |'."\n" - .'| status | String | 是 | on|规则开关,取值:on(开启),off(关闭)。 |'."\n" - .'| config | Js | 否 |置空| 规则配置,此处不涉及,置为空值。 |'."\n" - .'| action | String | 是 | js|规则动作,取值:js(JS校验)。 |'."\n" - ."\n" - .'简单脚本过滤(JavaScript挑战)配置示例:'."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type":"js",'."\n" - .' "status":"on",'."\n" - .' "config":{},'."\n" - .' "action":"js"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - .'**规则分类六:高级Bot防御(动态令牌挑战)**'."\n" - ."\n" - .'| 参数 | 类型 | 必要 | 示例值|描述 |'."\n" - .'| ------ | ------ | ---- | -------|--------------------- |'."\n" - .'| type | String | 是 | sigchl|规则类型,取值:sigchl。 |'."\n" - .'| status | String | 是 | on|规则开关,取值:on(开启),off(关闭)。 |'."\n" - .'| config | Sigchl | 否 | {"sigchl":["sig","replay","driver"]}|规则配置,格式如下:<br>sigchl :请求数据签名验证,必填。取值范围包含sig(签名验证异常),replay(签名时间戳异常),driver(WebDriver攻击)。 |'."\n" - .'| action | String | 是 | sigchl|规则动作,取值:sigchl(拦截)。 |'."\n" - ."\n" - .'高级Bot防御(动态令牌挑战)配置示例:'."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type":"sigchl",'."\n" - .' "status":"on",'."\n" - .' "config":{"sigchl":["sig","replay","driver"]},'."\n" - .' "action":"sigchl"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - .'**规则分类七:AI智能防护**'."\n" - ."\n" - .'| 参数 | 类型 | 必要 | 示例值|描述 |'."\n" - .'| ------ | --------- | ---- | ------|----------------------------------- |'."\n" - .'| type | String | 是 | algorithm|规则类型,取值:algorithm。 |'."\n" - .'| status | String | 是 | on|规则开关,取值:on(开启),off(关闭)。 |'."\n" - .'| config | Algorithm | 否 | 置空|规则配置,此处不涉及,置为空值。 |'."\n" - .'| action | String | 是 |captcha| 规则动作,取值:monitor(观察),captcha(滑块校验)。 |'."\n" - ."\n" - .'AI智能防护配置示例:'."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type":"algorithm",'."\n" - .' "status":"on",'."\n" - .' "config":{},'."\n" - .' "action":"captcha"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - .' **规则分类八:IP限速**'."\n" - ."\n" - .'| 参数 | 类型 | 必要 | 示例值|描述 |'."\n" - .'| ------ | ---------- | ---- | ---------------|-------------- |'."\n" - .'| type | String | 是 | custom_cc_ip|规则类型,取值:custom_cc_ip。 |'."\n" - .'| status | String | 是 | on|规则开关,取值:on(开启),off(关闭)。 |'."\n" - .'| config | CustomCcIp | 是 | {"interval":20,"target":"IP","threshold":50,"ttl":2800}|规则配置,具体请参见**IP限速config参数说明** 。 |'."\n" - .'| action | String | 是 | monitor|规则动作,deny(拦截),monitor(观察),captcha(滑块,仅涉及Web) 。|'."\n" - ."\n" - .'**IP限速config参数说明**'."\n" - ."\n" - .'| 参数 | 类型 | 必要 |示例值| 描述 |'."\n" - .'| --------- | ------- | ---- | -----|------------------------ |'."\n" - .'| target | String | 是 | IP|频次控制的统计字段,取值:IP。 |'."\n" - .'| subKey | String | 否 | 置空|统一字段的子字段,此处不涉及,置为空值。 |'."\n" - .'| Interval | Integer | 是 | 20|统计时长,取值:5~1800,单位:秒。 |'."\n" - .'| threshold | Integer | 是 | 50|统计阈值,取值:2~50000,单位:次。 |'."\n" - .'| ttl | Integer | 是 | 2800|黑名单超时时间,取值:60~86400,单位:秒。 |'."\n" - ."\n" - .'IP限速配置示例:'."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type":"custom_cc_ip",'."\n" - .' "status":"on",'."\n" - .' "config":{"interval":20,"target":"IP","threshold":50,"ttl":2800},'."\n" - .' "action":"monitor"'."\n" - .' },'."\n" - .' {'."\n" - .' "type":"custom_cc_ip",'."\n" - .' "status":"on",'."\n" - .' "config":{"interval":10,"target":"IP","threshold":30,"ttl":1800},'."\n" - .' "action":"monitor"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - .'**规则分类九:设备限速**'."\n" - ."\n" - .'| 参数 | 类型 | 必要 | 示例值|描述 |'."\n" - .'| ------ | ----------- | ---- | ----|------------------------------ |'."\n" - .'| type | String | 是 | custom_cc_dev|规则类型,取值:custom_cc_dev。 |'."\n" - .'| status | String | 是 | on|规则开关,取值:on(开启),off(关闭)。 |'."\n" - .'| config | CustomCcDev | 是 |{"interval":20,"target":"Header","subKey":"aliwaf_wxbb_umid","threshold":50,"ttl":2800}| 配置规则,具体请参见**设备限速config参数说明** 。 |'."\n" - .'| action | String | 是 |monitor| 规则动作,deny(拦截),monitor(观察)。 |'."\n" - ."\n" - .'**设备限速config参数说明**'."\n" - ."\n" - .'| 参数 | 类型 | 必要 |示例值| 描述 |'."\n" - .'| --------- | ------- | ---- | ----|------------------------- |'."\n" - .'| target | String | 是 | Header|频次控制的统计字段,取值:Header。 |'."\n" - .'| subKey | String | 否 | aliwaf_wxbb_umid|统一字段的子字段,取值:aliwaf_wxbb_umid。 |'."\n" - .'| Interval | Integer | 是 | 20|统计时长,取值:5~1800,单位:秒。 |'."\n" - .'| threshold | Integer | 是 | 50|统计阈值,取值:2~50000,单位:次。 |'."\n" - .'| ttl | Integer | 是 | 2800|黑名单超时时间,取值:60~86400,单位:秒。 |'."\n" - ."\n" - .'设备限速配置示例:'."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type":"custom_cc_dev",'."\n" - .' "status":"on",'."\n" - .' "config":{"interval":20,"target":"Header","subKey":"aliwaf_wxbb_umid","threshold":50,"ttl":2800},'."\n" - .' "action":"monitor"'."\n" - .' },'."\n" - .' {'."\n" - .' "type":"custom_cc_dev",'."\n" - .' "status":"on",'."\n" - .' "config":{"interval":20,"target":"Header","subKey":"aliwaf_wxbb_umid","threshold":50,"ttl":2800},'."\n" - .' "action":"deny"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - .'**规则分类十:自定义会话限速**'."\n" - ."\n" - .'| 参数 | 类型 | 必要 | 示例值|描述 |'."\n" - .'| ------ | ---------- | ---- | ----|----------------- |'."\n" - .'| type | String | 是 | custom_cc|规则类型,取值:custom_cc。 |'."\n" - .'| status | String | 是 | on|规则开关,取值:on(开启),off(关闭)。 |'."\n" - .'| config | CustomCcIp | 是 | {"interval":10,"target":"Query String Parameter","subKey":"arg","threshold":30,"ttl":1800}|规则配置,具体请参见**自定义会话限速config参数说明** 。 |'."\n" - .'| action | String | 是 | monitor|规则动作,deny(拦截),monitor(观察),captcha(滑块,仅涉及Web) 。|'."\n" - ."\n" - .'**自定义会话限速config参数说明**'."\n" - .'| 参数 | 类型 | 必要 |示例值| 描述 |'."\n" - .'| --------- | ------- | ---- | ---|-------------------------- |'."\n" - .'| target | String | 是 | Query String Parameter|频次控制的统计字段,取值:Header(表示统计包含指定Header的请求的频率),Query String Parameter(表示统计包含指定参数的请求的频率),Cookie Name(表示统计包含指定Cookie的请求的频率)和Session(表示统计来自同一个会话发起请求的频率)。 |'."\n" - .'| subKey | String | 否 | arg|统一字段的子字段,用户自定义。 |'."\n" - .'| Interval | Integer | 是 | 10|统计时长,取值:5~1800,单位:秒。 |'."\n" - .'| threshold | Integer | 是 | 30|统计阈值,取值:2~50000,单位:次。 |'."\n" - .'| ttl | Integer | 是 | 2800|黑名单超时时间,取值:60~86400,单位:秒。 |'."\n" - ."\n" - .'自定义会话限速配置示例:'."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type":"custom_cc",'."\n" - .' "status":"on",'."\n" - .' "config":{"interval":10,"target":"Query String Parameter","subKey":"arg","threshold":30,"ttl":1800},'."\n" - .' "action":"deny"'."\n" - .' },'."\n" - .' {'."\n" - .' "type":"custom_cc",'."\n" - .' "status":"on",'."\n" - .' "config":{"interval":10,"target":"Query String Parameter","subKey":"arg","threshold":30,"ttl":1800},'."\n" - .' "action":"captcha"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - .'**规则分类十一:爬虫威胁情报库**'."\n" - ."\n" - .'| 参数 | 类型 | 必要 | 示例值|描述 |'."\n" - .'| ------ | ------------ | ---- | -----|------------------------------------ |'."\n" - .'| type | String | 是 | intelligence|规则类型,取值:intelligence。 |'."\n" - .'| status | String | 是 | on|规则开关,取值:on(开启),off(关闭)。 |'."\n" - .'| config | Intelligence | 否 |置空| 规则配置,此处不涉及,置为空值。 |'."\n" - .'| action | String | 是 |captcha| 规则动作,取值:monitor(观察),captcha(滑块校验)。 |'."\n" - ."\n" - .'爬虫威胁情报库配置示例:'."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type":"intelligence",'."\n" - .' "status":"on",'."\n" - .' "config":{},'."\n" - .' "action":"captcha"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - ."\n" - .'**规则分类十二:IDC黑名单封禁**'."\n" - ."\n" - .'| 参数 | 类型 | 必要 | 示例值|描述 |'."\n" - .'| ------ | ----------- | ---- | -------|------------------------------ |'."\n" - .'| type | String | 是 |intelligence_idc |规则类型,取值:intelligence_idc。 |'."\n" - .'| status | String | 是 |on| 规则开关,取值:on(开启),off(关闭)。 |'."\n" - .'| config | IntelligenceIdc | 是 |{"name":"intelligence_idc_alibaba"}| 规则配置,取值请参见**name参数说明**。 |'."\n" - .'| action | String | 是 |captcha| 规则动作,取值:deny(拦截),monitor(观察),captcha(滑块校验)。 |'."\n" - ."\n" - .'**name参数说明**'."\n" - ."\n" - .'| 参数值 | 含义 |'."\n" - .'| ----------------- | ------------------------ |'."\n" - .'| intelligence_idc_alibaba | IDC IP库-阿里云 |'."\n" - .'| intelligence_idc_tencent | IDC IP库-腾讯云 |'."\n" - .'| intelligence_idc_mtyun | IDC IP库-美团云 |'."\n" - .'| intelligence_idc_vnet |IDC IP库-世纪互联 |'."\n" - .'| intelligence_idc_other |IDC IP库-其他 |'."\n" - ."\n" - .'IDC黑名单封禁配置示例:'."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type":"intelligence_idc",'."\n" - .' "status":"on",'."\n" - .' "config":{"name":"intelligence_idc_alibaba"},'."\n" - .' "action":"captcha"'."\n" - .' },'."\n" - .' {'."\n" - .' "type":"intelligence_idc",'."\n" - .' "status":"on",'."\n" - .' "config":{"name":"intelligence_idc_tencent"},'."\n" - .' "action":"captcha"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - .'**规则分类十三:伪造蜘蛛拦截**'."\n" - ."\n" - .'| 参数 | 类型 | 必要 |示例值| 描述 |'."\n" - .'| ------ | ---------------|-------- | ---- | --------- |'."\n" - .'| type | String | 是 |intelligence_fake_crawler| 规则类型,取值:intelligence_fake_crawler。 |'."\n" - .'| status | String | 是 |on| 规则开关,取值:on(开启),off(关闭)。 |'."\n" - .'| config | IntelligenceFakeCrawler | 否 |置空| 规则配置,此处不涉及,置为空值。 |'."\n" - .'| action | String | 是 |deny| 规则动作,取值:deny(拦截)。 |'."\n" - ."\n" - .'伪造蜘蛛拦截配置示例:'."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type": "intelligence_fake_crawler",'."\n" - .' "status": "on",'."\n" - .' "config":{},'."\n" - .' "action": "deny"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - .'**规则分类十四:Bot特征识别**'."\n" - ."\n" - .'| 参数 | 类型 | 必要 |示例值| 描述 |'."\n" - .'| ------ | ------ | ---- | -----|----------------------------- |'."\n" - .'| type | String | 是 |app_sdk| 规则类型,取值:app_sdk。 |'."\n" - .'| status | String | 是 |on| 规则开关,取值:on(开启)。 |'."\n" - .'| config | AppSdk | 是 |{"featureAbnormal":["simulator","proxy","root","debugged","hook","virtual","antiReplay","signInvalid"],"customSignStatus":"on","customSign":{"key":"header","value":"ua"}}| 规则配置,具体请参见**Bot特征识别config参数说明** 。 |'."\n" - .'| action | String | 是 |monitor| 规则动作,取值:deny(拦截),monitor(观察)。 |'."\n" - ."\n" - .'**Bot特征识别config参数说明**'."\n" - .'| 参数 | 类型 | 必要|示例值 | 描述 |'."\n" - .'| ------------ | ------- | ---- | -------|---------------------------------- |'."\n" - .'| featureAbnormal | []String | 是 | simulator|signInvalid:APP签名异常。<br>antiReplay:签名过期。<br>simulator:使用模拟器<br>proxy:使用代理<br>root:Root设备<br>debugged:调试模式。<br>hook:APP被hook。<br>virtual :APP多开。 |'."\n" - .'| customSignStatus | String | 否 |on| 自定义加签字段开关,取值:on(开启),off(关闭)。 |'."\n" - .'| customSign | CustomSign | 否 |{"key":"header","value":"ua"}| 自定义加签字段,格式如下: <br> key :字段名,必填。取值为header、arg、cookie。 <br> value:字段值,必填。 |'."\n" - ."\n" - .'Bot特征识别配置示例:'."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type": "app_sdk",'."\n" - .' "status": "on",'."\n" - .' "config": {"featureAbnormal":["simulator","proxy","root","debugged","hook","virtual","antiReplay","signInvalid"],"customSignStatus":"on","customSign":{"key":"header","value":"ua"}},'."\n" - .' "action": "monitor"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - .'**规则分类十五:高级防护(二次打包检测)**'."\n" - ."\n" - .'| 参数 | 类型 | 必要 |示例值| 描述 |'."\n" - .'| ------ | ---------- | ---- | ----|------------------------------ |'."\n" - .'| type | String | 是 |app_package| 规则类型,取值:app_package。 |'."\n" - .'| status | String | 是 |on| 规则开关,取值:on(开启)。 |'."\n" - .'| config | AppPackage | 否 |{"packageSigns":[{"name":"aaaaa","sign":"bbbb"},{"name":"cccc","sign":"dddd"}]}| 规则配置,具体请参见**packageSigns参数说明**。|'."\n" - .'| action | String | 是 | monitor| 规则动作,取值:deny(拦截),monitor(观察)。|'."\n" - ."\n" - .'**packageSigns参数说明**'."\n" - .'| 参数 | 类型 | 必要 |示例值| 描述 |'."\n" - .'| ---- | ------ | ---- | ------|------ |'."\n" - .'| name | String | 是 |aaaaa| 指定合法包名。 |'."\n" - .'| sign | String | 否 |bbbb| 包签名。 |'."\n" - ."\n" - .'高级防护(二次打包检测)配置示例:'."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type": "app_package",'."\n" - .' "status": "on",'."\n" - .' "config": {"packageSigns":[{"name":"aaaaa","sign":"bbbb"},{"name":"cccc","sign":"dddd"}]},'."\n" - .' "action": "deny"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - .'**Bot管理网页/浏览器防护组合参数配置示例**'."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type": "target_type",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {'."\n" - .' "target": "web"'."\n" - .' },'."\n" - .' "action": ""'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "web_sdk",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {'."\n" - .' "mode": "automatic",'."\n" - .' "crossDomain": "example.com"'."\n" - .' },'."\n" - .' "action": ""'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "traffic_feature",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {'."\n" - .' "conditions":'."\n" - .' ['."\n" - .' {'."\n" - .' "key": "Header",'."\n" - .' "subKey": "User-Agent",'."\n" - .' "opValue": "contain",'."\n" - .' "values": "Chrome"'."\n" - .' },'."\n" - .' {'."\n" - .' "key": "IP",'."\n" - .' "subKey": "",'."\n" - .' "opValue": "ip-contain",'."\n" - .' "values": "192.168.0.1/24"'."\n" - .' }'."\n" - .' ]'."\n" - .' },'."\n" - .' "action": ""'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "intelligence_crawler",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {'."\n" - .' "name": "intelligence_crawler_baidu"'."\n" - .' },'."\n" - .' "action": "bypass"'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "intelligence_crawler",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {'."\n" - .' "name": "intelligence_crawler_google"'."\n" - .' },'."\n" - .' "action": "bypass"'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "js",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {},'."\n" - .' "action": "js"'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "sigchl",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {'."\n" - .' "sigchl":'."\n" - .' ['."\n" - .' "sig",'."\n" - .' "replay",'."\n" - .' "driver"'."\n" - .' ]'."\n" - .' },'."\n" - .' "action": "sigchl"'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "algorithm",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {},'."\n" - .' "action": "captcha"'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "custom_cc_ip",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {'."\n" - .' "interval": 20,'."\n" - .' "target": "IP",'."\n" - .' "threshold": 50,'."\n" - .' "ttl": 2800'."\n" - .' },'."\n" - .' "action": "monitor"'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "custom_cc_ip",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {'."\n" - .' "interval": 10,'."\n" - .' "target": "IP",'."\n" - .' "threshold": 30,'."\n" - .' "ttl": 1800'."\n" - .' },'."\n" - .' "action": "monitor"'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "custom_cc",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {'."\n" - .' "interval": 10,'."\n" - .' "target": "Query String Parameter",'."\n" - .' "subKey": "arg",'."\n" - .' "threshold": 30,'."\n" - .' "ttl": 1800'."\n" - .' },'."\n" - .' "action": "deny"'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "custom_cc",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {'."\n" - .' "interval": 10,'."\n" - .' "target": "Query String Parameter",'."\n" - .' "subKey": "arg",'."\n" - .' "threshold": 30,'."\n" - .' "ttl": 1800'."\n" - .' },'."\n" - .' "action": "captcha"'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "intelligence",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {},'."\n" - .' "action": "captcha"'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "intelligence_idc",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {'."\n" - .' "name": "intelligence_idc_alibaba"'."\n" - .' },'."\n" - .' "action": "captcha"'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "intelligence_idc",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {'."\n" - .' "name": "intelligence_idc_tencent"'."\n" - .' },'."\n" - .' "action": "captcha"'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "intelligence_fake_crawler",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {},'."\n" - .' "action": "deny"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - .'**Bot管理APP防护组合参数配置示例**'."\n" - .'```json'."\n" - .'['."\n" - .' {'."\n" - .' "type": "target_type",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {'."\n" - .' "target": "app"'."\n" - .' },'."\n" - .' "action": ""'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "traffic_feature",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {'."\n" - .' "conditions":'."\n" - .' ['."\n" - .' {'."\n" - .' "key": "Header",'."\n" - .' "subKey": "User-Agent",'."\n" - .' "opValue": "contain",'."\n" - .' "values": "Chrome"'."\n" - .' },'."\n" - .' {'."\n" - .' "key": "IP",'."\n" - .' "subKey": "",'."\n" - .' "opValue": "ip-contain",'."\n" - .' "values": "192.168.0.1/24"'."\n" - .' }'."\n" - .' ]'."\n" - .' },'."\n" - .' "action": ""'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "custom_cc_ip",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {'."\n" - .' "interval": 20,'."\n" - .' "target": "IP",'."\n" - .' "threshold": 50,'."\n" - .' "ttl": 2800'."\n" - .' },'."\n" - .' "action": "monitor"'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "custom_cc_ip",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {'."\n" - .' "interval": 10,'."\n" - .' "target": "IP",'."\n" - .' "threshold": 30,'."\n" - .' "ttl": 1800'."\n" - .' },'."\n" - .' "action": "monitor"'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "custom_cc_dev",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {'."\n" - .' "interval": 20,'."\n" - .' "target": "Header",'."\n" - .' "subKey": "aliwaf_wxbb_umid",'."\n" - .' "threshold": 50,'."\n" - .' "ttl": 2800'."\n" - .' },'."\n" - .' "action": "monitor"'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "custom_cc_dev",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {'."\n" - .' "interval": 20,'."\n" - .' "target": "Header",'."\n" - .' "subKey": "aliwaf_wxbb_umid",'."\n" - .' "threshold": 50,'."\n" - .' "ttl": 2800'."\n" - .' },'."\n" - .' "action": "deny"'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "custom_cc",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {'."\n" - .' "interval": 10,'."\n" - .' "target": "Query String Parameter",'."\n" - .' "subKey": "arg",'."\n" - .' "threshold": 30,'."\n" - .' "ttl": 1800'."\n" - .' },'."\n" - .' "action": "monitor"'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "custom_cc",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {'."\n" - .' "interval": 10,'."\n" - .' "target": "Query String Parameter",'."\n" - .' "subKey": "arg",'."\n" - .' "threshold": 30,'."\n" - .' "ttl": 1800'."\n" - .' },'."\n" - .' "action": "deny"'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "app_sdk",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {'."\n" - .' "featureAbnormal":'."\n" - .' ['."\n" - .' "simulator",'."\n" - .' "proxy",'."\n" - .' "root",'."\n" - .' "debugged",'."\n" - .' "hook",'."\n" - .' "virtual",'."\n" - .' "antiReplay",'."\n" - .' "signInvalid"'."\n" - .' ],'."\n" - .' "customSignStatus": "on",'."\n" - .' "customSign":'."\n" - .' {'."\n" - .' "key": "header",'."\n" - .' "value": "ua"'."\n" - .' }'."\n" - .' },'."\n" - .' "action": "monitor"'."\n" - .' },'."\n" - .' {'."\n" - .' "type": "app_package",'."\n" - .' "status": "on",'."\n" - .' "config":'."\n" - .' {'."\n" - .' "packageSigns":'."\n" - .' ['."\n" - .' {'."\n" - .' "name": "aaaaa",'."\n" - .' "sign": "bbbb"'."\n" - .' },'."\n" - .' {'."\n" - .' "name": "cccc",'."\n" - .' "sign": "dddd"'."\n" - .' }'."\n" - .' ]'."\n" - .' },'."\n" - .' "action": "deny"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - ."\n" - .'### 防护场景7:扫描防护(anti_scan)'."\n" - ."\n" - .'**规则模板**'."\n" - ."\n" - .'所有的规则参数都是以下四个,具体值请参见对应规则分类。'."\n" - ."\n" - .'| 参数 | 类型 | 是否必选 | 描述 |'."\n" - .'| ------ | ------ | ---- | -------------------- |'."\n" - .'| type | String | 是 | 规则类型:参见对应规则分类。 |'."\n" - .'| status | String | 否 | 规则状态,取值:on(开启),off(关闭)。 |'."\n" - .'| config | Type | 否 | 规则配置:参见对应规则分类。 |'."\n" - .'| action | String | 否 | 规则动作:参见对应规则分类。 |'."\n" - ."\n" - .'**规则分类一:高频扫描封禁**'."\n" - ."\n" - .'| 参数 | 类型 | 是否必选 | 示例值| 描述 |'."\n" - .'| ------ | ------------- | ---- | ----------|------------------------ |'."\n" - .'| type | String | 是 | high_frequency| 规则类型,取值:high_frequency 。 |'."\n" - .'| status | String | 是 | on| 规则开关,取值:on(开启),off(关闭)。默认为on。 |'."\n" - .'| config | HighFrequency | 否 | {"target":"IP","interval":20,"wafBlockThreshold":20,"ttl":1800,"distinctWafRuleThreshold":2}| 规则配置,具体请参见下方结构体字符串。 |'."\n" - .'| action | String | 否 | deny| 规则动作,取值:deny(拦截),moniter(观察)。 |'."\n" - ."\n" - .'* HighFrequency说明'."\n" - ."\n" - .'| 参数 | 类型 | 是否必选 | 示例值| 描述 |'."\n" - .'| ----------------- | ------| -------- | -------|----------------- |'."\n" - .'| target | String | 是 | IP| 频次控制的统计字段,取值:IP(IP地址),Session(会话),Header(自定义Header),Query String Parameter(自定义参数),Cookie Name(自定义Cookie)。 |'."\n" - .'| subKey | String | 否 | yoursubKey| 统计字段的子字段,选择自定义时有效。例如:如果target是自定义Header时,这个subKey就是Header的key。 |'."\n" - .'| interval | Integer | 是 | 20| 检测时间范围,取值:5~1800,单位:秒。 |'."\n" - .'| wafBlockThreshold | Integer | 是 | 20| 基础防护规则触发次数,取值:3~50000。 |'."\n" - .'| ttl | Integer | 是 | 1800| 封禁时间,取值:60~86400,单位:秒。 |'."\n" - .'| distinctWafRuleThreshold | Integer | 是 | 2| 触发规则数大于,取值:1~50。 |'."\n" - ."\n" - .'```json'."\n" - .'['."\n" - .' {'."\n" - .' "type":"high_frequency",'."\n" - .' "status":"on",'."\n" - .' "config":{"target":"IP","interval":20,"wafBlockThreshold":20,"ttl":1800,"distinctWafRuleThreshold":2},'."\n" - .' "action":"deny"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - ."\n" - .'**规则分类二:目录遍历封禁**'."\n" - ."\n" - .'| 参数 | 类型 | 是否必选 | 示例值| 描述 |'."\n" - .'| ------ | ------------- | -------- | ------|----------------------- |'."\n" - .'| type | String | 是 | directory_traversal| 规则类型,取值:directory_traversal。 |'."\n" - .'| status | String | 是 | on| 规则开关,取值:on(开启),off(关闭)。默认为on。 |'."\n" - .'| config | DirectoryTraversal | 否 | {"target":"IP","interval":10,"threshold":50,"status":{"code":"404","ratio":70,"count":50},"ttl":1800}| 规则配置,具体请参见下方结构体字符串。 |'."\n" - .'| action | String | 否 | deny| 规则动作,取值:deny(拦截),moniter(观察)。 |'."\n" - ."\n" - .'* DirectoryTraversal说明'."\n" - ."\n" - .'| 参数 | 类型 | 是否必选 | 示例值| 描述 |'."\n" - .'| --------| ---------- | ---- | -------|------------------------- |'."\n" - .'| target | String | 是 | IP| 频次控制的统计字段,取值:IP(IP地址),Session(会话),Header(自定义Header),Query String Parameter(自定义参数),Cookie Name(自定义Cookie)。 |'."\n" - .'| subKey | String | 否 | yoursubKey| 统计字段的子字段,选择自定义时有效。例如:如果target是自定义Header时,这个subKey就是Header的key。 |'."\n" - .'| interval | Integer | 是 | 10| 检测时间范围,取值:5~1800,单位:秒。 |'."\n" - .'| threshold | Integer | 是 | 50| 针对当前防护对象请求次数超过,取值:2~50000。 |'."\n" - .'| status | RateLimitStatus | 是 | {"code":"404","ratio":70,"count":50}| 响应码。 |'."\n" - .'| ttl | Integer | 是 | 1800| 封禁时间,取值:60~86400,单位:秒。 |'."\n" - ."\n" - .'* RateLimitStatus说明'."\n" - ."\n" - .'| 参数 | 类型 | 是否必选 | 示例值| 描述 |'."\n" - .'| ----- | ------- | ---- | -----------|-------------------- |'."\n" - .'| code | String | 是 | 示例值| HTTP状态码,取值:404。 |'."\n" - .'| ratio | Integer | 是 | 示例值| 404响应码占比,取值:1~100。 |'."\n" - .'| count | Integer | 是 | 示例值| 不存在的目录数量,取值:2~50000。 |'."\n" - ."\n" - .'```json'."\n" - .'['."\n" - .' {'."\n" - .' "type":"directory_traversal",'."\n" - .' "status":"on",'."\n" - .' "config":{"target":"IP","interval":10,"threshold":50,"status":{"code":"404","ratio":70,"count":50},"ttl":1800},'."\n" - .' "action":"deny"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - ."\n" - .'**规则分类三:扫描工具封禁**'."\n" - ."\n" - .'| 参数 | 类型 | 是否必选 | 示例值| 描述 |'."\n" - .'| ------ | --------- | ---- | ----------|------------------------ |'."\n" - .'| type | String | 是 | scan_tools| 规则类型,取值:scan_tools。 |'."\n" - .'| status | String | 是 | on| 规则开关,取值:on(开启),off(关闭)。默认为on。 |'."\n" - .'| config | ScanTools | 否 | 空| 规则配置,这里不填。 |'."\n" - .'| action | String | 否 | deny| 规则动作,取值:deny(拦截),moniter(观察)。 |'."\n" - ."\n" - .'```json'."\n" - .'['."\n" - .' {'."\n" - .' "type":"scan_tools",'."\n" - .' "status":"on",'."\n" - .' "config":{},'."\n" - .' "action":"deny"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - ."\n" - .'**最终组合参数**'."\n" - ."\n" - .'```json'."\n" - .'['."\n" - .' {'."\n" - .' "type":"high_frequency",'."\n" - .' "status":"on",'."\n" - .' "config":{"target":"IP","interval":20,"wafBlockThreshold":20,"ttl":1800,"distinctWafRuleThreshold":2},'."\n" - .' "action":"deny"'."\n" - .' },'."\n" - .' {'."\n" - .' "type":"directory_traversal",'."\n" - .' "status":"on",'."\n" - .' "config":{"target":"IP","interval":10,"threshold":50,"status":{"code":"404","ratio":70,"count":50},"ttl":1800},'."\n" - .' "action":"deny"'."\n" - .' },'."\n" - .' {'."\n" - .' "type":"scan_tools",'."\n" - .' "status":"on",'."\n" - .' "config":{},'."\n" - .' "action":"deny"'."\n" - .' }'."\n" - .']'."\n" - .'```', - ], - 'ModifyDcdnWafRule' => [ - 'summary' => '调用ModifyDcdnWafRule修改防护规则名称、状态或规则配置信息。', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '设置Namespace的Key-Value对', + 'summary' => '调用PutDcdnKv设置指定Namespace的Key-Value(KV)对。', + 'description' => '> 单用户调用频率:50次/秒。', + 'changeSet' => [ + ['createdAt' => '2023-07-20T07:43:36.000Z', 'description' => '请求参数发生变更、响应参数发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PutDcdnKv'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:PutDcdnKv', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Length\\": 5,\\n \\"Value\\": \\"value1\\",\\n \\"RequestId\\": \\"96ED3127-EC7A-57C5-AFA6-A689B24B2530\\"\\n}","type":"json"}]', + ], + 'PutDcdnKvNamespace' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '121111', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'RuleId', - 'in' => 'formData', - 'schema' => [ - 'description' => '防护规则ID,仅支持单个输入。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '200001', - ], - ], - [ - 'name' => 'RuleStatus', - 'in' => 'formData', - 'schema' => [ - 'description' => '修改后的防护规则状态,取值:'."\n" - ."\n" - .'- **on**:开启。'."\n" - ."\n" - .'- **off**:关闭。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'off', - ], - ], - [ - 'name' => 'RuleName', + 'name' => 'Description', 'in' => 'formData', - 'schema' => [ - 'description' => '修改后的防护规则名称。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'Namespace描述信息。', 'type' => 'string', 'required' => false, 'example' => 'the first namespace', 'maxLength' => 1024], ], [ - 'name' => 'RuleConfig', + 'name' => 'Namespace', 'in' => 'formData', - 'schema' => [ - 'description' => '修改后的防护规则配置。'."\n" - ."\n" - .'>上传修改后的配置规则后,会直接覆盖之前的配置。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"origin":"custom","conditions":[{"opValue":"eq","key":"URL","values":"/example"},{"opValue":"eq","key":"Header","values":"3333","subKey":"trt"}],"actionExternal":{},"action":"monitor","ccStatus":1,"ratelimit":{"target":"remote_addr","interval":"5","threshold":"2","effect":"rule","status":{"code":"404","count":"2"},"ttl":"1800"}}\'', - ], + 'schema' => ['description' => 'Namespace名称,不区分大小写,可以包含字母、数字、上划线和下划线。', 'type' => 'string', 'required' => true, 'example' => 'ns1', 'maxLength' => 64, 'pattern' => '^[0-9a-zA-Z_-]+$'], ], ], 'responses' => [ @@ -30451,108 +22419,113 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-3C2B-72F8FD6DA2FE', - ], + 'Status' => ['description' => 'Namespace状态,取值:'."\n" + ."\n" + .'- **online**:正常。'."\n" + ."\n" + .'- **delete**:待删除。'."\n" + ."\n" + .'- **deleting**:删除中。'."\n" + ."\n" + .'- **deleted**:已删除。', 'type' => 'string', 'example' => 'online'], + 'Namespace' => ['description' => 'Namespace名称。', 'type' => 'string', 'example' => 'ns1'], + 'NamespaceId' => ['description' => 'Namespace ID。', 'type' => 'string', 'example' => '12423131231****'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C'], + 'Description' => ['description' => 'Namespace描述信息,最大长度为1024个字符。', 'type' => 'string', 'example' => 'the first namespace', 'maxLength' => 1024], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'Rule.NotExist', - 'errorMessage' => 'The specified rule does not exist.', - ], - [ - 'errorCode' => 'RuleConfigs.Malformed', - 'errorMessage' => 'The specified RuleConfigs format is invalid.', - ], - [ - 'errorCode' => 'RuleName.AlreadyExists', - 'errorMessage' => 'Rule name already exists in specified policy.', - ], - [ - 'errorCode' => 'Rule.Name.CantBeModified', - 'errorMessage' => 'The specified rule name can not be modified.', - ], + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '输入参数无效'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => '账号输入不对,比如输入为空'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'namespace输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'key输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'key长度不能超过512B'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'value长度不能越过2000000B'], ], 403 => [ - [ - 'errorCode' => '%s.NotSupport', - 'errorMessage' => 'The specified resource type %s is not supported.', - ], - [ - 'errorCode' => '%s.OverQuota', - 'errorMessage' => 'The quantity of %s exceeds the quota.', - ], + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'namespace容量超过限制,单个namespace最大容量为1G'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => '鉴权参数输入错误'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => '您输入的鉴权时间参数无效,请检查参数值后重试。'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => '您输入的token无效,请检查并输入正确的token后进行重试。'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => '资源校验失败'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', - ], + [ + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account does not exist.', 'description' => '账号不存在,未创建'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'namespace不存在'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => '请求的key不存在'], + ], + 406 => [ + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'namespace已存在'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'namespace个数超过quota限制'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'key个数超过quota限制'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests are submitted.', 'description' => '请求速率过快'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'key put/delete操作太频繁'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-3C2B-72F8FD6DA2FE\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyDcdnWafRuleResponse>\\n <RequestId>CB1A380B-09F0-41BB-3C2B-72F8FD6DA2FE</RequestId>\\n</ModifyDcdnWafRuleResponse>","errorExample":""}]', - 'title' => '修改防护规则信息', - 'description' => '> '."\n" - .'> - 单用户调用频率:20次/秒。'."\n" - .'> - 请求方式:支持POST请求。'."\n" - .'> - 请求参数**RuleStatus**、**RuleName**和**RuleConfig**至少传一个。', - ], - 'BatchModifyDcdnWafRules' => [ - 'summary' => '调用BatchModifyDcdnWafRules批量修改WAF防护规则,目前仅支持修改配置Bot管理防护场景。', - 'methods' => [ - 'get', - 'post', + 'title' => '添加Namespace', + 'summary' => '调用PutDcdnKvNamespace给账号下新增Namespace。', + 'changeSet' => [ + ['createdAt' => '2025-04-02T06:58:00.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-03-25T08:01:20.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2024-02-19T06:32:02.000Z', 'description' => '响应参数发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PutDcdnKvNamespace'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:PutDcdnKvNamespace', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Status\\": \\"online\\",\\n \\"Namespace\\": \\"ns1\\",\\n \\"NamespaceId\\": \\"12423131231****\\",\\n \\"RequestId\\": \\"D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C\\",\\n \\"Description\\": \\"the first namespace\\"\\n}","type":"json"}]', + ], + 'PutDcdnKvWithHighCapacity' => [ + 'summary' => '设置Namespace的key-value对,支持最大25M的请求体', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', - 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnV3YEJ8', - ], + 'abilityTreeCode' => '213942', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'PolicyId', - 'in' => 'formData', - 'schema' => [ - 'description' => '防护策略ID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '10000001', - ], + 'name' => 'Namespace', + 'in' => 'query', + 'schema' => ['description' => '调用[PutDcdnKvNamespace](~~PutDcdnKvNamespace~~)时指定的名称。', 'type' => 'string', 'required' => true, 'example' => 'test_namesapce'], ], [ - 'name' => 'RuleConfigs', - 'in' => 'formData', - 'schema' => [ - 'description' => '防护规则配置。', - 'type' => 'string', - 'required' => true, - 'example' => '[{"id":135,"type":"web_sdk","status":"on","config":{"mode":"automatic","crossDomain":"example.com"},"action":""},{"id":149,"type":"intelligence_fake_crawler","status":"on","config":{},"action":"deny"}]', - ], + 'name' => 'Key', + 'in' => 'query', + 'schema' => ['description' => '需要设置的键名称,最长不超过512个字符,不能包含空格、反斜杠(/)。', 'type' => 'string', 'required' => true, 'example' => 'test_key'], + ], + [ + 'name' => 'Url', + 'in' => 'query', + 'schema' => ['description' => '存储有需要设置的键值对的下载链接,此参数由调用SDK时自动生成,请使用SDK进行调用。', 'type' => 'string', 'required' => true, 'example' => 'https://xxxobject.oss-cn-reginon.aliyuncs.com/9d91_xxxxxxxxxxx_158bb6e0f97c477791209bb46bd599f7'], ], ], 'responses' => [ @@ -30560,197 +22533,201 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-XXXX-72F8FD6DA2FE', - ], + 'Length' => ['description' => '键值对中的值的长度。', 'type' => 'integer', 'format' => 'int32', 'example' => '4'], + 'Value' => ['description' => '键的内容, 超过256个字符长度,将取前100及后100字符并省略中间。', 'type' => 'string', 'example' => 'test'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'EEEBE525-F576-1196-8DAF-2D70CA3F4D2F'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'Policy.NotExist', - 'errorMessage' => 'The specified policy does not exist.', - ], - [ - 'errorCode' => 'Rule.NotExist', - 'errorMessage' => 'The specified rule does not exist.', - ], - [ - 'errorCode' => 'RuleConfigs.Malformed', - 'errorMessage' => 'The specified RuleConfigs format is invalid.', - ], - [ - 'errorCode' => 'RuleName.AlreadyExists', - 'errorMessage' => 'Rule name already exists in specified policy.', - ], - [ - 'errorCode' => 'Rule.QuantityOverflow', - 'errorMessage' => 'Rules are overflowed quantity in specified policy.', - ], + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '输入参数无效'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => '账号输入不对,比如输入为空'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'namespace输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'key输入不对,比如输入为空'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'key长度不能超过512B'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'value长度不能越过2000000B'], ], 403 => [ - [ - 'errorCode' => '%s.NotSupport', - 'errorMessage' => 'The specified resource type %s is not supported.', - ], - [ - 'errorCode' => '%s.OverQuota', - 'errorMessage' => 'The quantity of %s exceeds the quota.', - ], + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'namespace容量超过限制,单个namespace最大容量为1G'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => '鉴权参数输入错误'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => '您输入的鉴权时间参数无效,请检查参数值后重试。'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => '您输入的token无效,请检查并输入正确的token后进行重试。'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => '资源校验失败'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', - ], + [ + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account does not exist.', 'description' => '账号不存在,未创建'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'namespace不存在'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => '请求的key不存在'], + ], + 406 => [ + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'namespace已存在'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'namespace个数超过quota限制'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'key个数超过quota限制'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests are submitted.', 'description' => '请求速率过快'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'key put/delete操作太频繁'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-XXXX-72F8FD6DA2FE\\"\\n}","errorExample":""},{"type":"xml","example":"<BatchModifyDcdnWafRulesResponse>\\n <RequestId>CB1A380B-09F0-41BB-XXXX-72F8FD6DA2FE</RequestId>\\n</BatchModifyDcdnWafRulesResponse>","errorExample":""}]', - 'title' => '批量修改防护规则', - 'description' => '> 单用户调用频率:20次/秒。', - 'requestParamsDescription' => '### RuleConfigs说明'."\n" - .'RuleConfigs为列表切片,其中每个结构体代表一条规则:'."\n" + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '设置KV存储空间的单个大容量键值对', + 'description' => '本接口与[PutDcdnKv](~~PutDcdnKv~~)的功能一样,只是允许上传更大请求体。当请求体较小时推荐直接使用[PutDcdnKv](~~PutDcdnKv~~)接口,从而减少服务端处理时间。本接口需要使用SDK进行调用。以golang SDK为例,需要使用PutDcdnKvWithHighCapacityAdvance函数进行调用。'."\n" + .'```'."\n" + .'func TestPutDcdnKvWithHighCapacity() {'."\n" + .' // 配置初始化'."\n" + .' cfg := new(openapi.Config)'."\n" + .' cfg.SetAccessKeyId("xxxxxxxxx")'."\n" + .' cfg.SetAccessKeySecret("xxxxxxxxxx")'."\n" + .' cli, err := NewClient(cfg)'."\n" + .' if err != nil {'."\n" + .' return err'."\n" + .' }'."\n" + .' runtime := &util.RuntimeOptions{}'."\n" ."\n" - .'- 结构体中规则内容,请参见[BatchCreateDcdnWafRules](~~423350~~)。'."\n" - .'- 需要传入当前策略下所有规则。'."\n" - .'- 每个结构体中添加如下防护规则ID字段,指定需要修改的规则。'."\n" + .' // 构造待上传的键值对请求'."\n" + .' namespace := "test-put-kv"'."\n" + .' key := "test_PutDcdnKvWithHighCapacity_0"'."\n" + .' value := strings.Repeat("t", 10*1024*1024)'."\n" + .' rawReq := &PutDcdnKvRequest{'."\n" + .' Namespace: &namespace,'."\n" + .' Key: &key,'."\n" + .' Value: &value,'."\n" + .' }'."\n" + .' payload, err := json.Marshal(rawReq)'."\n" + .' if err != nil {'."\n" + .' return err'."\n" + .' }'."\n" ."\n" - .'| 参数 | 类型 | 必要 |示例值| 描述 |'."\n" - .'| ---- | ---- | ---- | -------|----- |'."\n" - .'| id | Long | 否 |134| 防护规则ID。|'."\n" - ."\n\n" - .'Bot管理场景中:'."\n" + .' // 如果payload大于2M,则调用大容量接口进行上传'."\n" + .' reqHighCapacity := &PutDcdnKvWithHighCapacityAdvanceRequest{'."\n" + .' Namespace: &namespace,'."\n" + .' Key: &key,'."\n" + .' UrlObject: bytes.NewReader([]byte(payload)),'."\n" + .' }'."\n" ."\n" - .'- 新增规则:id不传或为0。'."\n" - .'- 修改规则:需携带修改的规则ID且status="on"。'."\n" - .'- 删除规则:构体中参数status="off"表示删除该条规则。或者同一策略中未传入某条规则ID,表示删除该条规则。', - ], - 'BatchSetDcdnWafDomainConfigs' => [ - 'summary' => '调用BatchSetDcdnWafDomainConfigs批量设置域名防护状态。', - 'methods' => [ - 'get', - 'post', + .' resp, err := cli.PutDcdnKvWithHighCapacityAdvance(reqHighCapacity, runtime)'."\n" + .' if err != nil {'."\n" + .' return err'."\n" + .' }'."\n" + .' return nil'."\n" + .'}', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PutDcdnKvWithHighCapacity'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:PutDcdnKvWithHighCapacity', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Length\\": 4,\\n \\"Value\\": \\"test\\",\\n \\"RequestId\\": \\"EEEBE525-F576-1196-8DAF-2D70CA3F4D2F\\"\\n}","type":"json"}]', + ], + 'RefreshDcdnObjectCacheByCacheTag' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeCode' => '216660', + 'abilityTreeNodes' => ['FEATUREdcdn4QVGXU'], ], 'parameters' => [ [ - 'name' => 'DomainNames', - 'in' => 'formData', - 'schema' => [ - 'description' => '需修改防护状态域名,最多输入50个,多个域名用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com,example2.com', - ], + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '加速域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com '], ], [ - 'name' => 'DefenseStatus', - 'in' => 'formData', - 'schema' => [ - 'description' => '防护域名状态,取值:on、off、和空值。'."\n" - ."\n" - .'- 接入域名时为**on**,此时ClientIpTag的值生效(选默认时为空;选自定义Header时为对应的值)。'."\n" - .'- 删除域名时为**off**,此时ClientIpTag不生效。'."\n" - .'- 只修改ClientIpTag时,DefenseStatus为空。', - 'type' => 'string', - 'required' => false, - 'example' => 'on', - ], + 'name' => 'CacheTag', + 'in' => 'query', + 'schema' => ['description' => '缓存标签。多个用逗号隔开。', 'type' => 'string', 'required' => true, 'example' => 'tag1,tag2', 'maxLength' => 16384], ], [ - 'name' => 'ClientIpTag', - 'in' => 'formData', - 'schema' => [ - 'description' => '指定的获取IP的Header值,当选择默认Header时,该值为空;选择自定义Header时,该值为用户输入的值。传多个值时需要使用逗号分隔,最多5个。', - 'type' => 'string', - 'required' => false, - 'example' => 'X-Forwarded-For', - ], + 'name' => 'Force', + 'in' => 'query', + 'schema' => ['description' => '当回源内容和源站资源对比后不一致时,是否刷新对应目录下的资源。默认为false。'."\n" + .'- **true**:刷新对应目录下的全部资源。'."\n" + .'- **false**:刷新对应目录下发生变更的资源。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-3C82-72F8FD6DA2FE', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], + 'RefreshTaskId' => ['description' => '刷新返回的任务ID。', 'type' => 'string', 'example' => '17410889914'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['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' => '不支持该ObjectType,请重新输入。'], + ['errorCode' => 'InvalidObjectPath.Malformed', 'errorMessage' => 'The specified ObjectPath is invalid.', 'description' => 'ObjectPath错误,请填写正确的ObjectPath。'], + ['errorCode' => 'InvalidObjectPath.Size.Malformed', 'errorMessage' => 'The size of ObjectPath is bigger than 1000.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.Refresh', 'errorMessage' => 'You\'ve exceeded the prescribed refresh limits.', 'description' => ''], + ['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' => '域名正在刷新的个数已经达到上限,请稍后再试。'], + ['errorCode' => 'PreloadQueueFull', 'errorMessage' => 'Preload queue is full, please try again later!', 'description' => ''], + ['errorCode' => 'InvalidStations.Malformed', 'errorMessage' => 'The specified Stations is invalid.', 'description' => ''], + ['errorCode' => 'InvalidParameters', 'errorMessage' => 'The parameters you provided are invalid.', 'description' => ''], ], - 403 => [ - [ - 'errorCode' => 'DomainInProtectedMode', - 'errorMessage' => 'The domain is in protection mode. To request permission, contact Customer Service.', - ], - [ - 'errorCode' => '%s.NotSupport', - 'errorMessage' => 'The specified resource type %s is not supported.', - ], - [ - 'errorCode' => '%s.OverQuota', - 'errorMessage' => 'The quantity of %s exceeds the quota.', - ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests, please try again later', 'description' => '提交太频繁,请稍候再试'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '根据缓存标签刷新缓存', + 'summary' => '当用户设置了缓存标签功能后,通过调用RefreshObjectCacheByCacheTag指定缓存标签对缓存进行刷新。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RefreshDcdnObjectCacheByCacheTag'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:RefreshDcdnObjectCacheByCacheTag', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-3C82-72F8FD6DA2FE\\"\\n}","errorExample":""},{"type":"xml","example":"<BatchSetDcdnWafDomainConfigsResponse>\\n <RequestId>CB1A380B-09F0-41BB-3C82-72F8FD6DA2FE</RequestId>\\n</BatchSetDcdnWafDomainConfigsResponse>","errorExample":""}]', - 'title' => '批量设置域名防护状态', - 'description' => '> '."\n" - .'> - 单用户调用频率:20次/秒。'."\n" - .'> - 请求方式:支持POST请求。', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\",\\n \\"RefreshTaskId\\": \\"17410889914\\"\\n}","type":"json"}]', ], - 'ModifyDcdnWafPolicy' => [ - 'summary' => '调用ModifyDcdnWafPolicy修改指定防护策略名称或状态。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'RefreshDcdnObjectCaches' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -30758,52 +22735,39 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnBCJPGN'], ], 'parameters' => [ [ - 'name' => 'PolicyId', - 'in' => 'formData', - 'schema' => [ - 'description' => '需要修改的防护策略ID,仅支持单个输入。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1000001', - ], + 'name' => 'ObjectPath', + 'in' => 'query', + 'schema' => ['description' => '- 单次提交多个URL或多个目录时,使用换行符分隔。'."\n" + .'- 单次提交的任务中所有URL的域名个数总和需要在10个以内。', 'type' => 'string', 'required' => true, 'example' => 'http://example.com/example.txt'."\n" + .'http://example.com/example2.txt'], ], [ - 'name' => 'PolicyName', - 'in' => 'formData', - 'schema' => [ - 'description' => '修改后的防护策略名称。'."\n" - ."\n" - .'>该参数与PolicyStatus至少传一个。', - 'type' => 'string', - 'required' => false, - 'example' => 'policy_test', - ], + 'name' => 'ObjectType', + 'in' => 'query', + 'schema' => ['description' => '刷新类型。取值范围:'."\n" + ."\n" + .'- **File**(默认值):URL。'."\n" + .'- **Directory**:目录。'."\n" + .'- **Regex**:正则刷新。'."\n" + .'- **IgnoreParams**:去参数刷新。去参数指的是去除请求URL中`?`及`?`之后的参数,去参数刷新指的是用户先通过接口提交去参数后的URL,然后用户提交的待刷新URL将会与已缓存资源的URL进行去参数匹配,如果已缓存资源的URL去参数以后与待刷新URL匹配,那么CDN节点将对缓存资源执行刷新处理。'."\n" + ."\n" + .'> - URL刷新和目录刷新的功能说明请参考[刷新和预热资源](~~64936~~)。'."\n" + .'>- 文件刷新将直接删除节点上的资源,当有新请求时回源拉取新资源。其它刷新类型默认只刷新发生变更的资源,需要强制刷新请配置Force参数为true,详见Force参数说明。', 'type' => 'string', 'required' => false, 'example' => 'File', 'default' => 'File'], ], [ - 'name' => 'PolicyStatus', - 'in' => 'formData', - 'schema' => [ - 'description' => '修改后的防护策略状态,取值:'."\n" - ."\n" - .'- **on**:开启。'."\n" - ."\n" - .'- **off**:关闭。'."\n" - ."\n" - .'>该参数与PolicyName至少传一个。', - 'type' => 'string', - 'required' => false, - 'example' => 'on', - ], + 'name' => 'Force', + 'in' => 'query', + 'schema' => ['description' => '当回源内容和源站资源对比一致时,是否刷新对应范围内的资源。默认为false。'."\n" + .'- **true**:刷新对应范围内的全部资源。选择 “刷新全部资源” 时,如果用户请求的内容匹配到了对应范围内的资源,DCDN节点将会直接回源拉取新资源返回给用户,并重新缓存该资源。'."\n" + .'- **false**:刷新对应范围内发生变更的资源。选择 “刷新变更资源” 时,如果用户请求的内容匹配到了对应范围内的资源,DCDN节点将会回源获取资源的 Last-Modified 信息,若与当前缓存资源一致,则直接返回已缓存资源,若不一致,则回源拉取新资源返回给用户,并重新缓存该资源。'."\n" + .'> 此参数生效范围:除文件刷新外的刷新类型', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], ], 'responses' => [ @@ -30811,263 +22775,269 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-C730-72F8FD6DA2FE', - ], + 'RefreshTaskId' => ['description' => '刷新返回的任务ID。多个ID用逗号(,)分隔。'."\n", 'type' => 'string', 'example' => '95248880'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'E5BD4B50-7A02-493A-AE0B-97B9024B4135'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'Policy.NotExist', - 'errorMessage' => 'The specified policy does not exist.', - ], - [ - 'errorCode' => 'PolicyName.AlreadyExists', - 'errorMessage' => 'The specified policy name already exists.', - ], + ['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' => '不支持该ObjectType,请重新输入。'], + ['errorCode' => 'InvalidObjectPath.Malformed', 'errorMessage' => 'The specified ObjectPath is invalid.', 'description' => 'ObjectPath错误,请填写正确的ObjectPath。'], + ['errorCode' => 'QuotaExceeded.Refresh', 'errorMessage' => 'Your refresh attempts have exceeded the daily limit.', 'description' => '超出当日刷新限制。今日刷新数已用完。您可以通过刷新接口查询今日的刷新次数。'], + ['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' => '域名正在刷新的个数已经达到上限,请稍后再试。'], ], - 403 => [ - [ - 'errorCode' => '%s.NotSupport', - 'errorMessage' => 'The specified resource type %s is not supported.', - ], - [ - 'errorCode' => '%s.OverQuota', - 'errorMessage' => 'The quantity of %s exceeds the quota.', - ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests, please try again later', 'description' => '提交太频繁,请稍候再试'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', + ], + 'title' => '刷新缓存', + 'summary' => '调用RefreshDcdnObjectCaches刷新节点上的文件内容、刷新指定URL内容至Cache节点。支持URL批量刷新。', + 'description' => '- 请求方式:支持POST请求,参数用form表单显示。'."\n" + .'- 相关接口:刷新预热类接口包含[RefreshDcdnObjectCaches](~~130620~~)刷新接口和[PreloadDcdnObjectCaches](~~130636~~)预热接口。'."\n" + .'- URL刷新配额(每日):默认情况下,一个账号每日最多可以提交10000条URL刷新和100个目录刷新,目录刷新包含子目录。如果您的阿里云账号的日带宽峰值大于200 Mbps,您可以通过<props="china">[配额管理](~~375348~~)</props><props="intl">[提交工单](https://account.alibabacloud.com/login/login.htm?oauth_callback=https%3A//ticket-intl.console.aliyun.com/%23/ticket/createIndex)</props>申请提升每日配额,阿里云将根据您业务的实际需求进行评估和配置。'."\n" + .'- 每次请求最多支持提交1000条URL刷新或者100个目录刷新。'."\n" + .'- 单个域名每分钟最多支持提交10000条URL刷新。'."\n" + .'- 单用户调用频率:30次/秒。'."\n" + ."\n\n" + .'#### 注意事项'."\n" + .'- 提交刷新任务并成功执行后,DCDN节点上对应的缓存资源将会失效,当您再次发起访问请求时,节点会回源站拉取所需资源,并重新缓存在节点上,因此大批量提交刷新任务会清空较多缓存,导致回源带宽和请求突增,增加源站压力。'."\n" + .'- 刷新任务从提交到生效,大约需要5~6分钟,如果文件或者目录配置的缓存过期时间少于5分钟,您无需执行刷新操作,等待文件或者目录缓存超时更新即可。'."\n" + .'- 使用RAM用户来执行刷新或预热操作的,需要先获得授权,请参见[授予RAM用户刷新预热权限](~~445051~~)完成授权。', + 'changeSet' => [ + ['createdAt' => '2023-10-17T08:31:07.000Z', 'description' => '请求参数发生变更'], + ['createdAt' => '2023-07-03T07:37:48.000Z', 'description' => '错误码发生变更'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RefreshDcdnObjectCaches'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:RefreshDcdnObjectCaches', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-C730-72F8FD6DA2FE\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyDcdnWafPolicyResponse>\\n <RequestId>CB1A380B-09F0-41BB-C730-72F8FD6DA2FE</RequestId>\\n</ModifyDcdnWafPolicyResponse>","errorExample":""}]', - 'title' => '修改防护策略名称或状态', - 'description' => '> '."\n" - .'> - 单用户调用频率:20次/秒。'."\n" - .'> - 请求方式:支持POST请求。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RefreshTaskId\\": \\"95248880\\",\\n \\"RequestId\\": \\"E5BD4B50-7A02-493A-AE0B-97B9024B4135\\"\\n}","errorExample":""},{"type":"xml","example":"<RefreshDcdnObjectCachesResponse>\\r\\n\\t<PushTaskId>95248880</PushTaskId>\\r\\n\\t<RequestId>E5BD4B50-7A02-493A-AE0B-97B9024B4135</RequestId>\\r\\n</RefreshDcdnObjectCachesResponse>\\r\\n\\t\\r\\n","errorExample":""}]', ], - 'ModifyDcdnWafPolicyDomains' => [ - 'summary' => '调用ModifyDcdnWafPolicyDomains修改指定防护策略绑定的域名。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'RefreshErObjectCaches' => [ + 'summary' => '调用RefreshErObjectCaches刷新通过边缘函数 Cache API写入的缓存和通过fetch子请求写入的缓存。支持URL批量刷新。', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '193439', + 'abilityTreeNodes' => ['FEATUREdcdn75UYDO'], ], 'parameters' => [ [ - 'name' => 'PolicyId', - 'in' => 'formData', - 'schema' => [ - 'description' => '防护策略ID,仅支持单个输入。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1000001', - ], + 'name' => 'ObjectPath', + 'in' => 'query', + 'schema' => ['description' => '刷新URL。'."\n" + .'>- 多个URL之间用换行符分隔,ObjectPath的单条长度最长为1024个字符。'."\n" + .'>- 一次请求中的URL都必须属于同一个域名。'."\n" + .'>- 一次请求最多包含1000条URL。', 'type' => 'string', 'required' => true, 'example' => 'http://example.com/examplefile.txt'."\n" + .'http://example.com/examplefile2.txt'], ], [ - 'name' => 'Method', - 'in' => 'formData', - 'schema' => [ - 'description' => '绑定方式,取值:'."\n" - ."\n" - .'- 0:替换'."\n" - .'- 1:添加'."\n" - .'- 不填默认替换。'."\n" - ."\n" - .'> - 仅**BindDomains**有值时生效。当**BindDomains**中存在域名已绑定到默认策略上时,返回错误`Policy.DefaultAndCustom.BindToSameDomain`。'."\n" - .'> - 当指定策略为默认策略时不生效(仅替换)。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], + 'name' => 'ObjectType', + 'in' => 'query', + 'schema' => ['description' => '刷新类型。取值范围:'."\n" + ."\n" + .'- **File**(默认值):URL。'."\n" + .'- **Directory**:目录。'."\n" + .'- **Regex**:正则刷新。'."\n" + .'- **IgnoreParams**:去参数刷新。去参数指的是去除请求URL中`?`及`?`之后的参数,去参数刷新指的是用户先通过接口提交去参数后的URL,然后用户提交的待刷新URL将会与已缓存资源的URL进行去参数匹配,如果已缓存资源的URL去参数以后与待刷新URL匹配,那么CDN节点将对缓存资源执行刷新处理。'."\n" + ."\n" + .'>目录刷新默认采用标记资源过期的处理方式,不支持删除目录。目录刷新会将节点上对应目录置为过期,后续有用户访问时,DCDN节点将会回源站校验目录是否更新,有更新时从源站重新拉取新版本返回给用户,未有更新时源站响应304状态码。', 'type' => 'string', 'required' => true, 'example' => 'File'], ], [ - 'name' => 'BindDomains', - 'in' => 'formData', - 'schema' => [ - 'description' => '需绑定指定防护策略的域名,最多输入50个,多个域名用英文逗号(,)分隔。'."\n" - ."\n" - .'> **BindDomains**和**UnbindDomains**字段二选一。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com,example2.com', - ], + 'name' => 'MergeDomainName', + 'in' => 'query', + 'schema' => ['description' => '合并刷新域名,刷新的时候会合并域名的调度域节点进行刷新。'."\n" + .'>多个域名之间用英文逗号(,)隔开。', 'type' => 'string', 'required' => false, 'example' => 'a.test.com,b.test.com'], ], [ - 'name' => 'UnbindDomains', - 'in' => 'formData', - 'schema' => [ - 'description' => '需解绑指定防护策略的域名,最多输入50个,多个域名用英文逗号(,)分隔。'."\n" - .'> **BindDomains**和**UnbindDomains**字段二选一。', - 'type' => 'string', - 'required' => false, - 'example' => 'example3.com', - ], + 'name' => 'RoutineId', + 'in' => 'query', + 'schema' => ['description' => '边缘函数脚本的程序ID,也叫函数ID,由"Name.Subdomain"组合而成,作为客户边缘函数代码的唯一标识。'."\n" + ."\n" + .'>- 当刷新Cache API写入的缓存时,需要指定此字段。'."\n" + .'>- 当刷新Fetch子请求写入的缓存时,不需要指定此字段。', 'type' => 'string', 'required' => false, 'example' => ' test.mysubdomain'], + ], + [ + 'name' => 'Force', + 'in' => 'query', + 'schema' => ['description' => '当回源内容和源站资源对比后不一致时,是否刷新对应目录下的资源。默认为false。'."\n" + .'- **true**:刷新对应目录下的全部资源。'."\n" + .'- **false**:刷新对应目录下发生变更的资源。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-2B35-72F8FD6DA2FE', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F'], + 'RefreshTaskId' => ['description' => '刷新返回的任务ID。多个ID用逗号(,)分隔。'."\n", 'type' => 'string', 'example' => '95248880'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'Policy.NotExist', - 'errorMessage' => 'The specified policy does not exist.', - ], - [ - 'errorCode' => 'DomainBindAndUnbind.Overlapped', - 'errorMessage' => 'The specified bind and unbind domain names overlap.', - ], - [ - 'errorCode' => 'Domain.Bound.DefaultAndCustom', - 'errorMessage' => 'The specified domain name is bound to both default and custom policies.', - ], - [ - 'errorCode' => 'DefenseScene.MultiPolicies.NotSupport', - 'errorMessage' => 'The specified defense scene does not support multiple policies bound to the same domain name.', - ], - ], - 403 => [ - [ - 'errorCode' => '%s.NotSupport', - 'errorMessage' => 'The specified resource type %s is not supported.', - ], - [ - 'errorCode' => '%s.OverQuota', - 'errorMessage' => 'The quantity of %s exceeds the quota.', - ], + ['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' => '不支持该ObjectType,请重新输入。'], + ['errorCode' => 'InvalidObjectPath.Malformed', 'errorMessage' => 'The specified ObjectPath is invalid.', 'description' => 'ObjectPath错误,请填写正确的ObjectPath。'], + ['errorCode' => 'InvalidObjectPath.Size.Malformed', 'errorMessage' => 'The size of ObjectPath is bigger than 1000.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.Refresh', 'errorMessage' => 'You\'ve exceeded the prescribed refresh limits.', 'description' => ''], + ['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' => '域名正在刷新的个数已经达到上限,请稍后再试。'], + ['errorCode' => 'PreloadQueueFull', 'errorMessage' => 'Preload queue is full, please try again later!', 'description' => ''], + ['errorCode' => 'InvalidStations.Malformed', 'errorMessage' => 'The specified Stations is invalid.', 'description' => ''], + ['errorCode' => 'InvalidParameters', 'errorMessage' => 'The parameters you provided are invalid.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\",\\n \\"RefreshTaskId\\": \\"95248880\\"\\n}","type":"json"}]', + 'title' => '刷新边缘函数缓存', + 'description' => '> '."\n" + .'> - 请求方式:支持POST请求,参数用form表单显示。'."\n" + .'> - 相关接口:刷新类接口包含[RefreshDcdnObjectCaches](~~130620~~)刷新接口。'."\n" + .'> - URL刷新配额(每日):默认情况下,一个账号每日最多可以提交10000条URL刷新和100个目录刷新,目录刷新包含子目录。'."\n" + .'> - 每次请求最多支持提交1000条URL刷新或者100个目录刷新。'."\n" + .'> - 单个域名每分钟最多支持提交1000条URL刷新。'."\n" + .'> - 单用户调用频率:30次/秒。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RefreshErObjectCaches'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', + ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:RefreshErObjectCaches', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-2B35-72F8FD6DA2FE\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyDcdnWafPolicyDomainsResponse>\\n <RequestId>CB1A380B-09F0-41BB-2B35-72F8FD6DA2FE</RequestId>\\n</ModifyDcdnWafPolicyDomainsResponse>","errorExample":""}]', - 'title' => '修改防护策略绑定的域名', - 'description' => '> '."\n" - .'> - 单用户调用频率:20次/秒。'."\n" - .'> - 请求方式:支持POST请求。', ], - 'DeleteDcdnUserConfig' => [ - 'summary' => '调用DeleteDcdnUserConfig删除用户维度的功能配置。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'RefreshErObjectCachesByCacheTag' => [ + 'summary' => 'ER场景下的cache tag粒度的刷新接口', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '194960', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeCode' => '193439', + 'abilityTreeNodes' => ['FEATUREdcdn75UYDO'], + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'FunctionName', + 'name' => 'Domain', 'in' => 'query', - 'schema' => [ - 'description' => '要删除的用户功能名称,当前仅支持删除DCDN WAF功能。取值默认为waf。', - 'type' => 'string', - 'required' => false, - 'example' => 'waf', - 'default' => 'waf', - 'enum' => [ - 'waf', - ], - ], + 'schema' => ['description' => '客户端请求打到ER组件,ER组件发起Fetch请求时使用的Fetch域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'CacheTag', + 'in' => 'query', + 'schema' => ['description' => '缓存标签。多个用逗号隔开。', 'type' => 'string', 'required' => true, 'example' => 'tag1,tag2'], + ], + [ + 'name' => 'MergeDomainName', + 'in' => 'query', + 'schema' => ['description' => '合并刷新域名,刷新的时候会合并域名的调度域节点进行刷新。'."\n" + .'>多个域名之间用英文逗号(,)隔开。', 'type' => 'string', 'required' => false, 'example' => 'a.test.com,b.test.com'], + ], + [ + 'name' => 'Force', + 'in' => 'query', + 'schema' => ['description' => '当回源内容和源站资源对比一致时,是否刷新对应范围内的资源。默认为false。'."\n" + .'- **true**:刷新对应范围内的全部资源。选择 “刷新全部资源” 时,如果用户请求的内容匹配到了对应范围内的资源,DCDN节点将会直接回源拉取新资源返回给用户,并重新缓存该资源。'."\n" + .'- **false**:刷新对应范围内发生变更的资源。选择 “刷新变更资源” 时,如果用户请求的内容匹配到了对应范围内的资源,DCDN节点将会回源获取资源的 Last-Modified 信息,若与当前缓存资源一致,则直接返回已缓存资源,若不一致,则回源拉取新资源返回给用户,并重新缓存该资源。'."\n" + .'> 此参数生效范围:除文件刷新外的刷新类型', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '5CC228B4-7A67-4016-9C9F-4A4133494A91', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'EEEBE525-F576-1196-8DAF-2D70CA3F4D2F'."\n"], + 'RefreshTaskId' => ['description' => '刷新返回的任务ID。', 'type' => 'string', 'example' => '17410889914'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + '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' => '不支持该ObjectType,请重新输入。'], + ['errorCode' => 'InvalidObjectPath.Malformed', 'errorMessage' => 'The specified ObjectPath is invalid.', 'description' => 'ObjectPath错误,请填写正确的ObjectPath。'], + ['errorCode' => 'InvalidObjectPath.Size.Malformed', 'errorMessage' => 'The size of ObjectPath is bigger than 1000.', 'description' => ''], + ['errorCode' => 'QuotaExceeded.Refresh', 'errorMessage' => 'You\'ve exceeded the prescribed refresh limits.', 'description' => ''], + ['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' => '域名正在刷新的个数已经达到上限,请稍后再试。'], + ['errorCode' => 'PreloadQueueFull', 'errorMessage' => 'Preload queue is full, please try again later!', 'description' => ''], + ['errorCode' => 'InvalidStations.Malformed', 'errorMessage' => 'The specified Stations is invalid.', 'description' => ''], + ['errorCode' => 'InvalidParameters', 'errorMessage' => 'The parameters you provided are invalid.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '根据缓存标签刷新缓存', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5CC228B4-7A67-4016-9C9F-4A4133494A91\\"\\n}","type":"json"}]', - 'title' => '删除用户维度的配置', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EEEBE525-F576-1196-8DAF-2D70CA3F4D2F\\\\n\\",\\n \\"RefreshTaskId\\": \\"17410889914\\"\\n}","type":"json"}]', ], - 'DeleteDcdnWafPolicy' => [ - 'summary' => '调用DeleteDcdnWafPolicy删除指定防护策略。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'RollbackDcdnStagingConfig' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -31075,24 +23045,16 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnSU2QP6', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'PolicyId', - 'in' => 'formData', - 'schema' => [ - 'description' => '需要删除的防护策略ID,仅支持单个输入。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1000001', - ], + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '加速域名,仅支持传单个域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ @@ -31100,63 +23062,46 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-B084-72F8FD6DA2FE', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'Policy.NotExist', - 'errorMessage' => 'The specified policy does not exist.', - ], - [ - 'errorCode' => 'Policy.DeleteForbidden', - 'errorMessage' => 'The specified policy is forbidden to delete.', - ], + 404 => [ + ['errorCode' => 'StagingConfig.NotFound', 'errorMessage' => 'The staging configuration does not exist.', 'description' => '该配置在模拟环境不存在。'], ], - 403 => [ - [ - 'errorCode' => '%s.NotSupport', - 'errorMessage' => 'The specified resource type %s is not supported.', - ], - [ - 'errorCode' => '%s.OverQuota', - 'errorMessage' => 'The quantity of %s exceeds the quota.', - ], + ], + 'title' => '灰度配置回滚', + 'summary' => '调用RollbackDcdnStagingConfig将模拟环境的全站加速配置回滚成生产环境配置。', + 'description' => '> 单用户调用频率:30次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RollbackDcdnStagingConfig'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:RollbackDcdnStagingConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-B084-72F8FD6DA2FE\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDcdnWafPolicyResponse>\\n <RequestId>CB1A380B-09F0-41BB-B084-72F8FD6DA2FE</RequestId>\\n</DeleteDcdnWafPolicyResponse>","errorExample":""}]', - 'title' => '删除防护策略', - 'description' => '> '."\n" - .'> - 单用户调用频率:20次/秒。'."\n" - .'> - 请求方式:支持POST请求。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<RollbackDcdnStagingConfigResponse>\\r\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</RollbackDcdnStagingConfigResponse>\\r\\n","errorExample":""}]', ], - 'BatchDeleteDcdnWafRules' => [ - 'summary' => '调用BatchDeleteDcdnWafRules批量删除WAF防护规则。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'SetDcdnDomainCSRCertificate' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -31164,23 +23109,22 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnV3YEJ8', - ], + 'abilityTreeNodes' => ['FEATUREdcdnX7NWEB'], ], 'parameters' => [ [ - 'name' => 'RuleIds', - 'in' => 'formData', - 'schema' => [ - 'description' => '需要删除的防护规则ID列表,多个ID用英文逗号(,)分隔。', - 'type' => 'string', - 'required' => true, - 'example' => '20000001,20000002', - ], + 'name' => 'ServerCertificate', + 'in' => 'query', + 'schema' => ['description' => '证书内容。该证书必须是通过[CreateDcdnCertificateSigningRequest](~~144478~~)接口创建的CSR对应的签名证书,内部必须是PEM格式的证书。'."\n" + .'> 传参前先对证书Base64编码后再使用JavaScript内置函数encodeURIComponent进行编码处理。', 'type' => 'string', 'required' => true, 'example' => '----BEGIN CERTIFICATE----- MIIFz****-----END CERTIFICATE-----'], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '指定证书所属加速域名。需属于HTTPS加速类型。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ @@ -31188,203 +23132,90 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-802B-72F8FD6DA2FE', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - ], - 403 => [ - [ - 'errorCode' => '%s.NotSupport', - 'errorMessage' => 'The specified resource type %s is not supported.', - ], - [ - 'errorCode' => '%s.OverQuota', - 'errorMessage' => 'The quantity of %s exceeds the quota.', - ], + ['errorCode' => 'Certificate.MissingParameter', 'errorMessage' => 'You must specify the Certificate parameter.', 'description' => '请求缺少Certificate参数。'], + ['errorCode' => 'Certificate.EncodeError', 'errorMessage' => 'An error occurred while encoding the certificate.', 'description' => '证书编码错误。'], + ['errorCode' => 'Certificate.DecodeError', 'errorMessage' => 'An error occurred while decoding the certificate.', 'description' => '证书解码失败。'], + ['errorCode' => 'Certificate.FormatError', 'errorMessage' => 'The format of the certificate is invalid.', 'description' => '证书格式错误。'], + ['errorCode' => 'Certificate.MissMatch', 'errorMessage' => 'The certificate does not match the domain.', 'description' => '证书和域名不匹配。'], + ['errorCode' => 'Certificate.NoPrivateKey', 'errorMessage' => 'The private key of the certificate does not exist.', 'description' => '私钥不存在。'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', - ], + ['errorCode' => 'Internal.ForbidError', 'errorMessage' => 'You cannot modify the configurations when some features of the domain are in a canary deployment.', 'description' => '该域名有功能在灰度,不能进行变更。'], + ['errorCode' => 'Internal.ConfigError', 'errorMessage' => 'An error occurred while configuring the certificate.', 'description' => '配置接口调用失败。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-802B-72F8FD6DA2FE\\"\\n}","errorExample":""},{"type":"xml","example":"<BatchDeleteDcdnWafRulesResponse>\\n <RequestId>CB1A380B-09F0-41BB-802B-72F8FD6DA2FE</RequestId>\\n</BatchDeleteDcdnWafRulesResponse>","errorExample":""}]', - 'title' => '批量删除防护规则', - 'description' => '> '."\n" - .'> - 单用户调用频率:20次/秒。'."\n" - .'> - 请求方式:支持POST请求。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnWafScenes' => [ - 'summary' => '调用DescribeDcdnWafScenes查询用户已使用的防护策略类型信息。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', + 'title' => '设置CSR证书', + 'summary' => '调用SetDcdnDomainCSRCertificate设置指定域名下的HTTPS证书。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDcdnDomainCSRCertificate'], ], ], - 'parameters' => [ + 'ramActions' => [ [ - 'name' => 'DefenseScenes', - 'in' => 'query', - 'schema' => [ - 'description' => '设置查询的防护策略类型,多个策略类型用英文逗号(,)分隔。目前支持以下场景:'."\n" - ."\n" - .'- waf_group:Web基础防护。'."\n" - ."\n" - .'- custom_acl:自定义防护策略。'."\n" - ."\n" - .'- whitelist:白名单。'."\n" - ."\n" - .'- ip_blacklist:IP黑名单。'."\n" - ."\n" - .'- region_block:区域封禁。'."\n" - ."\n" - .'- bot:Bot管理。'."\n" - ."\n" - .'>不传默认查询所有场景。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'waf_group,custom_acl,whitelist', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '3D7BB13C-DD84-5654-A835-B8E1385DE274', - ], - 'DefenseScenes' => [ - 'description' => '防护策略类型。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'PolicyCount' => [ - 'description' => '该策略类型已配置的策略总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RuleCount' => [ - 'description' => '该策略类型已配置的防护规则总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '12', - ], - 'DefenseScene' => [ - 'description' => '防护策略类型,同请求参数DefenseScenes取值。', - 'type' => 'string', - 'example' => 'waf_group', - ], - ], - ], - ], + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:SetDcdnDomainCSRCertificate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"3D7BB13C-DD84-5654-A835-B8E1385DE274\\",\\n \\"DefenseScenes\\": [\\n {\\n \\"PolicyCount\\": 10,\\n \\"RuleCount\\": 12,\\n \\"DefenseScene\\": \\"waf_group\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafScenesResponse>\\n <DefenseScenes>\\n <DefenseScene>waf_group</DefenseScene>\\n <RuleCount>12</RuleCount>\\n <PolicyCount>10</PolicyCount>\\n </DefenseScenes>\\n <DefenseScenes>\\n <DefenseScene>custom_acl</DefenseScene>\\n <RuleCount>5</RuleCount>\\n <PolicyCount>10</PolicyCount>\\n </DefenseScenes>\\n <DefenseScenes>\\n <DefenseScene>whitelist</DefenseScene>\\n <RuleCount>5</RuleCount>\\n <PolicyCount>10</PolicyCount>\\n </DefenseScenes>\\n <requestId>3D7BB13C-DD84-5654-A835-B8E1385DE274</requestId>\\n</DescribeDcdnWafScenesResponse>","errorExample":""}]', - 'title' => '查询用户使用的防护策略类型', - 'description' => '> 单用户调用频率:20次/秒。', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","type":"json"}]', ], - 'DescribeDcdnWafDomains' => [ - 'summary' => '调用DescribeDcdnWafDomains获取接入WAF防护的加速域名,支持模糊搜索。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'SetDcdnDomainSMCertificate' => [ + 'summary' => '调用SetDcdnDomainSMCertificate设置指定域名下是否启用国密证书功能。', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '133321', - 'abilityTreeNodes' => [ - 'FEATUREdcdnSU2QP6', - ], + 'abilityTreeNodes' => ['FEATUREdcdnX7NWEB'], ], 'parameters' => [ [ - 'name' => 'QueryArgs', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '设置查询条件,支持域名模糊匹配过滤。'."\n" - .'```QueryArgs={"DomainNameLike":"加速域名"}```', - 'type' => 'string', - 'required' => false, - 'example' => '{"DomainNameLike":"example.com"}', - ], + 'schema' => ['description' => '指定国密证书所属的加速域名。'."\n" + ."\n" + .'>加速域名需属于HTTPS加速类型。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'PageNumber', + 'name' => 'CertIdentifier', 'in' => 'query', - 'schema' => [ - 'description' => '页码。取值范围为:**1**~**100000**。'."\n" - ."\n" - .'默认值为**1**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '证书ID+"-cn-hangzhou"。如果证书ID=123,则CertIdentifier=“123-cn-hangzhou”。', 'type' => 'string', 'required' => true, 'example' => '123-cn-hangzhou'], ], [ - 'name' => 'PageSize', + 'name' => 'SSLProtocol', 'in' => 'query', 'schema' => [ - 'description' => '每页显示的域名个数,默认值**20**,取值范围:**1**~**500**之间的任意整数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'example' => '20', - 'default' => '20', + 'description' => 'HTTPS证书是否启用。'."\n" + ."\n" + .'- **on**:启用。'."\n" + .'- **off**:不启用。', + 'type' => 'string', + 'required' => true, + 'example' => 'on', + 'enum' => ['on', 'off'], ], ], ], @@ -31393,129 +23224,118 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => '每页显示的域名个数,同请求参数的PageSize。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '153ca2cd-3c01-44be-b408-64dbc6c88630', - ], - 'PageNumber' => [ - 'description' => '页码,同请求参数的PageNumber。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => '防护域名总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '15', - ], - 'Domains' => [ - 'description' => '防护域名。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'PolicyCount' => [ - 'description' => '该防护域名配置的防护策略个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'ClientIpTag' => [ - 'description' => '获取建连IP的Header。', - 'type' => 'string', - 'example' => 'X-Forwarded-For', - ], - 'DomainName' => [ - 'description' => '防护域名名称。', - 'type' => 'string', - 'example' => 'example.com', - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C8'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'InvalidCertIdentifier.ValueNotSupported', 'errorMessage' => 'The specified value of parameter CertIdentifier is not valid.', 'description' => '指定的CertIdentifier不合法。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 20,\\n \\"RequestId\\": \\"153ca2cd-3c01-44be-b408-64dbc6c88630\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 15,\\n \\"Domains\\": [\\n {\\n \\"PolicyCount\\": 3,\\n \\"ClientIpTag\\": \\"X-Forwarded-For\\",\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafDomainsResponse>\\n <RequestId>153ca2cd-3c01-44be-b408-64dbc6c88630</RequestId>\\n <TotalCount>15</TotalCount>\\n <Domains>\\n <DomainName>example.com</DomainName>\\n <PolicyCount>3</PolicyCount>\\n <ClientIpTag/>\\n </Domains>\\n <Domains>\\n <DomainName>example2.com</DomainName>\\n <policyCount>3</policyCount>\\n <ClientIpTag>X-Forwarded-For</ClientIpTag>\\n </Domains>\\n <PageNumber>1</PageNumber>\\n <PageSize>20</PageSize>\\n</DescribeDcdnWafDomainsResponse>","errorExample":""}]', - 'title' => '获取接入WAF防护的加速域名', - 'description' => '该API适用于新版WAF防护。'."\n" - .'> 单用户调用频率:20次/秒。', - ], - 'DescribeDcdnWafPolicyDomains' => [ - 'summary' => '调用DescribeDcdnWafPolicyDomains查询已接入指定WAF防护策略的加速域名。', - 'methods' => [ - 'get', - 'post', + 'title' => '设置国密证书', + 'description' => '>单用户调用频率:30次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDcdnDomainSMCertificate'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:SetDcdnDomainSMCertificate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C8\\"\\n}","errorExample":""},{"type":"xml","example":"<SetDcdnDomainSMCertificateResponse>\\n <RequestId>0AEDAF20-4DDF-4165-8750-47FF9C1929C8</RequestId>\\n</SetDcdnDomainSMCertificateResponse>","errorExample":""}]', + ], + 'SetDcdnDomainSSLCertificate' => [ + 'summary' => '调用SetDcdnDomainSSLCertificate设置某域名下是否启用证书功能及更新证书信息。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '162268', + 'abilityTreeNodes' => ['FEATUREdcdnX7NWEB'], ], 'parameters' => [ [ - 'name' => 'PolicyId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '防护策略ID,仅支持单个输入。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '100001', - ], + 'schema' => ['description' => '证书所属的服务域名,需属于HTTPS加速类型。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'PageNumber', + 'name' => 'CertName', + 'in' => 'query', + 'schema' => ['description' => '证书名称,目前只支持单个证书名称,只有**CertType**=**upload**时生效。'."\n" + .'**CertType**=**upload**时选填,给新证书的名称。', 'type' => 'string', 'required' => false, 'example' => 'yourCertName'], + ], + [ + 'name' => 'CertId', + 'in' => 'query', + 'schema' => ['description' => '证书ID,只有**CertType**=**cas**时生效。'."\n" + .'**CertType**=**cas**时必填,表示选择已有证书。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '8089870'], + ], + [ + 'name' => 'CertType', 'in' => 'query', 'schema' => [ - 'description' => '页码,默认值**1**,取值范围:**1**~**100000**。', - 'type' => 'integer', - 'format' => 'int32', + 'description' => '证书类型。'."\n" + ."\n" + .'- **upload**:上传证书。'."\n" + .'- **cas**:证书中心证书。', + 'type' => 'string', 'required' => false, - 'example' => '1', + 'example' => 'upload', + 'enum' => ['cas', 'upload'], ], ], [ - 'name' => 'PageSize', + 'name' => 'SSLProtocol', + 'in' => 'query', + 'schema' => ['description' => 'HTTPS证书是否启用。'."\n" + ."\n" + .'- **on**:启用。'."\n" + .'- **off**:不启用。', 'type' => 'string', 'required' => true, 'example' => 'off'], + ], + [ + 'name' => 'SSLPub', + 'in' => 'query', + 'schema' => ['description' => '安全证书内容,不启用证书则无需输入,配置证书请输入证书内容。', 'type' => 'string', 'required' => false, 'example' => 'xxx'], + ], + [ + 'name' => 'SSLPri', + 'in' => 'query', + 'schema' => ['description' => '私钥内容,不启用证书则无需输入,配置证书请输入私钥内容。', 'type' => 'string', 'required' => false, 'example' => 'y****'], + ], + [ + 'name' => 'CertRegion', 'in' => 'query', 'schema' => [ - 'description' => '每页显示的域名个数,默认值**20**,取值范围:**1**~**500**之间的任意整数。', - 'type' => 'integer', - 'format' => 'int32', + 'description' => '证书所在地域。支持**cn-hangzhou**和**ap-southeast-1**,默认**cn-hangzhou**。国际站用户建议使用**ap-southeast-1**。', + 'type' => 'string', 'required' => false, - 'maximum' => '500', - 'example' => '20', - 'default' => '20', + 'enumValueTitles' => ['ap-southeast-1' => 'ap-southeast-1', 'cn-hangzhou' => 'cn-hangzhou'], + 'example' => 'cn-hangzhou', ], ], ], @@ -31524,257 +23344,192 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => '每页显示的域名个数,同请求参数的PageSize。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '153ca2cd-3c01-44be-b480-64dbc6c88630', - ], - 'PageNumber' => [ - 'description' => '页码,同请求参数的PageNumber。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => '查询到的域名总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'Domains' => [ - 'description' => '加速域名。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DomainName' => [ - 'description' => '接入指定防护策略的加速域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A7C69682-7F88-40DD-A198-10D0309E439D'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'InvalidSSLProtocol.ValueNotSupported', 'errorMessage' => 'The specified SSLProtocol is invalid.', 'description' => '不支持该HTTPS证书开关,请填写on或off。'], + ['errorCode' => 'SSLPub.MissingParameter', 'errorMessage' => 'The SSLPub parameter is required.', 'description' => '请填写SSLPub。'], + ['errorCode' => 'SSLPri.MissingParameter', 'errorMessage' => 'The SSLPri parameter is required.', 'description' => '请填写SSLPri。'], + ['errorCode' => 'InvalidSSLPub', 'errorMessage' => 'The specified SSLPub is invalid.', 'description' => 'SSLPub错误,请重新填写。'], + ['errorCode' => 'InvalidSSLPri', 'errorMessage' => 'The specified SSLPri is invalid.', 'description' => 'SSLPri错误,请填写正确的SSLPri。'], + ['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' => 'Certificate长度超过限制。'], + ['errorCode' => 'InvalidCertName.TooLong', 'errorMessage' => 'The length of the certificate name cannot exceed 128 characters.', 'description' => '证书名称不能超过128个字符。'], + ['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' => '参数Key格式错误。'], + ['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' => '证书 sslpub 或 sslpri 解码错误。'], + ['errorCode' => 'sslPub.Error', 'errorMessage' => 'Error encoding SSLPub.', 'description' => 'sslPub 编码失败。'], + ['errorCode' => 'sslPri.Error', 'errorMessage' => 'Error encoding SSLPri.', 'description' => 'sslPri 编码失败。'], + ['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' => '该证书名称已存在。'], + ], + 403 => [ + ['errorCode' => 'DomainInProtectedMode', 'errorMessage' => 'The domain is in protection mode. To request permission, contact Customer Service.', 'description' => '此域名处于被保护模式。如果您想做这个操作,请联系我们。'], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 20,\\n \\"RequestId\\": \\"153ca2cd-3c01-44be-b480-64dbc6c88630\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 2,\\n \\"Domains\\": [\\n {\\n \\"DomainName\\": \\"example.com\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafPolicyDomainsResponse>\\n <RequestId>153ca2cd-3c01-44be-b480-64dbc6c88630</RequestId>\\n <PageNumber>1</PageNumber>\\n <PageSize>20</PageSize>\\n <TotalCount>2</TotalCount>\\n <Domains>\\n <DomainName>example.com</DomainName>\\n </Domains>\\n <Domains>\\n <DomainName>example2.com</DomainName>\\n </Domains>\\n</DescribeDcdnWafPolicyDomainsResponse>","errorExample":""}]', - 'title' => '获取接入指定防护策略的加速域名', - 'description' => '> 单用户调用频率:20次/秒。', - ], - 'DescribeDcdnWafPolicies' => [ - 'summary' => '调用DescribeDcdnWafPolicies查询用户已配置的WAF防护策略详细信息。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + ['errorCode' => 'CertName.MissingParameter', 'errorMessage' => 'You must specify CertName.', 'description' => ''], + ['errorCode' => 'InvalidDomain.Offline', 'errorMessage' => 'The domain is offline.', 'description' => '域名已下线。'], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"A7C69682-7F88-40DD-A198-10D0309E439D\\"\\n}","errorExample":""},{"type":"xml","example":"<SetDcdnDomainSSLCertificateResponse>\\n <RequestId>A7C69682-7F88-40DD-A198-10D0309E439D</RequestId>\\n</SetDcdnDomainSSLCertificateResponse>","errorExample":""}]', + 'title' => '配置域名证书', + 'changeSet' => [ + ['createdAt' => '2024-05-11T03:00:16.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2023-12-06T03:04:56.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2023-09-04T01:41:23.000Z', 'description' => '请求参数发生变更'], ], - 'parameters' => [ - [ - 'name' => 'QueryArgs', - 'in' => 'query', - 'schema' => [ - 'description' => '按条件查询,JSON序列化后的字符串。'."\n" - .'格式如下:```QueryArgs={"PolicyIds":"防护策略ID","RuleIds":"防护规则ID范围","PolicyNameLike":"防护策略名称","DomainNames":"防护域名","PolicyType":"default","DefenseScenes":"waf_group","PolicyStatus":"on","OrderBy":"GmtModified","Desc":"false"}```'."\n" - .'>不传默认查询所有防护策略。', - 'type' => 'string', - 'required' => false, - 'example' => '{"PolicyNameLIike":"test_policy"}', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => '页码,默认值**1**,取值范围:**1**~**100000**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '每页显示的防护策略个数,默认值**20**,取值范围:**1**~**500**之前的任意整数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'example' => '20', - 'default' => '20', - ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDcdnDomainSSLCertificate'], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'PageSize' => [ - 'description' => '每页显示的防护策略个数,默认值**20**,取值范围:**1**~**500**之前的任意整数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '153ca2cd-3c01-44be-2e83-64dbc6c88630', - ], - 'PageNumber' => [ - 'description' => '页码。取值范围为:**1**~**100000**。默认值为**1**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => '防护策略个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '15', - ], - 'Policies' => [ - 'description' => '防护策略列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'PolicyStatus' => [ - 'description' => '防护策略状态,同请求参数QueryArgs中PolicyStatus。', - 'type' => 'string', - 'example' => 'on', - ], - 'DefenseScene' => [ - 'description' => '防护策略类型,同请求参数QueryArgs中DefenseScenes。', - 'type' => 'string', - 'example' => 'custom_acl', - ], - 'DomainCount' => [ - 'description' => '使用该防护策略的域名个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '22', - ], - 'PolicyName' => [ - 'description' => '防护策略名称。', - 'type' => 'string', - 'example' => 'policy_test', - ], - 'PolicyId' => [ - 'description' => '防护策略ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100001', - ], - 'RuleCount' => [ - 'description' => '该防护策略下的防护规则个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '9', - ], - 'GmtModified' => [ - 'description' => '修改时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'example' => '2021-12-29T17:08:45Z', - ], - 'PolicyType' => [ - 'description' => '是否为默认防护策略,同请求参数QueryArgs中PolicyType。', - 'type' => 'string', - 'example' => 'default', - ], - ], - ], - ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:SetDcdnDomainSSLCertificate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 20,\\n \\"RequestId\\": \\"153ca2cd-3c01-44be-2e83-64dbc6c88630\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 15,\\n \\"Policies\\": [\\n {\\n \\"PolicyStatus\\": \\"on\\",\\n \\"DefenseScene\\": \\"custom_acl\\",\\n \\"DomainCount\\": 22,\\n \\"PolicyName\\": \\"policy_test\\",\\n \\"PolicyId\\": 100001,\\n \\"RuleCount\\": 9,\\n \\"GmtModified\\": \\"2021-12-29T17:08:45Z\\",\\n \\"PolicyType\\": \\"default\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafPoliciesResponse>\\n <RequestId>153ca2cd-3c01-44be-2e83-64dbc6c88630</RequestId>\\n <TotalCount>15</TotalCount>\\n <Policies>\\n <GmtModified>2021-12-29T17:08:45Z</GmtModified>\\n <PolicyId>100001</PolicyId>\\n <PolicyName>policy_test</PolicyName>\\n <PolicyType>default</PolicyType>\\n <PolicyStatus>on</PolicyStatus>\\n <DomainCount>22</DomainCount>\\n <RuleCount>9</RuleCount>\\n <DefenseScene>custom_acl</DefenseScene>\\n </Policies>\\n <Policies>\\n <GmtModified>2021-12-29T17:09:45Z</GmtModified>\\n <PolicyId>100002</PolicyId>\\n <PolicyName>policy_test2</PolicyName>\\n <PolicyType>custom</PolicyType>\\n <PolicyStatus>off</PolicyStatus>\\n <DomainCount>25</DomainCount>\\n <RuleCount>10</RuleCount>\\n <DefenseScene>waf_group</DefenseScene>\\n </Policies>\\n <PageNumber>1</PageNumber>\\n <PageSize>20</PageSize>\\n</DescribeDcdnWafPoliciesResponse>","errorExample":""}]', - 'title' => '查询用户配置的防护策略', - 'description' => '> 单用户调用频率:20次/秒。', - 'requestParamsDescription' => '**QueryArgs取值说明**'."\n" - ."\n" - .'| 名称 | 类型|是否必选| 示例值| 描述|'."\n" - .'|------|-----|--------|--------|----|'."\n" - .'| PolicyIds| string|否| 10000001,10000002| 防护策略ID列表,精确查询,多个ID用英文逗号(,)分隔。|'."\n" - .'| RuleIds| string|否| 20000001,20000055| 防护规则ID范围,精确查询,多个ID用英文逗号(,)分隔。|'."\n" - .'| PolicyNameLike| string|否|policy_test| 防护策略名称,模糊查询。支持输入中文字符、英文字符(大小写)、数字(0~9)及下划线(_)。|'."\n" - .'| DomainNames| string|否| example.com| 防护域名列表,精确查询,最多输入50个,多个ID用英文逗号(,)分隔。|'."\n" - .'| PolicyType| string|否| default| 是否为默认防护策略。default:默认防护策略。custom:非默认防护策略。|'."\n" - .'| DefenseScenes| string|否| custom_acl| 防护策略精确查询,多个用英文逗号(,)分隔。目前支持以下场景:waf_group:Web基础防护。custom_acl:自定义防护策略。whitelist:白名单。|'."\n" - .'|PolicyStatus| string|否| on| 策略状态。on:开启。off:关闭。|'."\n" - .'| OrderBy| string|否| GmtModified| 排序列,支持排序的字段:GmtModified、PolicyId、PolicyName、PolicyStatus|'."\n" - .'| Desc| Boolean|否| false| 排列顺序,true:倒序。false(默认):正序。|', ], - 'DescribeDcdnWafPolicy' => [ - 'summary' => '调用DescribeDcdnWafPolicy获取指定防护策略详细信息。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'SetDcdnDomainStagingConfig' => [ + 'summary' => '调用SetDcdnDomainStagingConfig设置或修改域名配置(灰度)。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdn2JMMUY'], ], 'parameters' => [ [ - 'name' => 'PolicyId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '防护策略ID,仅支持单个输入。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1000001', - ], + 'schema' => ['description' => '加速域名,多个域名用英文逗号(,)分隔。'."\n", 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'Functions', + 'in' => 'query', + 'schema' => ['description' => '功能列表,格式如下:'."\n" + ."\n" + .'- functionName(功能名称,必填):可配置功能请参见[功能列表](~~410622~~),多个参数之间用半角逗号(,)分隔。'."\n" + ."\n" + .'- argName(参数名称,必填):functionName的配置项(可配置多个配置项)。'."\n" + ."\n" + .'- argValue(参数值,必填):functionName的配置项的取值。'."\n" + ."\n" + .'- parentid(规则条件ID,非必填):通过配置[域名配置功能参数](~~410622~~)中的功能函数condition(规则引擎),可以创建出规则条件(规则条件可以通过识别用户请求中携带的各种参数来匹配和过滤用户请求),每一个规则条件被创建以后都会生成一个对应的[configid](~~410558~~),configid可以被当作ParentId参数被其他功能函数引用,这样规则条件就可以与功能配置一起组合形成更灵活的配置。'."\n" + ."\n" + .'parentId为 -1:表示删除该配置里面已有的规则条件。'."\n" + ."\n" + .' ```'."\n" + .' "functionArgs": [{'."\n" + .' "argName": "功能参数A", '."\n" + .' "argValue": "功能参数A对应的值"'."\n" + .' }, '."\n" + .' {'."\n" + .' "argName": "功能参数B", '."\n" + .' "argValue": "功能参数B对应的值"'."\n" + .' }], '."\n" + .'```'."\n" + ."\n" + .' "functionName": "功能名称",'."\n" + .' "parentId": 选填项,对应引用规则条件的configid'."\n" + .'}]'."\n" + ."\n" + .'不使用parentId的情况下,配置示例如下: 使用函数origin_request_header添加回源HTTP请求头的时候引用了configid=222728944812032的规则条件,请求参数如下:'."\n" + ."\n" + .' ```'."\n" + .' "functionArgs": [{'."\n" + .' "argName": "header_operation_type",'."\n" + .' "argValue": "add"'."\n" + .' }, {'."\n" + .' "argName": "header_name",'."\n" + .' "argValue": "Accept-Encoding"'."\n" + .' }, {'."\n" + .' "argName": "header_value",'."\n" + .' "argValue": "gzip"'."\n" + .' }, {'."\n" + .' "argName": "duplicate",'."\n" + .' "argValue": "off"'."\n" + .' }],'."\n" + .' "functionName": "origin_request_header"'."\n" + .'}]'."\n" + ."\n" + .'```'."\n" + ."\n" + .'使用parentId的情况下,配置示例如下: 使用函数origin_request_header添加回源HTTP请求头的时候引用了configid=222728944812032的规则条件,请求参数如下:'."\n" + ."\n" + .'```'."\n" + .' "functionArgs": [{'."\n" + .' "argName": "header_operation_type",'."\n" + .' "argValue": "add"'."\n" + .' }, {'."\n" + .' "argName": "header_name",'."\n" + .' "argValue": "Accept-Encoding"'."\n" + .' }, {'."\n" + .' "argName": "header_value",'."\n" + .' "argValue": "gzip"'."\n" + .' }, {'."\n" + .' "argName": "duplicate",'."\n" + .' "argValue": "off"'."\n" + .' }],'."\n" + .' "functionName": "origin_request_header",'."\n" + .' "parentId": 222728944812032'."\n" + .'}]'."\n" + .'```'."\n" + ."\n" + .'对一个已经使用了parentId的功能配置删除对parentId的引用,配置示例如下: 函数origin_request_header添加回源HTTP请求头的时候已经引用了configid=222728944812032的规则条件,现在要删掉对规则条件的引用,请求参数如下:'."\n" + ."\n" + .'```'."\n" + .' "functionArgs": [{'."\n" + .' "argName": "header_operation_type",'."\n" + .' "argValue": "add"'."\n" + .' }, {'."\n" + .' "argName": "header_name",'."\n" + .' "argValue": "Accept-Encoding"'."\n" + .' }, {'."\n" + .' "argName": "header_value",'."\n" + .' "argValue": "gzip"'."\n" + .' }, {'."\n" + .' "argName": "duplicate",'."\n" + .' "argValue": "off"'."\n" + .' }],'."\n" + .' "functionName": "origin_request_header",'."\n" + .' "parentId": -1'."\n" + .'}]'."\n" + .'```', 'type' => 'string', 'required' => true, 'example' => ' '."\n" + .'[{"functionArgs": [{"argName": "key","argValue": "Content-Encoding"},{"argName": "value","argValue": "gzip"}],"functionName": "set_resp_header"} ]'], ], ], 'responses' => [ @@ -31782,259 +23537,189 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE', - ], - 'Policy' => [ - 'description' => '防护策略信息。', - 'type' => 'object', - 'properties' => [ - 'PolicyStatus' => [ - 'description' => '防护策略状态,取值:'."\n" - ."\n" - .'- on:开启。'."\n" - ."\n" - .'- off:关闭。', - 'type' => 'string', - 'example' => 'on', - ], - 'DefenseScene' => [ - 'description' => '防护策略类型,目前支持以下场景:'."\n" - ."\n" - .'- waf_group:Web基础防护。'."\n" - ."\n" - .'- custom_acl:自定义防护策略。'."\n" - ."\n" - .'- whitelist:白名单。', - 'type' => 'string', - 'example' => 'waf_group', - ], - 'DomainCount' => [ - 'description' => '使用该防护策略的域名个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '22', - ], - 'RuleConfigs' => [ - 'description' => '该防护策略对应的具体防护规则配置(仅支持Bot场景)。具体请参见[BatchCreateDcdnWafRules](~~BatchCreateDcdnWafRules~~)。', - 'type' => 'string', - 'example' => '{"type":"target_type", "status":"on","config":{"target":"app"},"action":""}', - ], - 'PolicyName' => [ - 'description' => '防护策略名称。', - 'type' => 'string', - 'example' => 'policy_test', - ], - 'PolicyId' => [ - 'description' => '防护策略ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100001', - ], - 'RuleCount' => [ - 'description' => '该防护策略下的防护规则个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '9', - ], - 'GmtModified' => [ - 'description' => '修改时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'example' => '2021-12-29T17:08:45Z', - ], - 'PolicyType' => [ - 'description' => '当前策略是否为默认策略,取值:'."\n" - ."\n" - .'- default:默认策略。'."\n" - ."\n" - .'- custom:非默认策略。', - 'type' => 'string', - 'example' => 'default', - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'InvalidFunctionName.ValueNotSupported', 'errorMessage' => '%s', 'description' => '%s'], + ['errorCode' => 'InvalidArgName.ValueNotSupported', 'errorMessage' => '%s', 'description' => '不支持的参数名称 %s(%s为具体参数名)'], + ['errorCode' => 'InvalidArgValue.Malformed', 'errorMessage' => '%s', 'description' => '%s'], + ['errorCode' => 'InvalidRule.Malformed', 'errorMessage' => '%s', 'description' => '%s'], + ['errorCode' => 'ConfigurationConflicts', 'errorMessage' => 'The staging environment has a configuration in effect. You cannot modify the production environment configuration.', 'description' => '模拟环境有一个配置,不能修改生产环境的配置。'], + ['errorCode' => 'GrayConfigExist', 'errorMessage' => 'A canary configuration already exists under the domain.', 'description' => '域名已经存在其他灰度配置。'], + ['errorCode' => 'InvalidDomain.BelongToConfigGroup', 'errorMessage' => 'The domain is bound to a configuration group. Modify the domain in the configuration group.', 'description' => '这个域名绑定了一个配置组,需要通过修改配置组的配置来修改。'], + ['errorCode' => 'EdgeScriptCountExceedLimit', 'errorMessage' => 'The number of rules exceeds the default limit.', 'description' => '超过默认规则数量限制,如需提升数量,请提交工单咨询'], + ['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' => '未开放JS规则,如有疑问,请提交工单咨询'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"66A98669-CC6E-4F3E-80A6-3014697B11AE\\",\\n \\"Policy\\": {\\n \\"PolicyStatus\\": \\"on\\",\\n \\"DefenseScene\\": \\"waf_group\\",\\n \\"DomainCount\\": 22,\\n \\"RuleConfigs\\": \\"{\\\\\\"type\\\\\\":\\\\\\"target_type\\\\\\", \\\\\\"status\\\\\\":\\\\\\"on\\\\\\",\\\\\\"config\\\\\\":{\\\\\\"target\\\\\\":\\\\\\"app\\\\\\"},\\\\\\"action\\\\\\":\\\\\\"\\\\\\"}\\",\\n \\"PolicyName\\": \\"policy_test\\",\\n \\"PolicyId\\": 100001,\\n \\"RuleCount\\": 9,\\n \\"GmtModified\\": \\"2021-12-29T17:08:45Z\\",\\n \\"PolicyType\\": \\"default\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafPolicyResponse>\\n <RequestId>66A98669-CC6E-4F3E-80A6-3014697B11AE</RequestId>\\n <Policy>\\n <PolicyStatus>on</PolicyStatus>\\n <DefenseScene>waf_group</DefenseScene>\\n <DomainCount>22</DomainCount>\\n <RuleConfigs>{ \\"type\\":\\"target_type\\", \\"status\\":\\"on\\", \\"config\\":{\\"target\\":\\"app\\"}, \\"action\\":\\"\\" }</RuleConfigs>\\n <PolicyName>policy_test</PolicyName>\\n <PolicyId>100001</PolicyId>\\n <RuleCount>9</RuleCount>\\n <GmtModified>2021-12-29T17:08:45Z</GmtModified>\\n <PolicyType>default</PolicyType>\\n </Policy>\\n</DescribeDcdnWafPolicyResponse>","errorExample":""}]', - 'title' => '获取单个防护策略信息', - 'description' => '> 单用户调用频率:20次/秒。', - ], - 'DescribeDcdnWafDomainDetail' => [ - 'summary' => '调用DescribeDcdnWafDomainDetail获取指定域名的防护策略信息。', - 'methods' => [ - 'get', - 'post', + 'title' => '设置或修改域名配置(灰度)', + 'description' => '> 单用户调用频率:30次/秒。', + 'requestParamsDescription' => '某些功能可以设置多条记录,例如:edge_function,当需要更新其中某条记录时,可通过该条记录的ConfigId(Long类型)来指定要修改的配置项。格式如下:'."\n" + .'```'."\n" + .'[{"functionArgs":[{"argName":"enable","argValue":"on"},{"argName":"pri","argValue":"1"},{"argName":"rule","argValue":"yyy"}],"ConfigId":123456,"functionName":"edge_function"}]'."\n" + .'```'."\n" + ."\n" + .'**功能说明**'."\n" + .'所有参数值均按照字符串类型处理。'."\n" + .'| 功能名称 | 参数 |'."\n" + .'| --- | --- |'."\n" + .'| edge_function:边缘函数 | 必填参数:<br />rule:DSL规则。<br />pri:优先级。<br />enable:本条规则是否生效,取值:on或off。<br /> 可选参数:<br />name:规则名称。<br />pos:规则执行位置。DCDN域名仅支持head,不支持foot。<br />brk:命中本条规则后,当前执行位置剩余规则均跳过。<br />option:option管控。<br />grammar:grammar管控。可选值:空、es2、js。<br />jsmode:js域名白单管控。可选值:redirect、bypass。<br /> |', + 'changeSet' => [ + ['createdAt' => '2023-05-25T03:09:10.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2022-12-08T02:03:24.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDcdnDomainStagingConfig'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:SetDcdnDomainStagingConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<SetDcdnDomainStagingConfigResponse>\\r\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</SetDcdnDomainStagingConfigResponse>","errorExample":""}]', + ], + 'SetDcdnFullDomainsBlockIP' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', + 'name' => 'IPList', + 'in' => 'formData', + 'schema' => ['description' => '封禁或解禁IP列表,有多个IP时请用半角逗号(,)分隔,最大支持1000个IP。', 'type' => 'string', 'required' => true, 'example' => '1.XXX.XXX.1,2.XXX.XXX.2'], + ], + [ + 'name' => 'OperationType', + 'in' => 'formData', 'schema' => [ - 'description' => '加速域名,精准匹配,仅支持查询单个域名。', + 'description' => '操作动作。取值:'."\n" + .'- **block**:封禁。'."\n" + .'- **unblock**:解禁。', 'type' => 'string', 'required' => true, - 'example' => 'example.com', + 'example' => 'block', + 'enum' => ['block', 'unblock'], ], ], + [ + 'name' => 'BlockInterval', + 'in' => 'formData', + 'schema' => ['description' => '封禁时长,单位为秒。设置为**0**时表示永久封禁。仅当**OperationType**为**block**时有效。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3000'], + ], + [ + 'name' => 'UpdateType', + 'in' => 'formData', + 'schema' => ['description' => '封禁时间类别。仅当**OperationType**为**block**时有效。取值:'."\n" + ."\n" + .'- **cover**:当前请求是采取配置覆盖方式。'."\n" + .'- **uncover**:采取时间计算比对最长方式。'."\n" + .'- 该参数为空时默认采取配置覆盖方式。', 'type' => 'string', 'required' => false, 'example' => 'cover'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'BEA5625F-8FCF-48F4-851B-CA63946DA630', - ], - 'Domain' => [ - 'description' => '加速域名。', - 'type' => 'object', - 'properties' => [ - 'DomainName' => [ - 'description' => '加速域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'DefenseScenes' => [ - 'description' => '防护策略类型。'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DefenseScene' => [ - 'description' => '防护策略类型,目前支持以下场景:'."\n" - ."\n" - .'- waf_group:Web基础防护。'."\n" - ."\n" - .'- custom_acl:自定义防护策略。'."\n" - ."\n" - .'- whitelist:白名单。', - 'type' => 'string', - 'example' => 'waf_group', - ], - 'PolicyId' => [ - 'description' => '防护策略ID,如果有多个ID,只显示一个。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10000002', - ], - 'PolicyIds' => [ - 'description' => '防护策略ID,多个ID用半角逗号(,)分隔。', - 'type' => 'string', - 'example' => '10000001,10000004', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '结果信息码。'."\n" + ."\n" + .'Code不为0的可能情况:参数不全、参数格式不正确等。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Message' => ['description' => '结果信息。', 'type' => 'string', 'example' => 'OK'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'CB1A380B-09F0-41BB-802B-72F8FD6DA2FE'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'InvaildParameter', 'errorMessage' => 'The specified parameters are invalid.', 'description' => '您提供的参数无效,请检查参数后重试。'], + ], + 403 => [ + ['errorCode' => 'OperationDeniedAccount', 'errorMessage' => 'You are not authorized to perform this operation.', 'description' => '您没有权限执行该操作。'], + ], + 406 => [ + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'key个数超过quota限制'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BEA5625F-8FCF-48F4-851B-CA63946DA630\\",\\n \\"Domain\\": {\\n \\"DomainName\\": \\"example.com\\",\\n \\"DefenseScenes\\": [\\n {\\n \\"DefenseScene\\": \\"waf_group\\",\\n \\"PolicyId\\": 10000002,\\n \\"PolicyIds\\": \\"10000001,10000004\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafDomainDetailResponse>\\n <RequestId>BEA5625F-8FCF-48F4-851B-CA63946DA630</RequestId>\\n <Domain>\\n <DomainName>example.com</DomainName>\\n <DefenseScenes>\\n <DefenseScene>waf_group</DefenseScene>\\n <PolicyId>10000002</PolicyId>\\n <PolicyIds>10000002,10000003</PolicyIds>\\n </DefenseScenes>\\n <DefenseScenes>\\n <DefenseScene>custom_acl</DefenseScene>\\n <PolicyId>10000001</PolicyId>\\n <PolicyIds>10000001,10000004</PolicyIds>\\n </DefenseScenes>\\n </Domain>\\n</DescribeDcdnWafDomainDetailResponse>","errorExample":""}]', - 'title' => '按域名精准查询防护策略', - 'description' => '> 单用户调用频率:20次/秒。', - ], - 'DescribeDcdnWafRules' => [ - 'summary' => '调用DescribeDcdnWafRules查询用户已配置的防护规则详细信息。', - 'methods' => [ - 'get', - 'post', + 'title' => '批量封禁解禁指定域名的IP', + 'summary' => '调用SetDcdnFullDomainsBlockIP可以对指定的IP或IP段,进行封禁解禁操作。', + 'description' => '> 适用于封禁大批量IP,接口支持单次最大1000个IP/IP段。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDcdnFullDomainsBlockIP'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:SetDcdnFullDomainsBlockIP', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": 0,\\n \\"Message\\": \\"OK\\",\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-802B-72F8FD6DA2FE\\"\\n}","errorExample":""},{"type":"xml","example":"<SetDcdnFullDomainsBlockIPResponse>\\n <Code>0</Code>\\n <Message>OK</Message>\\n <RequestId>CB1A380B-09F0-41BB-802B-72F8FD6DA2FE</RequestId>\\n</SetDcdnFullDomainsBlockIPResponse>","errorExample":""}]', + ], + 'SetDcdnUserConfig' => [ + 'summary' => '调用SetDcdnUserConfig设置用户的配置信息。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnBQ0J3E', - ], + 'abilityTreeCode' => '111610', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'QueryArgs', - 'in' => 'query', - 'schema' => [ - 'description' => '查询条件,JSON序列化后的字符串。'."\n" - .'格式如下:```QueryArgs={"PolicyIds":"防护策略ID范围","RuleIds":"防护规则ID范围","RuleNameLike":"防护规则名称","DomainNames":"防护域名","DefenseScenes":"waf_group","RuleStatus":"on","OrderBy":"GmtModified","Desc":"false"}```'."\n" - .'>不传默认查询所有防护规则。', - 'type' => 'string', - 'required' => false, - 'example' => '{"RuleIds":"100001,200002"}', - ], - ], - [ - 'name' => 'PageNumber', + 'name' => 'FunctionId', 'in' => 'query', - 'schema' => [ - 'description' => '页码,默认值**1**,取值范围:**1**~**100000**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '功能ID。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '6'], ], [ - 'name' => 'PageSize', + 'name' => 'Configs', 'in' => 'query', - 'schema' => [ - 'description' => '每页显示的防护规则个数,默认值**20**,取值范围:**1**~**500**之间的任意整数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'example' => '20', - 'default' => '20', - ], + 'schema' => ['description' => '功能参数。'."\n", 'type' => 'string', 'required' => true, 'example' => '\\"argId\\":12,\\"argValue\\":\\"on\\"'], ], ], 'responses' => [ @@ -32042,244 +23727,146 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => '每页显示的防护规则个数,同请求参数中PageSize。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE', - ], - 'PageNumber' => [ - 'description' => '页码,同请求参数中PageNumber。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => '防护规则总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '121', - ], - 'Rules' => [ - 'description' => '防护规则信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'RuleStatus' => [ - 'description' => '防护规则状态,同请求参数QueryArgs中RuleStatus。', - 'type' => 'string', - 'example' => 'on', - ], - 'DefenseScene' => [ - 'description' => '防护策略类型,同请求参数QueryArgs中的DefenseScene。', - 'type' => 'string', - 'example' => 'custom_acl', - ], - 'PolicyId' => [ - 'description' => '防护策略ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200001', - ], - 'GmtModified' => [ - 'description' => '修改时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'example' => '2021-12-29T17:08:45Z', - ], - 'RuleId' => [ - 'description' => '防护规则ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100001', - ], - 'RuleName' => [ - 'description' => '防护规则名称。', - 'type' => 'string', - 'example' => 'rule_1', - ], - 'RuleConfig' => [ - 'description' => '防护规则配置信息。', - 'type' => 'string', - 'example' => '{"action":"monitor","actionExternal":"{}","ccStatus":1,"conditions":[{"key":"URL","opValue":"eq","targetKey":"request_uri","values":"/example"},{"key":"Header","opValue":"eq","subKey":"trt","targetKey":"header.trt","values":"3333"}],"effect":"service","name":"aaa333","origin":"custom","ratelimit":{"interval":5,"status":{"code":404,"count":2,"stat":{"mode":"count","value":2.0}},"target":"remote_addr","threshold":2,"ttl":1800}}'."\n", - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 20,\\n \\"RequestId\\": \\"66A98669-CC6E-4F3E-80A6-3014697B11AE\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 121,\\n \\"Rules\\": [\\n {\\n \\"RuleStatus\\": \\"on\\",\\n \\"DefenseScene\\": \\"custom_acl\\",\\n \\"PolicyId\\": 200001,\\n \\"GmtModified\\": \\"2021-12-29T17:08:45Z\\",\\n \\"RuleId\\": 100001,\\n \\"RuleName\\": \\"rule_1\\",\\n \\"RuleConfig\\": \\"{\\\\\\"action\\\\\\":\\\\\\"monitor\\\\\\",\\\\\\"actionExternal\\\\\\":\\\\\\"{}\\\\\\",\\\\\\"ccStatus\\\\\\":1,\\\\\\"conditions\\\\\\":[{\\\\\\"key\\\\\\":\\\\\\"URL\\\\\\",\\\\\\"opValue\\\\\\":\\\\\\"eq\\\\\\",\\\\\\"targetKey\\\\\\":\\\\\\"request_uri\\\\\\",\\\\\\"values\\\\\\":\\\\\\"/example\\\\\\"},{\\\\\\"key\\\\\\":\\\\\\"Header\\\\\\",\\\\\\"opValue\\\\\\":\\\\\\"eq\\\\\\",\\\\\\"subKey\\\\\\":\\\\\\"trt\\\\\\",\\\\\\"targetKey\\\\\\":\\\\\\"header.trt\\\\\\",\\\\\\"values\\\\\\":\\\\\\"3333\\\\\\"}],\\\\\\"effect\\\\\\":\\\\\\"service\\\\\\",\\\\\\"name\\\\\\":\\\\\\"aaa333\\\\\\",\\\\\\"origin\\\\\\":\\\\\\"custom\\\\\\",\\\\\\"ratelimit\\\\\\":{\\\\\\"interval\\\\\\":5,\\\\\\"status\\\\\\":{\\\\\\"code\\\\\\":404,\\\\\\"count\\\\\\":2,\\\\\\"stat\\\\\\":{\\\\\\"mode\\\\\\":\\\\\\"count\\\\\\",\\\\\\"value\\\\\\":2.0}},\\\\\\"target\\\\\\":\\\\\\"remote_addr\\\\\\",\\\\\\"threshold\\\\\\":2,\\\\\\"ttl\\\\\\":1800}}\\\\n\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafRulesResponse>\\n <TotalCount>121</TotalCount>\\n <Rules>\\n <GmtModified>2021-12-29T17:08:45Z</GmtModified>\\n <PolicyId>200001</PolicyId>\\n <RuleId>100001</RuleId>\\n <RuleName>rule_1</RuleName>\\n <RuleStatus>on</RuleStatus>\\n <RuleConfig>{\\"action\\":\\"monitor\\",\\"actionExternal\\":\\"{}\\",\\"ccStatus\\":1,\\"conditions\\":[{\\"key\\":\\"URL\\",\\"opValue\\":\\"eq\\",\\"targetKey\\":\\"request_uri\\",\\"values\\":\\"/example\\"},{\\"key\\":\\"Header\\",\\"opValue\\":\\"eq\\",\\"subKey\\":\\"trt\\",\\"targetKey\\":\\"header.trt\\",\\"values\\":\\"3333\\"}],\\"effect\\":\\"service\\",\\"name\\":\\"aaa333\\",\\"origin\\":\\"custom\\",\\"ratelimit\\":{\\"interval\\":5,\\"status\\":{\\"code\\":404,\\"count\\":2,\\"stat\\":{\\"mode\\":\\"count\\",\\"value\\":2.0}},\\"target\\":\\"remote_addr\\",\\"threshold\\":2,\\"ttl\\":1800}}</RuleConfig>\\n <DefenseScene>custom_acl</DefenseScene>\\n </Rules>\\n <Rules>\\n <GmtModified>2021-12-19T17:08:45Z</GmtModified>\\n <PolicyId>200001</PolicyId>\\n <RuleId>200002</RuleId>\\n <RuleStatus>off</RuleStatus>\\n <RuleConfig>{\\"action\\":\\"block\\"}</RuleConfig>\\n <DefenseScene>waf_group</DefenseScene>\\n </Rules>\\n <PageNumber>1</PageNumber>\\n <PageSize>20</PageSize>\\n <RequestId>66A98669-CC6E-4F3E-80A6-3014697B11AE</RequestId>\\n</DescribeDcdnWafRulesResponse>","errorExample":""}]', - 'title' => '查询用户配置的防护规则', - 'description' => '> 单用户调用频率:20次/秒。', - 'requestParamsDescription' => '**QueryArgs取值说明**'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidFunctions.Malformed', 'errorMessage' => 'The specified Functions is invalid.', 'description' => '不支持该配置,请重新填写。'], + ['errorCode' => 'InvalidArgValue.Malformed', 'errorMessage' => 'The specified ArgValue is invalid.', 'description' => 'ArgValue错误,请重新填写。'], + ['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => '[%s] is not supported.', 'description' => '不支持该设置。'], + ['errorCode' => 'Invalid%s.Malformed', 'errorMessage' => 'The specified ArgValue [%s] is invalid.', 'description' => '不支持该ArgValue,请填写正确的ArgValue。'], + ], + ], + 'title' => '设置用户配置信息', + 'description' => '>单用户调用频率:30次/秒。', + 'requestParamsDescription' => '功能ID和功能参数取值如下表所示:'."\n" ."\n" - .'| 名称 | 类型|是否必选| 示例值| 描述|'."\n" - .'|------|-----|--------|--------|-----|'."\n" - .'| PolicyIds| string|否| 10000001,10000100| 防护策略ID范围,精确查询,多个ID用英文逗号(,)分隔。|'."\n" - .'| RuleIds| string|否| 100001,200002| 防护规则ID范围,精确查询,多个ID用英文逗号(,)分隔。|'."\n" - .'| RuleNameLike| string|否|rule_1| 防护规则名称,模糊查询。支持输入中文字符、英文字符(大小写)、数字(0~9)及下划线(_),最大输入64个字符。|'."\n" - .'| DomainNames| string|否| example.com| 防护域名列表,精确查询,最多输入50个,多个域名用英文逗号(,)分隔。|'."\n" - .'| DefenseScenes| string|否| custom_acl| 防护策略精确查询,多个用英文逗号(,)分隔。目前支持以下场景:waf\\_group:Web基础防护。custom\\_acl:自定义防护策略。whitelist:白名单。|'."\n" - .'|RuleStatus| string|否| on| 策略状态。on:开启。off:关闭。|'."\n" - .'| OrderBy| string|否| GmtModified| 排序列,支持排序的字段:GmtModified、RuleName、RuleStatus、RuleId和PolicyId。|'."\n" - .'| Desc| Boolean|否| false| 排列顺序。true:倒序。false(默认):正序。|', - ], - 'ModifyDcdnWafGroup' => [ - 'summary' => '调用ModifyDcdnWafGroup修改自定义WAF规则组。', - 'methods' => [ - 'post', - 'get', + .'|FunctionID | 名称 | Configs|'."\n" + .'|-----------|------|--------|'."\n" + .'|6|websocket:Websocket| enabled(12):是否开启,取值:on或off。|'."\n" + .'|16| domain_business_control:域名功能配置| allow_function(22):频次控制、区域封禁、精准访问控制等功能是否向用户开放,取值:on或off。|'."\n" + .'|23| ddos:DDoS| rdomestic(42):中国内地DDoS实例是否开启,取值:on或off。<br>overseas(43):中国香港、中国澳门、中国台湾以及其他国家和地区的DDoS实例是否开启,取值:on或off。|', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDcdnUserConfig'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:SetDcdnUserConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED\\"\\n}","errorExample":""},{"type":"xml","example":"<SetDcdnUserConfigResponse>\\r\\n<RequestId>F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED</RequestId>\\r\\n</SetDcdnUserConfigResponse>","errorExample":""}]', + ], + 'SetRoutineSubdomain' => [ + 'summary' => '调用SetRoutineSubdomain设置边缘函数ER子域。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', - 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '162579', - 'abilityTreeNodes' => [ - 'FEATUREdcdnL8HX1L', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Id', - 'in' => 'formData', - 'schema' => [ - 'description' => '自定义WAF规则组ID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '30000110', - ], - ], - [ - 'name' => 'Name', - 'in' => 'formData', - 'schema' => [ - 'description' => '自定义WAF规则组名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - ], - [ - 'name' => 'Rules', + 'name' => 'Subdomains', 'in' => 'formData', - 'schema' => [ - 'description' => '自定义WAF规则组中规则的增量修改,JSON序列化后的字符串。', - 'type' => 'string', - 'required' => false, - 'example' => '{"All":false,"Op":"del","List":"900109"}', - ], + 'style' => 'json', + 'schema' => ['description' => '子域参数。'."\n" + ."\n" + .'参数格式为:'."\n" + .'```'."\n" + .'Subdomains: ['."\n" + .' "subdomain-test"'."\n" + .']'."\n" + .'```', 'type' => 'object', 'required' => true, 'example' => '["subdomain-test"]'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '79B78B62-9006-5D6A-9DAB-303E134CD7AA', - ], + 'Content' => ['description' => '返回“"Status": "OK"”。', 'type' => 'object', 'example' => ' {"Status": "OK"}'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'WafGroup.Name.Malformed', - 'errorMessage' => 'The specified parameter Name is invalid.', - ], - [ - 'errorCode' => 'WafGroup.NotExist', - 'errorMessage' => 'The specified WAF group does not exist.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => '后端服务器发生错误:%s 。如果重试多次依然报错,请提交工单。'], ], - 403 => [ - [ - 'errorCode' => '%s.NotSupport', - 'errorMessage' => 'The specified resource type %s is not supported.', - ], - [ - 'errorCode' => '%s.OverQuota', - 'errorMessage' => 'The quantity of %s exceeds the quota.', - ], + ], + 'title' => '设置边缘函数ER子域', + 'description' => '- 子域名称全局唯一,不同的RAM用户也不允许创建相同的子域。'."\n" + .' - API调用频率:100次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetRoutineSubdomain'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:SetRoutineSubdomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"79B78B62-9006-5D6A-9DAB-303E134CD7AA\\"\\n}","type":"json"}]', - 'title' => '修改自定义WAF规则组', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"Status\\": \\"OK\\"\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<SetRoutineSubdomainResponse>\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\n<Content>\\n <Status>OK</Status>\\n</Content>\\n</SetRoutineSubdomainResponse>","errorExample":""}]', ], - 'DescribeDcdnWafRule' => [ - 'summary' => '调用DescribeDcdnWafRule获取指定防护规则详细信息。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'StartDcdnDomain' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ - 'name' => 'RuleId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '防护规则ID,仅支持单个输入。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1000001', - ], + 'schema' => ['description' => '加速域名,仅支持启用单个。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ @@ -32287,673 +23874,203 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE', - ], - 'Rule' => [ - 'description' => '防护规则信息。', - 'type' => 'object', - 'properties' => [ - 'RuleStatus' => [ - 'description' => '防护规则状态,取值:'."\n" - ."\n" - .'- on:开启'."\n" - ."\n" - .'- off:关闭', - 'type' => 'string', - 'example' => 'on', - ], - 'DefenseScene' => [ - 'description' => '防护策略类型,目前支持以下场景:'."\n" - ."\n" - .'- waf_group:Web基础防护'."\n" - ."\n" - .'- custom_acl:自定义防护策略'."\n" - ."\n" - .'- whitelist:白名单', - 'type' => 'string', - 'example' => 'custom_acl', - ], - 'PolicyId' => [ - 'description' => '防护策略ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200001', - ], - 'GmtModified' => [ - 'description' => '修改时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'example' => '2021-12-29T17:08:45Z', - ], - 'RuleId' => [ - 'description' => '防护规则ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100001', - ], - 'RuleName' => [ - 'description' => '防护规则名称。', - 'type' => 'string', - 'example' => 'rule_1', - ], - 'RuleConfig' => [ - 'description' => '防护规则配置。', - 'type' => 'string', - 'example' => '{"action":"monitor","actionExternal":"{}","ccStatus":1,"conditions":[{"key":"URL","opValue":"eq","targetKey":"request_uri","values":"/example"},{"key":"Header","opValue":"eq","subKey":"trt","targetKey":"header.trt","values":"3333"}],"effect":"service","name":"aaa333","origin":"custom","ratelimit":{"interval":5,"status":{"code":404,"count":2,"stat":{"mode":"count","value":2.0}},"target":"remote_addr","threshold":2,"ttl":1800}}', - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'RecordCheckNotAvailable', 'errorMessage' => 'The ICP filing interface is unavailable. Please try again later.', 'description' => '备案接口不可用,请稍后重试。'], + ['errorCode' => 'IcpBlack', 'errorMessage' => 'The domain is on the ICP blacklist.', 'description' => '域名在工信部黑名单。'], + ['errorCode' => 'IspBlack', 'errorMessage' => 'The domain is on the ISP blacklist.', 'description' => '域名在阿里云黑名单。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"66A98669-CC6E-4F3E-80A6-3014697B11AE\\",\\n \\"Rule\\": {\\n \\"RuleStatus\\": \\"on\\",\\n \\"DefenseScene\\": \\"custom_acl\\",\\n \\"PolicyId\\": 200001,\\n \\"GmtModified\\": \\"2021-12-29T17:08:45Z\\",\\n \\"RuleId\\": 100001,\\n \\"RuleName\\": \\"rule_1\\",\\n \\"RuleConfig\\": \\"{\\\\\\"action\\\\\\":\\\\\\"monitor\\\\\\",\\\\\\"actionExternal\\\\\\":\\\\\\"{}\\\\\\",\\\\\\"ccStatus\\\\\\":1,\\\\\\"conditions\\\\\\":[{\\\\\\"key\\\\\\":\\\\\\"URL\\\\\\",\\\\\\"opValue\\\\\\":\\\\\\"eq\\\\\\",\\\\\\"targetKey\\\\\\":\\\\\\"request_uri\\\\\\",\\\\\\"values\\\\\\":\\\\\\"/example\\\\\\"},{\\\\\\"key\\\\\\":\\\\\\"Header\\\\\\",\\\\\\"opValue\\\\\\":\\\\\\"eq\\\\\\",\\\\\\"subKey\\\\\\":\\\\\\"trt\\\\\\",\\\\\\"targetKey\\\\\\":\\\\\\"header.trt\\\\\\",\\\\\\"values\\\\\\":\\\\\\"3333\\\\\\"}],\\\\\\"effect\\\\\\":\\\\\\"service\\\\\\",\\\\\\"name\\\\\\":\\\\\\"aaa333\\\\\\",\\\\\\"origin\\\\\\":\\\\\\"custom\\\\\\",\\\\\\"ratelimit\\\\\\":{\\\\\\"interval\\\\\\":5,\\\\\\"status\\\\\\":{\\\\\\"code\\\\\\":404,\\\\\\"count\\\\\\":2,\\\\\\"stat\\\\\\":{\\\\\\"mode\\\\\\":\\\\\\"count\\\\\\",\\\\\\"value\\\\\\":2.0}},\\\\\\"target\\\\\\":\\\\\\"remote_addr\\\\\\",\\\\\\"threshold\\\\\\":2,\\\\\\"ttl\\\\\\":1800}}\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafRuleResponse>\\n <Rule>\\n <GmtModified>2021-12-29T17:08:45Z</GmtModified>\\n <PolicyId>200001</PolicyId>\\n <RuleId>100001</RuleId>\\n <RuleName>rule_1</RuleName>\\n <RuleStatus>on</RuleStatus>\\n <RuleConfig>{\\"action\\":\\"monitor\\",\\"actionExternal\\":\\"{}\\",\\"ccStatus\\":1,\\"conditions\\":[{\\"key\\":\\"URL\\",\\"opValue\\":\\"eq\\",\\"targetKey\\":\\"request_uri\\",\\"values\\":\\"/example\\"},{\\"key\\":\\"Header\\",\\"opValue\\":\\"eq\\",\\"subKey\\":\\"trt\\",\\"targetKey\\":\\"header.trt\\",\\"values\\":\\"3333\\"}],\\"effect\\":\\"service\\",\\"name\\":\\"aaa333\\",\\"origin\\":\\"custom\\",\\"ratelimit\\":{\\"interval\\":5,\\"status\\":{\\"code\\":404,\\"count\\":2,\\"stat\\":{\\"mode\\":\\"count\\",\\"value\\":2.0}},\\"target\\":\\"remote_addr\\",\\"threshold\\":2,\\"ttl\\":1800}}</RuleConfig>\\n <DefenseScene>custom_acl</DefenseScene>\\n </Rule>\\n <RequestId>66A98669-CC6E-4F3E-80A6-3014697B11AE</RequestId>\\n</DescribeDcdnWafRuleResponse>","errorExample":""}]', - 'title' => '获取单个防护规则信息', - 'description' => '> 单用户调用频率:20次/秒。', - ], - 'DescribeDcdnWafPolicyValidDomains' => [ - 'summary' => '调用DescribeDcdnWafPolicyValidDomains查询可被自定义防护策略绑定的域名列表。', - 'methods' => [ - 'get', - 'post', + 'title' => '启用域名', + 'summary' => '调用StartDcdnDomain启用状态为停用的加速域名,将DomainStatus变更为online。', + 'description' => '- 如果您的域名处于非法状态或域名对应账户欠费,您将无法正常调用该接口启用加速域名。'."\n" + .'- 单用户调用频率:30次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartDcdnDomain'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:StartDcdnDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","errorExample":""},{"type":"xml","example":"<StartDcdnDomainResponse>\\r\\n\\t<RequestId>0AEDAF20-4DDF-4165-8750-47FF9C1929C9</RequestId>\\r\\n</StartDcdnDomainResponse>","errorExample":""}]', + ], + 'StartDcdnIpaDomain' => [ + 'summary' => '调用StartDcdnIpaDomain启用状态为停用的加速域名,将DomainStatus变更为online。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ - 'name' => 'DefenseScene', - 'in' => 'query', - 'schema' => [ - 'description' => 'WAF防护策略类型,目前支持以下场景:'."\n" - ."\n" - .'- waf_group:Web基础防护'."\n" - ."\n" - .'- custom_acl:自定义防护策略'."\n" - ."\n" - .'- whitelist:白名单'."\n" - ."\n" - .'- ip_blacklist:IP黑名单。'."\n" - ."\n" - .'- region_block:区域封禁。'."\n" - ."\n" - .'- bot:Bot管理。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'custom_acl', - ], - ], - [ - 'name' => 'DomainNameLike', - 'in' => 'query', - 'schema' => [ - 'description' => '防护域名,支持模糊查询。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => '页码。取值范围为:**1**~**100000**。默认值为**1**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '每页显示的域名个数,默认值**20**,取值范围:**1**~**500**之间的任意整数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'example' => '20', - 'default' => '20', - ], + 'schema' => ['description' => '需要接入全站加速IPA的域名,仅支持单个启用。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => '每页显示的域名个数,同请求参数的PageSize。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92C630', - ], - 'PageNumber' => [ - 'description' => '页码,同请求参数的PageNumber。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => '查询到的域名总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'Domains' => [ - 'description' => '防护域名列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'PolicyName' => [ - 'description' => '防护策略名称。', - 'type' => 'string', - 'example' => 'test1', - ], - 'PolicyId' => [ - 'description' => '防护策略ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1000001', - ], - 'DomainName' => [ - 'description' => '防护域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'PolicyType' => [ - 'description' => '是否为默认防护策略,取值:'."\n" - ."\n" - .'- default:默认'."\n" - ."\n" - .'- custom:非默认', - 'type' => 'string', - 'example' => 'default', - ], - 'Policies' => [ - 'description' => '域名所绑定的策略。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Id' => [ - 'description' => '策略ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10000002', - ], - 'Name' => [ - 'description' => '策略名称。', - 'type' => 'string', - 'example' => 'test2', - ], - 'Type' => [ - 'description' => '策略类型。', - 'type' => 'string', - 'example' => 'custom', - ], - ], - ], - 'required' => false, - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'RecordCheckNotAvailable', 'errorMessage' => 'The ICP filing interface is unavailable. Please try again later.', 'description' => '备案接口不可用,请稍后重试。'], + ['errorCode' => 'IcpBlack', 'errorMessage' => 'The domain is on the ICP blacklist.', 'description' => '域名在工信部黑名单。'], + ['errorCode' => 'IspBlack', 'errorMessage' => 'The domain is on the ISP blacklist.', 'description' => '域名在阿里云黑名单。'], + ], + 403 => [ + ['errorCode' => 'DcdnIpaServiceNotFound', 'errorMessage' => 'The DCDN IPA service has not been activated.', 'description' => '没有开通DCDN IPA服务。'], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"PageSize\\": 20,\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92C630\\",\\n \\"PageNumber\\": 1,\\n \\"TotalCount\\": 2,\\n \\"Domains\\": [\\n {\\n \\"PolicyName\\": \\"test1\\",\\n \\"PolicyId\\": 1000001,\\n \\"DomainName\\": \\"example.com\\",\\n \\"PolicyType\\": \\"default\\",\\n \\"Policies\\": [\\n {\\n \\"Id\\": 10000002,\\n \\"Name\\": \\"test2\\",\\n \\"Type\\": \\"custom\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafPolicyValidDomainsResponse>\\n <PageSize>20</PageSize>\\n <RequestId>3C6CCEC4-6B88-4D4A-93E4-D47B3D92C630</RequestId>\\n <PageNumber>1</PageNumber>\\n <TotalCount>2</TotalCount>\\n <Domains>\\n <PolicyName>test1</PolicyName>\\n <PolicyId>1000001</PolicyId>\\n <DomainName>example.com</DomainName>\\n <PolicyType>default</PolicyType>\\n <Policies>\\n <Id>10000002</Id>\\n <Name>test2</Name>\\n <Type>custom</Type>\\n </Policies>\\n </Domains>\\n</DescribeDcdnWafPolicyValidDomainsResponse>","errorExample":""}]', - 'title' => '查询可被自定义防护策略绑定的域名', - 'description' => '> 单用户调用频率:20次/秒。', - ], - 'DescribeDcdnWafFilterInfo' => [ - 'summary' => '调用DescribeDcdnWafFilterInfo查询自定义防护规则中匹配条件的匹配字段、逻辑符和匹配内容等信息。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + ['errorCode' => 'NoResource', 'errorMessage' => 'The required port has no resources, please submit a ticket.', 'description' => '所需端口没有资源,请提交工单。'], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', + 'title' => '启用停用IPA服务的加速域名', + 'description' => '> '."\n" + .'> - 如果您的域名处于非法状态或域名对应账户欠费,您将无法正常调用该接口启用加速域名。'."\n" + .'>- 单用户调用频率:20次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartDcdnIpaDomain'], ], ], - 'parameters' => [ + 'ramActions' => [ [ - 'name' => 'DefenseScenes', - 'in' => 'query', - 'schema' => [ - 'description' => '防护策略类型列表,多个用逗号(,)分隔。目前支持以下场景:'."\n" - .'- waf_group:Web基础防护'."\n" - ."\n" - .'- custom_acl:自定义防护策略'."\n" - ."\n" - .'- whitelist:白名单'."\n" - ."\n" - .'>不传时,代表返回全部信息。', - 'type' => 'string', - 'required' => false, - 'example' => 'custom_acl', - ], - ], - [ - 'name' => 'Language', - 'in' => 'query', - 'schema' => [ - 'description' => '设置返回信息语言。取值范围:'."\n" - ."\n" - .'- en(默认):英文'."\n" - ."\n" - .'- cn:简体中文'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '153ca2cd-3c01-44be-204c-64dbc6c88630', - ], - 'Content' => [ - 'description' => '查询到的信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DefenseScene' => [ - 'description' => '防护策略类型,同请求参数的DefenseScene。', - 'type' => 'string', - 'example' => 'custom_acl', - ], - 'Fields' => [ - 'description' => '匹配条件信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ExtendField' => [ - 'description' => '匹配字段的扩展tip,无此字段或此字段为空表示无扩展字段。', - 'type' => 'string', - 'example' => '自定义Header', - ], - 'MatchField' => [ - 'description' => '匹配字段。', - 'type' => 'string', - 'example' => 'Header', - ], - 'LogicalSymbol' => [ - 'description' => '逻辑符。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => '可输入的匹配内容个数,取值:'."\n" - ."\n" - .'- multi:可输入多个匹配内容。'."\n" - ."\n" - .'- single:仅可输入单个匹配内容。'."\n" - ."\n" - .'- none:不能输入。', - 'type' => 'string', - 'example' => 'multi', - ], - 'Symbol' => [ - 'description' => '代码内部传给后端逻辑符。', - 'type' => 'string', - 'example' => 'match-one', - ], - 'Tip' => [ - 'description' => '匹配内容中显示的提示信息。', - 'type' => 'string', - 'example' => '可以输入多个,最多50个,按回车键确认', - ], - 'Attributes' => [ - 'description' => '可设置的属性,位域变量,具体内容见下表<br>例:1(0000 0001)表示可开启大小写敏感,不可开启流式匹配;3(0000 0011)表示可开启大小写敏感,也可开启流式匹配'."\n" - ."\n" - .'- 位(低位到高位)- 描述'."\n" - .'- 1 - 大小写敏感'."\n" - .'- 2 - 流式匹配'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'MaxLength' => [ - 'description' => '匹配内容可输入的最大个数限制,根据Type取值不同,该参数取值如下:'."\n" - ."\n" - .'- 取值为**multi**时,表示可输入的最大个数限制。'."\n" - ."\n" - .'- 取值为**single**时,该参数为1。'."\n" - ."\n" - .'- 取值为**none**时,该参数为0。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'Description' => [ - 'description' => '控制台显示逻辑符。', - 'type' => 'string', - 'example' => '等于多值之一', - ], - 'Regexp' => [ - 'description' => '正则表达式。', - 'type' => 'object', - 'properties' => [ - 'Pattern' => [ - 'description' => '正则表达式。', - 'type' => 'string', - 'example' => '^\\S+$', - ], - 'ErrMsg' => [ - 'description' => '匹配不上正则表达式的错误信息。', - 'type' => 'string', - 'example' => '字段不能为空', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:StartDcdnIpaDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"153ca2cd-3c01-44be-204c-64dbc6c88630\\",\\n \\"Content\\": [\\n {\\n \\"DefenseScene\\": \\"custom_acl\\",\\n \\"Fields\\": [\\n {\\n \\"ExtendField\\": \\"自定义Header\\",\\n \\"MatchField\\": \\"Header\\",\\n \\"LogicalSymbol\\": [\\n {\\n \\"Type\\": \\"multi\\",\\n \\"Symbol\\": \\"match-one\\",\\n \\"Tip\\": \\"可以输入多个,最多50个,按回车键确认\\",\\n \\"Attributes\\": 1,\\n \\"MaxLength\\": 50,\\n \\"Description\\": \\"等于多值之一\\",\\n \\"Regexp\\": {\\n \\"Pattern\\": \\"^\\\\\\\\S+$\\",\\n \\"ErrMsg\\": \\"字段不能为空\\"\\n }\\n }\\n ]\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafFilterInfoResponse>\\n <RequestId>153ca2cd-3c01-44be-204c-64dbc6c88630</RequestId>\\n <Content>\\n <DefenseScene>custom_acl</DefenseScene>\\n <Fields>\\n <ExtendField>自定义Header</ExtendField>\\n <MatchField>Header</MatchField>\\n <LogicalSymbol>\\n <Type>multi</Type>\\n <Symbol>match-one</Symbol>\\n <Tip>可以输入多个,最多50个,按回车键确认</Tip>\\n <Attributes>1</Attributes>\\n <MaxLength>50</MaxLength>\\n <Description>等于多值之一</Description>\\n <Regexp>\\n <Pattern>^\\\\S+$</Pattern>\\n <ErrMsg>字段不能为空</ErrMsg>\\n </Regexp>\\n </LogicalSymbol>\\n </Fields>\\n </Content>\\n</DescribeDcdnWafFilterInfoResponse>","errorExample":""}]', - 'title' => '获取自定义防护规则的匹配条件信息', - 'description' => '> 单用户调用频率:20次/秒。', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","errorExample":""},{"type":"xml","example":"<StartDcdnIpaDomainResponse>\\r\\n\\t<RequestId>0AEDAF20-4DDF-4165-8750-47FF9C1929C9</RequestId>\\r\\n</StartDcdnIpaDomainResponse>\\r\\n\\t\\r\\n","errorExample":""}]', ], - 'DescribeDcdnWafSpecInfo' => [ - 'summary' => '调用DescribeDcdnWafSpecInfo查询使用的DCDN WAF版本信息。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'StopDcdnDomain' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], + ], + 'parameters' => [ + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '加速域名,仅支持停用单个。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Edition' => [ - 'description' => ' WAF版本信息。', - 'type' => 'string', - 'example' => 'dcdnwaf_afterpay', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '7281593a-f414-42c1-b7ba-2ce65e21cc00', - ], - 'SpecInfos' => [ - 'description' => '支持的防护策略类型及防护规则配置信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DefenseScene' => [ - 'description' => '防护策略类型,目前支持以下场景:'."\n" - ."\n" - .'- waf_group:Web基础防护。'."\n" - ."\n" - .'- custom_acl:自定义防护策略。'."\n" - ."\n" - .'- whitelist:白名单。'."\n" - ."\n" - .'- ip_blacklist:IP黑名单。'."\n" - ."\n" - .'- region_block:区域封禁。'."\n" - ."\n" - .'- bot:Bot管理。', - 'type' => 'string', - 'example' => 'custom_acl', - ], - 'Configs' => [ - 'description' => '防护规则对应的配置信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Value' => [ - 'description' => '防护规则对应的配置表达式值。', - 'type' => 'string', - 'example' => 'on', - ], - 'Config' => [ - 'description' => '防护规则对应的配置代码。', - 'type' => 'string', - 'example' => 'enable', - ], - 'Expr' => [ - 'description' => '防护规则对应的配置表达式。', - 'type' => 'string', - 'example' => 'equal', - ], - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Edition\\": \\"dcdnwaf_afterpay\\",\\n \\"RequestId\\": \\"7281593a-f414-42c1-b7ba-2ce65e21cc00\\",\\n \\"SpecInfos\\": [\\n {\\n \\"DefenseScene\\": \\"custom_acl\\",\\n \\"Configs\\": [\\n {\\n \\"Value\\": \\"on\\",\\n \\"Config\\": \\"enable\\",\\n \\"Expr\\": \\"equal\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafSpecInfoResponse>\\n <RequestId>7281593a-f414-42c1-b7ba-2ce65e21cc00</RequestId>\\n <Edition>dcdnwaf_afterpay</Edition>\\n <SpecInfos>\\n <DefenseScene>custom_acl</DefenseScene>\\n <Configs>\\n <Config>enable</Config>\\n <Expr>equal</Expr>\\n <Value>on</Value>\\n </Configs>\\n <Configs>\\n <Code>custom_rules_number</Code>\\n <Expr>equal</Expr>\\n <Value>20</Value>\\n </Configs>\\n </SpecInfos>\\n <SpecInfos>\\n <DefenseScene>waf_group</DefenseScene>\\n <Configs>\\n <Config>enable</Config>\\n <Expr>equal</Expr>\\n <Value>on</Value>\\n </Configs>\\n </SpecInfos>\\n <SpecInfos>\\n <DefenseScene>whitelist</DefenseScene>\\n <Configs>\\n <Config>enable</Config>\\n <Expr>equal</Expr>\\n <Value>on</Value>\\n </Configs>\\n <Configs>\\n <Config>custom_rules_number</Config>\\n <Expr>equal</Expr>\\n <Value>20</Value>\\n </Configs>\\n </SpecInfos>\\n</DescribeDcdnWafSpecInfoResponse>","errorExample":""}]', - 'title' => '查询WAF版本信息', - 'description' => '> 单用户调用频率:20次/秒。', - ], - 'DescribeDcdnWafService' => [ - 'summary' => '调用DescribeDcdnWafService查询DCDN WAF服务状态,包括服务开通时间、版本信息、当前业务状态、请求数计费方式、规则数计费方式等。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], + 'title' => '停用域名', + 'summary' => '调用StopDcdnDomain停用某个加速域名,将DomainStatus变更为offline。', + 'description' => '> - 停用加速域名后,加速域名的配置信息仍然会保留,但是阿里云DCDN将停止为该域名提供加速服务,且该域名会被解析到无效地址“offline.***.com”,无法被继续访问。'."\n" + .'>- 单用户调用频率:30次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-10-27T01:22:34.000Z', 'description' => '错误码发生变更'], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '133730', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZA9EPX', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopDcdnDomain'], ], - 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '业务状态,取值:'."\n" - ."\n" - .'- Normal:正常'."\n" - ."\n" - .'- WaitForExpire:等待停机'."\n" - ."\n" - .'- Expired:已过期'."\n" - ."\n" - .'- Released:释放', - 'type' => 'string', - 'example' => 'Normal', - ], - 'RequestBillingType' => [ - 'description' => '请求数计费方式。', - 'type' => 'string', - 'example' => 'dcdn_waf_req', - ], - 'Edition' => [ - 'description' => 'WAF版本信息。', - 'type' => 'string', - 'example' => 'dcdnwaf_afterpay', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '4A95CA90-E0F2-1BF6-99E0-8C1510CAF649', - ], - 'OpeningTime' => [ - 'description' => '服务开通时间。', - 'type' => 'string', - 'example' => '2021-09-26T16:00:00Z', - ], - 'Enabled' => [ - 'description' => '服务开通状态。'."\n" - ."\n" - .'- on:开通'."\n" - .'- off:未开通', - 'type' => 'string', - 'example' => 'on', - ], - 'RuleBillingType' => [ - 'description' => '规则数计费方式,按SeCU数量计费。', - 'type' => 'string', - 'example' => 'dcdn_waf_rule', - ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:StopDcdnDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Status\\": \\"Normal\\",\\n \\"RequestBillingType\\": \\"dcdn_waf_req\\",\\n \\"Edition\\": \\"dcdnwaf_afterpay\\",\\n \\"RequestId\\": \\"4A95CA90-E0F2-1BF6-99E0-8C1510CAF649\\",\\n \\"OpeningTime\\": \\"2021-09-26T16:00:00Z\\",\\n \\"Enabled\\": \\"on\\",\\n \\"RuleBillingType\\": \\"dcdn_waf_rule\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafServiceResponse>\\n <RequestId>4A95CA90-E0F2-1BF6-99E0-8C1510CAF649</RequestId>\\n <RuleBillingType>dcdn_waf_rule</RuleBillingType>\\n <OpeningTime>2022-01-13T02:30:55Z</OpeningTime>\\n <RequestBillingType>dcdn_waf_req</RequestBillingType>\\n <Edition>dcdnwaf_afterpay</Edition>\\n <Status>Normal</Status>\\n <Enabled>on</Enabled>\\n</DescribeDcdnWafServiceResponse>","errorExample":""}]', - 'title' => '查询WAF服务状态', - 'description' => '> 单用户调用频率:20次/秒。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","errorExample":""},{"type":"xml","example":"<StopDcdnDomainResponse>\\r\\n\\t<RequestId>0AEDAF20-4DDF-4165-8750-47FF9C1929C9</RequestId>\\r\\n</StopDcdnDomainResponse>","errorExample":""}]', ], - 'DescribeDcdnWafGeoInfo' => [ - 'summary' => '调用DescribeDcdnWafGeoInfo查询WAF区域封禁功能支持的国家和地区。', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'StopDcdnIpaDomain' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdn2JMMUY'], ], 'parameters' => [ [ - 'name' => 'Language', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => '设置返回信息语言,取值:'."\n" - ."\n" - .'- cn:中文'."\n" - ."\n" - .'- en:英文', - 'type' => 'string', - 'required' => true, - 'example' => 'cn', - ], + 'schema' => ['description' => '已经接入全站加速IPA的域名,仅支持单个停用。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ @@ -32961,154 +24078,102 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE', - ], - 'Content' => [ - 'description' => '国家地区信息分类。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => '区域类型。'."\n" - ."\n" - .'- CN:中国境内。'."\n" - ."\n" - .'- Other:中国境外。', - 'type' => 'string', - 'example' => 'CN', - ], - 'Continents' => [ - 'description' => '国家地区信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Name' => [ - 'description' => '国家地区所属大区。', - 'type' => 'string', - 'example' => '中国境内', - ], - 'Regions' => [ - 'description' => '地区信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Name' => [ - 'description' => '国家地区名称。', - 'type' => 'string', - 'example' => '北京市', - ], - 'Value' => [ - 'description' => '国家地区代码值。', - 'type' => 'string', - 'example' => '110000', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '15C66C7B-671A-4297-9187-2C4477247A74'], ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"66A98669-CC6E-4F3E-80A6-3014697B11AE\\",\\n \\"Content\\": [\\n {\\n \\"Type\\": \\"CN\\",\\n \\"Continents\\": [\\n {\\n \\"Name\\": \\"中国境内\\",\\n \\"Regions\\": [\\n {\\n \\"Name\\": \\"北京市\\",\\n \\"Value\\": \\"110000\\"\\n }\\n ]\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafGeoInfoResponse>\\n<RequestId>66A98669-CC6E-4F3E-80A6-3014697B11AE</RequestId>\\n<Content>\\n <Type>CN</Type>\\n <Continent>\\n <Name>中国境内</Name>\\n <Regions>\\n <Name>北京市</Name>\\n <Value>110000</Value>\\n </Regions>\\n <Regions>\\n <Name>中国台湾</Name>\\n <Value>TW</Value>\\n </Regions>\\n </Continent>\\n</Content>\\n<Content>\\n <Type>Other</Type>\\n <Continent>\\n <Name>欧洲</Name>\\n <Regions>\\n <Name>安道尔共和国</Name>\\n <Value>AD</Value>\\n </Regions>\\n <Regions>\\n <Name>阿尔巴尼亚</Name>\\n <Value>AL</Value>\\n </Regions>\\n </Continent>\\n</Content>\\n</DescribeDcdnWafGeoInfoResponse>","errorExample":""}]', - 'title' => '查询WAF区域封禁支持的国家和地区', - 'description' => '> 单用户调用频率:20次/秒。', + 'errorCodes' => [ + 403 => [ + ['errorCode' => 'DcdnIpaServiceNotFound', 'errorMessage' => 'The DCDN IPA service has not been activated.', 'description' => '没有开通DCDN IPA服务。'], + ], + ], + 'title' => '停用开启IPA服务的加速域名', + 'summary' => '调用StopDcdnIpaDomain停用某个加速域名,将DomainStatus变更为offline。', + 'description' => '> - 如果您停用加速域名后,加速域名的信息仍保留。针对该条加速域名的请求,系统将做自动回源处理。'."\n" + .'> - 单用户调用频率:20次/秒。', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnWafUsageData' => [ - 'summary' => '调用DescribeDcdnWafUsageData查询WAF用量数据。', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopDcdnIpaDomain'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:StopDcdnIpaDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A74\\"\\n}","errorExample":""},{"type":"xml","example":"<StopDcdnIpaDomainResponse>\\r\\n\\t<RequestId>15C66C7B-671A-4297-9187-2C4477247A74</RequestId>\\r\\n</StopDcdnIpaDomainResponse>\\r\\n\\t\\r\\n","errorExample":""}]', + ], + 'TagDcdnResources' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '查询域名。若参数为空,默认返回所有加速域名。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '获取数据起始时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。', - 'type' => 'string', - 'required' => false, - 'example' => '2018-09-30T16:00:00Z', - ], - ], - [ - 'name' => 'EndTime', + 'name' => 'ResourceType', 'in' => 'query', 'schema' => [ - 'description' => '获取数据结束时间。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'."\n" - ."\n" - .'>结束时间需大于起始时间。', + 'description' => '资源类型。固定值:**DOMAIN**。', 'type' => 'string', - 'required' => false, - 'example' => '2018-10-01T16:00:00Z', + 'required' => true, + 'example' => 'DOMAIN', + 'enum' => ['DOMAIN'], ], ], [ - 'name' => 'Interval', + 'name' => 'ResourceId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '查询数据的时间粒度,单位为秒。'."\n" - ."\n" - .'根据单次查询的最大时间跨度不同,该参数支持300(5分钟)、3600(1小时)和86400(1天)取值。', - 'type' => 'string', - 'required' => false, - 'example' => '300', + 'description' => '资源ID列表。最多可输入 50 个资源 ID。', + 'type' => 'array', + 'items' => ['description' => '资源ID。', 'type' => 'string', 'required' => false, 'example' => 'example.com'], + 'required' => true, + 'example' => 'example.com', + 'maxItems' => 51, ], ], [ - 'name' => 'SplitBy', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '查询结果分组方式。取值:'."\n" - ."\n" - .'- domain:按加速域名分组。'."\n" - ."\n" - .'- 参数为空(默认):查询结果不分组。', - 'type' => 'string', - 'required' => false, - 'example' => 'domain', + 'description' => '标签列表。最多可输入 20 个标签。', + 'type' => 'array', + 'items' => [ + 'description' => '标签解释。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签键。', 'type' => 'string', 'required' => true, 'example' => 'env'], + 'Value' => ['description' => '标签值。', 'type' => 'string', 'required' => false, 'example' => 'value'], + ], + 'required' => false, + ], + 'required' => true, + 'maxItems' => 21, ], ], ], @@ -33117,830 +24182,559 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '结束时间。', - 'type' => 'string', - 'example' => '2018-10-01T16:00:00Z', - ], - 'StartTime' => [ - 'description' => '开始时间。', - 'type' => 'string', - 'example' => '2018-09-30T16:00:00Z', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-802B-72F8FD6DA2FE', - ], - 'WafUsageData' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'WafUsageDataItem' => [ - 'description' => '加速域名使用WAF信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ObserveCnt' => [ - 'description' => '观察的请求数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '300', - ], - 'Domain' => [ - 'description' => '加速域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'BlockCnt' => [ - 'description' => '拦截的请求数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '300', - ], - 'AccessCnt' => [ - 'description' => '正常访问的请求数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '600', - ], - 'TimeStamp' => [ - 'description' => '时间片起始时刻。', - 'type' => 'string', - 'example' => '2018-09-30T16:00:00Z', - ], - 'SecCu' => [ - 'description' => '产生的SeCU计量单元数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '50', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '97C68796-EB7F-4D41-9D5B-12B909D76508'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - 'errorCode' => 'InvalidStartTime.Malformed', - 'errorMessage' => 'The specified StartTime parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidEndTime.Malformed', - 'errorMessage' => 'The specified EndTime is invalid.', - ], - [ - 'errorCode' => 'InvalidTime.Malformed', - 'errorMessage' => 'Specified StartTime or EndTime is malformed.', - ], - [ - 'errorCode' => 'InvalidEndTime.Mismatch', - 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', - ], - [ - 'errorCode' => 'InvalidTimeSpan', - 'errorMessage' => 'The time span exceeds the limit.', - ], - [ - 'errorCode' => 'InvalidStartTime.ValueNotSupported', - 'errorMessage' => 'The specified StartTime is invalid.', - ], + ['errorCode' => 'InvalidRegionId.Malformed', 'errorMessage' => 'The specified RegionId is invalid.', 'description' => 'RegionId参数非法。'], + ['errorCode' => 'Resource.NotExist', 'errorMessage' => 'The resource does not exist.', 'description' => '资源不存在。'], + ['errorCode' => 'TagKeyIsInvalid', 'errorMessage' => 'The specified TagKey is invalid.', 'description' => 'TagKey非法。'], + ['errorCode' => 'TooManyTags', 'errorMessage' => 'You have entered too many tags.', 'description' => 'tag太多了,请重新输入。'], + ['errorCode' => 'TagValueIsInvalid', 'errorMessage' => 'The specified TagValue is invalid.', 'description' => 'TagValue非法,请重新输入。'], + ['errorCode' => 'TagKeyDuplicated', 'errorMessage' => 'The specified TagKey is duplicated.', 'description' => 'TagKey是重复的。'], + ['errorCode' => 'TagIsInvalid', 'errorMessage' => 'The number of Tag exceeds 20.', 'description' => 'Tag超过20个了。'], + ['errorCode' => 'ResourceIdIsInvalid', 'errorMessage' => 'The number of ResourceId exceeds 50.', 'description' => 'ResourceId超过50个了。'], + ['errorCode' => 'SystemTagIsInvalid', 'errorMessage' => 'The number of System Tag exceeds 50.', 'description' => '系统Tag超过50个了。'], + ['errorCode' => 'CustomTagIsInvalid', 'errorMessage' => 'The number of Custom Tag exceeds 20.', 'description' => 'Tag个数超过20个了。'], ], ], - 'staticInfo' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2018-10-01T16:00:00Z\\",\\n \\"StartTime\\": \\"2018-09-30T16:00:00Z\\",\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-802B-72F8FD6DA2FE\\",\\n \\"WafUsageData\\": {\\n \\"WafUsageDataItem\\": [\\n {\\n \\"ObserveCnt\\": 300,\\n \\"Domain\\": \\"example.com\\",\\n \\"BlockCnt\\": 300,\\n \\"AccessCnt\\": 600,\\n \\"TimeStamp\\": \\"2018-09-30T16:00:00Z\\",\\n \\"SecCu\\": 50\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnWafUsageDataResponse>\\n <RequestId>CB1A380B-09F0-41BB-802B-72F8FD6DA2FE</RequestId>\\n <WafUsageData>\\n <TimeStamp>2018-09-30T16:00:00Z</TimeStamp>\\n <Domain>example.com</Domain>\\n <SecCu>50</SecCu>\\n <AccessCnt>600</AccessCnt>\\n <BlockCnt>300</BlockCnt>\\n <ObserveCnt>300</ObserveCnt>\\n </WafUsageData>\\n <WafUsageData>\\n <TimeStamp>2018-09-30T16:05:00Z</TimeStamp>\\n <Domain>example.com</Domain>\\n <SecCu>50</SecCu>\\n <AccessCnt>600</AccessCnt>\\n <BlockCnt>300</BlockCnt>\\n <ObserveCnt>300</ObserveCnt>\\n </WafUsageData>\\n</DescribeDcdnWafUsageDataResponse>","errorExample":""}]', - 'title' => '查询WAF用量数据', - 'description' => '> '."\n" - .'> - 单用户调用频率: 10次/秒'."\n" - .'> - 支持查询的最小时间粒度为5分钟;查询的最大时间跨度为31天;可查询最大历史数据时间范围为90天。', - ], - 'DescribeDcdnWafGroups' => [ - 'summary' => '调用DescribeDcdnWafGroups查询自定义WAF规则组列表。', - 'methods' => [ - 'get', - 'post', + 'title' => '添加资源标签', + 'summary' => '调用TagDcdnResources添加资源标签。', + 'description' => '> 单用户调用频率:100次/秒。 ', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-07-25T12:33:57.000Z', 'description' => '响应参数发生变更'], + ['createdAt' => '2023-01-04T01:53:11.000Z', 'description' => '响应参数发生变更'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'TagDcdnResources'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:TagDcdnResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"97C68796-EB7F-4D41-9D5B-12B909D76508\\"\\n}","errorExample":""},{"type":"xml","example":"<TagDcdnResourcesResponse>\\r\\n<RequestId>97C68796-EB7F-4D41-9D5B-12B909D76508</RequestId>\\r\\n</TagDcdnResourcesResponse>","errorExample":""}]', + ], + 'UntagDcdnResources' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '162567', - 'abilityTreeNodes' => [ - 'FEATUREdcdnL8HX1L', - ], + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ - 'name' => 'Language', + 'name' => 'ResourceType', 'in' => 'query', - 'allowEmptyValue' => true, 'schema' => [ - 'description' => '语言类型,将以此语言返回。取值范围:'."\n" - .'- **en**:英文(默认)。'."\n" - .'- **zh**:中文。', + 'description' => '资源类型。固定值:**DOMAIN**。', 'type' => 'string', - 'required' => false, - 'example' => 'zh', + 'required' => true, + 'example' => 'DOMAIN', + 'enum' => ['DOMAIN'], ], ], [ - 'name' => 'QueryArgs', + 'name' => 'All', 'in' => 'query', - 'schema' => [ - 'description' => '查询条件,JSON序列化后的字符串。格式如下:'."\n" - .'`QueryArgs={"PolicyIds":"防护策略ID范围","RuleIds":"防护规则ID范围","RuleNameLike":"防护规则名称","DomainNames":"防护域名","DefenseScenes":"waf_group","RuleStatus":"on","OrderBy":"GmtModified","Desc":"false"}`'."\n" - .'>不传默认查询所有防护规则。', - 'type' => 'string', - 'required' => false, - 'example' => '{"RuleIds":"100001,200002"}', - ], + 'schema' => ['description' => '删除所有标签。取值:'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'默认取值为**false**。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'PageNumber', + 'name' => 'ResourceId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '当前页码,默认值**1**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', + 'description' => '资源ID。N的取值范围:**1**~**50**。', + 'type' => 'array', + 'items' => ['description' => '资源ID。', 'type' => 'string', 'required' => false, 'example' => 'example***.com'], + 'required' => true, + 'example' => 'example.com', + 'maxItems' => 51, ], ], [ - 'name' => 'PageSize', + 'name' => 'TagKey', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '分页大小,默认**20**。', - 'type' => 'integer', - 'format' => 'int32', + 'description' => '标签键。N的取值范围:**1**~**20**。', + 'type' => 'array', + 'items' => ['description' => '标签键。', 'type' => 'string', 'required' => false, 'example' => 'env'], 'required' => false, - 'example' => '20', - 'default' => '20', + 'example' => 'env', + 'maxItems' => 21, ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], - 'TotalCount' => [ - 'description' => 'WAF规则组总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '16', - ], - 'WafGroups' => [ - 'description' => 'WAF规则组列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'WAF规则组列表。', - 'type' => 'object', - 'properties' => [ - 'GmtModified' => [ - 'description' => '修改时间。', - 'type' => 'string', - 'example' => '2020-04-12 22:25:11', - ], - 'Id' => [ - 'description' => '自定义WAF规则组ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '30000156', - ], - 'Name' => [ - 'description' => 'WAF规则名称。', - 'type' => 'string', - 'example' => 'DCDN-test-operation-reports-1', - ], - 'RuleCount' => [ - 'description' => '规则数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '452', - ], - 'TemplateId' => [ - 'description' => '模板ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1012', - ], - 'Subscribe' => [ - 'description' => '是否开启订阅。取值范围:'."\n" - .'- **on**:开启订阅。'."\n" - .'- **off**:关闭订阅。', - 'type' => 'string', - 'example' => 'on', - ], - 'Policies' => [ - 'description' => '绑定该WAF规则组的策略。', - 'type' => 'array', - 'items' => [ - 'description' => '绑定该WAF规则组的策略。', - 'type' => 'object', - 'properties' => [ - 'Id' => [ - 'description' => '策略ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '30000165', - ], - 'Name' => [ - 'description' => '策略名称。', - 'type' => 'string', - 'example' => 'wasm-testmaster', - ], - 'Type' => [ - 'description' => '策略类型。取值范围:'."\n" - ."\n" - .'- **custom**:自定义策略。'."\n" - .'- **default**:默认策略。', - 'type' => 'string', - 'example' => 'default', - ], - ], - ], - ], - ], - ], - ], - 'PageNumber' => [ - 'description' => '页码,默认值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '分页大小,默认**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '97C68796-EB7F-4D41-9D5B-12B909D76508'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'TagIsInvalid', 'errorMessage' => 'The number of Tag exceeds 20.', 'description' => 'Tag超过20个了。'], + ['errorCode' => 'ResourceIdIsInvalid', 'errorMessage' => 'The number of ResourceId exceeds 50.', 'description' => 'ResourceId超过50个了。'], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\",\\n \\"TotalCount\\": 16,\\n \\"WafGroups\\": [\\n {\\n \\"GmtModified\\": \\"2020-04-12 22:25:11\\",\\n \\"Id\\": 30000156,\\n \\"Name\\": \\"DCDN-test-operation-reports-1\\",\\n \\"RuleCount\\": 452,\\n \\"TemplateId\\": 1012,\\n \\"Subscribe\\": \\"on\\",\\n \\"Policies\\": [\\n {\\n \\"Id\\": 30000165,\\n \\"Name\\": \\"wasm-testmaster\\",\\n \\"Type\\": \\"default\\"\\n }\\n ]\\n }\\n ],\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 20\\n}","type":"json"}]', - 'title' => '查询自定义WAF规则组列表', - ], - 'DescribeDcdnWafGroup' => [ - 'summary' => '调用DescribeDcdnWafGroup查询自定义WAF规则组细则,具体规则可分页。', - 'methods' => [ - 'get', - 'post', + 'title' => '删除资源标签', + 'summary' => '调用UntagDcdnResources删除资源标签。', + 'description' => '> 单用户调用频率:100次/秒。 ', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UntagDcdnResources'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UntagDcdnResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"97C68796-EB7F-4D41-9D5B-12B909D76508\\"\\n}","errorExample":""},{"type":"xml","example":"<UntagDcdnResourcesResponse>\\r\\n<RequestId>97C68796-EB7F-4D41-9D5B-12B909D76508</RequestId>\\r\\n</UntagDcdnResourcesResponse>","errorExample":""}]', + ], + 'UpdateDcdnDeliverTask' => [ + 'summary' => '调用UpdateDcdnDeliverTask根据订阅任务ID更新已订阅的报表任务。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Language', - 'in' => 'query', - 'schema' => [ - 'description' => '语言类型,将以此语言返回。取值范围:'."\n" - ."\n" - .'- **en**:英文。'."\n" - .'- **zh**:中文。', - 'type' => 'string', - 'required' => true, - 'example' => 'zh', - 'enum' => [ - 'zh', - 'en', - ], - ], + 'name' => 'DeliverId', + 'in' => 'formData', + 'schema' => ['description' => '待更新的订阅任务ID。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '92'], ], [ - 'name' => 'Id', - 'in' => 'query', - 'schema' => [ - 'description' => 'WAF规则组ID。您可以通过[DescribeDcdnWafGroups](~~DescribeDcdnWafGroups~~)接口查询。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1012', - ], + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => '订阅任务名称。', 'type' => 'string', 'required' => false, 'example' => 'Domain subscription'], ], [ - 'name' => 'Scope', - 'in' => 'query', - 'schema' => [ - 'description' => '待查询规则组的范围。'."\n" - .'- **in**:规则内,返回该规则组内的规则。'."\n" - .'- **out**:规则外,返回在规则全集中并且不在该规则组中的规则。', - 'type' => 'string', - 'required' => true, - 'example' => 'in', - 'enum' => [ - 'in', - 'out', - ], - ], + 'name' => 'Reports', + 'in' => 'formData', + 'schema' => ['description' => '待订阅的报表列表,需进行JSON转义。', 'type' => 'string', 'required' => false, 'example' => '[{\\"reportId\\":2,\\"conditions\\":[{\\"field\\":\\"prov\\",\\"op\\":\\"in\\",\\"value\\":[\\" Heilongjiang\\",\\" Beijing\\"]}]}]'], ], [ - 'name' => 'QueryArgs', - 'in' => 'query', - 'schema' => [ - 'description' => '查询条件,JSON序列化后的字符串。格式如下:'."\n" - ."\n" - .'`QueryArgs={"PolicyIds":"防护策略ID范围","RuleIds":"防护规则ID范围","RuleNameLike":"防护规则名称","DomainNames":"防护域名","DefenseScenes":"waf_group","RuleStatus":"on","OrderBy":"GmtModified","Desc":"false"}`'."\n" - ."\n" - .'>不传默认查询所有防护规则。', - 'type' => 'string', - 'required' => false, - 'example' => '{"RiskLevel":"","ProtectionType":"","ApplicationType":"","RuleIdLike":""}', - ], + 'name' => 'DomainName', + 'in' => 'formData', + 'schema' => ['description' => '待订阅的域名列表,多个域名用英文逗号(,)分隔。如果不传该参数,默认为账号下的所有域名订阅报表交付任务。', 'type' => 'string', 'required' => false, 'example' => 'www.example.com'], ], [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => '当前页码,默认值**1**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'name' => 'Deliver', + 'in' => 'formData', + 'schema' => ['description' => '报表发送方式,仅支持邮件发送,需进行JSON转义。', 'type' => 'string', 'required' => false, 'example' => '{"email":{"subject":" topic name","to":["username@example.com","username@example.com"]}}'], ], [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '分页大小,默认**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - 'default' => '20', - ], + 'name' => 'Schedule', + 'in' => 'formData', + 'schema' => ['description' => '订阅周期相关参数,需进行JSON转义。', 'type' => 'string', 'required' => false, 'example' => '{"schedName":" subscription task name","description":" description","crontab":"000**?","frequency":"d","status":"enable","effectiveFrom":"2020-09-17T00:00:00Z","effectiveEnd":"2020-11-17T00:00:00Z"}'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], - 'Id' => [ - 'description' => '自定义WAF规则组ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1012', - ], - 'Name' => [ - 'description' => 'WAF规则组名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'TemplateId' => [ - 'description' => '模板ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1012', - ], - 'Subscribe' => [ - 'description' => '是否开启订阅。取值:'."\n" - ."\n" - .'- **on**:开启。'."\n" - .'- **off**:关闭。', - 'type' => 'string', - 'example' => 'on', - ], - 'TotalCount' => [ - 'description' => '过滤出的规则总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '16', - ], - 'Rules' => [ - 'description' => '规则结构体。', - 'type' => 'array', - 'items' => [ - 'description' => '规则结构体。', - 'type' => 'object', - 'properties' => [ - 'GmtModified' => [ - 'description' => '修改时间。', - 'type' => 'string', - 'example' => '2021-12-29T17:08:45Z', - ], - 'Id' => [ - 'description' => '自定义WAF规则ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100001', - ], - 'Name' => [ - 'description' => 'WAF规则名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'Description' => [ - 'description' => 'WAF规则描述。', - 'type' => 'string', - 'example' => 'OK', - ], - 'RiskLevel' => [ - 'description' => '规则风险等级。取值:'."\n" - ."\n" - .'- **0**:高风险。'."\n" - .'- **1**:中风险。'."\n" - .'- **2**:低风险。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'ProtectionType' => [ - 'description' => '防护类型。取值如下:'."\n" - .'- **11**:SQL注入 '."\n" - .'- **12**:跨站脚本 '."\n" - .'- **13**:代码执行 '."\n" - .'- **14**:CRLF '."\n" - .'- **15**:本地文件包含 '."\n" - .'- **16**:远程文件包含'."\n" - .'- **17**:webshell '."\n" - .'- **19**:跨站请求伪造 '."\n" - .'- **20**:其他 '."\n" - .'- **21**:SEMA', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '11', - ], - 'ApplicationType' => [ - 'description' => '应用类型。取值如下:'."\n" - ."\n" - .'- **0**:Common '."\n" - .'- **1**:Wordpress'."\n" - .'- **2**:Dedecms '."\n" - .'- **3**:Discuz '."\n" - .'- **4**:Phpcms '."\n" - .'- **5**:Ecshop '."\n" - .'- **6**:Shopex '."\n" - .'- **8**:Drupal '."\n" - .'- **8**:Joomla '."\n" - .'- **9**:Metinfo '."\n" - .'- **10**:Struts2 '."\n" - .'- **11**:Spring Boot '."\n" - .'- **12**:Jboss '."\n" - .'- **13**:Weblogic '."\n" - .'- **14**:Websphere '."\n" - .'- **15**:Tomcat '."\n" - .'- **16**:Elastic Search '."\n" - .'- **18**:Thinkphp '."\n" - .'- **19**:Fastjson '."\n" - .'- **20**:ImageMagick '."\n" - .'- **21**:PHPwind '."\n" - .'- **22**:phpMyAdmin '."\n" - .'- **23**:Resin '."\n" - .'- **24**:IIS '."\n" - .'- **99**:Others', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'CveId' => [ - 'description' => 'CVE ID。', - 'type' => 'string', - 'example' => 'CVE-2021-22945', - ], - 'CveUrl' => [ - 'description' => 'CVE链接。', - 'type' => 'string', - 'example' => 'https://nxx.nxxx.gov/vuln/detail/CVE-2022-XXXX', - ], - ], - ], - ], - 'PageNumber' => [ - 'description' => '页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '分页大小,默认**20**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], + 'description' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ['errorCode' => 'TimeParseFailed', 'errorMessage' => 'Failed to parse the time parameter.', 'description' => '解析时间参数失败'], + ['errorCode' => 'SubscriptionAlreadyExists', 'errorMessage' => 'The subscription already exists.', 'description' => '定制服务已开通'], + ['errorCode' => 'SubscriptionNotFound', 'errorMessage' => 'The subscription is not found.', 'description' => '未开通定制服务'], + ['errorCode' => 'NameAlreadyExists', 'errorMessage' => 'The name already exists.', 'description' => '名称已存在'], + ['errorCode' => 'DeliverExceedLimit', 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', 'description' => '订阅任务个数已达上限'], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\",\\n \\"Id\\": 1012,\\n \\"Name\\": \\"test\\",\\n \\"TemplateId\\": 1012,\\n \\"Subscribe\\": \\"on\\",\\n \\"TotalCount\\": 16,\\n \\"Rules\\": [\\n {\\n \\"GmtModified\\": \\"2021-12-29T17:08:45Z\\",\\n \\"Id\\": 100001,\\n \\"Name\\": \\"test\\",\\n \\"Description\\": \\"OK\\",\\n \\"RiskLevel\\": 2,\\n \\"ProtectionType\\": 11,\\n \\"ApplicationType\\": 1,\\n \\"CveId\\": \\"CVE-2021-22945\\",\\n \\"CveUrl\\": \\"https://nxx.nxxx.gov/vuln/detail/CVE-2022-XXXX\\"\\n }\\n ],\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 20\\n}","type":"json"}]', - 'title' => '查询自定义WAF规则组详情', - ], - 'CreateDcdnWafGroup' => [ - 'summary' => '调用CreateDcdnWafGroup创建自定义WAF规则组。', - 'methods' => [ - 'post', - 'get', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateDcdnDeliverTaskResponse>\\r\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</UpdateDcdnDeliverTaskResponse>","errorExample":""}]', + 'title' => '更新已订阅的报表任务', + 'description' => '> 单用户调用频率:3次/秒。 ', + 'requestParamsDescription' => '**Reports数据说明**'."\n" + ."\n" + .'|参数|类型|是否必须|描述|'."\n" + .'|----|----|---------|---------|'."\n" + .'|reportId|String|是|报表ID。|'."\n" + .'|conditions|ConDatas[]|否|报表过滤条件。|'."\n" + ."\n" + .'**conditions数据说明**'."\n" + ."\n" + .'|参数|类型|是否必须|描述|'."\n" + .'|----|----|---------|---------|'."\n" + .'|field|String|否|过滤字段。|'."\n" + .'|op|String|否|过滤操作,目前只支持**in**。|'."\n" + .'|value|String[]|否|字段值数组。|'."\n" + ."\n" + .'**Deliver数据说明**'."\n" + ."\n" + .'|参数|类型|是否必须|描述'."\n" + .'|--------|----|----|----------|'."\n" + .'|subject|String|否|订阅主题。|'."\n" + .'|to|String[]|是|收件邮箱列表。|'."\n" + ."\n" + .'**Schedule数据说明**'."\n" + .'|参数|类型|是否必须|描述|'."\n" + .'|----|----|---------|---------|'."\n" + .'|schedName|String|否|订阅任务名称。|'."\n" + .'|description|String|否|订阅任务描述。|'."\n" + .'|crontab|String|是|订阅任务执行周期。|'."\n" + .'|frequency|String|是|执行频率。取值:<br>**h**:小时<br>**d**:天<br>**w**:周|'."\n" + .'|status|String|否|订阅任务状态。取值:<br>**enable**:启用。<br>**disable**:关闭。|'."\n" + .'|effectiveFrom|String|否|订阅交付任务开始时间。|'."\n" + .'|effectiveEnd|String|否|订阅交付任务结束时间。|', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateDcdnDeliverTask'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UpdateDcdnDeliverTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + ], + 'UpdateDcdnDomain' => [ + 'summary' => '调用UpdateDcdnDomain修改加速域名。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnSU2QP6', - ], + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ - 'name' => 'Name', - 'in' => 'formData', - 'schema' => [ - 'description' => 'WAF规则组名称,最大128字符。新建自定义WAF规则组时必填。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '加速域名,仅支持修改单个域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'TemplateId', - 'in' => 'formData', - 'schema' => [ - 'description' => '待复制规则组ID。'."\n" - .'复制自定义WAF规则组时必填。'."\n" - .'您可以通过[DescribeDcdnWafGroups](~~DescribeDcdnWafGroups~~)接口查询对应的规则组ID。无模板传0或不传。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '0', - ], + 'name' => 'Sources', + 'in' => 'query', + 'schema' => ['description' => '回源地址列表。'."\n", 'type' => 'string', 'required' => false, 'example' => '[{"content":"10.10.10.10","type":"ipaddr","priority":"20","port":80}]'], ], [ - 'name' => 'Subscribe', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否订阅:取值:'."\n" - .'- **on**:开启'."\n" - .'- **off**:关闭'."\n" - ."\n" - .'复制其他自定义规则组时不传。', - 'type' => 'string', - 'required' => false, - 'example' => 'on', - 'enum' => [], - ], + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => '资源组ID。'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-xxxxx'], + ], + [ + 'name' => 'TopLevelDomain', + 'in' => 'query', + 'schema' => ['description' => '顶级接入域。'."\n", 'type' => 'string', 'required' => false, 'example' => 'yourTopLevelDomain '], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '675F4820-400E-5929-8B03-2C031A5D5391', - ], - 'Id' => [ - 'description' => '创建的WAF规则组ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '30000166', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'WafGroup.Quantity.Overflow', - 'errorMessage' => 'WAF groups are overflowed quantity.', - ], - [ - 'errorCode' => 'WafGroup.NotExist', - 'errorMessage' => 'The specified WAF group does not exist.', - ], - [ - 'errorCode' => 'WafGroup.Name.Malformed', - 'errorMessage' => 'The specified parameter Name is invalid.', - ], + ['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' => 'Source Content必填,请填写后重试。'], + ['errorCode' => 'MissingSource.Type', 'errorMessage' => 'The Source Type must be specified.', 'description' => 'Source Type必填,请填写后重试。'], + ['errorCode' => 'InvalidSource.Type.Malformed', 'errorMessage' => 'The specified Source Type is invalid.', 'description' => 'Source Type格式错误,请重新填写。'], + ['errorCode' => 'InvalidSource.Priority.Malformed', 'errorMessage' => 'The specified Source Priority is invalid.', 'description' => 'Source Priority格式错误,请填写正确的格式。'], + ['errorCode' => 'InvalidResourceGroupId.Malformed', 'errorMessage' => 'The specified ResourceGroupId is invalid.', 'description' => 'ResourceGroupId错误,请填写正确的ResourceGroupId。'], + ['errorCode' => 'EntityNotExists.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => '该资源组不存在。'], + ['errorCode' => 'EntityNotExist.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => '该资源组不存在。'], + ['errorCode' => 'InvalidStatus.ResourceGroup', 'errorMessage' => 'The current status of the resource group does not support this operation.', 'description' => '资源组当前状态不允许进行此操作。'], + ['errorCode' => 'TopLevelDomain.NotFound', 'errorMessage' => 'The specified TopLevelDomain does not exist.', 'description' => '顶级接入域不存在。'], + ['errorCode' => 'TopLevelDomain.Mismatch', 'errorMessage' => 'The specified TopLevelDomain does not match webSiteType.', 'description' => '顶级接入域和域名类型不匹配。'], ], 403 => [ - [ - 'errorCode' => '%s.NotSupport', - 'errorMessage' => 'The specified resource type %s is not supported.', - ], - [ - 'errorCode' => '%s.OverQuota', - 'errorMessage' => 'The quantity of %s exceeds the quota.', - ], + ['errorCode' => 'DomainInProtectedMode', 'errorMessage' => 'The domain is in protection mode. To request permission, contact Customer Service.', 'description' => '此域名处于被保护模式。如果您想做这个操作,请联系我们。'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', - ], + ], + 'title' => '修改域名基本信息', + 'description' => '> 单用户调用频率:30次/秒。', + 'requestParamsDescription' => 'Sources各字段含义如下所示。'."\n" + ."\n" + .'| 参数 | 类型 | 是否必选 | 描述 |'."\n" + .'|------------|--------|-------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|'."\n" + .'| type | String | 是 | 源站类型,取值如下:<br>**ipaddr**:IP源站。<br>**domain**:域名源站。<br>**oss**:OSS Bucket为源站。<br>**fc_domain**:函数计算源站。 |'."\n" + .'| content | String | 是 | 回源地址,可以是IP或域名。 |'."\n" + .'| port| Integer| 否 | 可以指定**443**和**80**端口,也可以自定义端口,默认值**80**,**443**是HTTPS协议回源。 |'."\n" + .'| priority | String | 否 | 源站地址对应的优先级,支持**20**和**30**,默认**20**。**20**是主,**30**是备。|'."\n" + .'| weight | String | 否 | 回源权重,**100**以内,默认**10**。|', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateDcdnDomain'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UpdateDcdnDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"675F4820-400E-5929-8B03-2C031A5D5391\\",\\n \\"Id\\": 30000166\\n}","type":"json"}]', - 'title' => '创建自定义WAF规则组', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateDcdnDomainResponse>\\r\\n\\t<RequestId>0AEDAF20-4DDF-4165-8750-47FF9C1929C9</RequestId>\\r\\n</UpdateDcdnDomainResponse>","errorExample":""}]', ], - 'DeleteDcdnWafGroup' => [ - 'summary' => '调用DeleteDcdnWafGroup删除自定义WAF规则组。', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateDcdnIpaDomain' => [ + 'summary' => '调用UpdateDcdnIpaDomain修改加速域名。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', - 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnSU2QP6', - ], + 'abilityTreeCode' => '111620', + 'abilityTreeNodes' => ['FEATUREdcdn2E10XY'], ], 'parameters' => [ [ - 'name' => 'Id', - 'in' => 'formData', - 'schema' => [ - 'description' => '自定义WAF规则组ID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '30000135', - ], + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '需要接入全站加速IPA的域名,仅支持修改单个域名。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'Sources', + 'in' => 'query', + 'schema' => ['description' => '回源地址列表。', 'type' => 'string', 'required' => false, 'example' => '[{"content":"10.10.10.10","type":"ipaddr","priority":"20","port":80,"weight":"15"}]'], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => '资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmyuji4b6r4**'], + ], + [ + 'name' => 'TopLevelDomain', + 'in' => 'query', + 'schema' => ['description' => '顶级接入域。', 'type' => 'string', 'required' => false, 'example' => 'example.edu'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '请求ID。', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '2430E05E-1340-5773-B5E1-B743929F46F2', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '15C66C7B-671A-4297-9187-2C4477247A74'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'WafGroup.BeingBound', - 'errorMessage' => 'The specified WAF group is being bound.', - ], - [ - 'errorCode' => 'WafGroup.NotExist', - 'errorMessage' => 'The specified WAF group does not exist.', - ], + ['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' => 'Source Content必填,请填写后重试。'], + ['errorCode' => 'MissingSource.Type', 'errorMessage' => 'The Source Type must be specified.', 'description' => 'Source Type必填,请填写后重试。'], + ['errorCode' => 'InvalidSource.Type.Malformed', 'errorMessage' => 'The specified Source Type is invalid.', 'description' => 'Source Type格式错误,请重新填写。'], + ['errorCode' => 'InvalidSource.Priority.Malformed', 'errorMessage' => 'The specified Source Priority is invalid.', 'description' => 'Source Priority格式错误,请填写正确的格式。'], + ['errorCode' => 'InvalidResourceGroupId.Malformed', 'errorMessage' => 'The specified ResourceGroupId is invalid.', 'description' => 'ResourceGroupId错误,请填写正确的ResourceGroupId。'], + ['errorCode' => 'EntityNotExists.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => '该资源组不存在。'], + ['errorCode' => 'EntityNotExist.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => '该资源组不存在。'], + ['errorCode' => 'InvalidStatus.ResourceGroup', 'errorMessage' => 'The current status of the resource group does not support this operation.', 'description' => '资源组当前状态不允许进行此操作。'], + ['errorCode' => 'TopLevelDomain.NotFound', 'errorMessage' => 'The specified TopLevelDomain does not exist.', 'description' => '顶级接入域不存在。'], + ['errorCode' => 'InvalidSource.Port.Malformed', 'errorMessage' => 'The source port is empty, or it is outside the range 0-65535.', 'description' => '源站端口号为空,或者不在0-65535范围内。'], ], 403 => [ - [ - 'errorCode' => '%s.NotSupport', - 'errorMessage' => 'The specified resource type %s is not supported.', - ], - [ - 'errorCode' => '%s.OverQuota', - 'errorMessage' => 'The quantity of %s exceeds the quota.', - ], + ['errorCode' => 'DomainInProtectedMode', 'errorMessage' => 'The domain is in protection mode. To request permission, contact Customer Service.', 'description' => '此域名处于被保护模式。如果您想做这个操作,请联系我们。'], + ['errorCode' => 'DcdnIpaServiceNotFound', 'errorMessage' => 'The DCDN IPA service has not been activated.', 'description' => '没有开通DCDN IPA服务。'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', - ], + [ + ['errorCode' => 'NoResource', 'errorMessage' => 'The required port has no resources, please submit a ticket.', 'description' => '所需端口没有资源,请提交工单。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => '修改启用IPA服务的加速域名', + 'description' => '> 单用户调用频率:20次/秒。', + 'requestParamsDescription' => ' Sources各字段含义如下所示。'."\n" + ."\n" + .'| 参数 | 类型 | 是否必选 | 描述 |'."\n" + .'|------------|--------|-------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|'."\n" + .'| type | String | 是 | 源站类型,取值如下:<br>**ipaddr**:IP源站。<br>**domain**:域名源站。<br>**oss**:OSS域名。 |'."\n" + .'| content | String | 是 | 回源地址,可以是IP或域名。 |'."\n" + .'| port| Integer| 否 | 自定义端口,范围:**0~65535**。 |'."\n" + .'| priority | String | 否 | 源站地址对应的优先级,支持**20**(默认值)和**30**。**20**是主源,**30**是备源。|'."\n" + .'| weight | String | 否 | 回源权重,**100**以内,默认**10**。|', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-04-09T01:37:08.000Z', 'description' => '错误码发生变更'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2430E05E-1340-5773-B5E1-B743929F46F2\\"\\n}","type":"json"}]', - 'title' => '删除自定义WAF规则组', - ], - 'DescribeDcdnWafDefaultRules' => [ - 'summary' => '调用DescribeDcdnWafDefaultRules查询WAF规则默认配置。', - 'methods' => [ - 'get', - 'post', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateDcdnIpaDomain'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UpdateDcdnIpaDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A74\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateDcdnIpaDomainResponse>\\r\\n\\t<RequestId>15C66C7B-671A-4297-9187-2C4477247A74</RequestId>\\r\\n</UpdateDcdnIpaDomainResponse>","errorExample":""}]', + ], + 'UpdateDcdnSLSRealtimeLogDelivery' => [ + 'summary' => '调用UpdateDcdnSLSRealtimeLogDelivery更新实时日志项目。', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111621', + 'abilityTreeNodes' => ['FEATUREdcdn9K10I1'], ], 'parameters' => [ [ - 'name' => 'QueryArgs', - 'in' => 'query', - 'schema' => [ - 'description' => '查询条件,JSON序列化后的字符串。'."\n" - .'格式如下:` QueryArgs={"DefenseScene":"anti_scan"}`', - 'type' => 'string', - 'required' => false, - 'example' => '{"DefenseScene":"anti_scan"}', - ], + 'name' => 'ProjectName', + 'in' => 'formData', + 'schema' => ['description' => '项目名称。', 'type' => 'string', 'required' => true, 'example' => 'example'], + ], + [ + 'name' => 'DomainName', + 'in' => 'formData', + 'schema' => ['description' => '域名列表,多个域名用半角逗号(,)隔开。', 'type' => 'string', 'required' => true, 'example' => 'example.com'], + ], + [ + 'name' => 'SamplingRate', + 'in' => 'formData', + 'schema' => ['description' => '采样率。', 'type' => 'string', 'required' => false, 'example' => '1.0'], + ], + [ + 'name' => 'SLSRegion', + 'in' => 'formData', + 'schema' => ['description' => '日志区域名称。', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], + ], + [ + 'name' => 'SLSProject', + 'in' => 'formData', + 'schema' => ['description' => '日志名称。', 'type' => 'string', 'required' => true, 'example' => 'example-cn'], + ], + [ + 'name' => 'SLSLogStore', + 'in' => 'formData', + 'schema' => ['description' => '日志库名称。', 'type' => 'string', 'required' => true, 'example' => 'example-cn'], + ], + [ + 'name' => 'DataCenter', + 'in' => 'formData', + 'schema' => ['description' => '数据中心,取值:'."\n" + ."\n" + .'- **cn**:中国。'."\n" + .'- **sg**:新加坡。'."\n" + .'- **in**:印度。'."\n" + .'- **eu**:欧洲。'."\n" + .'- **us**:美国。', 'type' => 'string', 'required' => true, 'example' => 'cn'], ], ], 'responses' => [ @@ -33948,119 +24742,107 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '15C66C7B-671A-4297-9187-2C4477247A123425345', - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'F32C57AA-7BF8-49AE-A2CC-9F42390F5A19'], 'Content' => [ - 'description' => '规则结构体。', - 'type' => 'array', - 'items' => [ - 'description' => '规则结构体。', - 'type' => 'object', - 'properties' => [ - 'DefenseScene' => [ - 'description' => '防护场景,取值如下:'."\n" - .'- **waf_group**:Web基础防护。'."\n" - .'- **anti_scan**:扫描防护。', - 'type' => 'string', - 'example' => 'anti_scan', - ], - 'Rules' => [ - 'description' => '规则结构体。', - 'type' => 'array', - 'items' => [ - 'description' => '规则结构体。', - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => '规则类型。取值如下:'."\n" - ."\n" - .'- **waf_group**:Web基础防护。'."\n" - .'- **high_frequency**:高频扫描封禁。'."\n" - .'- **directory_traversal**:目录遍历封禁。'."\n" - .'- **scan_tools**:扫描工具封禁。', - 'type' => 'string', - 'example' => 'waf_group', - ], - 'Name' => [ - 'description' => '规则默认名称。', - 'type' => 'string', - 'example' => 'Default_WafGroup_Rule', - ], - 'Status' => [ - 'description' => '规则默认状态,取值如下:'."\n" - ."\n" - .'- **on**:开启规则。'."\n" - .'- **off**:关闭规则。', - 'type' => 'string', - 'example' => 'on', - ], - 'Config' => [ - 'description' => '规则默认配置。', - 'type' => 'string', - 'example' => '{"wafGroupIds":"1012"}', - ], - 'Action' => [ - 'description' => '规则默认动作。取值如下:'."\n" - .'- **monitor**:观察。'."\n" - .'- **deny**:拦截。'."\n" - .'- **block**:阻断。', - 'type' => 'string', - 'example' => 'block', - ], - ], + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Domains' => [ + 'description' => '域名配置结果信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '日志状态,取值:'."\n" + ."\n" + .'- **success**:成功。'."\n" + .'- **fail**:失败。', 'type' => 'string', 'example' => 'success'], + 'DomainName' => ['description' => '域名。', 'type' => 'string', 'example' => 'example.com'], + 'Region' => ['description' => '区域名称。', 'type' => 'string', 'example' => 'cn'], + 'Desc' => ['description' => '日志描述。', 'type' => 'string', 'example' => 'updated'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '输入参数无效'], + ['errorCode' => 'ProjectNotFound', 'errorMessage' => 'The project provided does not belong to you.', 'description' => '项目不存在或不属于当前用户'], + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal exception occurred, please try again later.', 'description' => '触发内部异常,请稍后再试。'], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A123425345\\",\\n \\"Content\\": [\\n {\\n \\"DefenseScene\\": \\"anti_scan\\",\\n \\"Rules\\": [\\n {\\n \\"Type\\": \\"waf_group\\",\\n \\"Name\\": \\"Default_WafGroup_Rule\\",\\n \\"Status\\": \\"on\\",\\n \\"Config\\": \\"{\\\\\\"wafGroupIds\\\\\\":\\\\\\"1012\\\\\\"}\\",\\n \\"Action\\": \\"block\\"\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]', - 'title' => '查询WAF规则默认配置', - ], - 'DescribeDcdnOriginSiteHealthStatus' => [ - 'summary' => '调用DescribeDcdnOriginSiteHealthStatus查询DCDN加速域名的源站运行状态。', - 'methods' => [ - 'get', - 'post', + 'title' => '更新实时日志项目', + 'description' => '> 单用户调用频率:100次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-12-18T07:22:52.000Z', 'description' => '错误码发生变更'], + ['createdAt' => '2024-12-04T08:12:41.000Z', 'description' => '错误码发生变更'], ], - 'schemes' => [ - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateDcdnSLSRealtimeLogDelivery'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UpdateDcdnSLSRealtimeLogDelivery', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"F32C57AA-7BF8-49AE-A2CC-9F42390F5A19\\",\\n \\"Content\\": {\\n \\"Domains\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Region\\": \\"cn\\",\\n \\"Desc\\": \\"updated\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<UpdateDcdnSLSRealtimeLogDeliveryResponse>\\n<RequestId>F32C57AA-7BF8-49AE-A2CC-9F42390F5A19</RequestId>\\n<Content>\\n <Domains>\\n <DomainName>example.com</DomainName>\\n <Region>cn</Region>\\n <Status>success</Status>\\n <Desc>created</Desc>\\n </Domains>\\n <Domains>\\n <DomainName>example.org</DomainName>\\n <Region>sg</Region>\\n <Status>success</Status>\\n <Desc>created</Desc>\\n </Domains>\\n</Content>\\n</UpdateDcdnSLSRealtimeLogDeliveryResponse>","errorExample":""}]', + ], + 'UpdateDcdnSubTask' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ + 'name' => 'ReportIds', + 'in' => 'formData', + 'schema' => ['description' => '待定制的报表ID列表,多个用英文逗号(,)分隔。您可以调用[DescribeDcdnSubList](~~270075~~)接口查询报表ID。', 'type' => 'string', 'required' => false, 'example' => '2,4,6'], + ], + [ 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'title' => 'A short description of struct', - 'description' => '您的加速域名,仅支持单个域名设置。', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'in' => 'formData', + 'schema' => ['description' => '需要定制的域名列表。如果不传该参数,默认为账号下的所有域名定制运营报表。', 'type' => 'string', 'required' => false, 'example' => 'www.example.com'], + ], + [ + 'name' => 'StartTime', + 'in' => 'formData', + 'schema' => ['description' => '定制任务的开始时间。使用UTC+0时间表示,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2021-04-17T00:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'formData', + 'schema' => ['description' => '定制任务的结束时间。使用UTC+0时间表示,格式为yyyy-MM-ddTHH:mm:ssZ。', 'type' => 'string', 'required' => false, 'example' => '2021-06-17T00:00:00Z'], ], ], 'responses' => [ @@ -34068,108 +24850,82 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', - ], - 'OriginSiteStatus' => [ - 'description' => '加速域名对应的源站运行情况列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Host' => [ - 'description' => '您在DCDN控制台上配置的源站域名,包括IPv4地址、IPv6地址、普通域名、OSS域名。', - 'type' => 'string', - 'example' => 'host.com', - ], - 'HealthStatus' => [ - 'description' => 'DCDN的各个节点会定期对您配置的源站域名发起探测请求,若在5秒之内收到源站响应则认为探测成功。通过汇总各个节点的探测数据,根据成功比例计算出源站的运行状态。各个运行状态的说明如下:'."\n" - .'- unknown(未知):未能获取到对应源站的探测数据,这是由于该源站的配置短期内发生过变更,请您稍后重试。'."\n" - .'- healthy(健康):成功探测的比例高于80%。'."\n" - .'- degraded(部分健康):成功探测的比例小于等于80%,但高于0%。'."\n" - .'- critical(异常):对该源站的所有探测请求均失败。', - 'type' => 'string', - 'example' => 'healthy', - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], ], ], ], 'errorCodes' => [ - 404 => [ - [ - 'errorCode' => 'InvalidDomain.NotFound', - 'errorMessage' => 'The domain does not exist, or it does not belong to you.', - ], + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => '参数错误'], + ['errorCode' => 'TimeParseFailed', 'errorMessage' => 'Failed to parse the time parameter.', 'description' => '解析时间参数失败'], + ['errorCode' => 'SubscriptionAlreadyExists', 'errorMessage' => 'The subscription already exists.', 'description' => '定制服务已开通'], + ['errorCode' => 'SubscriptionNotFound', 'errorMessage' => 'The subscription is not found.', 'description' => '未开通定制服务'], + ['errorCode' => 'NameAlreadyExists', 'errorMessage' => 'The name already exists.', 'description' => '名称已存在'], + ['errorCode' => 'DeliverExceedLimit', 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', 'description' => '订阅任务个数已达上限'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => '更新已定制的运营报表', + 'summary' => '调用UpdateDcdnSubTask更新已定制的运营报表。', + 'description' => '> 单用户调用频率:3次/秒。 ', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-05-18T11:11:03.000Z', 'description' => '请求参数发生变更'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\",\\n \\"OriginSiteStatus\\": [\\n {\\n \\"Host\\": \\"host.com\\",\\n \\"HealthStatus\\": \\"healthy\\"\\n }\\n ]\\n}","type":"json"}]', - 'title' => '查询DCDN源站运行状态', - ], - 'DescribeDcdnUserVipsByDomain' => [ - 'summary' => '调用DescribeDcdnUserVipsByDomain查询域名的IP列表。', - 'methods' => [ - 'get', - 'post', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateDcdnSubTask'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UpdateDcdnSubTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateDcdnSubTaskResponse>\\r\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</UpdateDcdnSubTaskResponse>","errorExample":""}]', + ], + 'UpdateDcdnUserRealTimeDeliveryField' => [ + 'summary' => '调用UpdateDcdnUserRealTimeDeliveryField更新实时日志字段。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111623', + 'abilityTreeNodes' => ['FEATUREdcdn9K10I1'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'BusinessType', 'in' => 'query', - 'schema' => [ - 'description' => '域名,只支持单个域名。', - 'type' => 'string', - 'required' => true, - 'enumValueTitles' => [ - 'example.com' => 'example.com', - ], - 'example' => 'example.com'."\n", - ], + 'schema' => ['description' => '业务类型,取值:'."\n" + ."\n" + .'- **cdn_log_access_l1**(默认值):用户访问日志。'."\n" + .'- **cdn_log_er**:边缘程序日志。'."\n" + .'- **cdn_log_waf**:WAF拦截日志。', 'type' => 'string', 'required' => false, 'example' => 'cdn_log_access_l1', 'default' => 'dcdn_log_access_l1'], ], [ - 'name' => 'Available', + 'name' => 'Fields', 'in' => 'query', - 'schema' => [ - 'description' => '是否查询健康VIP。取值:'."\n" - ."\n" - .'- **on**:健康VIP。'."\n" - ."\n" - .'- **off**:全部VIP。', - 'type' => 'string', - 'required' => false, - 'example' => 'on', - 'enum' => [ - 'on', - 'off', - ], - ], + 'schema' => ['description' => '字段列表,多个字段用半角逗号(,)隔开。取值请参见[实时日志采集字段说明](~~324199~~)。', 'type' => 'string', 'required' => true, 'example' => 'body_bytes_sent,client_ip,content_type'], ], ], 'responses' => [ @@ -34177,93 +24933,76 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'DomainName' => [ - 'description' => '域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '820E7900-5CA9-4AEF-B0DD-20ED5F64BE55', - ], - 'Vips' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Vip' => [ - 'description' => 'VIP地址列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'VIP列表。', - 'type' => 'string', - 'example' => '122.72.xxx.xxx', - ], - ], - ], - ], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingParameter', - 'errorMessage' => 'The specified value of parameter "DomainName" can not be empty.', - ], - [ - 'errorCode' => 'InvalidDomain.NotFound', - 'errorMessage' => 'The domain provided is offline or not exist.', - ], - [ - 'errorCode' => 'IllegalOperation', - 'errorMessage' => 'Illegal domain operate is not permitted.', - ], + ['errorCode' => 'InvalidParameters', 'errorMessage' => 'The specified parameters are invalid.', 'description' => '参数非法。'], + ], + 500 => [ + ['errorCode' => 'Internal Exception', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => '内部错误,请稍后重试或联系我们。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '更新实时日志字段', + 'description' => '> 单用户调用频率:100次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-12-18T07:22:51.000Z', 'description' => '错误码发生变更'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"RequestId\\": \\"820E7900-5CA9-4AEF-B0DD-20ED5F64BE55\\",\\n \\"Vips\\": {\\n \\"Vip\\": [\\n \\"122.72.xxx.xxx\\"\\n ]\\n }\\n}","type":"json"}]', - 'title' => '查询节点IP列表-L1', - 'description' => '> 单用户调用频率:30次/秒。', - ], - 'DescribeDcdnIpInfo' => [ - 'summary' => '调用DescribeDcdnIpInfo验证指定的IP是否为阿里云DCDN节点的IP地址。', - 'methods' => [ - 'post', - 'get', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateDcdnUserRealTimeDeliveryField'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UpdateDcdnUserRealTimeDeliveryField', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateDcdnUserRealTimeDeliveryFieldResponse>\\r\\n<RequestId>3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4</RequestId>\\r\\n</UpdateDcdnUserRealTimeDeliveryFieldResponse>","errorExample":""}]', + ], + 'UploadRoutineCode' => [ + 'summary' => '调用UploadRoutineCode上传边缘函数ER的代码。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111531', - 'abilityTreeNodes' => [ - 'FEATUREdcdn33QGRH', - ], + 'abilityTreeCode' => '111624', + 'abilityTreeNodes' => ['FEATUREdcdn75UYDO'], ], 'parameters' => [ [ - 'name' => 'IP', - 'in' => 'query', - 'schema' => [ - 'description' => '指定IP地址,仅支持单个。', - 'type' => 'string', - 'required' => true, - 'example' => '10.XXX.XXX.10', - ], + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => '边缘函数名, 同一个账号下命名唯一。', 'type' => 'string', 'required' => true, 'example' => 'test'], + ], + [ + 'name' => 'CodeDescription', + 'in' => 'formData', + 'schema' => ['description' => '代码版本描述。', 'type' => 'string', 'required' => true, 'example' => 'Hello World'], ], ], 'responses' => [ @@ -34271,92 +25010,85 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '1B1D0EE7-9559-489D-BC4E-279495EB8FB8', - ], - 'RegionEname' => [ - 'description' => '所属地区英文名称。', - 'type' => 'string', - 'example' => 'China-Guizhou-guiyang', - ], - 'Region' => [ - 'description' => '所属地区。', - 'type' => 'string', - 'example' => '中国-贵州省-贵阳市', - ], - 'IspEname' => [ - 'description' => '所属运营商英文名称。', - 'type' => 'string', - 'example' => 'telecom', - ], - 'DcdnIp' => [ - 'description' => '是否属于阿里云DCDN节点。'."\n" - .'- True:属于阿里云DCDN节点。'."\n" - .'- False:不属于阿里云DCDN节点。', - 'type' => 'string', - 'example' => 'True', - ], - 'ISP' => [ - 'description' => '所属运营商。', - 'type' => 'string', - 'example' => '电信', - ], + 'Content' => ['description' => '接口返回内容,包含代码版本号和代码上传的相关内容。', 'type' => 'object', 'example' => 'OssPostConfig and CodeRevision'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'DFA2027F-86C0-4421-9593-581A7993696C'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidIP.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter IP is not supported.', - ], + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => '后端服务器发生错误:%s 。如果重试多次依然报错,请提交工单。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"1B1D0EE7-9559-489D-BC4E-279495EB8FB8\\",\\n \\"RegionEname\\": \\"China-Guizhou-guiyang\\",\\n \\"Region\\": \\"中国-贵州省-贵阳市\\",\\n \\"IspEname\\": \\"telecom\\",\\n \\"DcdnIp\\": \\"True\\",\\n \\"ISP\\": \\"电信\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnIpInfoResponse>\\n<RegionEname>China-Guizhou-guiyang</RegionEname>\\n<Region>中国-贵州省-贵阳市</Region>\\n<IspEname>telecom</IspEname>\\n<RequestId>1B1D0EE7-9559-489D-BC4E-279495EB8FB8</RequestId>\\n<ISP>电信</ISP>\\n<DcdnIp>True</DcdnIp>\\n</DescribeDcdnIpInfoResponse>","errorExample":""}]', - 'title' => '验证IP节点', - 'description' => '> 单用户调用频率:50次/秒。 ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"DFA2027F-86C0-4421-9593-581A7993696C\\"\\n}","errorExample":""},{"type":"xml","example":"<UploadRoutineCodeResponse>\\n<RequestId>DFA2027F-86C0-4421-9593-581A7993696C</RequestId>\\n<Content>\\n <OssPostConfig>\\n <OSSAccessKeyId>KiTr</OSSAccessKeyId>\\n <Signature>+VaGBmeMjdKTD1E=</Signature>\\n <callback>eyJjYWxsYmFja1VybCI6Imh0dHA6Ly9lci1ub2RlYXBpLmFsaXl1bmNzLmNvbS91cGxvYWRfY29kZV9vc3NfY2FsbGJhY2siLCJjYWxsYmFja0JvZHkiOiJPYmplY3Q9JHtvYmplY3R9JkNvZGVEZXNjcmlwdGlvbj0ke3g6Y29kZWRlc2NyaXB0aW9ufSIsImNhbGxiYWNrQm9keVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifQo=</callback>\\n <x:codeDescription>IkhlbGxvIFdvcmxkIg==</x:codeDescription>\\n <Url>http://cdn-edgejs.oss-cn-hangzhou.aliyuncs.com</Url>\\n <key>test.123.69188190343.js</key>\\n <policy>eyJleHBpcmF0aW9uIjoiMjAyMS0wNS0yNlQxMzowNzo0OVoiLCJjb25kaXRpb25zIjpbWyJlcSIsIiRrZXkiLCJ0ZXN0LXNsYy4xMzc3MjkyNjI4ODEwMzI3LjE2MjIwMzQxNjkxODgxOTAzNDMuanMiXSxbImVxIiwiJGNhbGxiYWNrIiwiZXlKallXeHNZbUZqYTFWeWJDSTZJbWgwZEhBNkx5OWxjaTF1YjJSbFlYQnBMbUZzYVhsMWJtTnpMbU52YlM5MWNHeHZZV1JmWTI5a1pWOXZjM05mWTJGc2JHSmhZMnNpTENKallXeHNZbUZqYTBKdlpIa2lPaUpQWW1wbFkzUTlKSHR2WW1wbFkzUjlKa052WkdWRVpYTmpjbWx3ZEdsdmJqMGtlM2c2WTI5a1pXUmxjMk55YVhCMGFXOXVmU0lzSW1OaGJHeGlZV05yUW05a2VWUjVjR1VpT2lKaGNIQnNhV05oZEdsdmJpOTRMWGQzZHkxbWIzSnRMWFZ5YkdWdVkyOWtaV1FpZlFvPSJdLFsiZXEiLCIkeDpjb2RlZGVzY3JpcHRpb24iLCJJa2hsYkd4dklGZHZjbXhrSWc9PSJdLFsiY29udGVudC1sZW5ndGgtcmFuZ2UiLDEsNDE5NDMwNF1dfQ==</policy>\\n </OssPostConfig>\\n <CodeRevision>1622034169188190343</CodeRevision>\\n</Content>\\n</UploadRoutineCodeResponse>","errorExample":""}]', + 'title' => '上传边缘函数ER的代码', + 'description' => '> - 上传一次边缘函数ER的代码,生成一个版本,用于代码管理和发布使用。'."\n" + .'> - 一个边缘函数ER最多保留10个版本代码,超出限制后需要手动调用DeleteRoutineCodeRevision删除无用的版本。'."\n" + .'> - API调用频率:100次/秒。', 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', + 'responseParamsDescription' => '### Content参数'."\n" + ."\n" + .'| 名称 | 类型 | 示例值 | 描述 |'."\n" + .'| ------------------- | ------ | ------------------------------------------------------------ | ------------------------------------------------------------ |'."\n" + .'| CodeRevision | String | 1622034169188190000 | 代码版本号。 |'."\n" + .'| OssPostConfig | Json | | 上传JS代码所需要的请求内容。 |'."\n" + .'| ㄴOSSAccessKeyId | String | KiTr**** | 上传Object的AccessKey ID。 |'."\n" + .'| ㄴSignature | String | +VaGBmeMjdKTD1E= | 根据AccessKey Secret和Policy计算的签名信息,OSS验证该签名信息从而验证该Post请求的合法性。 |'."\n" + .'| ㄴcallback | String | eyJjYWxsYmFja1VybCI6Imh0dHA6Ly9lci**** | 是由一段经过Base64编码的JSON字符串(字段),构建callback参数的关键是指定请求回调的服务器URL(callbackUrl)以及回调的内容(callbackBody)。 |'."\n" + .'| ㄴx:codeDescription | String | IkhlbGxvIFdvcmxkIg== | 对当前代码版本的描述信息。 |'."\n" + .'| ㄴUrl | String | http://****.oss-cn-hangzhou.aliyuncs.com | 上传Object的OSS域名。 |'."\n" + .'| ㄴkey | String | test.123.69188190343.js | 上传Object的名称。 |'."\n" + .'| ㄴpolicy | String | eyJleHBpcmF0aW9uIjoiMjAyMS0wNS0yNlQxMz**** | 用于验证请求的合法性,为一段经过UTF-8和Base64编码的JSON文本,声明了Post请求必须满足的条件。 |', 'extraInfo' => ' ', - ], - 'DescribeDcdnL2Vips' => [ - 'summary' => '调用DescribeDcdnL2Vips按域名查询DCDN回源IP段列表(同时包括IPv4和IPv6两种IP段)。', - 'methods' => [ - 'post', - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UploadRoutineCode'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UploadRoutineCode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UploadStagingRoutineCode' => [ + 'summary' => '调用UploadStagingRoutineCode上传边缘函数ER的测试代码。', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111625', + 'abilityTreeNodes' => ['FEATUREdcdn75UYDO'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => '可指定单个域名,指定单个域名的情况下,仅查询该域名关联的白名单回源节点的回源IP段。若不指定域名,则查询所有白名单回源节点的回源IP段。', - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => '边缘函数名, 同一个账号下命名唯一。', 'type' => 'string', 'required' => true, 'example' => 'test'], + ], + [ + 'name' => 'CodeDescription', + 'in' => 'formData', + 'schema' => ['description' => '版本描述。', 'type' => 'string', 'required' => false, 'example' => 'desc'], ], ], 'responses' => [ @@ -34364,320 +25096,4752 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'DomainName' => [ - 'description' => '加速域名信息。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'RequestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '820E7900-5CA9-4AEF-B0DD-20ED5F64BE55', - ], - 'Vips' => [ - 'description' => 'Vip列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'Vip列表。', - 'type' => 'string', - 'example' => '111.XXX.XXX.111/25', - ], - ], + 'Content' => ['description' => '代码所需要的参数。', 'type' => 'object', 'example' => 'OssPostConfig and CodeRevision'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'DFA2027F-86C0-4421-9593-581A7993696C'], ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"DomainName\\": \\"example.com\\",\\n \\"RequestId\\": \\"820E7900-5CA9-4AEF-B0DD-20ED5F64BE55\\",\\n \\"Vips\\": [\\n \\"111.XXX.XXX.111/25\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnL2VipsResponse>\\n <DomainName>example.com</DomainName>\\n <RequestId>820E7900-5CA9-4AEF-B0DD-20ED5F64BE55</RequestId>\\n <Vips>111.XXX.XXX.111/25</Vips>\\n <Vips>112.XXX.XXX.112/25</Vips>\\n <Vips>122.XXX.XXX.190/25</Vips>\\n <Vips>119.XXX.XXX.109/25</Vips>\\n <Vips>221.XXX.XXX.226/25</Vips>\\n <Vips>124.XXX.XXX.140/25</Vips>\\n <Vips>58.XXX.XXX.140/25</Vips>\\n</DescribeDcdnL2VipsResponse>","errorExample":""}]', - 'title' => '查询域名的L2节点回源IP', - ], - 'DescribeDcdnL2Ips' => [ - 'summary' => '调用DescribeDcdnL2Ips查询动态加速回客户域名源站DCDN L2节点IP段。', - 'methods' => [ - 'get', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => '后端服务器发生错误:%s 。如果重试多次依然报错,请提交工单。'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"DFA2027F-86C0-4421-9593-581A7993696C\\"\\n}","errorExample":""},{"type":"xml","example":"<UploadStagingRoutineCodeResponse>\\n<RequestId>DFA2027F-86C0-4421-9593-581A7993696C</RequestId>\\n<Content>\\n <OssPostConfig>\\n <OSSAccessKeyId>KiTr</OSSAccessKeyId>\\n <Signature>+VaGBmeMjdKTD1E=</Signature>\\n <callback>eyJjYWxsYmFja1VybCI6Imh0dHA6Ly9lci1ub2RlYXBpLmFsaXl1bmNzLmNvbS91cGxvYWRfY29kZV9vc3NfY2FsbGJhY2siLCJjYWxsYmFja0JvZHkiOiJPYmplY3Q9JHtvYmplY3R9JkNvZGVEZXNjcmlwdGlvbj0ke3g6Y29kZWRlc2NyaXB0aW9ufSIsImNhbGxiYWNrQm9keVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifQo=</callback>\\n <x:codeDescription>IkhlbGxvIFdvcmxkIg==</x:codeDescription>\\n <Url>http://cdn-edgejs.oss-cn-hangzhou.aliyuncs.com</Url>\\n <key>test.123.69188190343.js</key>\\n <policy>eyJleHBpcmF0aW9uIjoiMjAyMS0wNS0yNlQxMzowNzo0OVoiLCJjb25kaXRpb25zIjpbWyJlcSIsIiRrZXkiLCJ0ZXN0LXNsYy4xMzc3MjkyNjI4ODEwMzI3LjE2MjIwMzQxNjkxODgxOTAzNDMuanMiXSxbImVxIiwiJGNhbGxiYWNrIiwiZXlKallXeHNZbUZqYTFWeWJDSTZJbWgwZEhBNkx5OWxjaTF1YjJSbFlYQnBMbUZzYVhsMWJtTnpMbU52YlM5MWNHeHZZV1JmWTI5a1pWOXZjM05mWTJGc2JHSmhZMnNpTENKallXeHNZbUZqYTBKdlpIa2lPaUpQWW1wbFkzUTlKSHR2WW1wbFkzUjlKa052WkdWRVpYTmpjbWx3ZEdsdmJqMGtlM2c2WTI5a1pXUmxjMk55YVhCMGFXOXVmU0lzSW1OaGJHeGlZV05yUW05a2VWUjVjR1VpT2lKaGNIQnNhV05oZEdsdmJpOTRMWGQzZHkxbWIzSnRMWFZ5YkdWdVkyOWtaV1FpZlFvPSJdLFsiZXEiLCIkeDpjb2RlZGVzY3JpcHRpb24iLCJJa2hsYkd4dklGZHZjbXhrSWc9PSJdLFsiY29udGVudC1sZW5ndGgtcmFuZ2UiLDEsNDE5NDMwNF1dfQ==</policy>\\n </OssPostConfig>\\n <CodeRevision>1622034169188190343</CodeRevision>\\n</Content>\\n</UploadStagingRoutineCodeResponse>","errorExample":""}]', + 'title' => '上传边缘函数ER的测试代码', + 'description' => '- 上传一次边缘函数ER的测试代码,生成一个版本号,占用一个CodeRev的代码版本数,仅用作测试使用。'."\n" + .'- 该参数自动发布代码为测试环境。'."\n" + .'- 一个边缘函数ER最多保留10个版本号,超出限制后需要手动调用DeleteRoutineCodeRevision删除无用的版本。'."\n" + .'- API调用频率:100次/秒。', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UploadStagingRoutineCode'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UploadStagingRoutineCode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + ], + 'VerifyDcdnDomainOwner' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '162185', - 'abilityTreeNodes' => [ - 'FEATUREdcdnL8HX1L', + 'abilityTreeCode' => '111626', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], + ], + 'parameters' => [ + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => '待校验的域名,只支持传入单个域名。', 'type' => 'string', 'required' => true, 'example' => '**example**.com'], + ], + [ + 'name' => 'VerifyType', + 'in' => 'query', + 'schema' => ['description' => '校验方式,取值:'."\n" + ."\n" + .'- **dnsCheck**:DNS验证。'."\n" + .'- **fileCheck**:文件验证。', 'type' => 'string', 'required' => true, 'example' => 'dnsCheck'], ], - 'autoTest' => true, - 'tenantRelevance' => 'publicInformation', ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'C370DAF1-C838-4288-A1A0-9A87633D248E', - ], - 'Vips' => [ - 'description' => '节点IP段列表,IP段以CIDR形式表示。', - 'type' => 'array', - 'items' => [ - 'description' => '具体IP段信息。', - 'type' => 'string', - 'example' => '111.XXX.XXX.111/25', - ], - ], + 'Content' => ['description' => '校验内容。', 'type' => 'string', 'example' => 'verify_dffeb6610035dcb77b413a59c32cd9**'], + 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'UserWithoutConfLabel', - 'errorMessage' => 'the user has not configured the required label information, such as L2IpGroup.', - ], + ['errorCode' => 'DomainOwnerVerifyFail', 'errorMessage' => 'Owner verification of the root domain failed.', 'description' => '当您首次将新域名添加至阿里云DCDN时,需按要求做域名归属权验证,当您按要求配置DNS解析或文件验证后,才能正常成功添加域名。'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => '校验域名归属权', + 'summary' => '调用VerifyDcdnDomainOwner校验域名的归属权。', + 'description' => '> 单用户调用频率:100次/秒。 ', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-03-16T01:38:33.000Z', 'description' => '响应参数发生变更'], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C370DAF1-C838-4288-A1A0-9A87633D248E\\",\\n \\"Vips\\": [\\n \\"111.XXX.XXX.111/25\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnL2IpsResponse>\\n <RequestId>C370DAF1-C838-4288-A1A0-9A87633D248E</RequestId>\\n <Vips>111.XXX.XXX.111/25</Vips>\\n</DescribeDcdnL2IpsResponse>","errorExample":""}]', - 'title' => '查询L2节点IP地址', - 'description' => '>- 该功能测试中,仅向部分客户开放。'."\n" - .'>- 该接口需要<props="china"><ph>[提交工单](https://selfservice.console.aliyun.com/ticket/createIndex)</ph></props><props="intl"><ph>[提交工单](https://workorder-intl.console.aliyun.com/?spm=5176.2020520001.aliyun_topbar.18.dbd44bd3e4f845#/ticket/createIndex)</ph></props>申请后使用。带宽超过5Gbps或者QPS大于20万的域名业务请勿申请该接口权限,同时该接口需要用户实时调用更新IP列表,如未能及时更新,可能会造成服务中断,请谨慎申请。'."\n" - .'>- 单用户调用频率:100次/秒。', - 'parameters' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'VerifyDcdnDomainOwner'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:VerifyDcdnDomainOwner', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": \\"verify_dffeb6610035dcb77b413a59c32cd9**\\",\\n \\"RequestId\\": \\"34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\"\\n}","errorExample":""},{"type":"xml","example":"<VerifyDcdnDomainOwnerResponse>\\n<Content>verify_dffeb6610035dcb77b413a59c32cd91f</Content>\\n<RequestId>34AB41F1-04A5-496F-8C8D-634BDBE6A9FB</RequestId>\\n</VerifyDcdnDomainOwnerResponse>","errorExample":""}]', ], ], 'endpoints' => [ + ['regionId' => 'ap-northeast-1', 'regionName' => '日本(东京)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'ap-southeast-1', 'regionName' => '新加坡', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'ap-southeast-2', 'regionName' => '澳大利亚(悉尼)已关停', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'ap-southeast-3', 'regionName' => '马来西亚(吉隆坡)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'ap-southeast-5', 'regionName' => '印度尼西亚(雅加达)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-beijing', 'regionName' => '华北2(北京)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-chengdu', 'regionName' => '西南1(成都)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-hangzhou', 'regionName' => '华东1(杭州)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-hongkong', 'regionName' => '中国香港', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-huhehaote', 'regionName' => '华北5(呼和浩特)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-qingdao', 'regionName' => '华北1(青岛)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-shanghai', 'regionName' => '华东2(上海)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-shenzhen', 'regionName' => '华南1(深圳)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-zhangjiakou', 'regionName' => '华北3(张家口)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'us-west-1', 'regionName' => '美国(硅谷)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'us-east-1', 'regionName' => '美国(弗吉尼亚)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'eu-west-1', 'regionName' => '英国(伦敦)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'eu-central-1', 'regionName' => '德国(法兰克福)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'me-east-1', 'regionName' => '阿联酋(迪拜)', 'areaId' => 'middleEast', 'areaName' => '中东', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'ap-south-1', 'regionName' => '印度(孟买)已关停', 'areaId' => 'middleEast', 'areaName' => '中东', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-shenzhen-finance-1', 'regionName' => '华南1 金融云', 'areaId' => 'industryCloud', 'areaName' => '行业云', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-shanghai-finance-1', 'regionName' => '华东2 金融云', 'areaId' => 'industryCloud', 'areaName' => '行业云', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-north-2-gov-1', 'regionName' => '北京政务云', 'areaId' => 'industryCloud', 'areaName' => '行业云', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-hangzhou-finance', 'regionName' => '华东1 金融云', 'areaId' => 'industryCloud', 'areaName' => '行业云', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-beijing-finance-1', 'regionName' => '华北2 金融云(邀测)', 'areaId' => 'industryCloud', 'areaName' => '行业云', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ], + 'errorCodes' => [ + ['code' => ' InvalidPageNumber.ValueNotSupported', 'message' => 'The specified PageNumber is not supported.', 'http_code' => 400, 'description' => 'PageNumber超过最大值,请重新填写。'], + ['code' => ' SingleRequest.OverLimit', 'message' => 'A maximum of 1000 URLs are supported for each request.', 'http_code' => 400, 'description' => '一次最多提交1000个url,请减少url后重新提交。'], + ['code' => '%s.NotSupport', 'message' => 'The specified resource type %s is not supported.', 'http_code' => 403, 'description' => '不支持指定的资源类型。如需使用该类型资源,请与我们联系。'], + ['code' => '%s.OverQuota', 'message' => 'The quantity of %s exceeds the quota.', 'http_code' => 403, 'description' => '该资源的数量超出了配额所规定的范围,如需申请更多的额度,请与我们联系。'], + ['code' => '%s.WrongValueMatched', 'message' => 'The value of specified parameter %s can not pass the matching check.', 'http_code' => 403, 'description' => '指定的参数对应的值不能通过匹配校验。如果您确定需要使用该参数值,请与我们联系。'], + ['code' => '%sServiceNotFound', 'message' => 'The [%s] service is not activated.', 'http_code' => 403, 'description' => '服务没有开通。'], + ['code' => 'Abs.CertRegion.ValueNotSupported', 'message' => 'CertRegion is not supported.', 'http_code' => 400, 'description' => '不支持的证书地域。'], + ['code' => 'Abs.sslProtocol.ValueNotSupported', 'message' => 'The specified SSLProtocol is invalid.', 'http_code' => 400, 'description' => '指定的SSLProtocol参数无效。'], + ['code' => 'AccountArrears', 'message' => 'The user‘s account is in arrears.', 'http_code' => 400, 'description' => '您的账号已欠费,无法操作'], + ['code' => 'AccountBlacklist', 'message' => 'Account blacklist restrictions, please submit a work order to contact customer service for processing.', 'http_code' => 400, 'description' => '账号黑名单限制,请提交工单联系客服处理。'], + ['code' => 'ActiveSiteNotExist', 'message' => 'No matched active site.', 'http_code' => 400, 'description' => '没有和记录名匹配上的已经激活的站点。'], + ['code' => 'ApplyCertificateNotAllowed', 'message' => 'The certificate application is not allowed for current site.', 'http_code' => 400, 'description' => '当前站点不允许申请免费免费证书,请确保站点已激活。对于申请泛域名证书,请确保当前站点是以NS方式接入。'], + ['code' => 'ApplyVanityNSError', 'message' => 'Failed to apply for vanity NS resources. Please contact customer service.', 'http_code' => 400, 'description' => '申请自定义NS资源失败,请联系客服处理。'], + ['code' => 'ApplyVipError', 'message' => 'Failed to apply for ip resources, please contact customer service.', 'http_code' => 400, 'description' => '申请ip资源失败,请联系客服。'], + ['code' => 'ArgQuotaCheckFailed', 'message' => 'The passed-in parameter value failed to verify the validity of the plan. Please check the plan document to obtain the range of parameters that can be configured for the site plan.', 'http_code' => 400, 'description' => '当前套餐不支持配置受限参数,请检查输入的参数。'], + ['code' => 'AuthenticationFailed', 'message' => 'Error performing verification.', 'http_code' => 400, 'description' => '身份验证失败。'], + ['code' => 'AuthenticationFailed', 'message' => 'The API authentication failed.', 'http_code' => 403, 'description' => '接口鉴权失败'], + ['code' => 'AuthorizeFailed', 'message' => 'Failed to authenticate.', 'http_code' => 400, 'description' => '鉴权失败'], + ['code' => 'BatchSetBusinessError', 'message' => 'some configs error:%s', 'http_code' => 400, 'description' => '发生配置错误:%s'], + ['code' => 'BillingMode.NotChanged', 'message' => 'The billing model has not been changed.', 'http_code' => 400, 'description' => '计费模式没有改变。'], + ['code' => 'BillingMode.Overdue', 'message' => 'The user is not allowed to modify the billing type in the overdue state.', 'http_code' => 400, 'description' => '用户在欠费状态不允许修改计费类型'], + ['code' => 'BillingMode.OverLimit', 'message' => 'You can modify the billing type at most once within 24 hours.', 'http_code' => 400, 'description' => '24小时内最多只允许修改计费类型一次。'], + ['code' => 'BusinessExist', 'message' => 'The domain is being submitted; do not submit again.', 'http_code' => 400, 'description' => '业务已存在,请勿重复提交。'], + ['code' => 'CacheReserveSiteExceedLimit', 'message' => 'The number of binding sites of the cache reserve instance exceeds the limit. The number of binding sites of a single cache reserve instance is limited. Please see the document for the limit.', 'http_code' => 400, 'description' => '缓存保持实例绑定的站点数量超过上限。'], + ['code' => 'CanNotSetSequence', 'message' => 'Non-regular configuration, you cannot set Sequence parameters.', 'http_code' => 400, 'description' => '全局配置中不允许设置Sequence参数。'], + ['code' => 'CdnTypeNotSupportExtensiveDomain', 'message' => 'Wildcard domain names are not supported.', 'http_code' => 400, 'description' => '不支持泛域名。'], + ['code' => 'CertIdentifier.MissingParameter', 'message' => 'The input parameter CertIdentifier that is mandatory for processing this request is not supplied.', 'http_code' => 400, 'description' => '参数CertIdentifier缺失!'], + ['code' => 'Certificate.DecodeError', 'message' => 'An error occurred while decoding the certificate.', 'http_code' => 400, 'description' => '证书解码失败。'], + ['code' => 'Certificate.Duplicated', 'message' => 'The certificate name already exists.', 'http_code' => 400, 'description' => '证书重复。'], + ['code' => 'Certificate.EncodeError', 'message' => 'An error occurred while encoding the certificate.', 'http_code' => 400, 'description' => '证书编码错误。'], + ['code' => 'Certificate.Expired', 'message' => 'The certificate has expired.', 'http_code' => 400, 'description' => '证书过期了。'], + ['code' => 'Certificate.FormatError', 'message' => 'The format of the certificate is invalid.', 'http_code' => 400, 'description' => '证书格式错误。'], + ['code' => 'Certificate.KeyNull', 'message' => 'The private key is required.', 'http_code' => 400, 'description' => '私钥不能为空。'], + ['code' => 'Certificate.MissingParameter', 'message' => 'You must specify the Certificate parameter.', 'http_code' => 400, 'description' => '请求缺少Certificate参数。'], + ['code' => 'Certificate.MissMatch', 'message' => 'The SSLPri does not match the certificate.', 'http_code' => 400, 'description' => '证书与私钥不匹配。'], + ['code' => 'Certificate.MissMatch', 'message' => 'The certificate does not match the domain.', 'http_code' => 400, 'description' => '证书和域名不匹配。'], + ['code' => 'Certificate.NoPrivateKey', 'message' => 'The private key of the certificate does not exist.', 'http_code' => 400, 'description' => '私钥不存在。'], + ['code' => 'Certificate.NotFind', 'message' => 'The certificate does not exist.', 'http_code' => 400, 'description' => '证书不存在。'], + ['code' => 'Certificate.NotFound', 'message' => 'The specified certificate does not exist.', 'http_code' => 404, 'description' => '指定的证书不存在。'], + ['code' => 'Certificate.StatusError', 'message' => 'The certificate does not exist, or the status of the certificate is invalid.', 'http_code' => 400, 'description' => '证书不存在或证书状态错误。'], + ['code' => 'Certificate.StatusError', 'message' => 'The status of the certificate is invalid.', 'http_code' => 400, 'description' => '证书状态错误。'], + ['code' => 'CertificateContent.Duplicated', 'message' => 'The certificate has been uploaded; do not upload again.', 'http_code' => 400, 'description' => '证书已经上传,请不要再次上传。'], + ['code' => 'CertNameAlreadyExists', 'message' => 'The CertName already exists.', 'http_code' => 400, 'description' => '该证书名称已存在。'], + ['code' => 'CertQuotaCheckFailed', 'message' => 'The custom certificate quota verification failed. The number of uploaded certificates exceeds the upper limit allowed for the plan.', 'http_code' => 400, 'description' => '自定义证书配额校验失败,上传证书数量超过套餐允许上限。'], + ['code' => 'CertStorage.failed', 'message' => 'Error saving the certificate.', 'http_code' => 400, 'description' => '证书保存失败。'], + ['code' => 'CheckCertificateQuotaFailed', 'message' => 'Cannot get free type certificate quota, please try later.', 'http_code' => 400, 'description' => '获取免费证书配额失败,请稍后重试。'], + ['code' => 'CheckCertificateQuotaFailed', 'message' => 'Cannot get free type certificate usage, please try later.', 'http_code' => 400, 'description' => '获取免费类型证书用量失败,请稍后重试。'], + ['code' => 'CheckIcpFailed', 'message' => 'Error checking ICP information; please try again later.', 'http_code' => 400, 'description' => '检查ICP信息失败,请稍后再试。'], + ['code' => 'CheckOrderFailed', 'message' => 'Invalid order parameter.', 'http_code' => 400, 'description' => '订单参数不合法。'], + ['code' => 'CheckPlanFailed', 'message' => 'Invalid planCode value.', 'http_code' => 400, 'description' => '套餐参数不合法。'], + ['code' => 'CheckRealTimeLogSlr.PermissionDenied', 'message' => 'Role: AliyunServiceRoleForDCDNServicesRealtimeLogPush not exist.', 'http_code' => 400, 'description' => '您没有权限创建服务关联角色。请联系您的阿里云账户或管理员,以授予您 AliyunDCDNFullAccess 策略或用于创建服务关联角色的自定义策略。服务名称:"realtimelogpush.dcdnservices.aliyuncs.com"。操作:ram:CreateServiceLinkedRole。'], + ['code' => 'CheckSourceHealthFailed', 'message' => 'Error checking the security. Provide the valid origin site information.', 'http_code' => 400, 'description' => '源站检查失败,请提供正确的源站信息。'], + ['code' => 'ClientCertificate.OverLimit', 'message' => 'You are allowed to create 20 client certificates at most under current site.', 'http_code' => 400, 'description' => '当前站点下最多创建20张客户端证书。'], + ['code' => 'CodeVersionInUse', 'message' => 'This version of the code is in use.', 'http_code' => 400, 'description' => '此版本代码正在使用中。'], + ['code' => 'CodeVersionNumberExceedQuotaLimit', 'message' => 'code version number exceeds the quota limit.', 'http_code' => 400, 'description' => '代码版本数超过配额限制。'], + ['code' => 'CompileRuleError', 'message' => 'Rule compilation failed, please check the rule information passed in to ensure that the rule is written according to the syntax described in the document.', 'http_code' => 400, 'description' => '规则编译失败,请检查传入的规则配置,请参考接口文档中描述的规则配置格式。'], + ['code' => 'ConfExceedLimit', 'message' => 'The number of function configurations exceeds the limit. Please check the interface document to see the number of configurations that can be supported by a single function.', 'http_code' => 400, 'description' => '当前功能的配置项数量已经超过系统设定的上限。'], + ['code' => 'ConfigConflicts', 'message' => 'Configuration conflicts, usually when multiple configurations are configured under the same function of the same site, such as duplicate rule names between multiple configurations.', 'http_code' => 400, 'description' => '参数唯一性校验失败,请检查重复的参数值。'], + ['code' => 'ConfigDuplicate', 'message' => 'The configuration already exists.', 'http_code' => 400, 'description' => '配置重复。'], + ['code' => 'ConfigDuplicate', 'message' => 'Duplicate configuration. This function has already been configured and cannot be added repeatedly.', 'http_code' => 400, 'description' => '配置重复,该功能已经存在配置,不允许重复添加。'], + ['code' => 'ConfigExceedLimit', 'message' => 'Count of config entries exceeds the limit.', 'http_code' => 400, 'description' => '配置条数超过限制。'], + ['code' => 'ConfigGroupAlreadyExist', 'message' => 'The configuration group already exists.', 'http_code' => 400, 'description' => '配置组已经存在。'], + ['code' => 'ConfigGroupNotExist', 'message' => 'The specified ConfigGroup does not exist.', 'http_code' => 400, 'description' => '指定的ConfigGroup不存在。'], + ['code' => 'ConfigIsGraying', 'message' => 'The domain configuration is under canary testing. You cannot modify the configuration in production environment.', 'http_code' => 400, 'description' => '域名配置在进行灰度,不允许修改正式环境的配置。'], + ['code' => 'ConfigNotFound', 'message' => 'The specified configid does not exist.', 'http_code' => 404, 'description' => '您输入的configid不存在,或输入的域名和configid不匹配,请检查更新后重试。'], + ['code' => 'ConfigOverLimit', 'message' => 'The number of config group exceeds the limit.', 'http_code' => 400, 'description' => '配置组数量超过限额。'], + ['code' => 'ConfigParentExceedLimit', 'message' => 'Config Parent exceed limit.', 'http_code' => 400, 'description' => '已引用的高级条件规则超过5条'], + ['code' => 'ConfigTooFrequent', 'message' => 'The time interval between two configurations is too short.', 'http_code' => 400, 'description' => '两次配置之间时间间隔太短。'], + ['code' => 'ConfigurationConflicts', 'message' => 'The staging environment has a configuration in effect. You cannot modify the production environment configuration.', 'http_code' => 400, 'description' => '模拟环境有一个配置,不能修改生产环境的配置。'], + ['code' => 'CreateCertificateFailed', 'message' => 'Create certificate failed,please try again.', 'http_code' => 400, 'description' => '创建证书失败,请重新创建证书。'], + ['code' => 'CreateFunctionFailed', 'message' => 'The configuration of the new site function failed. Please check the CreateSiteFunction interface document and check the parameters.', 'http_code' => 400, 'description' => '新增站点功能配置失败,请查看CreateSiteFunction接口文档,检查传参。'], + ['code' => 'CreateOrderFailed', 'message' => 'Failed to create order.', 'http_code' => 500, 'description' => '下单失败。'], + ['code' => 'CreateRealTimeLogSlr.PermissionDenied', 'message' => 'Role: AliyunServiceRoleForDCDNServicesRealtimeLogPush not exist.', 'http_code' => 400, 'description' => '您没有权限创建服务关联角色。请联系您的阿里云账户或管理员,以授予您 AliyunDCDNFullAccess 策略或用于创建服务关联角色的自定义策略。服务名称:"realtimelogpush.dcdnservices.aliyuncs.com"。操作:ram:CreateServiceLinkedRole。'], + ['code' => 'CreateRealTimeLogSlrError', 'message' => 'create Role: AliyunServiceRoleForDCDNServicesRealtimeLogPush error.', 'http_code' => 400, 'description' => '创建AliyunServiceRoleForDCDNServicesRealtimeLogPush 角色失败'], + ['code' => 'CreateSlr.PermissionDenied', 'message' => 'You are not authorized to create service-linked roles. Contact your Alibaba Cloud account or an administrator to grant you the AliyunDCDNFullAccess policy or the custom policy used to create service-linked roles. Service name: realtimelogdelivery.dcdn.aliyuncs.com. Action: ram:CreateServiceLinkedRole.', 'http_code' => 400, 'description' => '用户没有创建服务关联角色的权限,请联系主账号或权限管理员授权当前用户AliyunDCDNFullAccess或创建服务关联角色的自定义权限和策略。自定义权限策略的相关信息如下:Service Name:realtimelogdelivery.dcdn.aliyuncs.com,服务关联角色名称:AliyunServiceRoleForDCDNRealTimeLogDelivery, 执行该操作所需的用户权限:ram:CreateServiceLinkedRole '], + ['code' => 'CreateSlsProjectError', 'message' => 'Failed to create a Log Service project. Make sure that you have activated Log Service and the service is in the available state.', 'http_code' => 400, 'description' => '创建日志服务(SLS) Project失败,请确保您已经正确开通了SLS,且SLS处于可用状态。'], + ['code' => 'CreateTimeError', 'message' => 'The effective time of the same policy template cannot overlap.', 'http_code' => 400, 'description' => '同一策略模板的有效时间不能重叠。'], + ['code' => 'CreateUBSlsProjectFailed', 'message' => 'Create real-time log sls project failed.', 'http_code' => 403, 'description' => '创建实时日志sls投递项目失败'], + ['code' => 'CustomConfigExist', 'message' => 'these domains contains custom config', 'http_code' => 400, 'description' => '域名列表中存在定制化模板'], + ['code' => 'CustomTagIsInvalid', 'message' => 'The number of Custom Tag exceeds 20.', 'http_code' => 400, 'description' => 'Tag个数超过20个了。'], + ['code' => 'DataUpdating', 'message' => 'Data is updating,please wait.', 'http_code' => 400, 'description' => '数据正在更新,请稍等。'], + ['code' => 'DcdnIpaServiceNotFound', 'message' => 'The DCDN IPA service has not been activated.', 'http_code' => 403, 'description' => '没有开通DCDN IPA服务。'], + ['code' => 'DcdnService.HasOpened', 'message' => 'Your DCDN service has been activated.', 'http_code' => 400, 'description' => '您已开通过全站加速。'], + ['code' => 'DcdnServiceNotFound', 'message' => 'The DCDN service is not activated.', 'http_code' => 403, 'description' => '您的账户未开通DCDN服务,请开通后重试。'], + ['code' => 'DcdnServiceSuspended', 'message' => 'Your have overdue payments.', 'http_code' => 403, 'description' => '您的账户已欠费。'], + ['code' => 'DcdnServiceSuspended', 'message' => 'Your account has overdue payments.', 'http_code' => 403, 'description' => '您的账户已欠费。'], + ['code' => 'DDosExpired', 'message' => 'The user‘s DDoS protection has expired.', 'http_code' => 400, 'description' => '您的DDoS防护已过期,无法操作'], + ['code' => 'Decode.Error', 'message' => 'Error decoding the SSLPub or SSLPri certificate.', 'http_code' => 400, 'description' => '证书 sslpub 或 sslpri 解码错误。'], + ['code' => 'DefenseScene.MultiPolicies.NotSupport', 'message' => 'The specified defense scene does not support multiple policies bound to the same domain name.', 'http_code' => 400, 'description' => '指定的防护场景不支持同一域名绑定多个策略。'], + ['code' => 'DeleteFailed', 'message' => 'Error deleting the certificate.', 'http_code' => 400, 'description' => '删除证书失败。'], + ['code' => 'DeleteFunctionFailed', 'message' => 'Batch delete functions failed.', 'http_code' => 400, 'description' => '批量删除配置失败。'], + ['code' => 'DeliverExceedLimit', 'message' => 'The maximum number of subscribed tasks is exceeded.', 'http_code' => 400, 'description' => '订阅任务个数已达上限'], + ['code' => 'DependedByOthers', 'message' => 'An error occurred depending on another service.', 'http_code' => 400, 'description' => '依赖其它服务发生错误。'], + ['code' => 'Domain.BeianInvalid', 'message' => 'You are not allowed to perform this operation because the ICP license of your domain is invalid in Chinese Mainland.', 'http_code' => 400, 'description' => '域名中国大陆区域备案无效'], + ['code' => 'Domain.Bound.DefaultAndCustom', 'message' => 'The specified domain name is bound to both default and custom policies.', 'http_code' => 400, 'description' => '指定的域名同时绑定了默认和自定义策略。'], + ['code' => 'Domain.DDosAlreadyExists', 'message' => 'This specified domain has been in DDoS.', 'http_code' => 400, 'description' => '该域名已接入阿里云高防产品,请删除后再接入DCDN DDoS防护'], + ['code' => 'Domain.DDosQuotaFull', 'message' => 'The user’s domain quota for DDos is full.', 'http_code' => 400, 'description' => '防护域名数量已达上限,请变配加购域名数量'], + ['code' => 'Domain.NotSupport.Waf', 'message' => 'The specified domain name does not support WAF.', 'http_code' => 403, 'description' => '指定的域名不支持WAF。'], + ['code' => 'Domain.PortAllocateError', 'message' => 'Your port resource allocation failed, please try again in 30 minutes.', 'http_code' => 400, 'description' => '您本次提交的自定义端口资源分配失败,请30分钟后重试。多次重试失败可提交工单处理'], + ['code' => 'Domain.PortConfiguring', 'message' => 'This specified domain\'s special ports are configuring.', 'http_code' => 400, 'description' => '域名的特殊端口配置中,请稍后'], + ['code' => 'Domain.QuotaFull', 'message' => 'The user’s domain quota for the product is full.', 'http_code' => 400, 'description' => '域名配额超过上限'], + ['code' => 'DomainActiveInConfigGroup', 'message' => 'The domain has been activated in config group, it cannot be deleted.', 'http_code' => 400, 'description' => '该域名已经在配置组中激活,不可被删除。'], + ['code' => 'DomainAlreadyExist', 'message' => 'The specified domain already exists.', 'http_code' => 400, 'description' => '该域名已经存在。'], + ['code' => 'DomainBindAndUnbind.Overlapped', 'message' => 'The specified bind and unbind domain names overlap.', 'http_code' => 400, 'description' => '指定的绑定和解绑域名出现重叠。'], + ['code' => 'DomainExist.OtherProduct', 'message' => 'The domain already exists in %s.', 'http_code' => 400, 'description' => '域名已经在您其他产品中存在。'], + ['code' => 'DomainExist.OtherUser', 'message' => 'This domain is already added by another user.', 'http_code' => 400, 'description' => '域名已经被其他用户添加。'], + ['code' => 'DomainHasUnsuccessConfig', 'message' => 'Domain has unsuccessful config.', 'http_code' => 400, 'description' => '域名存在非成功状态的配置'], + ['code' => 'DomainInBlacklist', 'message' => 'The domain is in the blacklist.', 'http_code' => 400, 'description' => '该域名在黑名单中。'], + ['code' => 'DomainInProtectedMode', 'message' => 'The domain is in protection mode. To request permission, contact Customer Service.', 'http_code' => 403, 'description' => '此域名处于被保护模式。如果您想做这个操作,请联系我们。'], + ['code' => 'DomainInRiskList', 'message' => 'The domain you added may be at risk. If you have any questions, please submit a ticket.', 'http_code' => 400, 'description' => '您所添加的域名可能存在风险,如有任何疑问,请提交工单。'], + ['code' => 'DomainInSafeMode', 'message' => 'The domain is in safe mode. To request permission, contact Customer Service.', 'http_code' => 400, 'description' => '此域名处于安全模式。如果您想做这个操作,请工单联系我们。'], + ['code' => 'DomainNameOverLimit', 'message' => 'A maximum of 500 domains are supported for each request.', 'http_code' => 400, 'description' => '一次最多只支持500个域名,请减少域名重新请求。'], + ['code' => 'DomainNameOverLimit', 'message' => 'A maximum of 50 domains is supported for each request.', 'http_code' => 400, 'description' => '一次最多只支持50个域名,请减少域名重新请求。'], + ['code' => 'DomainNotFound', 'message' => 'domain not found', 'http_code' => 400, 'description' => '域名找不到'], + ['code' => 'DomainNotRegistration', 'message' => 'The specified domain name is not filed for ICP.', 'http_code' => 400, 'description' => '域名尚未备案,请先备案。'], + ['code' => 'DomainOverLimit', 'message' => 'The maximum number of domains is exceeded.', 'http_code' => 400, 'description' => '域名已达上限。'], + ['code' => 'DomainOwnerVerifyFail', 'message' => 'Owner verification of the root domain failed.', 'http_code' => 400, 'description' => '当您首次将新域名添加至阿里云DCDN时,需按要求做域名归属权验证,当您按要求配置DNS解析或文件验证后,才能正常成功添加域名。'], + ['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' => '该域名的根域已经被其他账号占用,若需要新增提交工单处理。'], + ['code' => 'DomainTraffic.ExceedThreshold', 'message' => 'You are not allowed to perform this operation because the traffic peak of the last day exceeds the threshold.', 'http_code' => 400, 'description' => '域名昨日峰值超限不可切换'], + ['code' => 'DomainVerifyFail', 'message' => 'Domain verification failed.', 'http_code' => 400, 'description' => '域名校验失败。'], + ['code' => 'Duplicate.TagKey', 'message' => 'The specified TagKey is duplicated.', 'http_code' => 400, 'description' => 'TagKey有重复的,请重新输入。'], + ['code' => 'DuplicateRequirementTicket', 'message' => 'You have already submitted the requirement ticket. Do not submit it again.', 'http_code' => 400, 'description' => '你已经提交过需求单了,无需重复提交。'], + ['code' => 'EdgeRoutine.GeneralError', 'message' => 'A server error occurred: %s', 'http_code' => 400, 'description' => '后端服务器发生错误:%s 。如果重试多次依然报错,请提交工单。'], + ['code' => 'EdgeRoutine.GeneralError.%s', 'message' => 'A server error occurred: %s', 'http_code' => 500, 'description' => '后端服务器发生错误,如果重试多次依然报错,请提交工单。'], + ['code' => 'EdgeScripOptionsHasInnerConfig', 'message' => 'The extension has a background configuration or a parameter of this configuration is invalid. For more information, submit a ticket.', 'http_code' => 400, 'description' => '扩展项存在后台配置或该配置的参数不合法,如有疑问,请提交工单咨询'], + ['code' => 'EdgeScriptCountExceedLimit', 'message' => 'The number of rules exceeds the default limit.', 'http_code' => 400, 'description' => '超过默认规则数量限制,如需提升数量,请提交工单咨询'], + ['code' => 'EdgeScriptGrammarNotSupport', 'message' => 'A background customization rule exists or a parameter of this configuration is invalid. For more information, submit a ticket.', 'http_code' => 400, 'description' => '存在后台定制规则或该配置的参数不合法,如有疑问,请提交工单咨询'], + ['code' => 'EdgeScriptNotSupportJs', 'message' => 'JavaScript rules are not supported. For more information, submit a ticket.', 'http_code' => 400, 'description' => '未开放JS规则,如有疑问,请提交工单咨询'], + ['code' => 'EntityNotExist.ResourceGroup', 'message' => 'The resource group does not exist.', 'http_code' => 400, 'description' => '该资源组不存在。'], + ['code' => 'EntityNotExist.Role', 'message' => 'The specified role does not exist.', 'http_code' => 400, 'description' => '角色不存在。'], + ['code' => 'EntityNotExists.ResourceDir', 'message' => 'The account is not a master or a member of a resource directory.', 'http_code' => 400, 'description' => '当前账号不是主账号或不是资源目录的成员。'], + ['code' => 'EntityNotExists.ResourceGroup', 'message' => 'The resource group does not exist.', 'http_code' => 400, 'description' => '该资源组不存在。'], + ['code' => 'ErrDomainReserved', 'message' => 'Domain is reserved.', 'http_code' => 400, 'description' => '域名处于保护状态'], + ['code' => 'ErrSiteIdNoteEnterprise', 'message' => 'Site must be Enterprise Edition.', 'http_code' => 400, 'description' => '站点必须是企业版。'], + ['code' => 'ErrSmartScheduleOn', 'message' => 'Smart Schedule must be off.', 'http_code' => 400, 'description' => '智能清洗开关必须处于关闭状态。'], + ['code' => 'ErService.HasOpened', 'message' => 'Your er service has opened.', 'http_code' => 400, 'description' => '您的Er服务已经开通'], + ['code' => 'ErService.NotOpen', 'message' => 'Er service has not opend.', 'http_code' => 403, 'description' => 'ER服务未开启'], + ['code' => 'ExceedFileUpload', 'message' => 'The size of upload file must be less than 10MB.', 'http_code' => 400, 'description' => '上传文件大小需要小于10MB。'], + ['code' => 'Expression.Invalid', 'message' => 'The specified expression is invalid: %s.', 'http_code' => 403, 'description' => '指定的表达式是无效的。'], + ['code' => 'ExtensiveAndAllBothExist', 'message' => 'A wildcard domain name and a domain name with an all. prefix cannot be both specified.', 'http_code' => 400, 'description' => '泛域名与all.开头域名不能同时存在。'], + ['code' => 'ExtensiveAndSpecificDomainConflict', 'message' => 'The wildcard domain name overlaps a domain name at the same level.', 'http_code' => 400, 'description' => '泛域名和同级精确域名互斥,请重新添加。'], + ['code' => 'FlowControlError', 'message' => 'The request was denied due to flow control.', 'http_code' => 400, 'description' => '接口被流控限制。'], + ['code' => 'Forbidden.RAM', 'message' => 'You are not authorized to operate this resource, or this API does not support RAM.', 'http_code' => 403, 'description' => '未授权在该资源上操作,或者该API不支持RAM。'], + ['code' => 'Function.ArgDuplicate', 'message' => 'Duplicate feature parameters.', 'http_code' => 400, 'description' => '功能参数存在冲突'], + ['code' => 'Function.DependedByOthers', 'message' => 'The specified config is depended by others.', 'http_code' => 400, 'description' => '指定的配置被其他配置所依赖。'], + ['code' => 'Function.ExceedLimit', 'message' => 'The maximum number of configurations of the feature is exceeded.', 'http_code' => 400, 'description' => '该功能下的配置数量超过了限制数量'], + ['code' => 'Function.InvalidParentId', 'message' => 'The specified parentId does not exist.', 'http_code' => 400, 'description' => '指定的规则条件不存在'], + ['code' => 'Function.Unsupported', 'message' => 'The specified feature is not supported.', 'http_code' => 400, 'description' => '不支持的功能'], + ['code' => 'FunctionConflict', 'message' => 'The feature configuration conflicts. Sites with version management enabled cannot configure this feature.', 'http_code' => 400, 'description' => '当前配置的功能与其它功能存在冲突,如需要配置请先删除冲突的功能配置。'], + ['code' => 'FunctionMutex', 'message' => 'This configuration conflicts with another configuration.', 'http_code' => 400, 'description' => '您设置的该条配置与其他配置冲突。'], + ['code' => 'FunctionQuotaCheckFailed', 'message' => 'The quota verification for this function fails. It may be that the configuration of this function exceeds the limit of the site plan. Please check the plan introduction document corresponding to this site.', 'http_code' => 400, 'description' => '当前套餐不支持配置受限功能,请检查套餐相关的功能描述。'], + ['code' => 'GetTokenFailed', 'message' => 'Failed to obtain a token.', 'http_code' => 401, 'description' => '获取Token失败'], + ['code' => 'GrayConfigExist', 'message' => 'A canary configuration already exists under the domain.', 'http_code' => 400, 'description' => '域名已经存在其他灰度配置。'], + ['code' => 'GrayConfigIsNull', 'message' => 'You cannot delete all configurations. At least one configuration must be kept.', 'http_code' => 400, 'description' => '不能删除所有灰度配置,起码需要保留一条。'], + ['code' => 'GrayConfigIsNull', 'message' => 'You cannot delete all gary configurations. You can clear them by rolling back the simulation environment.', 'http_code' => 400, 'description' => '删空模拟环境下的规则并不能清空CDN节点上的配置,您可以通过回滚模拟环境来清空模拟环境下的配置。'], + ['code' => 'IcpBlack', 'message' => 'The domain is on the ICP blacklist.', 'http_code' => 400, 'description' => '域名在工信部黑名单。'], + ['code' => 'IllegalOperation', 'message' => 'You are not authorized to operate this domain.', 'http_code' => 400, 'description' => '非法域名,无法操作。'], + ['code' => 'IllegalOperation', 'message' => 'You are not authorized to operate this config template.', 'http_code' => 400, 'description' => '没有操作配置组的权限'], + ['code' => 'IllegalOperation.VersionManagement', 'message' => 'The current operation of version management is illegal.', 'http_code' => 400, 'description' => '非法的版本管理变更操作。'], + ['code' => 'IllegalOperationDomain', 'message' => 'You are not authorized to operate the domain.', 'http_code' => 400, 'description' => '您没有权限操作该域名。'], + ['code' => 'IllegalOriginSiteIp', 'message' => 'The specified origin site IP address is invalid.', 'http_code' => 403, 'description' => '源站IP不合法,无法添加。'], + ['code' => 'IllegalSources', 'message' => 'The specified origin site information is invalid.', 'http_code' => 400, 'description' => '源站信息非法,请重新填写。'], + ['code' => 'IncompleteInformation', 'message' => 'Your information is incomplete. Complete your information before the operation.', 'http_code' => 400, 'description' => '您的信息不完整,请先补充信息。'], + ['code' => 'Instance.NotOnline', 'message' => 'The specified instance is not online.', 'http_code' => 400, 'description' => '该套餐实例不是上线状态。'], + ['code' => 'InstanceBusy', 'message' => 'The instance is being modified.', 'http_code' => 400, 'description' => '实例正在变配中。'], + ['code' => 'InstanceNotExist', 'message' => 'The current package instance does not exist.', 'http_code' => 400, 'description' => '当前套餐实例不存在。'], + ['code' => 'Internal Exception', 'message' => 'The request processing has failed due to some unknown error, exception or failure.', 'http_code' => 500, 'description' => '内部错误,请稍后重试或联系我们。'], + ['code' => 'Internal.ConfigError', 'message' => 'An error occurred while configuring the certificate.', 'http_code' => 500, 'description' => '配置接口调用失败。'], + ['code' => 'Internal.CreateCSRError', 'message' => 'Failed to create the CSR.', 'http_code' => 500, 'description' => '生成 CSR 失败。'], + ['code' => 'Internal.EncodeCSRError', 'message' => 'Failed to encode the CSR.', 'http_code' => 500, 'description' => '编码 CSR 失败。'], + ['code' => 'Internal.EncodeKeyError', 'message' => 'Failed to encode the private key.', 'http_code' => 500, 'description' => '编码私钥失败。'], + ['code' => 'Internal.ForbidError', 'message' => 'You cannot modify the configurations when some features of the domain are in a canary deployment.', 'http_code' => 500, 'description' => '该域名有功能在灰度,不能进行变更。'], + ['code' => 'Internal.KeyError', 'message' => 'Failed to generate the RSA key.', 'http_code' => 500, 'description' => '生成 RSA 私钥失败。'], + ['code' => 'InternalError', 'message' => 'An internal error occurred; please try again later.', 'http_code' => 500, 'description' => '内部错误,请重试,如果多次重试报错请提交工单。'], + ['code' => 'InternalError', 'message' => 'The request processing has failed due to some unknown error.', 'http_code' => 400, 'description' => '内部错误。建议重试,如果多次重试报错请提交工单。'], + ['code' => 'InternalError', 'message' => 'The request processing has failed due to some unknown error, exception or failure.', 'http_code' => 500, 'description' => '内部错误,请稍后重试或联系我们!'], + ['code' => 'InternalError', 'message' => 'An internal exception occurred, please try again later.', 'http_code' => 400, 'description' => '触发内部异常,请稍后再试。'], + ['code' => 'InternalException', 'message' => 'An internal exception occurred, please try again later.', 'http_code' => 400, 'description' => '触发内部异常,请稍后再试。'], + ['code' => 'InternalOperationError', 'message' => 'Internal error in backend service.', 'http_code' => 400, 'description' => '后端服务内部错误。'], + ['code' => 'InvaildIpAddrList.LengthTooLong', 'message' => 'The Specified IpAddrList is too long.', 'http_code' => 400, 'description' => '批量参数超过限制,单次查询最多允许20条。'], + ['code' => 'InvaildParameter', 'message' => 'The specified parameters are invalid.', 'http_code' => 400, 'description' => '您提供的参数无效,请检查参数后重试。'], + ['code' => 'InvaildParameter', 'message' => 'The domain must differ from the origin site.', 'http_code' => 400, 'description' => '域名和源站不能相同,请修改后重新提交。'], + ['code' => 'InvaildParameter', 'message' => 'The specified DomainName is invalid.', 'http_code' => 400, 'description' => '域名参数无效,请重新填写。'], + ['code' => 'InvaildParameter', 'message' => 'The specified origin site IP format is invalid.', 'http_code' => 400, 'description' => '域名参数无效,请重新填写。'], + ['code' => 'InvaildParameter', 'message' => 'The parameter you provided is invalid.', 'http_code' => 403, 'description' => '输入参数格式错误。'], + ['code' => 'InvaildParameterDomainName', 'message' => 'The specified DomainName is invalid.', 'http_code' => 400, 'description' => 'DomainName参数错误。请重新填写。'], + ['code' => 'InvaildParameterSource', 'message' => 'The domain must be different from the origin site.', 'http_code' => 400, 'description' => '域名和源站不能相同,请修改后重新提交。'], + ['code' => 'Invalid%s.Malformed', 'message' => 'The specified ArgValue [%s] is invalid.', 'http_code' => 400, 'description' => '不支持该ArgValue,请填写正确的ArgValue。'], + ['code' => 'Invalid%s.ValueNotSupported', 'message' => 'FunctionName [%s] is not supported.', 'http_code' => 400, 'description' => '不支持该配置,请重新查询。'], + ['code' => 'Invalid%s.ValueNotSupported', 'message' => '[%s] is not supported.', 'http_code' => 400, 'description' => '不支持该设置。'], + ['code' => 'Invalid.Parameter', 'message' => 'The specified parameter is invalid.', 'http_code' => 400, 'description' => '输入参数无效'], + ['code' => 'Invalid.Value', 'message' => 'The request Value is invalid.', 'http_code' => 400, 'description' => '请求Value不合法。'], + ['code' => 'InvalidAccount.Malformed', 'message' => 'The specified account is invalid.', 'http_code' => 400, 'description' => '账号输入不对,比如输入为空'], + ['code' => 'InvalidAccount.NotFound', 'message' => 'The specified account does not exist.', 'http_code' => 404, 'description' => '账号不存在,未创建'], + ['code' => 'InvalidApp.NotFound', 'message' => 'Specified app is not found.', 'http_code' => 404, 'description' => '指定的 app 找不到'], + ['code' => 'InvalidAreaParameter', 'message' => 'The specified Area is invalid.', 'http_code' => 400, 'description' => 'Area参数非法。'], + ['code' => 'InvalidArgName', 'message' => 'The parameter name does not exist, please check the function interface document.', 'http_code' => 400, 'description' => '不存在的参数名,请查看功能接口文档。'], + ['code' => 'InvalidArgName.ValueNotSupported', 'message' => '%s', 'http_code' => 400, 'description' => '不支持的参数名称 %s(%s为具体参数名)'], + ['code' => 'InvalidArgValue.Malformed', 'message' => 'The specified ArgValue is invalid.', 'http_code' => 400, 'description' => 'ArgValue错误,请重新填写。'], + ['code' => 'InvalidArgValue.Malformed', 'message' => '%s', 'http_code' => 400, 'description' => '%s'], + ['code' => 'InvalidBaseVersion.Malformed', 'message' => 'The specified BaseVersion validation error.', 'http_code' => 400, 'description' => '指定的BaseVersion错误。'], + ['code' => 'InvalidCdnType.Malformed', 'message' => 'This operation is not supported.', 'http_code' => 400, 'description' => '不支持该操作。'], + ['code' => 'InvalidCertId.NotFound', 'message' => 'The certId does not exist.', 'http_code' => 400, 'description' => '证书ID不存在'], + ['code' => 'InvalidCertIdentifier.ValueNotSupported', 'message' => 'The specified value of parameter CertIdentifier is not valid.', 'http_code' => 400, 'description' => '指定的CertIdentifier不合法。'], + ['code' => 'InvalidCertificate', 'message' => 'The specified certificate format is invalid.', 'http_code' => 400, 'description' => 'Certificate格式错误,请填写正确的Certificate后重试。'], + ['code' => 'InvalidCertificate.NotFound', 'message' => 'The certificate does not belong to this site.', 'http_code' => 400, 'description' => '证书不属于该站点。'], + ['code' => 'InvalidCertificate.TooLong', 'message' => 'The maximum length of the certificate is exceeded.', 'http_code' => 400, 'description' => 'Certificate长度超过限制。'], + ['code' => 'InvalidCertificate.TooLong', 'message' => 'The maximum lengths of the certificate and the SSLPri are exceeded.', 'http_code' => 400, 'description' => '证书和私钥长度超出限制。'], + ['code' => 'InvalidCertName.TooLong', 'message' => 'The length of the certificate name cannot exceed 128 characters.', 'http_code' => 400, 'description' => '证书名称不能超过128个字符。'], + ['code' => 'InvalidChangeEndTime.Malformed', 'message' => 'The specified ChangeEndTime is invalid.', 'http_code' => 400, 'description' => '更新结束时间非法。'], + ['code' => 'InvalidChangeStartTime.Malformed', 'message' => 'The specified ChangeStartTime is invalid.', 'http_code' => 400, 'description' => '更新开始时间非法。'], + ['code' => 'InvalidCheckUrl.Malformed', 'message' => 'The specified CheckUrl is invalid.', 'http_code' => 400, 'description' => 'CheckUrl参数非法。'], + ['code' => 'InvalidComponent', 'message' => 'The specified value of parameter BillType is not valid.', 'http_code' => 400, 'description' => '计费类型非法,请重新输入。'], + ['code' => 'InvalidConfigDomain.Malformed', 'message' => 'The quota for the config group domain is exceeded.', 'http_code' => 400, 'description' => '域名数量超过单个配置组的上限。'], + ['code' => 'InvalidConfigGroup.NotFound', 'message' => 'The config group does not exist.', 'http_code' => 400, 'description' => '该配置组不存在。'], + ['code' => 'InvalidConfigId', 'message' => 'The specified configId is invalid.', 'http_code' => 400, 'description' => '功能的configId非法,不存在或不属于当前实例'], + ['code' => 'InvalidConfigId', 'message' => 'The input configuration ID: ConfigId it does not exist, query the existing configuration and its valid ConfigId through the ListSiteFunction.', 'http_code' => 400, 'description' => '传入的ConfigId不存在。'], + ['code' => 'InvalidData.NotFound', 'message' => 'The data is not found.', 'http_code' => 400, 'description' => '找不到该数据。'], + ['code' => 'InvalidDomain.BelongToConfigGroup', 'message' => 'The domain is bound to a configuration group. Modify the domain in the configuration group.', 'http_code' => 400, 'description' => '这个域名绑定了一个配置组,需要通过修改配置组的配置来修改。'], + ['code' => 'InvalidDomain.Configure_failed', 'message' => 'Error configuring the domain.', 'http_code' => 500, 'description' => '域名配置失败。'], + ['code' => 'InvalidDomain.Malformed', 'message' => 'Only one config group can be attached to a domain.', 'http_code' => 400, 'description' => '一个域名只能绑定一个配置组。'], + ['code' => 'InvalidDomain.NotExist', 'message' => 'The domain you provided is not exist.', 'http_code' => 400, 'description' => '您所提供的域名不存在。'], + ['code' => 'InvalidDomain.NotFound', 'message' => 'The domain does not exist, or it does not belong to you.', 'http_code' => 404, 'description' => '域名不存在或不属于当前用户。请检查您填写的域名书写是否正确,或者域名是否在当前账号中,查看域名是否过期。'], + ['code' => 'InvalidDomain.NotFound', 'message' => 'The specified domain does not exist.', 'http_code' => 404, 'description' => '该域名不存在。'], + ['code' => 'InvalidDomain.notOnline', 'message' => 'The domain is offline. Check the status of the domain and try again later.', 'http_code' => 400, 'description' => '域名未在线,请检查域名状态,稍后再试。'], + ['code' => 'InvalidDomain.NotOnline', 'message' => 'Domain should be online status to activate.', 'http_code' => 400, 'description' => '域名需要启用状态才能激活配置组。'], + ['code' => 'InvalidDomain.Offline', 'message' => 'The domain is offline.', 'http_code' => 404, 'description' => '域名已下线。'], + ['code' => 'InvalidDomainName', 'message' => 'The specified DomainName is invalid.', 'http_code' => 400, 'description' => '参数DomainName不合法,请根据请求参数规定重新输入。'], + ['code' => 'InvalidDomainName', 'message' => 'The specified DomainNames is invalid.', 'http_code' => 400, 'description' => '未指定域名或指定的域名超过限制,请确认传入的域名符合API文档说明。'], + ['code' => 'InvalidDomainName.Malformed', 'message' => 'The specific DomainName is invalid.', 'http_code' => 400, 'description' => '指定的域名无效。'], + ['code' => 'InvalidDomainName.Malformed', 'message' => 'The specified DomainName is invalid.', 'http_code' => 400, 'description' => '域名格式错误。'], + ['code' => 'InvalidDomainNameLevel', 'message' => 'The alicdn.com domain supports a maximum of three levels of domain.', 'http_code' => 400, 'description' => 'alicdn.com(针对泛域名)最多支持三级域名。'], + ['code' => 'InvalidDomainNames.Malformed', 'message' => 'The specified DomainNames is invalid.', 'http_code' => 400, 'description' => '指定的DomainNames错误。'], + ['code' => 'InvalidDomainNumber.TooLong', 'message' => 'The maximum number of DomainNumber is 50.', 'http_code' => 400, 'description' => '域名个数不能超过50个。'], + ['code' => 'InvalidDomainSearchType.ValueNotSupported', 'message' => 'The specified value of DomainSearchType is invalid.', 'http_code' => 400, 'description' => 'DomainSearchType值错误,请重新填写。'], + ['code' => 'InvalidDomainStatus.ValueNotSupported', 'message' => 'The specified value of DomainStatus is invalid.', 'http_code' => 400, 'description' => 'DomainStatus值错误,请重新填写。'], + ['code' => 'InvalidEndTime.Malformed', 'message' => 'The specified EndTime is invalid.', 'http_code' => 400, 'description' => '请提供正确的结束时间格式。日期格式按照ISO8601表示法,并使用UTC时间。 格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['code' => 'InvalidEndTime.Mismatch', 'message' => 'The specified EndTime is earlier than the StartTime.', 'http_code' => 400, 'description' => '结束时间早于开始时间,请检查。'], + ['code' => 'InvalidEndTimeParameter', 'message' => 'The specified end time is invalid.', 'http_code' => 400, 'description' => '结束时间格式错误。'], + ['code' => 'InvalidExecution.CountFull', 'message' => 'The execution count of job is full.', 'http_code' => 400, 'description' => '预热任务的执行计划数目过多。'], + ['code' => 'InvalidExecution.ExecutionNotFound', 'message' => 'The specified execution is not found.', 'http_code' => 404, 'description' => '未找到指定参数的执行计划。'], + ['code' => 'InvalidExecution.NotFound', 'message' => 'The specified execution is not found.', 'http_code' => 404, 'description' => '未找到指定预热计划。'], + ['code' => 'InvalidExtensiveDomain.ValueNotSupported', 'message' => 'The specified ExtensiveDomain is not supported.', 'http_code' => 400, 'description' => '不支持泛域名。'], + ['code' => 'InvalidExtensiveDomain.ValueNotSupported', 'message' => 'Extensive domains are not supported.', 'http_code' => 400, 'description' => '不支持泛域名'], + ['code' => 'InvalidFieldsParameter', 'message' => 'The specified Field is invalid.', 'http_code' => 400, 'description' => 'Field参数非法。'], + ['code' => 'InvalidFunction.Malformed', 'message' => 'The configuration of the %s function of %s already exists. Only when it is consistent with the current configuration group can you attach it.', 'http_code' => 400, 'description' => 'XXXX 的YYYY 功能的配置已经存在。只有当它与当前配置组一致时,才能附加它。'], + ['code' => 'InvalidFunctionName.ValueNotSupported', 'message' => '%s', 'http_code' => 400, 'description' => '%s'], + ['code' => 'InvalidFunctions.Malformed', 'message' => 'The specified Functions is invalid.', 'http_code' => 400, 'description' => '不支持该配置,请重新填写。'], + ['code' => 'InvalidHeaderKey.ValueNotSupported', 'message' => 'The specified value of parameter HeaderKey is not supported.', 'http_code' => 400, 'description' => 'HeaderKey的值不合法。'], + ['code' => 'InvalidInstance', 'message' => 'The specified instance is invalid.', 'http_code' => 400, 'description' => '指定的实例不合法。'], + ['code' => 'InvalidIntervalParameter', 'message' => 'The specified Interval is invalid.', 'http_code' => 400, 'description' => 'interval参数错误。'], + ['code' => 'InvalidIP.ValueNotSupported', 'message' => 'The specified value of parameter IP is not supported.', 'http_code' => 400, 'description' => 'IP格式不正确。'], + ['code' => 'InvalidIspNameEn.Malformed', 'message' => 'The specified IspNameEn is invalid.', 'http_code' => 400, 'description' => '填写的运营商英文名称错误,请通过DescribeCdnRegionAndIsp接口获得运营商英文名后重试。'], + ['code' => 'InvalidIspParameter', 'message' => 'The specified Isp is invalid.', 'http_code' => 400, 'description' => '运营商参数错误。'], + ['code' => 'InvalidJob.JobCountOfSiteFull', 'message' => 'The job count of site is full.', 'http_code' => 400, 'description' => '站点的预热任务个数过多。'], + ['code' => 'InvalidJob.NotFound', 'message' => 'The specified job is not found.', 'http_code' => 404, 'description' => '未找到指定预热任务。'], + ['code' => 'InvalidKey.ExceedsCapacity', 'message' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'http_code' => 403, 'description' => 'namespace容量超过限制,单个namespace最大容量为1G'], + ['code' => 'InvalidKey.ExceedsCapacity', 'message' => 'The capacity of the namespace exceeds the quota.', 'http_code' => 403, 'description' => '存储空间的容量超过限制'], + ['code' => 'InvalidKey.ExceedsMaximum', 'message' => 'The size of the key cannot exceed 512 bytes.', 'http_code' => 400, 'description' => 'key长度不能超过512B'], + ['code' => 'InvalidKey.Malformed', 'message' => 'The specified key is invalid.', 'http_code' => 400, 'description' => 'key输入不对,比如输入为空'], + ['code' => 'InvalidKey.NotFound', 'message' => 'The specified key does not exist.', 'http_code' => 404, 'description' => '请求的key不存在'], + ['code' => 'InvalidKey.QuotaFull', 'message' => 'The maximum number of keys is exceeded.', 'http_code' => 406, 'description' => 'key个数超过quota限制'], + ['code' => 'InvalidKey.QuotaFull', 'message' => 'The total number of IP exceeds the quota.', 'http_code' => 406, 'description' => 'ip总数量超过配额。'], + ['code' => 'InvalidKey.TooManyKeys', 'message' => 'request contains too many keys.', 'http_code' => 400, 'description' => '单次请求包含过多数量的key'], + ['code' => 'InvalidLimitParameter', 'message' => 'The specified Limit is invalid.', 'http_code' => 400, 'description' => 'Limit参数错误。'], + ['code' => 'InvalidLocationNameEn.Malformed', 'message' => 'The specified LocationNameEn is not supported.', 'http_code' => 400, 'description' => '不支持该LocationNameEn。'], + ['code' => 'InvalidLocName', 'message' => 'The specified LocName is not supported.', 'http_code' => 400, 'description' => 'LocName不支持该值。'], + ['code' => 'InvalidNameSpace.Duplicate', 'message' => 'The specified namespace already exists.', 'http_code' => 406, 'description' => 'namespace已存在'], + ['code' => 'InvalidNameSpace.Malformed', 'message' => 'The specified namespace is invalid.', 'http_code' => 400, 'description' => 'namespace输入不对,比如输入为空'], + ['code' => 'InvalidNameSpace.NotFound', 'message' => 'The specified namespace does not exist.', 'http_code' => 404, 'description' => 'namespace不存在'], + ['code' => 'InvalidNameSpace.QuotaFull', 'message' => 'The maximum number of namespaces is exceeded.', 'http_code' => 406, 'description' => 'namespace个数超过quota限制'], + ['code' => 'InvalidNodeGroupParameter', 'message' => 'The specified nodegroup parameter is invalid.', 'http_code' => 400, 'description' => 'Nodegroup参数非法。'], + ['code' => 'InvalidNodeGroupProductParameter', 'message' => 'The specified ngProduct parameter is invalid.', 'http_code' => 400, 'description' => 'ngProduct参数非法。'], + ['code' => 'InvalidObjectPath.ExceedsMaximum', 'message' => 'The maximum number of urls is exceeded.', 'http_code' => 400, 'description' => '提交URL数超过最大限制。'."\n"], + ['code' => 'InvalidObjectPath.Malformed', 'message' => 'The specified ObjectPath is invalid.', 'http_code' => 400, 'description' => 'ObjectPath错误,请填写正确的ObjectPath。'], + ['code' => 'InvalidObjectPath.Malformed', 'message' => 'The specified value of ObjectPath is invalid.', 'http_code' => 400, 'description' => '参数ObjectPath值格式错误。输入示例:abc.com/image/1.png。多个URL之间需要用换行符(\\n 或 \\r\\n)分隔。'], + ['code' => 'InvalidObjectType.Malformed', 'message' => 'The specified ObjectType is invalid.', 'http_code' => 400, 'description' => '不支持该ObjectType,请重新输入。'], + ['code' => 'InvalidObjectType.ValueNotSupported', 'message' => 'The specified ObjectType is not supported.', 'http_code' => 400, 'description' => 'ObjectType错误,请重新填写ObjectType。'], + ['code' => 'InvalidOffsetParameter', 'message' => 'The specified Page is invalid.', 'http_code' => 400, 'description' => 'page参数错误'], + ['code' => 'InvalidPageNumber.ValueNotSupported', 'message' => 'The specified PageNumber is not supported.', 'http_code' => 400, 'description' => '该PageNumber无效,请重新填写。'], + ['code' => 'InvalidPageNumber.ValueNotSupported', 'message' => 'The specified value of PageNumber is not supported.', 'http_code' => 400, 'description' => '页码参数错误,请重新填写。'], + ['code' => 'InvalidPageSize.ValueNotSupported', 'message' => 'The specified value of PageSize is invalid.', 'http_code' => 400, 'description' => 'PageSize参数错误,请重新填写。'], + ['code' => 'InvalidParameter', 'message' => 'The specified parameter is invalid.', 'http_code' => 400, 'description' => '参数错误'], + ['code' => 'InvalidParameter', 'message' => 'The number of domains reached the version limit.', 'http_code' => 400, 'description' => '已开通的域名数量达到版本限制'], + ['code' => 'InvalidParameter', 'message' => 'Domain already exists in high ddos.', 'http_code' => 400, 'description' => '开通的域名已经在高防中开通服务'], + ['code' => 'InvalidParameter', 'message' => 'The specified parameter is not valid.', 'http_code' => 400, 'description' => '参数校验不通过。'], + ['code' => 'InvalidParameter', 'message' => 'Input parameter specification verification failed.', 'http_code' => 400, 'description' => '输入参数规范校验失败。'], + ['code' => 'InvalidParameter.AddressConflict', 'message' => 'The incoming source address conflicts. You cannot have duplicate source addresses in the same origin pool.', 'http_code' => 400, 'description' => '传入的源站地址有冲突,同一个源地址池下,不能有重复的源站地址。'], + ['code' => 'InvalidParameter.appid', 'message' => 'The specified parameter appid is not valid.', 'http_code' => 400, 'description' => '参数值 appid 校验不通过'], + ['code' => 'InvalidParameter.ArgName', 'message' => 'The specified ArgName is invalid.', 'http_code' => 400, 'description' => '传入的ArgName非法。'], + ['code' => 'InvalidParameter.ArgValue', 'message' => 'The specified ArgValue is invalid.', 'http_code' => 400, 'description' => '传入的参数值校验失败。'], + ['code' => 'InvalidParameter.ConfigIds', 'message' => 'The Specified ConfigIds is invalid.', 'http_code' => 400, 'description' => '传入的ConfigIds参数不合法。'], + ['code' => 'InvalidParameter.Configs', 'message' => 'The specified configs are invalid.', 'http_code' => 400, 'description' => '传入的配置信息不合法。'], + ['code' => 'InvalidParameter.Coverage', 'message' => 'The specified coverage is invalid.', 'http_code' => 400, 'description' => '指定的加速区域不合法。'], + ['code' => 'InvalidParameter.Domains', 'message' => 'Specified parameter Domains has duplicate domain names.', 'http_code' => 400, 'description' => '指定的Domains参数中包含重复域名,请去重后重试。'], + ['code' => 'InvalidParameter.Domains', 'message' => 'The parameter Domains is missing or contains too many domain names.', 'http_code' => 400, 'description' => 'Domains参数中包含的域名数超过配额,请重新指定后重试。'], + ['code' => 'InvalidParameter.Domains', 'message' => 'The specified parameter Domains is applying the certificate.', 'http_code' => 400, 'description' => '指定的域名列表中存在正在进行的证书申请,请不要重复提交。'], + ['code' => 'InvalidParameter.Domains', 'message' => 'The specified parameter Domains does not belong to the current site.', 'http_code' => 400, 'description' => '指定参数Domains中包含的域名存在不属于当前站点的情况,请检查后重试。'], + ['code' => 'InvalidParameter.FunctionName', 'message' => 'The specified FunctionName is invalid.', 'http_code' => 400, 'description' => '传入的功能名称不存在。'], + ['code' => 'InvalidParameter.HealthCheckFailTimes', 'message' => 'Specified parameter HealthCheckFailTimes is not valid.', 'http_code' => 400, 'description' => '参数 HealthCheckFailTimes 格式不正确'."\n"], + ['code' => 'InvalidParameter.HealthCheckHost', 'message' => 'Specified parameter HealthCheckHost is not valid.', 'http_code' => 400, 'description' => '参数 HealthCheckHost 格式不正确'."\n"], + ['code' => 'InvalidParameter.HealthCheckHttpCode', 'message' => 'Specified parameter HealthCheckHttpCode is not valid.', 'http_code' => 400, 'description' => '参数 HealthCheckHttpCode 格式不正确'], + ['code' => 'InvalidParameter.HealthCheckInterval', 'message' => 'Specified parameter HealthCheckInterval is not valid.', 'http_code' => 400, 'description' => '参数 HealthCheckInterval 格式不正确'."\n"], + ['code' => 'InvalidParameter.HealthCheckMethod', 'message' => 'Specified parameter HealthCheckMethod is not valid.', 'http_code' => 400, 'description' => '参数 HealthCheckMethod 格式不正确'], + ['code' => 'InvalidParameter.HealthCheckPort', 'message' => 'Specified parameter HealthCheckPort is not valid.', 'http_code' => 400, 'description' => '参数 HealthCheckPort 格式不正确'], + ['code' => 'InvalidParameter.HealthCheckSuccTimes', 'message' => 'Specified parameter HealthCheckSuccTimes is not valid.', 'http_code' => 400, 'description' => '参数 HealthCheckSuccTimes 格式不正确'], + ['code' => 'InvalidParameter.HealthCheckTimeout', 'message' => 'Specified parameter HealthCheckTimeout is not valid.', 'http_code' => 400, 'description' => '参数 HealthCheckTimeout 格式不正确'."\n"], + ['code' => 'InvalidParameter.HealthCheckType', 'message' => 'Specified parameter HealthCheckType is not valid.', 'http_code' => 400, 'description' => '参数 HealthCheckType 格式不正确'], + ['code' => 'InvalidParameter.HealthCheckURI', 'message' => 'Specified parameter HealthCheckURI is not valid.', 'http_code' => 400, 'description' => '参数 HealthCheckURI 格式不正确'."\n"], + ['code' => 'InvalidParameter.HttpHeaders', 'message' => 'The specified HttpHeaders is invalid. Please check the HttpHeaders parameter. Please make the necessary changes and call the interface again.', 'http_code' => 400, 'description' => 'HttpHeaders参数无效。请检查HttpHeaders参数是否填写,该参数不能包含 @ # 等非法字符,请进行修改后,重新调用接口。'], + ['code' => 'InvalidParameter.Image', 'message' => 'The specified Image is invalid. Please check the Image parameter and make the necessary modifications and call the interface again.', 'http_code' => 400, 'description' => 'Image参数非法。请检查Image参数,该参数不能赋值为非法字符如 @、#、% 等,请进行修改后,重新调用接口。'], + ['code' => 'InvalidParameter.InvalidRecordName', 'message' => 'The DNS record name you entered does not meet the required specifications. Please adjust the record name according to the product documentation.', 'http_code' => 400, 'description' => '您输入的记录名称不符合规范,请根据产品文档调整记录名称。'], + ['code' => 'InvalidParameter.InvalidRecordName', 'message' => 'The record name you entered does not meet the specifications. Change the record name according to the product documentation.', 'http_code' => 400, 'description' => '您输入的记录名称不符合规范,请根据产品文档调整记录名称。'], + ['code' => 'InvalidParameter.InvalidSiteEnvironmentName', 'message' => 'The specified site environment name is invalid.', 'http_code' => 400, 'description' => '站点环境名称非法。'], + ['code' => 'InvalidParameter.InvalidVanityNSName', 'message' => 'A vanity nameserver must be an absolute domain name. Correct it and try again.', 'http_code' => 400, 'description' => '自定义NS名称需输入完整域名,请调整后重新提交。'], + ['code' => 'InvalidParameter.InvalidVanityNSNum', 'message' => 'Enter 2 to 5 vanity nameservers. Correct them and try again.', 'http_code' => 400, 'description' => '自定义NS需要2~5个名称,请调整后重新提交。'], + ['code' => 'InvalidParameter.JobType', 'message' => 'The specified job type is invalid.', 'http_code' => 400, 'description' => '无效的预热任务类型参数。'], + ['code' => 'InvalidParameter.LoadBalancerNameInvalid', 'message' => 'The load balancer name is invalid. It must be a valid domain name and a subdomain name under the site.', 'http_code' => 400, 'description' => '负载均衡器名称非法,需要是合法的域名,并且是站点下的子域名。'], + ['code' => 'InvalidParameter.Name', 'message' => 'The specified Name is invalid. Please check the Name parameter, which must be between 6 and 128 characters. Kindly make the necessary modifications and call the interface again.', 'http_code' => 400, 'description' => 'Name 参数无效。请检查Name参数,该参数范围为6-128个字符之间,请进行修改后,重新调用接口。'], + ['code' => 'InvalidParameter.ObjectId', 'message' => 'The specified object id is invalid.', 'http_code' => 400, 'description' => '指定的对象ID无效。'], + ['code' => 'InvalidParameter.OrderKey', 'message' => 'The specified OrderKey is invalid. Please check the OrderKey parameter.', 'http_code' => 400, 'description' => 'OrderKey参数无效。请检查OrderKey参数,该参数不能赋值为非法字符如 @、#、% 等,请进行修改后,重新调用接口。'], + ['code' => 'InvalidParameter.OrderType', 'message' => 'The specified OrderType is invalid. Please check the OrderType parameter. You may not have set it to either Asc or Desc. Please make the necessary changes and call the interface again.', 'http_code' => 400, 'description' => 'OrderType参数无效。请检查OrderType参数,你有可能未设置为 Asc、Desc其中一种,请进行修改后,重新调用接口。'], + ['code' => 'InvalidParameter.PageNumber', 'message' => 'Specified parameter pagenumber is not valid.', 'http_code' => 400, 'description' => '参数 pagenumber 格式不正确'], + ['code' => 'InvalidParameter.Percentage', 'message' => 'The Percentage parameter is invalid. Please check the Percentage parameter, which should be in the range of 1-100. Modify it accordingly and call the interface again.', 'http_code' => 400, 'description' => ' Percentage 参数无效。请检查Percentage参数,该参数范围为1-100,请进行修改后,重新调用接口。'], + ['code' => 'InvalidParameter.PublishEnv', 'message' => 'The specified PublishEnv is invalid. Please check the PublishEnv parameter. It may not be set to either "prod" or "staging." Please make the necessary changes and call the interface again.', 'http_code' => 400, 'description' => 'PublishEnv参数无效。请检查PublishEnv参数,你有可能未设置为prod、staging其中一种,请进行修改后,重新调用接口。'], + ['code' => 'InvalidParameter.RecordData', 'message' => 'The specified record data is invalid.', 'http_code' => 400, 'description' => '记录的内容非法。'], + ['code' => 'InvalidParameter.RecordName', 'message' => 'The specified RecordName is invalid.', 'http_code' => 400, 'description' => '记录名称是必需参数,需要填写合法的记录名称。'], + ['code' => 'InvalidParameter.RecordType', 'message' => 'The specified record type is invalid.', 'http_code' => 400, 'description' => '记录的类型非法。'], + ['code' => 'InvalidParameter.SiteEnvironmentRuleDuplicate', 'message' => 'The specified site environment rule is the same as an existing environment.', 'http_code' => 400, 'description' => '站点环境规则与已有环境相同。'], + ['code' => 'InvalidParameter.SiteId', 'message' => 'Specified parameter SiteId is not valid.', 'http_code' => 400, 'description' => '指定的SiteId参数无效,无法从该id获取站点名称。'], + ['code' => 'InvalidParameter.SiteName', 'message' => 'The specified site name is invalid.', 'http_code' => 400, 'description' => '站点名称非法'], + ['code' => 'InvalidParameter.SiteVersionDescExceedLimit', 'message' => 'The specified site version description exceeds the maximum length.', 'http_code' => 400, 'description' => '站点版本描述超过最大长度。'], + ['code' => 'InvalidParameter.TagValue', 'message' => 'The specified TagValue is invalid.', 'http_code' => 400, 'description' => 'TagValue参数无效。'], + ['code' => 'InvalidParameter.TimeRange', 'message' => 'The specified time range is invalid.', 'http_code' => 400, 'description' => '时间范围参数错误'], + ['code' => 'InvalidParameter.VanityNSNameDuplicate', 'message' => 'The vanity nameservers are duplicated. Please delete it and try again.', 'http_code' => 400, 'description' => '存在重复的自定义NS名称,请删除后重新提交。'], + ['code' => 'InvalidParameter.VersionId', 'message' => 'The specified VersionId is invalid. Please check the VersionId parameter. You may not have entered the parameter or the parameter does not start with ver-string. Please modify it and call the interface again.', 'http_code' => 400, 'description' => 'VersionId参数无效。请检查VersionId参数,你有可能未输入该参数或者,参数并未以ver-字符串开头,请进行修改后,重新调用接口。'], + ['code' => 'InvalidParameterAliuid', 'message' => 'The specified Aliuid is invalid.', 'http_code' => 400, 'description' => 'Aliuid参数错误'], + ['code' => 'InvalidParameterArea', 'message' => 'The specified Area is invalid.', 'http_code' => 400, 'description' => 'Area参数错误'], + ['code' => 'InvalidParameterBillType', 'message' => 'The specified BillType is invalid.', 'http_code' => 400, 'description' => 'BillType参数错误'], + ['code' => 'InvalidParameterDimension', 'message' => 'The specified Dimension is invalid.', 'http_code' => 400, 'description' => 'Dimension参数错误'], + ['code' => 'InvalidParameterEndTime', 'message' => 'The specified EndTime is invalid.', 'http_code' => 400, 'description' => 'EndTime参数错误'], + ['code' => 'InvalidParameterField', 'message' => 'The specified Field is invalid.', 'http_code' => 400, 'description' => 'Field参数错误'], + ['code' => 'InvalidParameterInterval', 'message' => 'The specified Interval is invalid.', 'http_code' => 400, 'description' => 'Interval参数错误'], + ['code' => 'InvalidParameterOperator', 'message' => 'The specified Operator is invalid.', 'http_code' => 400, 'description' => 'Operator参数错误'], + ['code' => 'InvalidParameterProduct', 'message' => 'The specified Product is invalid.', 'http_code' => 400, 'description' => 'Product参数错误'], + ['code' => 'InvalidParameters', 'message' => 'The specified parameters are invalid.', 'http_code' => 400, 'description' => '参数非法。'], + ['code' => 'InvalidParameterStartTime', 'message' => 'The specified StartTime is invalid.', 'http_code' => 400, 'description' => 'StartTime参数错误'], + ['code' => 'InvalidParameterTaskId', 'message' => 'The specified TaskId is invalid.', 'http_code' => 400, 'description' => 'TaskId参数错误'], + ['code' => 'InvalidParameterType', 'message' => 'The specified Type is invalid.', 'http_code' => 400, 'description' => 'Type参数错误,请确认后输入'], + ['code' => 'InvalidProductParameter', 'message' => 'The specified Product is invalid.', 'http_code' => 400, 'description' => 'Product参数非法。'], + ['code' => 'InvalidRegionId.Malformed', 'message' => 'The specified RegionId is invalid.', 'http_code' => 400, 'description' => 'RegionId参数非法。'], + ['code' => 'InvalidRequestDomain', 'message' => 'Failed to get the domain name.', 'http_code' => 400, 'description' => '域名获取失败'."\n" + ."\n"], + ['code' => 'InvalidRequestHeader', 'message' => 'The request header information is invalid.', 'http_code' => 400, 'description' => '请求标头信息格式不正确'."\n" + ."\n"], + ['code' => 'InvalidRequestHeader', 'message' => 'The request header information JSON data parsing failed.', 'http_code' => 400, 'description' => '请求标头信息Json数据解析失败'."\n" + ."\n"], + ['code' => 'InvalidRequestHeader', 'message' => 'The JSON encoding of the request header information failed.', 'http_code' => 400, 'description' => '请求标头信息的Json编码失败'."\n" + ."\n"], + ['code' => 'InvalidRequestJson', 'message' => 'The request for JSON data parsing failed.', 'http_code' => 400, 'description' => 'Json数据解析请求失败'], + ['code' => 'InvalidRequestMethod', 'message' => 'The request method is not supported.', 'http_code' => 400, 'description' => '不支持的请求方法'."\n" + ."\n"], + ['code' => 'InvalidRequestMethod', 'message' => 'Failed to get method.', 'http_code' => 400, 'description' => '方法获取失败'."\n" + ."\n"], + ['code' => 'InvalidRequestProtocol', 'message' => 'A protocol type error occurred.', 'http_code' => 400, 'description' => '协议类型错误'], + ['code' => 'InvalidRequestProtocol', 'message' => 'Failed to get the protocol.', 'http_code' => 400, 'description' => '协议获取失败'], + ['code' => 'InvalidRequestProxy', 'message' => 'The regular matching IP address is not matched.', 'http_code' => 400, 'description' => '常规匹配IP地址不匹配'."\n" + ."\n"], + ['code' => 'InvalidRequestProxy', 'message' => 'An error occurred while matching the IP address.', 'http_code' => 400, 'description' => '匹配IP地址时出错'."\n" + ."\n"], + ['code' => 'InvalidRequestUri', 'message' => 'Failed to get URI.', 'http_code' => 400, 'description' => 'Uri获取失败'."\n" + ."\n"], + ['code' => 'InvalidResourceGroupId.Malformed', 'message' => 'The specified ResourceGroupId is invalid.', 'http_code' => 400, 'description' => 'ResourceGroupId错误,请填写正确的ResourceGroupId。'], + ['code' => 'InvalidResourceId.NotFound', 'message' => 'The specified resource does not exist or is released.', 'http_code' => 404, 'description' => '资源不存在或已被释放。'], + ['code' => 'InvalidResponseBody', 'message' => 'Failed to read the response body.', 'http_code' => 400, 'description' => '无法读取响应正文'."\n" + ."\n"], + ['code' => 'InvalidResponseBody', 'message' => 'The response body failed to close.', 'http_code' => 400, 'description' => '响应主体未能关闭'."\n" + ."\n"], + ['code' => 'InvalidResponseGetResp', 'message' => 'The response from the request is null.', 'http_code' => 400, 'description' => '请求的响应为空'."\n" + ."\n"], + ['code' => 'InvalidResponseGetResp', 'message' => 'The response from the request failed.', 'http_code' => 400, 'description' => '请求的响应失败'."\n" + ."\n"], + ['code' => 'InvalidResponseHeader', 'message' => 'JSON encoding of the response header failed.', 'http_code' => 400, 'description' => '响应头Json编码失败'."\n" + ."\n"], + ['code' => 'InvalidRule.Malformed', 'message' => '%s', 'http_code' => 400, 'description' => '%s'], + ['code' => 'InvalidSchemeParameter', 'message' => 'The specified Scheme parameter is invalid.', 'http_code' => 400, 'description' => 'Scheme参数非法。'], + ['code' => 'InvalidScope.Malformed', 'message' => 'The specified Scope is invalid.', 'http_code' => 400, 'description' => 'Scope错误,请填写正确的Scope后重新请求。'], + ['code' => 'InvalidSiteICP', 'message' => 'The ICP of site is invalid.', 'http_code' => 400, 'description' => '站点ICP不合法。'], + ['code' => 'InvalidSiteName', 'message' => 'Invalid siteName value.', 'http_code' => 400, 'description' => '站点参数不合法。'], + ['code' => 'InvalidSortByParameter', 'message' => 'The specified Ordering is invalid.', 'http_code' => 400, 'description' => 'Ordering参数非法。'], + ['code' => 'InvalidSource.Content.Malformed', 'message' => 'The specified Source Content is invalid.', 'http_code' => 400, 'description' => '源站信息错误,请重新填写。'], + ['code' => 'InvalidSource.Port.Malformed', 'message' => 'The source port is empty, or it is outside the range 0-65535.', 'http_code' => 400, 'description' => '源站端口号为空,或者不在0-65535范围内。'], + ['code' => 'InvalidSource.Priority.Malformed', 'message' => 'The specified Source Priority is invalid.', 'http_code' => 400, 'description' => 'Source Priority格式错误,请填写正确的格式。'], + ['code' => 'InvalidSource.Type.Malformed', 'message' => 'The specified Source Type is invalid.', 'http_code' => 400, 'description' => 'Source Type格式错误,请重新填写。'], + ['code' => 'InvalidSourceParameter', 'message' => 'The specified source is invalid.', 'http_code' => 400, 'description' => 'Source参数非法。'], + ['code' => 'InvalidSources.Malformed', 'message' => 'The specified Sources is invalid.', 'http_code' => 400, 'description' => '参数Sources格式错误。可以是IP或域名;IP支持最多20个,以逗号区分,域名只能输入一个。IP与域名不能同时输入。'], + ['code' => 'InvalidSources.OverLimit', 'message' => 'The maximum number of back-to-origin IP addresses is exceeded.', 'http_code' => 400, 'description' => '回源IP个数超过限制。'], + ['code' => 'InvalidSplitByParameter', 'message' => 'The specified splitType parameter is invalid.', 'http_code' => 400, 'description' => '指定的分组键错误,或分组键对应的参数未传值。'], + ['code' => 'InvalidSSLPri', 'message' => 'The specified SSLPri is invalid.', 'http_code' => 400, 'description' => 'SSLPri错误,请填写正确的SSLPri。'], + ['code' => 'InvalidSSLProtocol.ValueNotSupported', 'message' => 'The specified SSLProtocol is invalid.', 'http_code' => 400, 'description' => '不支持该HTTPS证书开关,请填写on或off。'], + ['code' => 'InvalidSSLPub', 'message' => 'The specified SSLPub is invalid.', 'http_code' => 400, 'description' => 'SSLPub错误,请重新填写。'], + ['code' => 'InvalidStartTime.Malformed', 'message' => 'The specified StartTime parameter is invalid.', 'http_code' => 400, 'description' => '请提供正确的开始时间格式。日期格式按照ISO8601表示法,并使用UTC时间,格式为:yyyy-MM-ddTHH:mm:ssZ。'], + ['code' => 'InvalidStartTime.ValueNotSupported', 'message' => 'The specified StartTime is invalid.', 'http_code' => 400, 'description' => '不支持该开始时间,请重新填写。'], + ['code' => 'InvalidStartTime.ValueNotSupported', 'message' => 'The StartTime cannot exceed 31 days before the current time.', 'http_code' => 400, 'description' => '不能查询31天之前的数据。'], + ['code' => 'InvalidStartTimeParameter', 'message' => 'The specified start time is invalid.', 'http_code' => 400, 'description' => '开始时间参数非法。'], + ['code' => 'InvalidStationParameter', 'message' => 'The specified Station is invalid.', 'http_code' => 400, 'description' => 'station参数非法。'], + ['code' => 'InvalidStatus.ResourceGroup', 'message' => 'The current status of the resource group does not support this operation.', 'http_code' => 400, 'description' => '资源组当前状态不允许进行此操作。'], + ['code' => 'InvalidStatus.ValueNotSupported', 'message' => 'The specified Status is not supported.', 'http_code' => 400, 'description' => 'Status错误,请填写正确的Status。'], + ['code' => 'InvalidTargetParameter', 'message' => 'The specified parameter Target is invalid', 'http_code' => 400, 'description' => '指定的Target参数错误,请参照API文档修改。'], + ['code' => 'InvalidTaskId', 'message' => 'The maximum number of taskIds is 10.', 'http_code' => 400, 'description' => 'taskIds个数不能超过10.'], + ['code' => 'InvalidTaskId.Malformed', 'message' => 'The specified TaskId is invalid.', 'http_code' => 400, 'description' => 'TaskId错误,请填写正确的TaskId。'], + ['code' => 'InvalidTime', 'message' => 'The query time cannot exceed the last 3 days.', 'http_code' => 400, 'description' => '查询时间不能超过最近3天。'], + ['code' => 'InvalidTime.Malformed', 'message' => 'Specified StartTime or EndTime is malformed.', 'http_code' => 400, 'description' => '开始时间或结束时间格式错误。日期格式按照ISO8601表示法,并使用UTC+0时间,格式为yyyy-MM-ddTHH:mm:ssZ。'], + ['code' => 'InvalidTimePointParameter', 'message' => 'The specified TimePoint is invalid.', 'http_code' => 400, 'description' => 'TimePoint参数非法。'], + ['code' => 'InvalidTimeRange', 'message' => 'The time span between the StartTime and the EndTime cannot exceed 31 days.', 'http_code' => 400, 'description' => 'EndTime和StartTime差值不能超过31天'], + ['code' => 'InvalidTimeSpan', 'message' => 'The time span exceeds the limit.', 'http_code' => 400, 'description' => '时间跨度超过限制,请参照接口文档,配置合理查询跨度。'], + ['code' => 'InvalidTypeContent.Mismatch', 'message' => 'The specified source type does not match the specified source content.', 'http_code' => 400, 'description' => '源站类型和源站不匹配,请重新填写。'], + ['code' => 'InvalidUid.PermissionDenied', 'message' => 'The specified uid does not have permission to operate on the resource.', 'http_code' => 403, 'description' => '指定的阿里UID无权操作资源。'], + ['code' => 'InvalidUserParameter', 'message' => 'The specified User is invalid.', 'http_code' => 400, 'description' => '用户参数错误'], + ['code' => 'InvalidValue.ExceedsMaximum', 'message' => 'The size of the value cannot exceed 2,000,000 bytes.', 'http_code' => 400, 'description' => 'value长度不能越过2000000B'], + ['code' => 'InvalidValue.Malformed', 'message' => 'Country must only contain 2 characters.', 'http_code' => 400, 'description' => 'Country必须是两个字符。'], + ['code' => 'InvalidVersion.Malformed', 'message' => 'The version has been activated.', 'http_code' => 400, 'description' => '版本已经激活。'], + ['code' => 'InvalidVersion.Malformed', 'message' => 'This version is active and cannot be deleted.', 'http_code' => 400, 'description' => '该版本处于激活状态,无法删除。'], + ['code' => 'InvalidVersion.Malformed', 'message' => 'You must deactivate the active version of this configuration group before deleting it.', 'http_code' => 400, 'description' => '必须先停用该配置组中的处于激活状态的版本,才能删除该配置组。'], + ['code' => 'InvalidVersion.Malformed', 'message' => 'This version is active and cannot be modified.', 'http_code' => 400, 'description' => '该版本处于激活状态,无法设置。'], + ['code' => 'InvalidVersion.NotFound', 'message' => 'The version does not exist.', 'http_code' => 400, 'description' => '这个版本号不存在。'], + ['code' => 'IspBlack', 'message' => 'The domain is on the ISP blacklist.', 'http_code' => 400, 'description' => '域名在阿里云黑名单。'], + ['code' => 'Key.Malformed', 'message' => 'The specified Key format is invalid.', 'http_code' => 400, 'description' => '参数Key格式错误。'], + ['code' => 'List.BeingBound', 'message' => 'The specified list is being bound.', 'http_code' => 403, 'description' => '指定的列表正在被一个或多个防护规则绑定。'], + ['code' => 'List.Name.AlreadyExist', 'message' => 'The specified list name already exists.', 'http_code' => 403, 'description' => '指定的列表名称已存在。'], + ['code' => 'List.NotExist', 'message' => 'The specified list does not exist.', 'http_code' => 403, 'description' => '指定的列表不存在。'], + ['code' => 'lllegalOperationDomain', 'message' => 'The domain name cannot be added because it contains illegal content', 'http_code' => 400, 'description' => '该域名存在违规内容无法添加'], + ['code' => 'LoadBalancerHealthDetectionIntervalCheckFailed', 'message' => 'The configured load balancer health detection interval exceeds the quota range allowed by the plan. Please revise the interval within the range or upgrade the plan and try again.', 'http_code' => 400, 'description' => '您配置的负载均衡器健康探测时间间隔超出了套餐允许的配额范围,请订正为范围内的间隔或者升级套餐后,进行重试。'], + ['code' => 'LoadBalancerHealthDetectionQuotaCheckFailed', 'message' => 'Your current plan does not allow you to configure the load balancer\'s health detection. Upgrade the plan and try again.', 'http_code' => 400, 'description' => '您当前的套餐不允许配置负载均衡器的健康探测,请升级套餐后重试。'], + ['code' => 'LoadBalancerNameConflict', 'message' => 'LoadBalancer name conflict.', 'http_code' => 400, 'description' => '负载均衡器名称冲突,负载均衡器名称不允许重复,也不可以和源地址池的记录名重复。'], + ['code' => 'LoadBalancerNotExist', 'message' => 'The specified load balancer not exist.', 'http_code' => 400, 'description' => '负载均衡器不存在。'], + ['code' => 'LoadBalancerNumberExceedQuotaLimit', 'message' => 'The number of load balancers you have added has reached the limit of the plan quota. Please delete the unused load balancers or upgrade the plan and try again.', 'http_code' => 400, 'description' => '您添加的负载均衡器数量已经达到套餐配额限制,请删除不使用的负载均衡器或者升级套餐后进行重试。'], + ['code' => 'LoadBalancerPolicyCheckFailed', 'message' => 'Your current plan does not support the load balancer scheduling policy. Upgrade the plan and try again.', 'http_code' => 400, 'description' => '您当前的套餐不支持使用该负载均衡器调度策略,请升级套餐后重试。'], + ['code' => 'LoadBalancerQuotaCheckFailed', 'message' => 'Load balancer enable quota check failed.', 'http_code' => 400, 'description' => '您当前的套餐无法使用负载均衡器相关功能,如需使用,请进行套餐升级。'], + ['code' => 'LoadBalancerRuleQuotaCheckFailed', 'message' => 'Your current plan does not support configuring load balancer custom rules, or the load balancer rules you have added exceed the plan quota limit. Please upgrade the plan or delete the rules that are no longer in use and try again.', 'http_code' => 400, 'description' => '您当前的套餐不支持配置负载均衡器自定义规则,或者您已经添加的负载均衡器规则超过套餐配额限制,请升级套餐或者删除不再使用的规则后重试。'], + ['code' => 'LockFailed', 'message' => 'Failed to acquire the lock. This resource should be in operation by other requests. You need to wait for a while until the previous request is processed.', 'http_code' => 400, 'description' => '获取锁失败,此资源应该被其它请求在操作中,需要稍等一会儿,等上一个请求处理完成。'], + ['code' => 'LogNotFound', 'message' => 'Log not found.', 'http_code' => 404, 'description' => '未找到日志。'], + ['code' => 'LogserviceNotFound', 'message' => 'Log Service has not been activated.', 'http_code' => 403, 'description' => '没有开通实时日志服务。'], + ['code' => 'LogserviceServiceNotFound', 'message' => 'Log Service has not been activated.', 'http_code' => 400, 'description' => '没有开通实时日志服务。'], + ['code' => 'LogstoreNotExist', 'message' => 'Logstore does not exist.', 'http_code' => 404, 'description' => 'Logstore不存在。'], + ['code' => 'ManagedRulesGroup.BeingBound', 'message' => 'The specified WAF managed rules group is being bound.', 'http_code' => 403, 'description' => '指定的WAF托管规则组正在被一个或多个防护规则绑定。'], + ['code' => 'ManagedRulesGroup.Name.Invalid', 'message' => 'The specified WAF managed rules group name is invalid.', 'http_code' => 403, 'description' => '指定的WAF托管规则组名称无效。'], + ['code' => 'ManagedRulesGroup.NotExist', 'message' => 'The specified WAF managed rules group does not exist.', 'http_code' => 403, 'description' => '指定的WAF托管规则组不存在。'], + ['code' => 'Match.Malformed', 'message' => 'The specified parameter match is malformed or does not adhere to the required format.', 'http_code' => 403, 'description' => '指定的参数Match格式错误或未按要求格式编写。请检查规则配置中是否存在语法错误或结构不一致,并予以纠正,以符合预期的配置架构。'], + ['code' => 'MissingConfigId', 'message' => 'ConfigId is mandatory for this action.', 'http_code' => 400, 'description' => '必填参数ConfigId没有填。请检查调用时是否填写了此参数,并重试请求。'], + ['code' => 'MissingDomainName', 'message' => 'The domainName parameter is required.', 'http_code' => 400, 'description' => '请填写域名参数。'], + ['code' => 'MissingOssUrl', 'message' => 'Oss url is mandatory for this action.', 'http_code' => 400, 'description' => '缺少下载预热文件的OSS链接地址。'], + ['code' => 'MissingParameter', 'message' => 'Certain required parameters are missing.', 'http_code' => 400, 'description' => '缺少参数。'], + ['code' => 'MissingParameter', 'message' => 'You must specify ArgValue.', 'http_code' => 400, 'description' => '缺少参数。'], + ['code' => 'MissingParameter', 'message' => 'The specified ArgName is required for this function.', 'http_code' => 400, 'description' => '配置特定功能时,缺少必传参数。'], + ['code' => 'MissingParameter', 'message' => 'The input parameter Record that is mandatory for processing this request is not supplied.', 'http_code' => 400, 'description' => '必填参数Record没有填。请检查调用时是否填写了此参数,并重试请求。'], + ['code' => 'MissingParameter%s', 'message' => 'The specified value of ArgName %s is missing.', 'http_code' => 400, 'description' => '缺少参数。'], + ['code' => 'MissingParameter.ObjectType', 'message' => 'The ObjectType parameter is required if DomainName or ObjectType is specified.', 'http_code' => 400, 'description' => '请填写ObjectType。'], + ['code' => 'MissingSiteId', 'message' => 'SiteId is mandatory for this action.', 'http_code' => 400, 'description' => '必填参数SiteId没有填。请检查调用时是否填写了此参数,并重试请求。'], + ['code' => 'MissingSource.Content', 'message' => 'The Source Content must be specified.', 'http_code' => 400, 'description' => 'Source Content必填,请填写后重试。'], + ['code' => 'MissingSource.Type', 'message' => 'The Source Type must be specified.', 'http_code' => 400, 'description' => 'Source Type必填,请填写后重试。'], + ['code' => 'MissingStartTimeParameter', 'message' => 'The StartTime is required.', 'http_code' => 400, 'description' => '开始时间不能为空。'], + ['code' => 'MissingTimeParameter', 'message' => 'The StartTime and EndTime must be both specified.', 'http_code' => 400, 'description' => '请同时提供开始时间和结束时间。'], + ['code' => 'MissingUrlList', 'message' => 'UrlList is mandatory for this action.', 'http_code' => 400, 'description' => '缺少预热的URL列表参数。'], + ['code' => 'MissParameter', 'message' => 'The specified parameter is missing', 'http_code' => 400, 'description' => '参数缺失'], + ['code' => 'MissParameter.TagOrResourceId', 'message' => 'Either Tag or ResourceId must be specified.', 'http_code' => 400, 'description' => 'Tag和ResourceId不能都为空。'], + ['code' => 'MonitorExpectedBodyInvalid', 'message' => 'The incoming monitor expected return body is illegal, the length cannot be greater than 102400.', 'http_code' => 400, 'description' => '传入的监视器预期返回体不合法,长度不能大于102400。'], + ['code' => 'MonitorExpectedCodesInvalid', 'message' => 'The incoming monitor expected return code is invalid, the incoming return code cannot exceed 10, and the length of a single return code is not less than 3, not more than 4, such as: 200,301,3xx,8000,88xx.', 'http_code' => 400, 'description' => '传入的监视器预期返回码不合法,传入的返回码不能超过10个,并且单个返回码长度不少于3,不多于4,如:200,301,3xx,8000,88xx。'], + ['code' => 'MonitorHeaderInvalid', 'message' => 'The incoming monitor carries illegal request headers. The number of request headers cannot exceed 10. The corresponding value of a single request header must be greater than 0 and less than 10. The request header User-Agent cannot be used for specific internal scenarios. The length of the overall request header and value cannot exceed 6000.', 'http_code' => 400, 'description' => '传入的监视器携带请求头非法,请求头的个数不能超过10,单个请求头对应的值需要大于0个,小于10个,不能使用User-Agent这个请求头,用于内部特定场景,整体请求头和值的长度不能超过6000.'], + ['code' => 'MonitorMethodNotSupport', 'message' => 'The incoming monitor request method is not supported, only the following methods are supported: GET/HEAD.', 'http_code' => 400, 'description' => '传入的监视器请求方法不支持,只支持以下方法:GET/HEAD。'], + ['code' => 'MonitorPathNotSupport', 'message' => 'The input monitor path is not supported. When the monitor type is HTTP or HTTPS, the monitor path cannot be empty and the longest path cannot exceed 1024.', 'http_code' => 400, 'description' => '传入的监听路径不支持,当监听类型为HTTP和HTTPS时,监听路径不允许为空,且路径最长不超过1024.'], + ['code' => 'MonitorPortNotSupport', 'message' => 'The incoming monitor listening port is not supported. The port value range is [1,65535].', 'http_code' => 400, 'description' => '传入的监视器监听端口不支持,端口取值范围[1,65535]。'], + ['code' => 'MonitorRetriesInvalid', 'message' => 'The input monitor retries parameter is not supported. The range of supported retries is [0-5].', 'http_code' => 400, 'description' => '传入的监视器重试次数参数不支持,支持的重试次数范围为:[0-5]。'], + ['code' => 'MonitorTimeoutInvalid', 'message' => 'The monitor timeout passed in is out of range. The following range is supported:[1-10].', 'http_code' => 400, 'description' => '传入的监视器超时时间超出取值范围,支持以下范围:[1-10]。'], + ['code' => 'MonitorTypeNotSupport', 'message' => 'The incoming monitor type is not supported. The monitor only supports the following types: off/HTTP/HTTPS/TCP/UDP/ICMP Ping/SMTP.', 'http_code' => 400, 'description' => '传入的监视器类型不支持,监视器只支持以下类型:off/HTTP/HTTPS/TCP/UDP/ICMP Ping/SMTP。'], + ['code' => 'NameAlreadyExist', 'message' => 'The subscription name already exists.', 'http_code' => 400, 'description' => '订阅任务名称已经存在'], + ['code' => 'NameAlreadyExists', 'message' => 'The name already exists.', 'http_code' => 400, 'description' => '名称已存在'], + ['code' => 'NestedRuleQuotaCheckFailed', 'message' => 'The nesting level of rules allowed by the plan failed to be verified. Please modify the nesting level of rules or upgrade the plan.', 'http_code' => 400, 'description' => '规则内嵌子条件数量超过套餐上限,请查看套餐描述,并升级您的套餐。'], + ['code' => 'NoHttpsDomain', 'message' => 'Your account does not have any HTTPS domain.', 'http_code' => 400, 'description' => '您的账号没有HTTPS域名。'], + ['code' => 'NoHttpsDomain', 'message' => 'Your account does not have https domain.', 'http_code' => 400, 'description' => '您的账号下没有HTTPS域名。'], + ['code' => 'NoPermission', 'message' => 'You do not have permission to access or operate on the current resource.', 'http_code' => 400, 'description' => '对当前资源无权限访问或者操作。'], + ['code' => 'NoPermission', 'message' => 'There is no permission to call this interface for the time being. If you need to call it, please submit a work order for consultation.', 'http_code' => 400, 'description' => '暂无该接口的调用权限,如需调用请提工单咨询。'], + ['code' => 'NoPermission', 'message' => 'Permission denied.', 'http_code' => 400, 'description' => '没有权限'], + ['code' => 'NoRealNameAuthentication', 'message' => 'Real name authentication is needed.', 'http_code' => 400, 'description' => '您的账户未开通实名认证。'], + ['code' => 'NoResource', 'message' => 'The required port has no resources, please submit a ticket.', 'http_code' => 404, 'description' => '所需端口没有资源,请提交工单。'], + ['code' => 'NotFoundCertList', 'message' => 'The certList is null.', 'http_code' => 400, 'description' => '证书列表为空'], + ['code' => 'NotInternationRealIdentity', 'message' => 'Real-name registration is required for services offered in Mainland China.', 'http_code' => 400, 'description' => '根据中华人民共和国法律规定,在中国境内购买使用信息服务的用户需要进行实名登记。'], + ['code' => 'OperationDenied', 'message' => 'Error performing verification.', 'http_code' => 400, 'description' => '认证失败。'], + ['code' => 'OperationDenied', 'message' => 'You are not authorized to perform this operation.', 'http_code' => 403, 'description' => '没有权限操作,请您通过访问控制 RAM 检查使用权限。'], + ['code' => 'OperationDenied', 'message' => 'Your UID and BID do not match.', 'http_code' => 403, 'description' => '您的uid和bid不匹配。'], + ['code' => 'OperationDenied.DefaultSiteEnvironmentUneditable', 'message' => 'The rule of the default environment is not allowed to be modified.', 'http_code' => 400, 'description' => '默认环境的规则不允许修改。'], + ['code' => 'OperationDenied.VanityNSUnavailable', 'message' => 'Only sites in NS access type can use vanity nameservers. Convert your site to NS access type and try again.', 'http_code' => 400, 'description' => '仅NS方式接入的站点可以使用自定义NS,请调整您的站点接入方式后重试。'], + ['code' => 'OperationDeniedAccount', 'message' => 'You are not authorized to perform this operation.', 'http_code' => 403, 'description' => '您没有权限执行该操作。'], + ['code' => 'OperationDeniedUid', 'message' => 'Your UID and BID do not match.', 'http_code' => 403, 'description' => '您的uid和bid不匹配。'], + ['code' => 'Order.InstanceHasUnpaidOrder', 'message' => 'The specified instance has an unpaid order.', 'http_code' => 400, 'description' => '实例存在未支付订单。'], + ['code' => 'OriginPoolNameConflict', 'message' => 'Origin pool name conflict.', 'http_code' => 400, 'description' => '源地址池名称冲突,源地址池名称不允许和同站点下其它源地址池相同,其记录名也不允许和负载均衡器名称相同。'], + ['code' => 'OriginPoolNotExist', 'message' => 'The origin pool id passed in does not exist or does not belong to this user or site.', 'http_code' => 400, 'description' => '传入的源地址池d不存在或者不属于这个用户和站点。'], + ['code' => 'Page.BeingBound', 'message' => 'The specified page is being bound.', 'http_code' => 403, 'description' => '指定的自定义响应页面正在被一个或多个防护规则绑定。'], + ['code' => 'Page.NotExist', 'message' => 'The specified page does not exist.', 'http_code' => 403, 'description' => '指定的自定义响应页面不存在。'], + ['code' => 'ParameterAlreadyExist', 'message' => 'The entered parameter already exists.', 'http_code' => 400, 'description' => '输入的参数已经存在。'], + ['code' => 'ParameterNotExist', 'message' => 'The entered parameter does not exist.', 'http_code' => 400, 'description' => '输入参数不存在。'], + ['code' => 'ParamNameError', 'message' => 'parameter name error', 'http_code' => 400, 'description' => 'Name参数不合法。'], + ['code' => 'Policy.DefaultExisted', 'message' => 'The default policy is existed in specified defense scene.', 'http_code' => 400, 'description' => '指定的防护场景已经存在默认策略。'], + ['code' => 'Policy.DeleteForbidden', 'message' => 'The specified policy is forbidden to delete.', 'http_code' => 400, 'description' => '指定的策略不允许删除。'], + ['code' => 'Policy.NotExist', 'message' => 'The specified policy does not exist.', 'http_code' => 400, 'description' => '指定的防护策略不存在。'], + ['code' => 'PolicyName.AlreadyExists', 'message' => 'The specified policy name already exists.', 'http_code' => 400, 'description' => '指定的策略名称已存在。'], + ['code' => 'PolicyNameExist', 'message' => 'The policy name already exists.', 'http_code' => 400, 'description' => '策略名称已存在。'], + ['code' => 'PolicyNotExist', 'message' => 'The policy does not exist.', 'http_code' => 400, 'description' => '策略不存在。'], + ['code' => 'PoolNumberExceedQuotaLimit', 'message' => 'The number of origin pool you have added has reached the upper limit of the plan quota. Please delete the origin pool that is no longer in use or upgrade the plan and try again.', 'http_code' => 400, 'description' => '您添加的源站组数量已经达到套餐的配额上限,请删除不再使用的源站组或者升级套餐后,进行重试。'], + ['code' => 'PoolReferenceExist', 'message' => 'The origin pool has references and cannot be deleted.', 'http_code' => 400, 'description' => '源地址池存在引用,不允许删除。'], + ['code' => 'PortConfiguring', 'message' => 'Some of the ports you configured are not ready.', 'http_code' => 400, 'description' => '您配置的部分端口上未就绪'], + ['code' => 'PortNotAllowed', 'message' => 'The configured ports contain a port that is not allowed to be used.', 'http_code' => 400, 'description' => '配置的端口号包含不允许使用的端口号'], + ['code' => 'PreloadQueueFull', 'message' => 'The warming queue is full; please try again later.', 'http_code' => 400, 'description' => '域名正在预热的URL个数已经达到上限,请稍后重试。'], + ['code' => 'PrivateKeyError', 'message' => 'The content of the certificate is invalid.', 'http_code' => 500, 'description' => '证书内容异常。'], + ['code' => 'ProjectExist', 'message' => 'sls project belong to other user.', 'http_code' => 200, 'description' => 'sls project已属于其他用户'], + ['code' => 'ProjectNotExist', 'message' => 'The project does not exist.', 'http_code' => 404, 'description' => '未找到对应project 信息。'], + ['code' => 'ProjectNotFound', 'message' => 'The project provided does not belong to you.', 'http_code' => 400, 'description' => '项目不存在或不属于当前用户'], + ['code' => 'QueryDBError', 'message' => 'An internal exception occurred when query data, please try again later.', 'http_code' => 500, 'description' => '查询数据时发生内部错误,请稍后重试'], + ['code' => 'QueryLog.Timeout', 'message' => 'Query Log System Timeout.', 'http_code' => 500, 'description' => '查询离线日志系统超时,请稍后重试。'], + ['code' => 'QuotaCheckFailed.CustomNS', 'message' => 'The current plan does not allow custom NS.', 'http_code' => 400, 'description' => '当前套餐不允许自定义NS。'], + ['code' => 'QuotaCheckFailed.Function', 'message' => 'The function is not allowed to be used in the current plan, or the function count has exceeded quota limit.', 'http_code' => 400, 'description' => '该功能不允许在当前套餐中使用,或者该功能已经超出了套餐配额。'], + ['code' => 'QuotaCheckFailed.FunctionArg', 'message' => 'This function arguments is not available in the current package, or the quantity has exceeded the quota limit.', 'http_code' => 400, 'description' => '该功能参数在当前套餐中不可用,或者数量已超出配额限制。'], + ['code' => 'QuotaCheckFailed.Regex', 'message' => 'The current plan does not allow regular expressions in rules.', 'http_code' => 400, 'description' => '当前套餐不允许在规则中使用正则表达式。'], + ['code' => 'QuotaCheckFailed.VersionManagement', 'message' => 'The current plan\'s quota of version management is insufficient. Please try to upgrade the plan.', 'http_code' => 400, 'description' => '当前套餐的版本管理配额不足,请尝试升级套餐版本。'], + ['code' => 'QuotaExceed.NestedConditional', 'message' => 'The number of nested conditions for the rule exceeds the quota limit.', 'http_code' => 400, 'description' => '规则的嵌套条件数超过配额限制。'], + ['code' => 'QuotaExceed.RecordCount', 'message' => 'The number of records exceeds the quota limit.', 'http_code' => 400, 'description' => '记录数量超过套餐配额限制。'], + ['code' => 'QuotaExceed.SiteCount', 'message' => 'The number of site exceeds the quota limit.', 'http_code' => 400, 'description' => '站点数量超出配额限制。'], + ['code' => 'QuotaExceed.UploadHttpCert', 'message' => 'The number of self-upload certificates exceeds the quota limit.', 'http_code' => 400, 'description' => '自助上传证书数量超出配额限制。'], + ['code' => 'QuotaExceed.WildCardRecord', 'message' => 'The number of wild card records exceeds the quota limit.', 'http_code' => 400, 'description' => '泛记录数量超过配额限制。'], + ['code' => 'QuotaExceeded', 'message' => 'The quota is exceeded.', 'http_code' => 403, 'description' => 'quota超过限制。'], + ['code' => 'QuotaExceeded.Block', 'message' => 'Your block attempts have exceeded the daily limit.', 'http_code' => 400, 'description' => '禁封已经超过单日限制'], + ['code' => 'QuotaExceeded.Preload', 'message' => 'Your refresh attempts have exceeded the daily limit.', 'http_code' => 400, 'description' => '超出当日刷新预热限制。'], + ['code' => 'QuotaExceeded.Refresh', 'message' => 'Your refresh attempts have exceeded the daily limit.', 'http_code' => 400, 'description' => '超出当日刷新限制。今日刷新数已用完。您可以通过刷新接口查询今日的刷新次数。'], + ['code' => 'QuotaNotExist', 'message' => 'Quota does not exist.', 'http_code' => 400, 'description' => '套餐配额项不存在。'], + ['code' => 'QuotaPerMinuteExceeded.Preload', 'message' => 'You have exceeded the prescribed preload limits per minute.', 'http_code' => 400, 'description' => '每分钟预热频率超过上限。'], + ['code' => 'QuotaPerMinuteExceeded.Refresh', 'message' => 'You tried to refresh too frequently; please try again later.', 'http_code' => 400, 'description' => '刷新太频繁,请稍后再试。'], + ['code' => 'RealTimeLog.BucketRegionError', 'message' => 'Realtime log oss bucket region error.', 'http_code' => 403, 'description' => 'oss bucket region 选择错误'], + ['code' => 'RealTimeLog.KafkaBrokersExceedError', 'message' => 'Realtime log kafka brokers exceed error.', 'http_code' => 403, 'description' => '实时日志kakfa broker服务器数量超过上限(最高为50个)'], + ['code' => 'RealTimeLog.KafkaConfigError', 'message' => 'Realtime log kafka config error.', 'http_code' => 403, 'description' => '实时日志kafka 投递配置错误'], + ['code' => 'RealTimeLog.NameCheckFail', 'message' => 'Real-time log name field validity check failed.', 'http_code' => 403, 'description' => '您输入的实时日志配置字段包含非法字符,请删除非法字符后重试,允许的字符包含数字、字母、下划线"_"和空格" "'], + ['code' => 'RealTimeLog.OssBucketQueryError', 'message' => 'Realtime log oss bucket query error.', 'http_code' => 403, 'description' => 'oss bucket查询异常'], + ['code' => 'RealTimeLog.OssRoleCheckError', 'message' => 'Realtime log oss role does not exist.', 'http_code' => 403, 'description' => '实时日志oss投递授权角色不存在'], + ['code' => 'RealTimeLog.ProjectExistError', 'message' => 'Realtime-log project name already exist.', 'http_code' => 400, 'description' => '实时日志项目名已存在'], + ['code' => 'RealTimeLog.RegexpCheckFail', 'message' => 'Realtime log Regexp check fail.', 'http_code' => 403, 'description' => '实时日志配置字段正则匹配检查失败'], + ['code' => 'RealTimeLog.S3EndpointInvalidError', 'message' => 'Realtime log s3 endpoint invalid.', 'http_code' => 403, 'description' => '实时日志s3投递 endpoint配置异常'], + ['code' => 'RealTimeLog.SlrRoleCheckError', 'message' => 'Realtime log SLR role check error.', 'http_code' => 403, 'description' => '实时日志 SLR 角色权限错误'], + ['code' => 'RealTimeLog.SlsClientError', 'message' => 'Realtime log sls client init error.', 'http_code' => 403, 'description' => '实时日志sls投递客户端异常'], + ['code' => 'RealTimeLog.SlsEndpointError', 'message' => 'Realtime log sls config endpoint error.', 'http_code' => 403, 'description' => '实时日志sls投递 endpoint异常'], + ['code' => 'RealTimeLog.SlsLogstoreQueryError', 'message' => 'Realtime Log sls logstore query error.', 'http_code' => 403, 'description' => 'sls logstore查询失败'], + ['code' => 'RealTimeLog.SlsNotOpen', 'message' => 'Aliyun Log service not open.', 'http_code' => 403, 'description' => '阿里云 log service服务未开通'], + ['code' => 'RealTimeLog.SlsProjectExistError', 'message' => 'log sls project exist error.', 'http_code' => 403, 'description' => 'sls project已存在'], + ['code' => 'RealTimeLog.SomeDomainFailed', 'message' => 'Some domain failed to process.', 'http_code' => 409, 'description' => '部分域名处理失败。'], + ['code' => 'RealTimeLog.StatusQuotaError', 'message' => 'Realtime log service quota limit error.', 'http_code' => 403, 'description' => '实时日志套餐配额不足'], + ['code' => 'RealtimeLogProjectExistError', 'message' => 'Realtime-log project name already exist.', 'http_code' => 400, 'description' => '实时日志项目名已存在'], + ['code' => 'Record.AlreadyExist', 'message' => 'The record to be added already exists or conflicts.', 'http_code' => 403, 'description' => '要添加的记录已存在,或与已有的记录存在冲突。'], + ['code' => 'Record.Conflict', 'message' => 'The specified record conflicts with an existing record.', 'http_code' => 400, 'description' => '记录与已存在的记录存在冲突。'], + ['code' => 'Record.NotFound', 'message' => 'The record does not exist.', 'http_code' => 404, 'description' => '该记录不存在。'], + ['code' => 'Record.Reserved', 'message' => 'The specified record is reserved.', 'http_code' => 400, 'description' => '记录处于保护状态。'], + ['code' => 'Record.ServiceBusy', 'message' => 'The specified record is being configured, please try again later.', 'http_code' => 400, 'description' => '该记录正在配置中,请稍后再试。'], + ['code' => 'RecordCheckNotAvailable', 'message' => 'The ICP filing interface is unavailable. Please try again later.', 'http_code' => 400, 'description' => '备案接口不可用,请稍后重试。'], + ['code' => 'RegionNoResource', 'message' => 'No resource is available in the specified region.', 'http_code' => 400, 'description' => '您选择的region没有对应的资源。'], + ['code' => 'RegionNoResource', 'message' => 'Resource allocation failed. Please submit a work order to contact customer service.', 'http_code' => 400, 'description' => '资源分配失败,请提交工单联系客服。'], + ['code' => 'RelatedRecordNumberExceedQuotaLimit', 'message' => 'related record number exceeds the quota limit.', 'http_code' => 400, 'description' => 'Routine关联记录Record数量超过配额限制。'], + ['code' => 'RelatedRouteNumberExceedQuotaLimit', 'message' => 'related route number exceeds the quota limit.', 'http_code' => 400, 'description' => '关联路由数量超过配额限制。'], + ['code' => 'RelatedSiteNumberExceedQuotaLimit', 'message' => 'The number of Routine associated site sites exceeds the quota limit.', 'http_code' => 400, 'description' => 'Routine关联站点Site数量超过配额限制。'], + ['code' => 'RequestNotSupported', 'message' => 'The request is not supported for unactivated site.', 'http_code' => 400, 'description' => '未激活的站点不支持申请免费证书,请先激活站点。'], + ['code' => 'Resource.NotExist', 'message' => 'The resource does not exist.', 'http_code' => 400, 'description' => '资源不存在。'], + ['code' => 'ResourceIdIsInvalid', 'message' => 'The number of ResourceId exceeds 50.', 'http_code' => 400, 'description' => 'ResourceId超过50个了。'], + ['code' => 'ResourceNotExist', 'message' => 'The specified domain does not exist.', 'http_code' => 400, 'description' => '指定的资源不存在。'], + ['code' => 'ResourceOverload', 'message' => 'Resources are overloaded. Please try again later.', 'http_code' => 403, 'description' => '资源负载过高, 请稍后重试'], + ['code' => 'RetErrorSourceCircle', 'message' => 'Error configuring the source. CDN already contains the domain. Please change the source.', 'http_code' => 400, 'description' => '源站已经是CDN的域名,请修改成其他源站。'], + ['code' => 'RoutineAlreadyExist', 'message' => 'The Routine name you entered already exists.', 'http_code' => 400, 'description' => '输入的Routine名已存在。'], + ['code' => 'RoutineNotExist', 'message' => 'The Routine name entered does not exist.', 'http_code' => 400, 'description' => '输入的Routine名不存在。'], + ['code' => 'RoutineNumberExceedQuotaLimit', 'message' => 'routine number exceeds the quota limit.', 'http_code' => 400, 'description' => 'routine数量已超过配额限制。'], + ['code' => 'RoutineUserServiceStatusHalt', 'message' => 'The user is in halt state, can not perform update operations.', 'http_code' => 400, 'description' => '用户处于停机状态,不能进行更新操作。'], + ['code' => 'Rule.Config.Malformed', 'message' => 'The specified rule configuration is malformed or does not adhere to the required format.', 'http_code' => 403, 'description' => '指定的规则配置格式错误或未按要求格式编写。请检查规则配置中是否存在语法错误或结构不一致,并予以纠正,以符合预期的配置架构。'], + ['code' => 'Rule.Config.Noncompliance', 'message' => 'The specified rule configuration does not meet the established compliance criteria.', 'http_code' => 403, 'description' => '指定的规则配置未满足既定的合规性标准。请检查规则设置,查找任何不符合或违反预期标准的差异,并进行必要的调整,以确保所有规则均得到正确验证。'], + ['code' => 'Rule.Name.AlreadyExists', 'message' => 'The specified rule name already exists and cannot be duplicated within the system\'s configuration.', 'http_code' => 403, 'description' => '指定的规则名称在系统配置中已存在,不能重复使用。请选择一个不与现有规则名称冲突的独特规则名称,或在必要时考虑更改现有规则的名称,以消除任何可能的歧义,并确保每个规则标识符的唯一性。'], + ['code' => 'Rule.Name.CantBeModified', 'message' => 'The specified rule name can not be modified.', 'http_code' => 400, 'description' => '指定的规则名称不能被修改。'], + ['code' => 'Rule.NotExist', 'message' => 'The specified rule does not exist.', 'http_code' => 400, 'description' => '指定的规则在当前上下文或系统配置中不存在。请确认规则标识符的存在,并确保它已被正确定义或实现。'], + ['code' => 'Rule.Position.Invalid', 'message' => 'The specified rule position is invalid or falls outside the acceptable range.', 'http_code' => 403, 'description' => '指定的规则位置无效或超出了可接受范围。请核实规则位置参数,并作出适当更正,以确保符合既定边界或序列要求。'], + ['code' => 'Rule.QuantityOverflow', 'message' => 'Rules are overflowed quantity in specified policy.', 'http_code' => 400, 'description' => '规则在指定的策略中超出配额。'], + ['code' => 'RuleCompileError', 'message' => 'Compilation failed because of incorrect rule information.', 'http_code' => 400, 'description' => '规则信息有误,编译失败。'], + ['code' => 'RuleConfigs.Malformed', 'message' => 'The specified RuleConfigs format is invalid.', 'http_code' => 400, 'description' => '指定的参数RuleConfigs格式错误。'], + ['code' => 'RuleName.AlreadyExists', 'message' => 'Rule name already exists in specified policy.', 'http_code' => 400, 'description' => '规则名称在指定的策略中已存在。'], + ['code' => 'RuleRegexQuotaCheckFailed', 'message' => 'When configuring rules, rules with regular expressions are not allowed in this plan. Please check the relevant documentation of the plan or upgrade the plan.', 'http_code' => 400, 'description' => '当前套餐不支持配置带有正则的规则引擎,请查看套餐描述,并升级您的套餐。'], + ['code' => 'Ruleset.Name.AlreadyExists', 'message' => 'The specified ruleset name already exists within the system\'s rule management infrastructure.', 'http_code' => 403, 'description' => '指定的规则集名称在系统的规则管理架构中已存在。请选择一个独一无二的替代名称,以避免重复和与现有规则集潜在的冲突。如果是对现有规则集进行重命名,请确保新名称是独特的,并且不侵犯其他已建立规则集的标识符。'], + ['code' => 'Ruleset.NotExist', 'message' => 'The specified ruleset does not exist or has not been registered within the current system configuration.', 'http_code' => 403, 'description' => '指定的规则集不存在或尚未在当前系统配置中注册。请确认规则集标识符是否正确,并且指向一个已经正确定义并在系统的规则集注册表中维护的规则集。如果该规则集是一个新实体,请确保其创建和注册的必要步骤已经成功执行,以便其可用。'], + ['code' => 'ScenePolicyQuotaExceedLimit', 'message' => 'Scene Policy Quota Exceeded.', 'http_code' => 400, 'description' => '场景策略配置额度超限额'], + ['code' => 'Schedule.ChangeFail', 'message' => 'Failed to change the accelerated area for the domain.', 'http_code' => 400, 'description' => '域名切换调度区域失败'], + ['code' => 'Schedule.NotFound', 'message' => 'This domain does not have any available CDN resources in the accelerated area.', 'http_code' => 400, 'description' => '域名无可用调度域资源。'], + ['code' => 'ServiceBusy', 'message' => 'The specified domain is being configured; please try again later.', 'http_code' => 403, 'description' => '该域名正在配置中,请您稍后再试。'], + ['code' => 'ServiceInvokeFailed', 'message' => 'Failed to invoke service.', 'http_code' => 400, 'description' => '调用内部服务失败。'], + ['code' => 'ServiceInvokeFailed', 'message' => 'The call to the internal service failed. The engineer is resolving the problem. Please wait a moment before trying, or contact customer service for details.', 'http_code' => 400, 'description' => '调用服务失败,请稍后重试或联系客服咨询详情。'], + ['code' => 'ServiceNotOpen', 'message' => 'The edge routine service is not enabled.', 'http_code' => 400, 'description' => '边缘函数服务没开通。'], + ['code' => 'ServiceUnavailable', 'message' => 'The request has failed due to a temporary failure of the server.', 'http_code' => 503, 'description' => '服务不可用。'], + ['code' => 'SetDomainCertificate.ParameterError', 'message' => 'The specified parameters are invalid.', 'http_code' => 400, 'description' => '参数错误,请填写正确的参数再重试。'], + ['code' => 'SingleRequest.OverLimit', 'message' => 'A maximum of 100 URLs are supported for each request.', 'http_code' => 400, 'description' => '一次最多只能提交100个url。'], + ['code' => 'Site.AlreadyExist', 'message' => 'The specified site already exists.', 'http_code' => 400, 'description' => '站点已存在。'], + ['code' => 'Site.Conflict', 'message' => 'The specified site conflicts with an existing site.', 'http_code' => 400, 'description' => '站点与已存在的站点存在冲突。'], + ['code' => 'Site.InvalidCoverage', 'message' => 'The specified coverage is invalid, only the coverages of the plan instance are available.', 'http_code' => 400, 'description' => '指定的加速区域不合法,只能切换到套餐实例可支持的加速区域。'], + ['code' => 'Site.NotExist', 'message' => 'The specified site does not exist or is not currently recognized by the system.', 'http_code' => 403, 'description' => '指定的站点不存在或当前未被系统识别。请检查站点标识符是否准确,并确保它与一个已定义、当前活跃且在系统公认的站点网络中可访问的站点相匹配。如果该站点是预定新增的,请确保已完成适当的创建或注册流程,以将其整合到系统中。'], + ['code' => 'Site.NSNotFound', 'message' => 'The specified site name does not have ns records.', 'http_code' => 200, 'description' => '站点当前的NS记录不存在'], + ['code' => 'Site.ServiceBusy', 'message' => 'This specified site is being configured, please try again later.', 'http_code' => 400, 'description' => '该站点正在配置中,请稍后再试。'], + ['code' => 'Site.UpdateAccessTypeUnable', 'message' => 'Unable to update the access type of the specified site. Check whether there are any functions or records that are not supported by the target access type.', 'http_code' => 400, 'description' => '无法更新站点的接入类型,请检查是否有目标接入类型不支持的配置或记录。'], + ['code' => 'SiteConfigLengthExceedLimit', 'message' => 'The overall configuration size of the site exceeds the limit, and the total size of all functional configurations of the site cannot exceed 512K.', 'http_code' => 400, 'description' => '站点功能配置大小超出限制,总大小不能超过512K。'], + ['code' => 'SiteEnvironment.Conflict', 'message' => 'The specified site environment conflicts with an existing environment.', 'http_code' => 400, 'description' => '指定的站点环境与已有的环境存在冲突。'], + ['code' => 'SiteEnvironment.DeleteDenied', 'message' => 'The default site environment cannot be deleted.', 'http_code' => 400, 'description' => '默认站点环境无法删除。'], + ['code' => 'SiteEnvironment.NotExist', 'message' => 'The specified site environment does not exist.', 'http_code' => 400, 'description' => '指定的站点环境不存在。'], + ['code' => 'SiteEnvironment.UpdateDenied', 'message' => 'The update operation for the specified site environment was denied.', 'http_code' => 400, 'description' => '指定站点环境的更新操作被禁止。'], + ['code' => 'SiteNotActivated', 'message' => 'The site is not activated, the process is not allowed.', 'http_code' => 400, 'description' => '站点未激活,不支持该操作。'], + ['code' => 'SiteNotFound', 'message' => 'The site does not exist or does not belong to you.', 'http_code' => 404, 'description' => '站点不存在,或者不属于你。'], + ['code' => 'SiteNotFound', 'message' => 'The specified site is not found.', 'http_code' => 400, 'description' => '您指定的站点不存在,请检查输入的站点是否正确。'], + ['code' => 'SiteParameterNotMatch', 'message' => 'Failed to verify the entered site-related parameters.', 'http_code' => 400, 'description' => '输入的站点相关参数校验失败。'], + ['code' => 'SiteVerify.Unpassed', 'message' => 'Site ownership verification failed.', 'http_code' => 200, 'description' => '站点归属校验未通过'], + ['code' => 'SiteVersion.Configuring', 'message' => 'The specified site version is being configured.', 'http_code' => 400, 'description' => '指定的站点版本正在克隆配置中,请稍后再试。'], + ['code' => 'SiteVersion.DeleteDenied', 'message' => 'The specified version is prohibited from being deleted because it is deployed to an environment.', 'http_code' => 400, 'description' => '指定版本无法被删除,因为它被部署到了某个环境中。'], + ['code' => 'SiteVersion.NotExist', 'message' => 'The specified site version does not exist.', 'http_code' => 400, 'description' => '指定的站点版本不存在。'], + ['code' => 'SourceAddressInvalid', 'message' => 'The source address is invalid, and the ip or domain name format is invalid.', 'http_code' => 400, 'description' => '源站地址非法,ip或域名格式非法。'], + ['code' => 'SourceInBlacklist', 'message' => 'Source is in the blacklist.', 'http_code' => 400, 'description' => '源站在黑名单中。'], + ['code' => 'SourceIp.Exceed', 'message' => 'The maximum number of back-to-origin IP addresses is exceeded.', 'http_code' => 400, 'description' => '回源IP个数超过限额。'], + ['code' => 'SourceNumberExceedLimit', 'message' => 'The number of sources in the origin pool exceeds the quota limit.', 'http_code' => 400, 'description' => '您在源地址池中可创建的源站个数已达到套餐上限,请查看您的套餐配额,并升级套餐以获得更多配额。'], + ['code' => 'SourceTypeNotSupport', 'message' => 'The incoming source type is not supported.', 'http_code' => 400, 'description' => '传入的源站类型不支持,源站类型只支持以下几种:ip_domain、OSS、FC、S3,不支持其它类型。'], + ['code' => 'Specification.OverLimit', 'message' => 'Specifications exceed the limit, paid version can use 50ms, 100ms, free version can only use 5ms.', 'http_code' => 400, 'description' => '规格超限,付费版可以使用50ms、100ms,免费版只能使用5ms'], + ['code' => 'SpecifiedVersionReadOnly', 'message' => 'The specified version number is read-only and cannot be modified.', 'http_code' => 400, 'description' => '指定的版本号为只读版本, 无法修改版本配置'], + ['code' => 'sslPri.Error', 'message' => 'Error encoding SSLPri.', 'http_code' => 400, 'description' => 'sslPri 编码失败。'], + ['code' => 'SSLPri.MissingParameter', 'message' => 'The SSLPri parameter is required.', 'http_code' => 400, 'description' => '请填写SSLPri。'], + ['code' => 'sslPub.Error', 'message' => 'Error encoding SSLPub.', 'http_code' => 400, 'description' => 'sslPub 编码失败。'], + ['code' => 'SSLPub.MissingParameter', 'message' => 'The SSLPub parameter is required.', 'http_code' => 400, 'description' => '请填写SSLPub。'], + ['code' => 'StagingConfig.Failed', 'message' => 'The rules for the staging environment are being configured. Try again later.', 'http_code' => 400, 'description' => '模拟环境正在配置,请稍后重试。'], + ['code' => 'StagingConfig.NotFound', 'message' => 'The staging configuration does not exist.', 'http_code' => 404, 'description' => '该配置在模拟环境不存在。'], + ['code' => 'StatusForbidden', 'message' => 'The request is forbidden.', 'http_code' => 403, 'description' => '请求被拒绝。'], + ['code' => 'SubscriptionAlreadyExists', 'message' => 'The subscription already exists.', 'http_code' => 400, 'description' => '定制服务已开通'], + ['code' => 'SubscriptionNotFound', 'message' => 'The subscription is not found.', 'http_code' => 400, 'description' => '未开通定制服务'], + ['code' => 'SubSiteUnavailable', 'message' => 'Sub site is unsupported.', 'http_code' => 400, 'description' => '仅企业版的套餐实例可以添加子站点。'], + ['code' => 'SYSTEM.NoSpecificCodeFailed', 'message' => 'Invalid period value.', 'http_code' => 400, 'description' => '购买周期参数不合法。'], + ['code' => 'SystemTagIsInvalid', 'message' => 'The number of System Tag exceeds 50.', 'http_code' => 400, 'description' => '系统Tag超过50个了。'], + ['code' => 'SystemUpgrading', 'message' => 'The system is being upgraded; please try again later.', 'http_code' => 403, 'description' => '系统正在升级中,请您稍后再试。'], + ['code' => 'TagIsInvalid', 'message' => 'The number of Tag exceeds 20.', 'http_code' => 400, 'description' => 'Tag超过20个了。'], + ['code' => 'TagKeyDuplicated', 'message' => 'The specified TagKey is duplicated.', 'http_code' => 400, 'description' => 'TagKey是重复的。'], + ['code' => 'TagKeyIsInvalid', 'message' => 'The specified TagKey is invalid.', 'http_code' => 400, 'description' => 'TagKey非法。'], + ['code' => 'TagKeyRepeated', 'message' => 'The specified TagKey is duplicated.', 'http_code' => 400, 'description' => 'TagKey存在重复值。'], + ['code' => 'TagValueIsInvalid', 'message' => 'The specified TagValue is invalid.', 'http_code' => 400, 'description' => 'TagValue非法,请重新输入。'], + ['code' => 'TimeParseFailed', 'message' => 'Failed to parse the time parameter.', 'http_code' => 400, 'description' => '解析时间参数失败'], + ['code' => 'TooMany.Refresh', 'message' => 'The refresh queue is full; please try again later.', 'http_code' => 400, 'description' => '域名正在刷新的个数已经达到上限,请稍后再试。'], + ['code' => 'TooManyPorts', 'message' => 'The number of ports exceeds the limit.', 'http_code' => 400, 'description' => '端口数量超过限制'], + ['code' => 'TooManyRequests', 'message' => 'The server is busy. Please try again later.', 'http_code' => 429, 'description' => '服务器忙,请稍后再试'], + ['code' => 'TooManyRequests', 'message' => 'Too many requests are submitted.', 'http_code' => 429, 'description' => '请求速率过快'], + ['code' => 'TooManyRequests', 'message' => 'Too many requests, please try again later', 'http_code' => 429, 'description' => '提交太频繁,请稍候再试'], + ['code' => 'TooManyTags', 'message' => 'You have entered too many tags.', 'http_code' => 400, 'description' => 'tag太多了,请重新输入。'], + ['code' => 'TooQuickRequests', 'message' => 'Request for putting or deleting keys are frequently submitted.', 'http_code' => 429, 'description' => 'key put/delete操作太频繁'], + ['code' => 'TopLevelDomain.Conflicts', 'message' => 'The added domain conflicts with the top level domain.', 'http_code' => 404, 'description' => '新增的这个域名与顶级接入域冲突。'], + ['code' => 'TopLevelDomain.Mismatch', 'message' => 'The specified TopLevelDomain does not match webSiteType.', 'http_code' => 400, 'description' => '顶级接入域和域名类型不匹配。'], + ['code' => 'TopLevelDomain.NotFound', 'message' => 'The specified TopLevelDomain does not exist.', 'http_code' => 400, 'description' => '顶级接入域不存在。'], + ['code' => 'Unauthorized', 'message' => 'RealtimeLogDelivery service is not authorized.', 'http_code' => 400, 'description' => '实时日志投递没有授权。'], + ['code' => 'Unauthorized.InvalidParameters', 'message' => 'The specified authentication parameters are invalid.', 'http_code' => 403, 'description' => '鉴权参数输入错误'], + ['code' => 'Unauthorized.InvalidResource', 'message' => 'Resource authentication failed.', 'http_code' => 403, 'description' => '资源校验失败'], + ['code' => 'Unauthorized.InvalidTime', 'message' => 'The specified authentication time is invalid.', 'http_code' => 403, 'description' => '您输入的鉴权时间参数无效,请检查参数值后重试。'], + ['code' => 'Unauthorized.InvalidToken', 'message' => 'Token authentication failed.', 'http_code' => 403, 'description' => '您输入的token无效,请检查并输入正确的token后进行重试。'], + ['code' => 'UnprocessableEntity', 'message' => 'Configuration failed due to invalid data, missing required fields, or missing resources.', 'http_code' => 422, 'description' => '由于数据无效、缺少必填字段、或缺少资源而配置失败。'], + ['code' => 'UnsupportedParameter', 'message' => 'The specified OwnerId and OwnerAccount are not supported.', 'http_code' => 400, 'description' => '不支持该参数。'], + ['code' => 'UnsupportQuota', 'message' => 'The current operation does not support this quota. Check whether the quota is valid.', 'http_code' => 404, 'description' => '当前操作不支持该配额,请检查传入的配额是否有效。'], + ['code' => 'UpdateErServiceError', 'message' => 'The billing type is only allowed to be modified once or the specification exceeds the limit within 24 hours. The paid version can use 50ms and 100ms, while the free version can only use 5ms.', 'http_code' => 400, 'description' => '24小时内最多只允许修改计费类型一次或规格超限,付费版可以使用50ms、100ms,免费版只能使用5ms。'], + ['code' => 'UserWithoutConfLabel', 'message' => 'the user has not configured the required label information, such as L2IpGroup.', 'http_code' => 400, 'description' => '用户没有配置需要的配置标签信息'], + ['code' => 'VersionBusy', 'message' => 'The current version is being configured, please try again later.', 'http_code' => 400, 'description' => '当前版本正处于配置中,请稍后再试。'], + ['code' => 'VersionError', 'message' => 'This version has been activated in staging environment.', 'http_code' => 400, 'description' => '这个版本号在模拟环境已经激活了。'], + ['code' => 'VersionNoDomain', 'message' => 'The version cannot be activated without domains.', 'http_code' => 400, 'description' => '这个版本号下没有域名,无法激活。'], + ['code' => 'VersionNotValid', 'message' => 'The site does not have version management enabled, or the version number passed in does not exist.', 'http_code' => 400, 'description' => '站点没有开启版本管理功能,或者传入的版本号不存在。'], + ['code' => 'VersionOverLimit', 'message' => 'The number of versions exceeds the limit.', 'http_code' => 400, 'description' => '版本数量超过限制。'], + ['code' => 'WafGroup.BeingBound', 'message' => 'The specified WAF group is being bound.', 'http_code' => 400, 'description' => '指定的WAF规则组正在被一个或多个防护策略绑定。'], + ['code' => 'WafGroup.Name.Malformed', 'message' => 'The specified parameter Name is invalid.', 'http_code' => 400, 'description' => '指定的参数Name格式错误。'], + ['code' => 'WafGroup.NotExist', 'message' => 'The specified WAF group does not exist.', 'http_code' => 400, 'description' => '指定的WAF规则组不存在。'], + ['code' => 'WafGroup.Quantity.Overflow', 'message' => 'WAF groups are overflowed quantity.', 'http_code' => 400, 'description' => 'WAF规则组数量超出配额。'], + ['code' => 'WaitingRoomEventNotExist', 'message' => 'The waiting room event does not exist.', 'http_code' => 400, 'description' => '等候室事件不存在。'], + ['code' => 'WaitingRoomNotExist', 'message' => 'The waiting room does not exist.', 'http_code' => 400, 'description' => '等候室不存在。'], + ['code' => 'WaitingRoomRuleNotExist', 'message' => 'The waiting room rule does not exist.', 'http_code' => 400, 'description' => '等候室绕过规则不存在。'], + ['code' => 'ConfigGroup.DomainBizNotMatched', 'message' => 'There are unsupported business types in the domain name bound to the configuration group. The configuration group only supports three types of domain business types: image, video, and download.', 'http_code' => 400, 'description' => '配置组绑定的域名中存在不支持的业务类型,配置组仅支持image、video、download这三种域名业务类型。'], + ['code' => 'ConfigGroup.DomainQuotaLimit', 'message' => 'The number of domain names exceeds the limit, and a configuration group can be associated with up to 50 city names.', 'http_code' => 400, 'description' => '域名数量超限,一个配置组最多关联50个城名。'], + ], + 'changeSet' => [ [ - 'regionId' => 'ap-northeast-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeDcdnFullDomainsBlockIPHistory'], + ], + 'createdAt' => '2024-12-18T07:52:09.000Z', + 'description' => '', ], [ - 'regionId' => 'ap-northeast-2-pop', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'CheckDcdnProjectExist'], + ['description' => '错误码发生变更', 'api' => 'CreateDcdnSLSRealTimeLogDelivery'], + ['description' => '错误码发生变更', 'api' => 'CreateSlrAndSlsProject'], + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnSLSRealtimeLogDelivery'], + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnSLSRealTimeLogType'], + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnUserRealTimeDeliveryField'], + ['description' => '错误码发生变更', 'api' => 'ListDcdnRealTimeDeliveryProject'], + ['description' => '错误码发生变更', 'api' => 'UpdateDcdnSLSRealtimeLogDelivery'], + ['description' => '错误码发生变更', 'api' => 'UpdateDcdnUserRealTimeDeliveryField'], + ], + 'createdAt' => '2024-12-18T07:28:02.000Z', + 'description' => '', ], [ - 'regionId' => 'ap-south-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'CreateDcdnSLSRealTimeLogDelivery'], + ['description' => '错误码发生变更', 'api' => 'DeleteDcdnRealTimeLogProject'], + ['description' => '错误码发生变更', 'api' => 'UpdateDcdnSLSRealtimeLogDelivery'], + ], + 'createdAt' => '2024-12-04T08:17:40.000Z', + 'description' => '', ], [ - 'regionId' => 'ap-southeast-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnWafDomains'], + ], + 'createdAt' => '2024-11-28T01:48:09.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'AddDcdnDomain'], + ], + 'createdAt' => '2024-11-26T03:17:44.000Z', + 'description' => '', ], [ - 'regionId' => 'ap-southeast-2', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'BatchSetDcdnDomainCertificate'], + ], + 'createdAt' => '2024-11-26T01:57:54.000Z', + 'description' => '', ], [ - 'regionId' => 'ap-southeast-3', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'PreloadDcdnObjectCaches'], + ], + 'createdAt' => '2024-11-21T02:03:57.000Z', + 'description' => '', ], [ - 'regionId' => 'ap-southeast-5', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'PreloadDcdnObjectCaches'], + ], + 'createdAt' => '2024-11-03T02:53:36.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-beijing', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnL2Ips'], + ], + 'createdAt' => '2024-09-24T06:30:09.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-beijing-finance-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'AddDcdnDomain'], + ['description' => '错误码发生变更', 'api' => 'AddDcdnIpaDomain'], + ['description' => '错误码发生变更', 'api' => 'BatchAddDcdnDomain'], + ], + 'createdAt' => '2024-09-03T06:25:52.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-beijing-finance-pop', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeDcdnKvAccount'], + ], + 'createdAt' => '2024-08-21T06:02:52.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-beijing-gov-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeDcdnKvNamespace'], + ], + 'createdAt' => '2024-08-20T09:18:31.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-beijing-nu16-b01', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更、响应参数发生变更', 'api' => 'DescribeDcdnKvAccount'], + ], + 'createdAt' => '2024-08-20T08:25:09.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-chengdu', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'BatchDeleteDcdnKvWithHighCapacity'], + ['description' => '请求参数发生变更', 'api' => 'BatchPutDcdnKvWithHighCapacity'], + ], + 'createdAt' => '2024-06-13T06:36:05.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-edge-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'DescribeDcdnUserDomains'], + ['description' => '错误码发生变更', 'api' => 'SetDcdnDomainSSLCertificate'], + ], + 'createdAt' => '2024-05-11T03:10:56.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-fujian', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'BatchSetDcdnDomainCertificate'], + ['description' => '错误码发生变更', 'api' => 'SetDcdnDomainCertificate'], + ], + 'createdAt' => '2024-05-07T06:38:06.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-haidian-cm12-c01', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'BatchPutDcdnKv'], + ], + 'createdAt' => '2024-04-29T15:11:38.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hangzhou', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'AddDcdnIpaDomain'], + ['description' => '错误码发生变更', 'api' => 'UpdateDcdnIpaDomain'], + ], + 'createdAt' => '2024-04-09T01:38:21.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hangzhou-bj-b01', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'BatchPutDcdnKv'], + ], + 'createdAt' => '2024-03-27T02:35:09.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hangzhou-finance', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'DescribeDcdnDomainConfigs'], + ], + 'createdAt' => '2024-03-27T01:49:16.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hangzhou-internal-prod-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'PutDcdnKvNamespace'], + ], + 'createdAt' => '2024-03-25T08:02:29.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hangzhou-internal-test-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeDcdnKvNamespace'], + ], + 'createdAt' => '2024-03-21T09:45:00.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hangzhou-internal-test-2', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'PutDcdnKvNamespace'], + ], + 'createdAt' => '2024-02-19T06:33:07.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hangzhou-internal-test-3', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'AddDcdnDomain'], + ], + 'createdAt' => '2023-12-13T05:59:56.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hangzhou-test-306', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'AddDcdnDomain'], + ], + 'createdAt' => '2023-12-12T02:22:58.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hongkong', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'SetDcdnDomainSSLCertificate'], + ], + 'createdAt' => '2023-12-06T03:05:35.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hongkong-finance-pop', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeDcdnWafFilterInfo'], + ], + 'createdAt' => '2023-11-21T02:14:11.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-huhehaote', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'RefreshDcdnObjectCaches'], + ], + 'createdAt' => '2023-10-17T08:31:49.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-north-2-gov-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '请求参数发生变更、响应参数发生变更', 'api' => 'DescribeDcdnUserDomainsByFunc'], + ], + 'createdAt' => '2023-10-16T07:45:46.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-qingdao', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'BatchSetDcdnDomainConfigs'], + ], + 'createdAt' => '2023-10-10T02:14:13.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-qingdao-nebula', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeDcdnDdosSpecInfo'], + ], + 'createdAt' => '2023-09-14T01:39:47.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shanghai', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'SetDcdnDomainSSLCertificate'], + ], + 'createdAt' => '2023-09-04T01:41:53.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shanghai-et15-b01', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更、响应参数发生变更', 'api' => 'DescribeDcdnIpaDomainCidr'], + ], + 'createdAt' => '2023-08-30T06:54:21.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shanghai-et2-b01', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'BatchCreateDcdnWafRules'], + ['description' => '错误码发生变更', 'api' => 'BatchDeleteDcdnWafRules'], + ['description' => '错误码发生变更', 'api' => 'BatchModifyDcdnWafRules'], + ['description' => '错误码发生变更', 'api' => 'BatchSetDcdnWafDomainConfigs'], + ['description' => '错误码发生变更', 'api' => 'CreateDcdnWafGroup'], + ['description' => '错误码发生变更', 'api' => 'CreateDcdnWafPolicy'], + ['description' => '错误码发生变更', 'api' => 'DeleteDcdnWafGroup'], + ['description' => '错误码发生变更', 'api' => 'DeleteDcdnWafPolicy'], + ['description' => '错误码发生变更', 'api' => 'ModifyDcdnWafGroup'], + ['description' => '错误码发生变更', 'api' => 'ModifyDcdnWafPolicy'], + ], + 'createdAt' => '2023-08-29T10:08:48.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shanghai-finance-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更、请求参数发生变更', 'api' => 'AddDcdnDomain'], + ['description' => '响应参数发生变更', 'api' => 'DescribeDcdnDomainDetail'], + ['description' => '请求参数发生变更、响应参数发生变更', 'api' => 'DescribeDcdnUserDomains'], + ], + 'createdAt' => '2023-08-29T08:43:28.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shanghai-inner', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'DescribeDcdnDomainByCertificate'], + ], + 'createdAt' => '2023-08-22T02:07:13.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shanghai-internal-test-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'BatchSetDcdnDomainConfigs'], + ], + 'createdAt' => '2023-08-17T03:49:42.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shenzhen', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeDcdnUserDomains'], + ], + 'createdAt' => '2023-08-02T02:26:04.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shenzhen-finance-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'BatchSetDcdnDomainConfigs'], + ], + 'createdAt' => '2023-07-26T09:40:15.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shenzhen-inner', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'TagDcdnResources'], + ], + 'createdAt' => '2023-07-25T12:35:30.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shenzhen-st4-d01', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'PreloadDcdnObjectCaches'], + ], + 'createdAt' => '2023-07-25T12:31:32.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shenzhen-su18-b01', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '请求参数发生变更、响应参数发生变更', 'api' => 'PutDcdnKv'], + ], + 'createdAt' => '2023-07-20T07:45:01.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-wuhan', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeDcdnDomainRealTimeDetailData'], + ], + 'createdAt' => '2023-07-04T08:40:15.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-yushanfang', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnUserBillHistory'], + ], + 'createdAt' => '2023-07-04T06:46:08.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-zhangbei-na61-b01', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'RefreshDcdnObjectCaches'], + ], + 'createdAt' => '2023-07-03T07:39:14.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-zhangjiakou', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DeleteDcdnDomain'], + ], + 'createdAt' => '2023-06-21T02:53:36.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-zhangjiakou-na62-a01', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'BatchSetDcdnDomainConfigs'], + ], + 'createdAt' => '2023-06-13T04:56:08.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-zhengzhou-nebula-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'BatchSetDcdnDomainConfigs'], + ], + 'createdAt' => '2023-06-13T02:28:30.000Z', + 'description' => '', ], [ - 'regionId' => 'eu-central-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DeleteDcdnSpecificStagingConfig'], + ], + 'createdAt' => '2023-06-08T02:49:46.000Z', + 'description' => '', ], [ - 'regionId' => 'eu-west-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'SetDcdnDomainStagingConfig'], + ], + 'createdAt' => '2023-05-25T03:09:33.000Z', + 'description' => '', ], [ - 'regionId' => 'eu-west-1-oxs', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'BatchSetDcdnDomainConfigs'], + ], + 'createdAt' => '2023-05-23T03:11:58.000Z', + 'description' => '', ], [ - 'regionId' => 'me-east-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'CreateDcdnSubTask'], + ['description' => '请求参数发生变更', 'api' => 'UpdateDcdnSubTask'], + ], + 'createdAt' => '2023-05-18T11:11:23.000Z', + 'description' => '', ], [ - 'regionId' => 'rus-west-1-pop', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeDcdnDomainBpsDataByLayer'], + ], + 'createdAt' => '2023-04-13T06:02:15.000Z', + 'description' => '', ], [ - 'regionId' => 'us-east-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'DescribeDcdnRefreshTasks'], + ], + 'createdAt' => '2023-03-28T06:08:13.000Z', + 'description' => '', ], [ - 'regionId' => 'us-west-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeDcdnUserDomainsByFunc'], + ], + 'createdAt' => '2023-03-24T08:25:35.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeDcdnUserTags'], + ], + 'createdAt' => '2023-03-24T08:25:27.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'ModifyDcdnWafRule'], + ], + 'createdAt' => '2023-03-24T08:23:23.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'BatchSetDcdnDomainConfigs'], + ], + 'createdAt' => '2023-03-24T08:22:25.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'VerifyDcdnDomainOwner'], + ], + 'createdAt' => '2023-03-24T08:21:59.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'SetDcdnDomainCertificate'], + ], + 'createdAt' => '2023-03-24T08:20:59.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeDcdnRefreshQuota'], + ], + 'createdAt' => '2023-03-24T08:20:10.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'DescribeDcdnRefreshTasks'], + ], + 'createdAt' => '2023-03-24T08:20:00.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更、响应参数发生变更', 'api' => 'PreloadDcdnObjectCaches'], + ], + 'createdAt' => '2023-01-11T07:51:27.000Z', + 'description' => 'Headers', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'AddDcdnDomain'], + ['description' => '响应参数发生变更', 'api' => 'TagDcdnResources'], + ], + 'createdAt' => '2023-01-04T01:55:39.000Z', + 'description' => 'tag', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeDcdnWafLogs'], + ], + 'createdAt' => '2023-01-03T08:50:19.000Z', + 'description' => '修改DescribeDcdnWafLogs 后端服务地址', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnDomainUsageData'], + ], + 'createdAt' => '2022-12-26T06:50:31.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'DescribeDcdnDomainStagingConfig'], + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnVerifyContent'], + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnWafDomains'], + ], + 'createdAt' => '2022-12-14T06:44:42.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnWafPolicies'], + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnWafUsageData'], + ], + 'createdAt' => '2022-12-13T07:17:33.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnStagingIp'], + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnWafSpecInfo'], + ['description' => '错误码发生变更', 'api' => 'ListDcdnRealTimeDeliveryProject'], + ], + 'createdAt' => '2022-12-08T06:51:06.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnAclFields'], + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnWafFilterInfo'], + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnWafGeoInfo'], + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnWafRules'], + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnWafScenes'], + ], + 'createdAt' => '2022-12-08T06:12:36.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnUserSecDropByMinute'], + ], + 'createdAt' => '2022-12-07T03:35:00.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'AddDcdnDomain'], + ['description' => '错误码发生变更', 'api' => 'BatchSetDcdnDomainConfigs'], + ], + 'createdAt' => '2022-11-24T06:48:47.000Z', + 'description' => '增加错误码映射', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'DescribeDcdnDomainConfigs'], + ], + 'createdAt' => '2022-11-16T03:02:47.000Z', + 'description' => 'amp发布', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'DescribeDcdnIpInfo'], + ], + 'createdAt' => '2022-11-16T02:40:30.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => '请求参数发生变更', 'api' => 'DescribeDcdnDomainConfigs'], + ], + 'createdAt' => '2022-11-15T06:02:21.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnDomainDetail'], + ], + 'createdAt' => '2022-10-27T07:43:12.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'BatchAddDcdnDomain'], + ], + 'createdAt' => '2022-10-27T07:31:42.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => '响应参数发生变更', 'api' => 'DescribeDcdnDomainConfigs'], + ], + 'createdAt' => '2022-10-27T06:31:25.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnWafService'], + ], + 'createdAt' => '2022-10-27T06:16:27.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'AddDcdnDomain'], + ], + 'createdAt' => '2022-10-27T06:04:34.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnService'], + ], + 'createdAt' => '2022-10-27T05:52:48.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeUserDcdnStatus'], + ], + 'createdAt' => '2022-10-27T03:18:15.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnCertificateList'], + ], + 'createdAt' => '2022-10-27T03:11:09.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnRefreshQuota'], + ], + 'createdAt' => '2022-10-27T03:08:07.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnSMCertificateList'], + ], + 'createdAt' => '2022-10-27T03:06:51.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeUserDcdnIpaStatus'], + ], + 'createdAt' => '2022-10-27T03:01:19.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnCertificateDetail'], + ], + 'createdAt' => '2022-10-27T02:44:18.000Z', + 'description' => 'amp发布', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnIpaDomainDetail'], + ], + 'createdAt' => '2022-10-27T02:42:19.000Z', + 'description' => 'amp发布', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeUserErStatus'], + ], + 'createdAt' => '2022-10-27T02:28:28.000Z', + 'description' => 'amp发布', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeUserLogserviceStatus'], + ], + 'createdAt' => '2022-10-27T02:23:04.000Z', + 'description' => 'amp迁移', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'StopDcdnDomain'], + ], + 'createdAt' => '2022-10-27T01:22:59.000Z', + 'description' => 'amp迁移', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'AddDcdnIpaDomain'], + ], + 'createdAt' => '2022-10-26T21:59:49.000Z', + 'description' => 'amp迁移', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnRegionAndIsp'], + ], + 'createdAt' => '2022-10-13T02:33:45.000Z', + 'description' => 'amp迁移', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnUserQuota'], + ], + 'createdAt' => '2022-10-13T02:30:53.000Z', + 'description' => 'amp发布', + ], + [ + 'apis' => [ + ['description' => '错误码发生变更', 'api' => 'DescribeDcdnsecService'], + ], + 'createdAt' => '2022-10-13T02:27:20.000Z', + 'description' => '迁移amp', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI 下线', 'api' => 'BatchModifyDcdnWafRules'], + ], + 'createdAt' => '2022-09-27T08:43:08.000Z', + 'description' => 'DCDN WAF 三期,支持bot防护场景', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI 下线', 'api' => 'DescribeEncryptRoutineUid'], + ], + 'createdAt' => '2022-09-09T06:07:28.000Z', + 'description' => '获取aliuid的加密信息', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI 下线', 'api' => 'DescribeDcdnL2Vips'], + ], + 'createdAt' => '2022-09-01T01:39:31.000Z', + 'description' => '支持建行等政企客户通过接口拉取dcdn,ddos和waf等云产品的回源IP段列表', + ], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDcdnKvDetail'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainMultiUsageData'], + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnL2Vips'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeKvUsageData'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainCcActivityLog'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainIpaConnData'], + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDcdnDeliverTask'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnOriginSiteHealthStatus'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchDeleteDcdnWafRules'], + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainOriginBpsData'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateRoutine'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CommitStagingRoutineCode'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnDomain'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnCertificateList'], + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserBillHistory'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainQpsDataByLayer'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRealTimeSrcHttpCodeData'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnTopDomainsByFlow'], + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnDeliverTask'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnKvNamespace'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainPvData'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchCreateDcdnWafRules'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnRegionAndIsp'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainHttpCodeDataByLayer'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRoutineUserInfo'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchSetDcdnWafDomainConfigs'], + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnSubTask'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnIpaDomainCidr'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainTopReferVisit'], + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserDomainsByFunc'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EditRoutineConf'], + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchSetDcdnDomainConfigs'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDcdnDomainCSRCertificate'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PutDcdnKvWithHighCapacity'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnReport'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnSpecificStagingConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnReportList'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnSecFuncInfo'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserQuota'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafRules'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafGroup'], + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateDcdnSubTask'], + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRealTimeTrafficData'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddDcdnIpaDomain'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserBillType'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDcdnDomainStagingConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDeletedDomains'], + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainBpsData'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyDcdnWafPolicy'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnCertificateDetail'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PublishDcdnStagingConfigToProduction'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnSubList'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainStagingConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainOriginTrafficData'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopDcdnIpaDomain'], + ['threshold' => '1', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchPutDcdnKv'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDcdnDomainSMCertificate'], + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnSLSRealTimeLogType'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnBgpBpsData'], + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListDcdnRealTimeDeliveryProject'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteRoutine'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnIpaDomainDetail'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUserDcdnIpaStatus'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyDcdnWafPolicyDomains'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchStartDcdnDomain'], + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnL2Ips'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafDefaultRules'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRoutine'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchStopDcdnDomain'], + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateDcdnUserRealTimeDeliveryField'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafScenes'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnRefreshTasks'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UntagDcdnResources'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateDcdnDomain'], + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateDcdnSLSRealtimeLogDelivery'], + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnAclFields'], + ['threshold' => '1', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchDeleteDcdnKvWithHighCapacity'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRealTimeSrcBpsData'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainProperty'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetRoutineSubdomain'], + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafLogs'], + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainQpsData'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnStagingIp'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnErUsageData'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafDomains'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafFilterInfo'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopDcdnDomain'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UploadRoutineCode'], + ['threshold' => '1', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchPutDcdnKvWithHighCapacity'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainUvData'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchAddDcdnDomain'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainCertificateInfo'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnService'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartDcdnIpaDomain'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDdosSpecInfo'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnTagResources'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchModifyDcdnWafRules'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnFullDomainsBlockIPConfig'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDdosService'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RefreshDcdnObjectCaches'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PutDcdnKvNamespace'], + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateSlrAndSlsProject'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRDDomainConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnIpaSpecificConfig'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnIpInfo'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainIpaBpsData'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListDcdnKv'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnIpaUserDomains'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RollbackDcdnStagingConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRoutineCanaryEnvs'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserResourcePackage'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafSpecInfo'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRoutineSpec'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDeliverList'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafUsageData'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainTopUrlVisit'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainUsageData'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnHttpsDomainList'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UploadStagingRoutineCode'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnUserConfig'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyDcdnWafGroup'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnSSLCertificateList'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainDetail'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafRule'], + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CheckDcdnProjectExist'], + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDcdnSLSRealTimeLogDelivery'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnBgpTrafficData'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainWebsocketBpsData'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafBotAppKey'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDdosAllEventList'], + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainTrafficData'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserCertificateExpireCount'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PutDcdnKv'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRealTimeSrcTrafficData'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserSecDropByMinute'], + ['threshold' => '1', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchDeleteDcdnKv'], + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainIspData'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainsBySource'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RefreshDcdnObjectCacheByCacheTag'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainWebsocketHttpCodeData'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafDomain'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRealTimeBpsData'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnBlockedRegions'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateDcdnIpaDomain'], + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnRealTimeDeliveryField'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnIpaService'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDcdnKvStatus'], + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateDcdnDeliverTask'], + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainLog'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchSetDcdnIpaDomainConfigs'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnSecSpecInfo'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafPolicy'], + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDcdnSubTask'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRoutineRelatedDomains'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainWebsocketTrafficData'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PublishRoutineCodeRevision'], + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainHitRateData'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnKvAccount'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDcdnWafPolicy'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'TagDcdnResources'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnRefreshTaskById'], + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeEncryptRoutineUid'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUserDcdnStatus'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyDcdnWafRule'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnWafGroup'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartDcdnDomain'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserDomains'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteRoutineCodeRevision'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafPolicies'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'OpenDcdnService'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserConfigs'], + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserRealTimeDeliveryField'], + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnRealTimeLogProject'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnRefreshQuota'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeHighlightInfo'], + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'VerifyDcdnDomainOwner'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnKvAccountStatus'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDcdnUserConfig'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnSMCertificateList'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchDeleteDcdnDomainConfigs'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainConfigs'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafPolicyDomains'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnWafPolicy'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDcdnFullDomainsBlockIP'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnIpaDomainConfigs'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafPolicyValidDomains'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRealTimeByteHitRateData'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafDomainDetail'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RefreshErObjectCaches'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnsecService'], + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnVerifyContent'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnKvNamespace'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDcdnKv'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyDCdnDomainSchdmByProperty'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDcdnCertificateSigningRequest'], + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnSLSRealtimeLogDelivery'], + ['threshold' => '80', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainCname'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnSpecificConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRealTimeHttpCodeData'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainByCertificate'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDcdnDomainSSLCertificate'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnKv'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainIpaTrafficData'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRealTimeReqHitRateData'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserTags'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteRoutineConfEnvs'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserVipsByDomain'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafGeoInfo'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnIpaDomain'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRealTimeDetailData'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafGroups'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUserLogserviceStatus'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeUserErStatus'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnSMCertificateDetail'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRealTimeQpsData'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnFullDomainsBlockIPHistory'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRegionData'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDcdnWafGroup'], + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainHttpCodeData'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeKvRealTimeQpsData'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserSecDrop'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafService'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeRoutineCodeRevision'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddDcdnDomain'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainBpsDataByLayer'], + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PreloadDcdnObjectCaches'], + ], + ], + 'ram' => [ + 'productCode' => 'DCDN', + 'productName' => '边缘安全加速', + 'ramCodes' => ['dcdn'], + 'ramLevel' => '资源级', + 'ramConditions' => [ + [ + 'name' => 'dcdn:tag', + 'schema' => ['type' => 'STRING', 'description' => 'dcdn标签授权'], + ], + ], + 'ramActions' => [ + [ + 'apiName' => 'PublishDcdnStagingConfigToProduction', + 'description' => '灰度环境转生产环境配置', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:PublishDcdnStagingConfigToProduction', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DeleteDcdnUserConfig', + 'description' => '删除用户维度的配置', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnUserConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteDcdnDomain', + 'description' => '删除域名', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainHttpCodeDataByLayer', + 'description' => '查询HTTP状态码-按协议', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainHttpCodeDataByLayer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainRealTimeReqHitRateData', + 'description' => '查询实时请求命中率数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRealTimeReqHitRateData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainBpsDataByLayer', + 'description' => '查询网络带宽监控数据-按协议', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainBpsDataByLayer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'SetDcdnDomainStagingConfig', + 'description' => '设置或修改域名配置(灰度)', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:SetDcdnDomainStagingConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'BatchSetDcdnDomainConfigs', + 'description' => '批量配置域名', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:BatchSetDcdnDomainConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainCcActivityLog', + 'description' => '查询频次控制规则拦截日志', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainCcActivityLog', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'StartDcdnDomain', + 'description' => '启用域名', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:StartDcdnDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainTopUrlVisit', + 'description' => '查询热门URL列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainTopUrlVisit', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnBlockedRegions', + 'description' => '查询区域封禁支持的国家和地区', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnBlockedRegions', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'VerifyDcdnDomainOwner', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:VerifyDcdnDomainOwner', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'BatchPutDcdnKvWithHighCapacity', + 'description' => '批量设置KV存储空间的大容量键值对', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:BatchPutDcdnKvWithHighCapacity', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainRealTimeHttpCodeData', + 'description' => '查询实时HTTP状态码', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRealTimeHttpCodeData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'BatchStopDcdnDomain', + 'description' => '批量停用域名', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:BatchStopDcdnDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'AddDcdnDomain', + 'description' => '添加域名', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:AddDcdnDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDdosAllEventList', + 'description' => '查询攻击事件列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDdosAllEventList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnRefreshQuota', + 'description' => '查询缓存刷新预热数量信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnRefreshQuota', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafGroup', + 'description' => '查询自定义WAF规则组详情', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'UpdateDcdnIpaDomain', + 'description' => '修改启用IPA服务的加速域名', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UpdateDcdnIpaDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'StopDcdnIpaDomain', + 'description' => '停用开启IPA服务的加速域名', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:StopDcdnIpaDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'StartDcdnIpaDomain', + 'description' => '启用停用IPA服务的加速域名', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:StartDcdnIpaDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'CreateDcdnSLSRealTimeLogDelivery', + 'description' => '创建实时日志项目', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:CreateDcdnSLSRealTimeLogDelivery', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + [ + 'apiName' => 'BatchAddDcdnDomain', + 'description' => '批量添加域名', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:BatchAddDcdnDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'BatchDeleteDcdnKvWithHighCapacity', + 'description' => '批量删除KV存储空间的大容量的键值对', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:BatchDeleteDcdnKvWithHighCapacity', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'BatchModifyDcdnWafRules', + 'description' => '批量修改防护规则', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:BatchModifyDcdnWafRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafGeoInfo', + 'description' => '查询WAF区域封禁支持的国家和地区', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafGeoInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnIpInfo', + 'description' => '验证IP节点', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnIpInfo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnL2Ips', + 'description' => '查询L2节点IP地址', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnL2Ips', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'CreateSlrAndSlsProject', + 'description' => '创建服务关联角色以及日志服务项目', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:CreateSlrAndSlsProject', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteDcdnIpaSpecificConfig', + 'description' => '删除加速域名的IPA层配置', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnIpaSpecificConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'ModifyDcdnWafPolicyDomains', + 'description' => '修改防护策略绑定的域名', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:ModifyDcdnWafPolicyDomains', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnBgpTrafficData', + 'description' => '查询BGP流量数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnBgpTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeRoutineRelatedDomains', + 'description' => '查询边缘函数ER关联的域名列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeRoutineRelatedDomains', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnUserResourcePackage', + 'description' => '查询资源包信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserResourcePackage', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'CheckDcdnProjectExist', + 'description' => '检查实时日志项目是否存在', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:CheckDcdnProjectExist', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnIpaUserDomains', + 'description' => '获取用户IPA层应用加速域名', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnIpaUserDomains', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/*'], + ], + ], + ], + [ + 'apiName' => 'BatchDeleteDcdnWafRules', + 'description' => '批量删除防护规则', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:BatchDeleteDcdnWafRules', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafPolicy', + 'description' => '获取单个防护策略信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainMultiUsageData', + 'description' => '批量查询用量数据', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainMultiUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteDcdnWafGroup', + 'description' => '删除自定义WAF规则组', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnWafGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainStagingConfig', + 'description' => '查询环境配置(灰度)', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainStagingConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafScenes', + 'description' => '查询用户使用的防护策略类型', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafScenes', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnIpaDomainCidr', + 'description' => '查询IPA加速域名的回源节点IP段', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnIpaDomainCidr', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDeletedDomains', + 'description' => '查询已删除域名', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDeletedDomains', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnRealTimeDeliveryField', + 'description' => '查询实时日志所有字段', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnRealTimeDeliveryField', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'PutDcdnKv', + 'description' => '设置Namespace的Key-Value对', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:PutDcdnKv', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeRDDomainConfig', + 'description' => '查询用户RD下的域名功能配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeRDDomainConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'PreloadDcdnObjectCaches', + 'description' => '预热URL', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:PreloadDcdnObjectCaches', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafDomains', + 'description' => '获取接入WAF防护的加速域名', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafDomains', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDdosService', + 'description' => '查询DDoS服务状态', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDdosService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnKvNamespace', + 'description' => '查询Namespace信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnKvNamespace', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnStagingIp', + 'description' => '获取公测节点有效VIP', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnStagingIp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeKvUsageData', + 'description' => '查询KV存储用量数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeKvUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'BatchPutDcdnKv', + 'description' => '批量设置Namespace的key-value对', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:BatchPutDcdnKv', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainRealTimeSrcHttpCodeData', + 'description' => '查询实时回源HTTP状态码', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRealTimeSrcHttpCodeData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + [ + 'apiName' => 'SetDcdnFullDomainsBlockIP', + 'description' => '批量封禁解禁指定域名的IP', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:SetDcdnFullDomainsBlockIP', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainUsageData', + 'description' => '查询用量数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnUserBillHistory', + 'description' => '查询历史账单', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserBillHistory', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainHttpCodeData', + 'description' => '查询HTTP状态码', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainHttpCodeData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainCname', + 'description' => '检测域名的CNAME是否完成配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainCname', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainPvData', + 'description' => '查询PV页面访问统计', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainPvData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainRealTimeSrcTrafficData', + 'description' => '查询实时回源流量监控数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRealTimeSrcTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnSecSpecInfo', + 'description' => '查询安全DCDN版本及安全规则', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSecSpecInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnIpaDomainDetail', + 'description' => '获取IPA层的基本配置信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnIpaDomainDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnSecFuncInfo', + 'description' => '提供边缘安全下拉列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSecFuncInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainOriginTrafficData', + 'description' => '查询回源流量监控数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainOriginTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'BatchStartDcdnDomain', + 'description' => '批量启用域名', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:BatchStartDcdnDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeRoutineSpec', + 'description' => '获取边缘函数ER可供选择的函数规格', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeRoutineSpec', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'BatchDeleteDcdnKv', + 'description' => '批量删除KV存储空间的键值对', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:BatchDeleteDcdnKv', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'UpdateDcdnUserRealTimeDeliveryField', + 'description' => '更新实时日志字段', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UpdateDcdnUserRealTimeDeliveryField', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainByCertificate', + 'description' => '获取证书信息对应加速域名', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainByCertificate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnUserSecDrop', + 'description' => '查询用户某安全功能报文拦截数', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserSecDrop', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'CreateRoutine', + 'description' => '创建边缘函数', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:CreateRoutine', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeRoutineCodeRevision', + 'description' => '获取边缘函数ER的JS代码', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeRoutineCodeRevision', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnTagResources', + 'description' => '查询资源对应的标签', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnTagResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainQpsData', + 'description' => '查询QPS', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainQpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnUserDomainsByFunc', + 'description' => '查询域名-按功能', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserDomainsByFunc', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeUserLogserviceStatus', + 'description' => '查看Logservice服务是否开通或者欠费', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeUserLogserviceStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeEncryptRoutineUid', + 'description' => '查询边缘函数ER的加密信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeEncryptRoutineUid', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteDcdnKvNamespace', + 'description' => '删除Namespace', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnKvNamespace', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainProperty', + 'description' => '查询IPA的协议类型', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainProperty', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnErUsageData', + 'description' => '查询边缘函数ER的执行次数', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnErUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'BatchDeleteDcdnDomainConfigs', + 'description' => '批量删除域名配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:BatchDeleteDcdnDomainConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafLogs', + 'description' => '查询离线WAF拦截日志下载地址', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafLogs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainRealTimeQpsData', + 'description' => '查询实时QPS', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRealTimeQpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnUserQuota', + 'description' => '查询用户资源使用信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserQuota', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteDcdnIpaDomain', + 'description' => '删除已添加的IPA层加速域名', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnIpaDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeRoutine', + 'description' => '获取某个边缘函数ER的元信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeRoutine', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'ModifyDcdnWafPolicy', + 'description' => '修改防护策略名称或状态', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:ModifyDcdnWafPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnUserRealTimeDeliveryField', + 'description' => '查询用户选择的字段列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserRealTimeDeliveryField', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainWebsocketTrafficData', + 'description' => '查询WebSocket流量数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainWebsocketTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafRule', + 'description' => '获取单个防护规则信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafRule', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnBgpBpsData', + 'description' => '查询BGP带宽数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnBgpBpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeKvRealTimeQpsData', + 'description' => '查询KV存储实时QPS数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeKvRealTimeQpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'SetDcdnDomainCSRCertificate', + 'description' => '设置CSR证书', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:SetDcdnDomainCSRCertificate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnUserVipsByDomain', + 'description' => '查询节点IP列表-L1', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserVipsByDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + [ + 'apiName' => 'PutDcdnKvWithHighCapacity', + 'description' => '设置KV存储空间的单个大容量键值对', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:PutDcdnKvWithHighCapacity', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainHitRateData', + 'description' => '查询字节命中率', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainHitRateData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnKvAccountStatus', + 'description' => '查询账户的KV状态信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnKvAccountStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnsecService', + 'description' => '查询安全DCDN服务状态', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnsecService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetDcdnKvStatus', + 'description' => '查询KV状态信息-按Key值', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:GetDcdnKvStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'StopDcdnDomain', + 'description' => '停用域名', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:StopDcdnDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainOriginBpsData', + 'description' => '查询回源带宽监控数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainOriginBpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DeleteDcdnRealTimeLogProject', + 'description' => '删除实时日志项目', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnRealTimeLogProject', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnVerifyContent', + 'description' => '获取归属校验内容', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnVerifyContent', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeHighlightInfo', + 'description' => '查询攻击详情的高亮数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeHighlightInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainCertificateInfo', + 'description' => '查询指定域名证书信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainCertificateInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafDomain', + 'description' => '查询WAF全量域名列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'RollbackDcdnStagingConfig', + 'description' => '灰度配置回滚', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:RollbackDcdnStagingConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDeliverList', + 'description' => '查询报表订阅任务列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDeliverList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'RefreshDcdnObjectCaches', + 'description' => '刷新缓存', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:RefreshDcdnObjectCaches', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnHttpsDomainList', + 'description' => '查询证书列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnHttpsDomainList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnCertificateDetail', + 'description' => '查询证书详情', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnCertificateDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafService', + 'description' => '查询WAF服务状态', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainIspData', + 'description' => '查询用户运营商分布数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainIspData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'UpdateDcdnDomain', + 'description' => '修改域名基本信息', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UpdateDcdnDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainUvData', + 'description' => '查询UV页面访问统计', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainUvData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'UploadRoutineCode', + 'description' => '上传边缘函数ER的代码', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UploadRoutineCode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteDcdnSpecificConfig', + 'description' => '删除域名的指定配置', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnSpecificConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainIpaTrafficData', + 'description' => '获取四层加速流量监控数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainIpaTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnSMCertificateDetail', + 'description' => '查询国密证书详情', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSMCertificateDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetDcdnKv', + 'description' => '查询Key-Value对的某个Key值', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:GetDcdnKv', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'SetDcdnUserConfig', + 'description' => '设置用户配置信息', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:SetDcdnUserConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'AddDcdnIpaDomain', + 'description' => '添加IPA层应用加速域名', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:AddDcdnIpaDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeUserDcdnIpaStatus', + 'description' => '获取IPA服务开通状态', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeUserDcdnIpaStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnRegionAndIsp', + 'description' => '查询地域和运营商列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnRegionAndIsp', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnSubList', + 'description' => '查询已定制的报表任务', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSubList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainTrafficData', + 'description' => '查询网络流量监控数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'CreateDcdnSubTask', + 'description' => '定制运营报表', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:CreateDcdnSubTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainWebsocketHttpCodeData', + 'description' => '查询WebSocket返回码数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainWebsocketHttpCodeData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'UpdateDcdnDeliverTask', + 'description' => '更新已订阅的报表任务', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UpdateDcdnDeliverTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnSSLCertificateList', + 'description' => '查询证书列表-按域名', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSSLCertificateList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DeleteDcdnDeliverTask', + 'description' => '删除已订阅的报表任务', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnDeliverTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafPolicyValidDomains', + 'description' => '查询可被自定义防护策略绑定的域名', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafPolicyValidDomains', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainsBySource', + 'description' => '查询域名-按源站', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainsBySource', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnService', + 'description' => '获取DCDN服务状态', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'BatchSetDcdnIpaDomainConfigs', + 'description' => '批量配置IPA层应用加速域名', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:BatchSetDcdnIpaDomainConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnUserBillType', + 'description' => '查询计费类型', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserBillType', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnReportList', + 'description' => '查询所有定制报表列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnReportList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnSLSRealtimeLogDelivery', + 'description' => '查询实时日志项目', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSLSRealtimeLogDelivery', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnIpaDomainConfigs', + 'description' => '获取IPA层加速域名配置信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnIpaDomainConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeUserDcdnStatus', + 'description' => '获取DCDN的服务状态', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeUserDcdnStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafDomainDetail', + 'description' => '按域名精准查询防护策略', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafDomainDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'WafDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafRules', + 'description' => '查询用户配置的防护规则', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'RefreshErObjectCaches', + 'description' => '刷新边缘函数缓存', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:RefreshErObjectCaches', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + [ + 'apiName' => 'CreateDcdnWafGroup', + 'description' => '创建自定义WAF规则组', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:CreateDcdnWafGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'OpenDcdnService', + 'description' => '开通DCDN服务', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:OpenDcdnService', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainRegionData', + 'description' => '获取用户区域分布数据统计', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRegionData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeRoutineCanaryEnvs', + 'description' => '获取边缘函数ER支持的Canary环境列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeRoutineCanaryEnvs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnFullDomainsBlockIPConfig', + 'description' => '查询全量封禁配置', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnFullDomainsBlockIPConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeRoutineUserInfo', + 'description' => '获取阿里云账号绑定的相关信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeRoutineUserInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteDcdnSubTask', + 'description' => '删除已定制的运营报表', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnSubTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnAclFields', + 'description' => '配置精准访问控制', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnAclFields', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteDcdnWafPolicy', + 'description' => '删除防护策略', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnWafPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainRealTimeDetailData', + 'description' => '批量获取域名实时监控详细数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRealTimeDetailData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'ListDcdnRealTimeDeliveryProject', + 'description' => '查询用户开通的项目信息', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'dcdn:ListDcdnRealTimeDeliveryProject', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'RealTimeLogDelivery', 'arn' => 'acs:dcdn:*:{#accountId}:domain/*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnTopDomainsByFlow', + 'description' => '查询按流量排名的域名', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnTopDomainsByFlow', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetDcdnKvDetail', + 'description' => '查询键值对的值和TTL信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:GetDcdnKvDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnSLSRealTimeLogType', + 'description' => '查询实时日志支持的业务类型', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSLSRealTimeLogType', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'CreateDcdnCertificateSigningRequest', + 'description' => '创建证书签名请求文件', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:CreateDcdnCertificateSigningRequest', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainRealTimeByteHitRateData', + 'description' => '查询实时字节命中率数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRealTimeByteHitRateData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainLog', + 'description' => '查询离线访问日志下载地址', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainLog', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'RefreshDcdnObjectCacheByCacheTag', + 'description' => '根据缓存标签刷新缓存', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:RefreshDcdnObjectCacheByCacheTag', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafSpecInfo', + 'description' => '查询WAF版本信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafSpecInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnCertificateList', + 'description' => '查询证书列表-按域名', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnCertificateList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnUserDomains', + 'description' => '查询用户域名', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserDomains', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/*'], + ], + ], + ], + [ + 'apiName' => 'UpdateDcdnSubTask', + 'description' => '更新已定制的运营报表', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UpdateDcdnSubTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'SetRoutineSubdomain', + 'description' => '设置边缘函数ER子域', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:SetRoutineSubdomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafBotAppKey', + 'description' => '查询阿里云账号对应的SDK认证密钥', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafBotAppKey', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteRoutineCodeRevision', + 'description' => '删除边缘函数代码', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:DeleteRoutineCodeRevision', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'ModifyDcdnWafRule', + 'description' => '修改防护规则信息', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:ModifyDcdnWafRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainIpaConnData', + 'description' => '查询IPA用户连接数', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainIpaConnData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainBpsData', + 'description' => '获取网络带宽监控数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainBpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'ModifyDCdnDomainSchdmByProperty', + 'description' => '修改域名的加速区域', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:ModifyDCdnDomainSchdmByProperty', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'PublishRoutineCodeRevision', + 'description' => '发布指定版本的边缘函数ER代码到某个Env环境', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:PublishRoutineCodeRevision', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'EditRoutineConf', + 'description' => '修改边缘函数ER的配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:EditRoutineConf', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'CreateDcdnDeliverTask', + 'description' => '创建报表订阅任务', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:CreateDcdnDeliverTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'DeliverTask', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafPolicyDomains', + 'description' => '获取接入指定防护策略的加速域名', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafPolicyDomains', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnL2Vips', + 'description' => '查询域名的L2节点回源IP', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnL2Vips', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainRealTimeBpsData', + 'description' => '查询实时网络带宽数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRealTimeBpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafUsageData', + 'description' => '查询WAF用量数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafFilterInfo', + 'description' => '获取自定义防护规则的匹配条件信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafFilterInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'SetDcdnDomainSMCertificate', + 'description' => '设置国密证书', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:SetDcdnDomainSMCertificate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainTopReferVisit', + 'description' => '查询热门页面引用次数排名', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainTopReferVisit', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DeleteRoutine', + 'description' => '删除边缘函数的函数配置', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:DeleteRoutine', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteDcdnSpecificStagingConfig', + 'description' => '删除加速域名的配置(灰度)', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnSpecificStagingConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'BatchCreateDcdnWafRules', + 'description' => '配置防护规则', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:BatchCreateDcdnWafRules', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'CreateDcdnWafPolicy', + 'description' => '设置防护策略', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:CreateDcdnWafPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'ModifyDcdnWafGroup', + 'description' => '修改自定义WAF规则组', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:ModifyDcdnWafGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafGroups', + 'description' => '查询自定义WAF规则组列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafGroups', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteRoutineConfEnvs', + 'description' => '删除边缘函数代码的灰度环境', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:DeleteRoutineConfEnvs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainWebsocketBpsData', + 'description' => '查询WebSocket的带宽数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainWebsocketBpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnUserConfigs', + 'description' => '查询安全功能相关配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'UpdateDcdnSLSRealtimeLogDelivery', + 'description' => '更新实时日志项目', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UpdateDcdnSLSRealtimeLogDelivery', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainRealTimeTrafficData', + 'description' => '查询实时流量监控数据', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRealTimeTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnUserSecDropByMinute', + 'description' => '查询边缘应用层安全报文拦截总数', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserSecDropByMinute', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafDefaultRules', + 'description' => '查询WAF规则默认配置', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafDefaultRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnUserTags', + 'description' => '查询用户标签', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserTags', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainDetail', + 'description' => '查询域名详情', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + [ + 'apiName' => 'CommitStagingRoutineCode', + 'description' => '生成供线上Env环境使用的正式版本', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:CommitStagingRoutineCode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnFullDomainsBlockIPHistory', + 'description' => '查询封禁历史', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnFullDomainsBlockIPHistory', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainConfigs', + 'description' => '查询域名配置信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDdosSpecInfo', + 'description' => '查询DDoS用户版本规格', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDdosSpecInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'PutDcdnKvNamespace', + 'description' => '添加Namespace', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:PutDcdnKvNamespace', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnOriginSiteHealthStatus', + 'description' => '查询DCDN源站运行状态', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnOriginSiteHealthStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'UploadStagingRoutineCode', + 'description' => '上传边缘函数ER的测试代码', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UploadStagingRoutineCode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainRealTimeSrcBpsData', + 'description' => '查询实时回源带宽数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRealTimeSrcBpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'SetDcdnDomainSSLCertificate', + 'description' => '配置域名证书', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:SetDcdnDomainSSLCertificate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnRefreshTasks', + 'description' => '查询刷新预热任务', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnRefreshTasks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnSMCertificateList', + 'description' => '查询国密证书列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSMCertificateList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'UntagDcdnResources', + 'description' => '删除资源标签', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UntagDcdnResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DeleteDcdnKv', + 'description' => '删除Namespace的Key-Value对', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnKv', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainIpaBpsData', + 'description' => '获取四层加速的带宽数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainIpaBpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnUserCertificateExpireCount', + 'description' => '查询证书过期的域名数量', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserCertificateExpireCount', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnRefreshTaskById', + 'description' => '查询刷新或预热任务详情', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnRefreshTaskById', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'ListDcdnKv', + 'description' => '遍历Namespace的Key值', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:ListDcdnKv', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'TagDcdnResources', + 'description' => '添加资源标签', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:TagDcdnResources', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnReport', + 'description' => '查询已定制的报表数据', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnReport', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainQpsDataByLayer', + 'description' => '查询QPS-按协议', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainQpsDataByLayer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnKvAccount', + 'description' => '查询KV信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnKvAccount', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeUserErStatus', + 'description' => '查看边缘函数ER是否开通或者欠费', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeUserErStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafPolicies', + 'description' => '查询用户配置的防护策略', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafPolicies', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'BatchSetDcdnWafDomainConfigs', + 'description' => '批量设置域名防护状态', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:BatchSetDcdnWafDomainConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnIpaService', + 'description' => '获取DCDN的IPA服务状态', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnIpaService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'resourceTypes' => [ + ['validationType' => 'always', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ['validationType' => 'always', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ['validationType' => 'always', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ['validationType' => 'always', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/*'], + ['validationType' => 'always', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn::{#accountId}:domain/{#DomainName}'], + ['validationType' => 'always', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/*'], + ['validationType' => 'always', 'resourceType' => 'WafDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ['validationType' => 'always', 'resourceType' => 'RealTimeLogDelivery', 'arn' => 'acs:dcdn:*:{#accountId}:domain/*'], + ['validationType' => 'always', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/*'], + ['validationType' => 'always', 'resourceType' => 'DeliverTask', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], ], ], ]; |
