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/en_us/dcdn | |
| parent | 7347bac4ab7e136157fc94777e6cf87ef9e08599 (diff) | |
| download | afterglow-metadata-full-1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634.tar.gz afterglow-metadata-full-1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634.zip | |
update APIs 20260712
Diffstat (limited to 'data/en_us/dcdn')
| -rw-r--r-- | data/en_us/dcdn/2018-01-15/api-docs.php | 48640 |
1 files changed, 22983 insertions, 25657 deletions
diff --git a/data/en_us/dcdn/2018-01-15/api-docs.php b/data/en_us/dcdn/2018-01-15/api-docs.php index eb4cef4..5364e32 100644 --- a/data/en_us/dcdn/2018-01-15/api-docs.php +++ b/data/en_us/dcdn/2018-01-15/api-docs.php @@ -1,484 +1,197 @@ <?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' => null, + 'children' => ['OpenDcdnService', 'DescribeUserDcdnStatus', 'DescribeDcdnService'], 'type' => 'directory', - 'children' => [ - 'OpenDcdnService', - 'DescribeUserDcdnStatus', - 'DescribeDcdnService', - ], + 'title' => 'Service management', ], [ - 'id' => 392061, - 'title' => null, - 'type' => 'directory', 'children' => [ [ - 'id' => 392062, - 'title' => null, + 'children' => ['AddDcdnDomain', 'BatchAddDcdnDomain', 'DeleteDcdnDomain', 'DescribeDcdnDeletedDomains'], 'type' => 'directory', - 'children' => [ - 'AddDcdnDomain', - 'BatchAddDcdnDomain', - 'DeleteDcdnDomain', - 'DescribeDcdnDeletedDomains', - ], + 'title' => 'Add/delete domain names', ], [ - 'id' => 392067, - 'title' => null, + 'children' => ['VerifyDcdnDomainOwner', 'DescribeDcdnVerifyContent'], 'type' => 'directory', - 'children' => [ - 'VerifyDcdnDomainOwner', - 'DescribeDcdnVerifyContent', - ], + 'title' => 'Domain name ownership verification', ], [ - 'id' => 392070, - 'title' => null, + 'children' => ['StartDcdnDomain', 'BatchStartDcdnDomain', 'StopDcdnDomain', 'BatchStopDcdnDomain'], 'type' => 'directory', - 'children' => [ - 'StartDcdnDomain', - 'BatchStartDcdnDomain', - 'StopDcdnDomain', - 'BatchStopDcdnDomain', - ], + 'title' => 'Enable/disable domain names', ], [ - 'id' => 392075, - 'title' => null, + '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' => 'Basic domain name configuration', ], ], + 'type' => 'directory', + 'title' => 'Domain name management', ], [ - 'id' => 392089, - 'title' => null, + 'children' => ['RefreshDcdnObjectCaches', 'PreloadDcdnObjectCaches', 'DescribeDcdnRefreshQuota', 'DescribeDcdnRefreshTasks', 'DescribeDcdnUserQuota', 'DescribeDcdnRefreshTaskById', 'RefreshDcdnObjectCacheByCacheTag', 'RefreshErObjectCachesByCacheTag'], 'type' => 'directory', - 'children' => [ - 'RefreshDcdnObjectCaches', - 'PreloadDcdnObjectCaches', - 'DescribeDcdnRefreshQuota', - 'DescribeDcdnRefreshTasks', - 'DescribeDcdnUserQuota', - 'DescribeDcdnRefreshTaskById', - 'RefreshDcdnObjectCacheByCacheTag', - 'RefreshErObjectCachesByCacheTag', - ], + 'title' => 'Refresh and prefetch', ], [ - 'id' => 392098, - 'title' => null, - 'type' => 'directory', 'children' => [ [ - 'id' => 392099, - 'title' => null, - 'type' => 'directory', 'children' => [ [ - 'id' => 392100, - 'title' => null, + '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' => 'Access data', ], [ - 'id' => 392112, - 'title' => null, + 'children' => ['DescribeDcdnDomainOriginBpsData', 'DescribeDcdnDomainOriginTrafficData'], 'type' => 'directory', - 'children' => [ - 'DescribeDcdnDomainOriginBpsData', - 'DescribeDcdnDomainOriginTrafficData', - ], + 'title' => 'Back-to-origin data', ], [ - 'id' => 392115, - 'title' => null, + 'children' => ['DescribeDcdnDomainWebsocketHttpCodeData', 'DescribeDcdnDomainWebsocketBpsData', 'DescribeDcdnDomainWebsocketTrafficData'], 'type' => 'directory', - 'children' => [ - 'DescribeDcdnDomainWebsocketHttpCodeData', - 'DescribeDcdnDomainWebsocketBpsData', - 'DescribeDcdnDomainWebsocketTrafficData', - ], + 'title' => 'WebSocket data', ], ], + 'type' => 'directory', + 'title' => 'Resource monitoring', ], [ - 'id' => 392119, - 'title' => null, - 'type' => 'directory', 'children' => [ [ - 'id' => 392120, - 'title' => null, + 'children' => ['DescribeDcdnDomainRealTimeQpsData', 'DescribeDcdnDomainRealTimeTrafficData', 'DescribeDcdnDomainRealTimeBpsData', 'DescribeDcdnDomainRealTimeByteHitRateData', 'DescribeDcdnDomainRealTimeReqHitRateData', 'DescribeDcdnDomainRealTimeHttpCodeData', 'DescribeDcdnDomainRealTimeDetailData'], 'type' => 'directory', - 'children' => [ - 'DescribeDcdnDomainRealTimeQpsData', - 'DescribeDcdnDomainRealTimeTrafficData', - 'DescribeDcdnDomainRealTimeBpsData', - 'DescribeDcdnDomainRealTimeByteHitRateData', - 'DescribeDcdnDomainRealTimeReqHitRateData', - 'DescribeDcdnDomainRealTimeHttpCodeData', - 'DescribeDcdnDomainRealTimeDetailData', - ], + 'title' => 'Access data', ], [ - 'id' => 392128, - 'title' => null, + 'children' => ['DescribeDcdnDomainRealTimeSrcBpsData', 'DescribeDcdnDomainRealTimeSrcTrafficData', 'DescribeDcdnDomainRealTimeSrcHttpCodeData'], 'type' => 'directory', - 'children' => [ - 'DescribeDcdnDomainRealTimeSrcBpsData', - 'DescribeDcdnDomainRealTimeSrcTrafficData', - 'DescribeDcdnDomainRealTimeSrcHttpCodeData', - ], + 'title' => 'Back-to-origin data', ], ], + 'type' => 'directory', + 'title' => 'Real-time monitoring', ], ], + 'type' => 'directory', + 'title' => 'Business monitoring', ], [ - 'id' => 392132, - 'title' => null, - 'type' => 'directory', 'children' => [ [ - 'id' => 392133, - 'title' => null, + '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' => 'Operations reports', ], [ - 'id' => 392144, - 'title' => null, - 'type' => 'directory', 'children' => [ [ - 'id' => 392145, - 'title' => null, + 'children' => ['DescribeDcdnDomainLog', 'DescribeDcdnWafLogs'], 'type' => 'directory', - 'children' => [ - 'DescribeDcdnDomainLog', - 'DescribeDcdnWafLogs', - ], + 'title' => 'Standard logs', ], [ - 'id' => 392148, - 'title' => null, + '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' => 'Real-time logs', ], ], + 'type' => 'directory', + 'title' => 'Log management', ], [ - 'id' => 392161, - 'title' => null, + 'children' => ['DescribeDcdnUserBillHistory', 'DescribeDcdnUserBillType', 'DescribeDcdnUserResourcePackage', 'DescribeDcdnDomainUsageData', 'DescribeDcdnBgpBpsData', 'DescribeDcdnBgpTrafficData', 'DescribeDcdnDomainMultiUsageData', 'DescribeDcdnDomainPvData', 'DescribeDcdnDomainTopReferVisit', 'DescribeDcdnDomainTopUrlVisit', 'DescribeDcdnDomainUvData', 'DescribeDcdnTopDomainsByFlow'], 'type' => 'directory', - 'children' => [ - 'DescribeDcdnUserBillHistory', - 'DescribeDcdnUserBillType', - 'DescribeDcdnUserResourcePackage', - 'DescribeDcdnDomainUsageData', - 'DescribeDcdnBgpBpsData', - 'DescribeDcdnBgpTrafficData', - 'DescribeDcdnDomainMultiUsageData', - 'DescribeDcdnDomainPvData', - 'DescribeDcdnDomainTopReferVisit', - 'DescribeDcdnDomainTopUrlVisit', - 'DescribeDcdnDomainUvData', - 'DescribeDcdnTopDomainsByFlow', - 'DescribeKvUsageData', - ], + 'title' => 'Usage query', ], ], + 'type' => 'directory', + 'title' => 'Data center', ], [ - 'id' => 392175, - 'title' => null, + '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' => 'Certificate service', ], [ - 'id' => 392189, - 'title' => null, + 'children' => ['TagDcdnResources', 'DescribeDcdnTagResources', 'DescribeDcdnUserTags', 'UntagDcdnResources'], 'type' => 'directory', - 'children' => [ - 'TagDcdnResources', - 'DescribeDcdnTagResources', - 'DescribeDcdnUserTags', - 'UntagDcdnResources', - ], + 'title' => 'Tag management', ], [ - 'id' => 392194, - 'title' => null, + '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 application acceleration', ], [ - 'id' => 392212, - 'title' => null, - 'type' => 'directory', 'children' => [ [ - 'id' => 392213, - 'title' => null, + 'children' => ['DeleteRoutineCodeRevision', 'DeleteRoutineConfEnvs', 'DescribeRoutine', 'DescribeRoutineCanaryEnvs', 'DescribeRoutineCodeRevision', 'DescribeRoutineSpec', 'DescribeRoutineUserInfo', 'DescribeUserErStatus', 'EditRoutineConf', 'SetRoutineSubdomain', 'UploadRoutineCode', 'UploadStagingRoutineCode', 'PublishRoutineCodeRevision', 'CommitStagingRoutineCode', 'DescribeDcdnErUsageData', 'DescribeEncryptRoutineUid', 'DescribeRoutineRelatedDomains', 'RefreshErObjectCaches'], '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' => null, + 'title' => 'Edge functions', + ], + [ + 'children' => ['SetDcdnDomainStagingConfig', 'DescribeDcdnDomainStagingConfig', 'DeleteDcdnSpecificStagingConfig', 'PublishDcdnStagingConfigToProduction', 'RollbackDcdnStagingConfig', 'DescribeDcdnStagingIp'], 'type' => 'directory', - 'children' => [ - 'SetDcdnDomainStagingConfig', - 'DescribeDcdnDomainStagingConfig', - 'DeleteDcdnSpecificStagingConfig', - 'PublishDcdnStagingConfigToProduction', - 'RollbackDcdnStagingConfig', - 'DescribeDcdnStagingIp', - ], + 'title' => 'Edge scripts', ], [ - 'id' => 392241, - 'title' => null, + 'children' => ['BatchDeleteDcdnKvWithHighCapacity', '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' => 'Edge storage', ], ], + 'type' => 'directory', + 'title' => 'Edge computing service', ], [ - 'id' => 392259, - 'title' => null, - 'type' => 'directory', 'children' => [ [ - 'id' => 392260, - 'title' => null, + 'children' => ['DescribeDcdnUserSecDrop', 'DescribeDcdnSecFuncInfo', 'DescribeDcdnUserSecDropByMinute', 'DescribeDcdnBlockedRegions', 'DescribeDcdnsecService', 'DescribeDcdnUserConfigs', 'DescribeDcdnFullDomainsBlockIPConfig', 'DescribeDcdnFullDomainsBlockIPHistory', 'SetDcdnFullDomainsBlockIP', 'DescribeDcdnAclFields', 'DescribeDcdnDomainCcActivityLog', 'DescribeDcdnSecSpecInfo', 'DescribeDcdnWafBotAppKey'], 'type' => 'directory', - 'children' => [ - 'DescribeDcdnUserSecDrop', - 'DescribeDcdnSecFuncInfo', - 'DescribeDcdnUserSecDropByMinute', - 'DescribeDcdnBlockedRegions', - 'DescribeDcdnsecService', - 'DescribeDcdnUserConfigs', - 'DescribeDcdnFullDomainsBlockIPConfig', - 'DescribeDcdnFullDomainsBlockIPHistory', - 'SetDcdnFullDomainsBlockIP', - 'DescribeDcdnAclFields', - 'DescribeDcdnDomainCcActivityLog', - 'DescribeDcdnSecSpecInfo', - 'DescribeHighlightInfo', - 'DescribeDcdnWafBotAppKey', - 'DescribeDdosAllEventList', - ], - ], - [ - 'id' => 392276, - 'title' => null, - 'type' => 'directory', - 'children' => [ - 'DescribeDcdnDdosService', - 'DescribeDcdnDdosSpecInfo', - ], + 'title' => 'Security monitoring', ], [ - 'id' => 392279, - 'title' => null, + 'children' => ['DescribeDcdnDdosService', 'DescribeDcdnDdosSpecInfo'], 'type' => 'directory', + 'title' => 'DDoS protection', + ], + [ '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 protection', ], ], + 'type' => 'directory', + 'title' => 'Edge security protection', ], [ - 'id' => 392311, - 'title' => null, + 'children' => ['DescribeDcdnOriginSiteHealthStatus', 'DescribeDcdnUserVipsByDomain', 'DescribeDcdnIpInfo', 'DescribeDcdnL2Ips'], + 'type' => 'directory', + 'title' => 'Tool management', + ], + [ + 'children' => ['CreateRoutine', 'DeleteRoutine', 'DescribeDdosAllEventList', 'DescribeHighlightInfo', 'DescribeKvRealTimeQpsData', 'DescribeKvUsageData'], + 'title' => 'Others', 'type' => 'directory', - 'children' => [ - 'DescribeDcdnOriginSiteHealthStatus', - 'DescribeDcdnUserVipsByDomain', - 'DescribeDcdnIpInfo', - 'DescribeDcdnL2Vips', - 'DescribeDcdnL2Ips', - ], ], ], 'components' => [ 'schemas' => [], ], 'apis' => [ - 'OpenDcdnService' => [ - 'summary' => 'Activates Dynamic Route for CDN (DCDN).', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AddDcdnDomain' => [ + 'summary' => 'To add a domain name, call the AddDcdnDomain operation.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -486,293 +199,1833 @@ ], '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' => 'The metering method of DCDN. Valid values:'."\n" - ."\n" - .'* **PayByTraffic**: pay-by-traffic'."\n" - .'* **PayByBandwidth**: pay-by-bandwidth'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'PayByTraffic', - ], + 'schema' => ['description' => 'The domain name to be accelerated. You can add only one domain name per request.'."\n" + ."\n" + .'Wildcard domains are supported. A wildcard domain must start with a period (.), for example, `.example.com`.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], [ - 'name' => 'WebsocketBillType', + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group. If you omit this parameter, the system uses the ID of the default resource group.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmyuji4b6r4**', 'title' => ''], + ], + [ + 'name' => 'Sources', + 'in' => 'query', + 'schema' => ['description' => 'The list of sources.', 'type' => 'string', 'required' => false, 'example' => '[{"content":"10.10.10.10","type":"ipaddr","priority":"20","port":80}]', 'title' => ''], + ], + [ + 'name' => 'CheckUrl', + 'in' => 'query', + 'schema' => ['description' => 'The health check URL.', 'type' => 'string', 'required' => false, 'example' => 'www.example.com/test.html', 'title' => ''], + ], + [ + 'name' => 'Scope', + 'in' => 'query', + 'schema' => ['description' => 'The service scope. Valid values:'."\n" + ."\n" + .'- **domestic**: Chinese mainland.'."\n" + ."\n" + .'- **overseas**: Regions outside the Chinese mainland.'."\n" + ."\n" + .'- **global**: Global.'."\n" + ."\n" + .'Default value: **domestic**.', 'type' => 'string', 'required' => false, 'example' => 'domestic', 'title' => ''], + ], + [ + 'name' => 'TopLevelDomain', 'in' => 'query', + 'schema' => ['description' => 'The top-level domain.', 'type' => 'string', 'required' => false, 'example' => 'yourTopLevelDomain', 'title' => ''], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The metering method of WebSocket. Valid values:'."\n" - ."\n" - .'* **websockettraffic**: pay-by-data-transfer'."\n" - .'* **websocketbps**: pay-by-bandwidth'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'websockettraffic', - 'enum' => [ - 'websockettraffic', - 'websocketbps', + 'description' => 'The tags to add to the domain. You can add up to 20 tags.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'required' => false, 'example' => 'env', 'title' => ''], + 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'required' => false, 'example' => 'value', 'title' => ''], + ], + 'required' => false, + 'description' => '', + 'title' => '', + 'example' => '', ], + 'required' => false, + 'maxItems' => 21, + 'title' => '', + 'example' => '', ], ], + [ + 'name' => 'FunctionType', + 'in' => 'query', + 'schema' => ['description' => 'The computing service type. Valid values:'."\n" + ."\n" + .'- **routine**: Routine.'."\n" + ."\n" + .'- **image**: Image.'."\n" + ."\n" + .'- **cloudFunction**: Cloud function.', 'type' => 'string', 'required' => false, 'example' => 'routine', 'title' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '97C68796-EB7F-4D41-9D5B-12B909D76503', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '15C66C7B-671A-4297-9187-2C4477247A74', 'title' => ''], ], + 'description' => 'The data returned.', + 'title' => '', + 'example' => '', ], ], ], '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' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => 'The specified domain name is invalid.'], + ['errorCode' => 'InvalidSource.Content.Malformed', 'errorMessage' => 'The specified Source Content is invalid.', 'description' => 'The information about the origin server is invalid.'], + ['errorCode' => 'MissingSource.Content', 'errorMessage' => 'The Source Content must be specified.', 'description' => 'No value is specified for the content field in the Sources parameter.'], + ['errorCode' => 'MissingSource.Type', 'errorMessage' => 'The Source Type must be specified.', 'description' => 'No value is specified for the type field in the Sources parameter.'], + ['errorCode' => 'InvalidSource.Type.Malformed', 'errorMessage' => 'The specified Source Type is invalid.', 'description' => 'The value specified for the type field in the Sources parameter is invalid.'], + ['errorCode' => 'InvalidSource.Priority.Malformed', 'errorMessage' => 'The specified Source Priority is invalid.', 'description' => 'The value specified for the priority field in the Sources parameter is invalid.'], + ['errorCode' => 'InvalidScope.Malformed', 'errorMessage' => 'The specified Scope is invalid.', 'description' => 'The value specified for the Scope parameter is invalid.'], + ['errorCode' => 'SourceIp.Exceed', 'errorMessage' => 'The maximum number of back-to-origin IP addresses is exceeded.', 'description' => 'The number of origin IP addresses exceeds the upper limit.'], + ['errorCode' => 'InvalidCertificate', 'errorMessage' => 'The specified certificate format is invalid.', 'description' => 'The format of the specified certificate is invalid.'], + ['errorCode' => 'InvalidCertificate.TooLong', 'errorMessage' => 'The maximum length of the certificate is exceeded.', 'description' => 'The maximum length of the specified certificate content has been reached.'], + ['errorCode' => 'CheckSourceHealthFailed', 'errorMessage' => 'Error checking the security. Provide the valid origin site information.', 'description' => 'The origin check failed. Please provide the correct origin information.'], + ['errorCode' => 'ExtensiveAndAllBothExist', 'errorMessage' => 'A wildcard domain name and a domain name with an all. prefix cannot be both specified.', 'description' => 'Wildcard domain names and domain names that start with "all." cannot both exist.'], + ['errorCode' => 'CdnTypeNotSupportExtensiveDomain', 'errorMessage' => 'Wildcard domain names are not supported.', 'description' => 'Wildcard domain names are not supported.'], + ['errorCode' => 'ExtensiveAndSpecificDomainConflict', 'errorMessage' => 'The wildcard domain name overlaps a domain name at the same level.', 'description' => 'Wildcard domain names and specific domain names of the same level as the wildcard domain names are mutually exclusive. Enter another domain name.'], + ['errorCode' => 'InvalidResourceGroupId.Malformed', 'errorMessage' => 'The specified ResourceGroupId is invalid.', 'description' => 'The value specified for the ResourceGroupId parameter is invalid. Specify a valid value and try again.'], + ['errorCode' => 'DomainReserved', 'errorMessage' => 'The root domain of your domain is reserved by another account. Submit a ticket to contact customer support.', 'description' => 'The root domain name of this domain name is used by another account. Submit a ticket to apply for new domain names.'], + ['errorCode' => 'InvalidDomainNameLevel', 'errorMessage' => 'The alicdn.com domain supports a maximum of three levels of domain.', 'description' => 'alicdn.com supports up to three domain levels for wildcard domain names.'], + ['errorCode' => 'EntityNotExists.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => 'The specified resource group does not exist.'], + ['errorCode' => 'InvalidStatus.ResourceGroup', 'errorMessage' => 'The current status of the resource group does not support this operation.', 'description' => 'This operation is not supported while the resource group is in the current state.'], + ['errorCode' => 'NotInternationRealIdentity', 'errorMessage' => 'Real-name registration is required for services offered in Mainland China.', 'description' => 'You have not passed real-name verification. According to the regulations issued by MIIT, you must pass real-name verification if you want to purchase information services in the Chinese mainland.'], + ['errorCode' => 'TopLevelDomain.NotFound', 'errorMessage' => 'The specified TopLevelDomain does not exist.', 'description' => 'The specified top-level domain name does not exist.'], + ['errorCode' => 'RecordCheckNotAvailable', 'errorMessage' => 'The ICP filing interface is unavailable. Please try again later.', 'description' => 'The operation for ICP filing is unavailable. Try again later.'], + ['errorCode' => 'IcpBlack', 'errorMessage' => 'The domain is on the ICP blacklist.', 'description' => 'The domain name is on the blacklist of the MIIT.'], + ['errorCode' => 'IspBlack', 'errorMessage' => 'The domain is on the ISP blacklist.', 'description' => 'The domain name is on the blacklist of Alibaba Cloud.'], + ['errorCode' => 'InvalidCheckUrl.Malformed', 'errorMessage' => 'The specified CheckUrl is invalid.', 'description' => 'The CheckUrl parameter is set to an invalid value.'], + ['errorCode' => 'DomainOwnerVerifyFail', 'errorMessage' => 'Owner verification of the root domain failed.', 'description' => 'The first time a domain name is added to DCDN, you must prove the ownership of the domain name. You must add a DNS record or upload a verification file for the domain name before it can be added to DCDN.'], + ['errorCode' => 'TopLevelDomain.Mismatch', 'errorMessage' => 'The specified TopLevelDomain does not match webSiteType.', 'description' => 'The top-level domain name does not match the domain name type.'], + ['errorCode' => 'DomainInBlacklist', 'errorMessage' => 'The domain is in the blacklist.', 'description' => 'The domain name is in the blacklist.'], + ['errorCode' => 'DomainOverLimit', 'errorMessage' => 'The maximum number of domains is exceeded.', 'description' => 'The maximum number of domain names has been reached.'], + ['errorCode' => 'SourceInBlacklist', 'errorMessage' => 'Source is in the blacklist.', 'description' => 'The origin server 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:.!@#$%?/^&*)(+={}[]",\'<>~·`?;.', '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' => 'The domain name you added may be at risk. If you have any questions, please submit a work order.'], + ['errorCode' => 'RegionNoResource', 'errorMessage' => 'Resource allocation failed. Please submit a work order to contact customer service.', 'description' => 'Resource allocation failed. Please submit a work order to contact customer service.'], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A74\\"\\n}","type":"json"}]', + 'title' => 'AddDcdnDomain', + 'description' => '- You must activate the DCDN service before you add a domain name. For more information, see [OpenDcdnService](~~OpenDcdnService~~).'."\n" + ."\n" + .'- If the acceleration region is set to Chinese mainland only or Global, the accelerated domain must have an ICP filing.'."\n" + ."\n" + .'- The first time you add a domain name to Alibaba Cloud DCDN, you must complete domain ownership verification. For more information, see [VerifyDcdnDomainOwner](~~VerifyDcdnDomainOwner~~).'."\n" + ."\n" + .'- You can add only one accelerated domain at a time. By default, each user can add up to 50 domain names. To add more, request a quota increase in Quota Center.'."\n" + ."\n" + .'- This operation is limited to 100 calls per user per hour.', + 'requestParamsDescription' => 'The following table describes the fields in `Sources`.'."\n" + ."\n" + .'| Parameter | Type | Required | Description |'."\n" + .'| --------- | ------- | -------- | ------------------------------------------------------------------------------------------------------ |'."\n" + .'| type | String | Yes | The origin type. Valid values: `ipaddr` (IP origin), `domain` (domain origin), and `oss` (OSS Bucket). |'."\n" + .'| content | String | Yes | The origin address. This can be an IP address or a domain name. |'."\n" + .'| port | Integer | No | The origin fetch port. Can be 80 (default), 443 (for HTTPS), or a custom port. |'."\n" + .'| priority | String | No | The priority of the origin. Set to `20` for a primary origin (default) or `30` for a backup origin. |'."\n" + .'| weight | String | No | The origin weight. A value from 1 to 100. The default is `10`. |', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-11-26T03:12:49.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-09-03T06:20:47.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-13T05:58:54.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-12T02:21:54.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-08-29T08:40:33.000Z', 'description' => 'Error codes changed, Request parameters changed'], + ['createdAt' => '2023-01-04T01:50:23.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-11-24T06:47:17.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-10-27T06:04:10.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddDcdnDomain'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:AddDcdnDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#DomainName}'], + ], ], - [ - 'errorCode' => 'IncompleteInformation', - 'errorMessage' => 'Your information is incomplete. Complete your information before the operation.', + ], + ], + ], + 'AddDcdnIpaDomain' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '111433', + 'abilityTreeNodes' => ['FEATUREdcdn2E10XY'], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => 'The domain name that you want to add to DCDN for IPA.'."\n" + ."\n" + .'Wildcard domain names are supported. A wildcard domain name must start with a period (.), such as .example.com.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group. If you do not specify this parameter, the system automatically uses the ID of the default resource group.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'rg'], + ], + [ + 'name' => 'Sources', + 'in' => 'query', + 'schema' => ['description' => 'The list of origin addresses.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '[{"content":"10.10.10.10","type":"ipaddr","priority":"20","port":80,"weight":"15"}]'], + ], + [ + 'name' => 'CheckUrl', + 'in' => 'query', + 'schema' => ['description' => 'The health check URL.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'example.com/image_01.png'], + ], + [ + 'name' => 'Scope', + 'in' => 'query', + 'schema' => ['description' => 'The acceleration region. Valid values:'."\n" + ."\n" + .'- **domestic**: the Chinese mainland only.'."\n" + .'- **overseas**: global (excluding the Chinese mainland).'."\n" + .'- **global**: global.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'domestic'], + ], + [ + 'name' => 'TopLevelDomain', + 'in' => 'query', + 'schema' => ['description' => 'The top-level domain.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '*.com'], + ], + [ + 'name' => 'Protocol', + 'in' => 'query', + 'schema' => ['description' => 'The name of the protocol. Valid values:'."\n" + ."\n" + .'- **udp**: UDP.'."\n" + .'- **tcp**: TCP.'."\n" + ."\n" + .'> Example: `{"protocol":"udp"}`.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '{"protocol":"udp"}'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], + ], + 'description' => '', + 'title' => '', ], ], ], - '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' => 'OpenDcdnService', - 'description' => '> '."\n" - ."\n" - .'* DCDN can be activated only once per Alibaba Cloud account. The Alibaba Cloud account must pass real-name verification.'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => 'The specified domain name is invalid.'], + ['errorCode' => 'InvalidSource.Content.Malformed', 'errorMessage' => 'The specified Source Content is invalid.', 'description' => 'The information about the origin server is invalid.'], + ['errorCode' => 'MissingSource.Content', 'errorMessage' => 'The Source Content must be specified.', 'description' => 'No value is specified for the content field in the Sources parameter.'], + ['errorCode' => 'MissingSource.Type', 'errorMessage' => 'The Source Type must be specified.', 'description' => 'No value is specified for the type field in the Sources parameter.'], + ['errorCode' => 'InvalidSource.Type.Malformed', 'errorMessage' => 'The specified Source Type is invalid.', 'description' => 'The value specified for the type field in the Sources parameter is invalid.'], + ['errorCode' => 'InvalidSource.Priority.Malformed', 'errorMessage' => 'The specified Source Priority is invalid.', 'description' => 'The value specified for the priority field in the Sources parameter is invalid.'], + ['errorCode' => 'InvalidScope.Malformed', 'errorMessage' => 'The specified Scope is invalid.', 'description' => 'The value specified for the Scope parameter is invalid.'], + ['errorCode' => 'SourceIp.Exceed', 'errorMessage' => 'The maximum number of back-to-origin IP addresses is exceeded.', 'description' => 'The number of origin IP addresses exceeds the upper limit.'], + ['errorCode' => 'InvalidCertificate', 'errorMessage' => 'The specified certificate format is invalid.', 'description' => 'The format of the specified certificate is invalid.'], + ['errorCode' => 'InvalidCertificate.TooLong', 'errorMessage' => 'The maximum length of the certificate is exceeded.', 'description' => 'The maximum length of the specified certificate content has been reached.'], + ['errorCode' => 'CheckSourceHealthFailed', 'errorMessage' => 'Error checking the security. Provide the valid origin site information.', 'description' => 'The origin check failed. Please provide the correct origin information.'], + ['errorCode' => 'ExtensiveAndAllBothExist', 'errorMessage' => 'A wildcard domain name and a domain name with an all. prefix cannot be both specified.', 'description' => 'Wildcard domain names and domain names that start with "all." cannot both exist.'], + ['errorCode' => 'CdnTypeNotSupportExtensiveDomain', 'errorMessage' => 'Wildcard domain names are not supported.', 'description' => 'Wildcard domain names are not supported.'], + ['errorCode' => 'ExtensiveAndSpecificDomainConflict', 'errorMessage' => 'The wildcard domain name overlaps a domain name at the same level.', 'description' => 'Wildcard domain names and specific domain names of the same level as the wildcard domain names are mutually exclusive. Enter another domain name.'], + ['errorCode' => 'InvalidResourceGroupId.Malformed', 'errorMessage' => 'The specified ResourceGroupId is invalid.', 'description' => 'The value specified for the ResourceGroupId parameter is invalid. Specify a valid value and try again.'], + ['errorCode' => 'DomainReserved', 'errorMessage' => 'The root domain of your domain is reserved by another account. Submit a ticket to contact customer support.', 'description' => 'The root domain name of this domain name is used by another account. Submit a ticket to apply for new domain names.'], + ['errorCode' => 'InvalidDomainNameLevel', 'errorMessage' => 'The alicdn.com domain supports a maximum of three levels of domain.', 'description' => 'alicdn.com supports up to three domain levels for wildcard domain names.'], + ['errorCode' => 'TopLevelDomain.NotFound', 'errorMessage' => 'The specified TopLevelDomain does not exist.', 'description' => 'The specified top-level domain name does not exist.'], + ['errorCode' => 'EntityNotExists.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => 'The specified resource group does not exist.'], + ['errorCode' => 'EntityNotExist.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => 'The specified resource group does not exist.'], + ['errorCode' => 'InvalidStatus.ResourceGroup', 'errorMessage' => 'The current status of the resource group does not support this operation.', 'description' => 'This operation is not supported while the resource group is in the current state.'], + ['errorCode' => 'NotInternationRealIdentity', 'errorMessage' => 'Real-name registration is required for services offered in Mainland China.', 'description' => 'You have not passed real-name verification. According to the regulations issued by MIIT, you must pass real-name verification if you want to purchase information services in the Chinese mainland.'], + ['errorCode' => 'InvalidSource.Port.Malformed', 'errorMessage' => 'The source port is empty, or it is outside the range 0-65535.', 'description' => 'No port is specified or the specified port number is invalid. Valid values: 0 to 65535.'], + ['errorCode' => 'RecordCheckNotAvailable', 'errorMessage' => 'The ICP filing interface is unavailable. Please try again later.', 'description' => 'The operation for ICP filing is unavailable. Try again later.'], + ['errorCode' => 'IcpBlack', 'errorMessage' => 'The domain is on the ICP blacklist.', 'description' => 'The domain name is on the blacklist of the MIIT.'], + ['errorCode' => 'IspBlack', 'errorMessage' => 'The domain is on the ISP blacklist.', 'description' => 'The domain name is on the blacklist of Alibaba Cloud.'], + ['errorCode' => 'TopLevelDomain.Mismatch', 'errorMessage' => 'The specified TopLevelDomain does not match webSiteType.', 'description' => 'The top-level domain name does not match the domain name type.'], + ['errorCode' => 'DomainOverLimit', 'errorMessage' => 'The maximum number of domains is exceeded.', 'description' => 'The maximum number of domain names has been reached.'], + ['errorCode' => 'DomainInRiskList', 'errorMessage' => 'The domain you added may be at risk. If you have any questions, please submit a ticket.', 'description' => 'The domain name you added may be at risk. If you have any questions, please submit a work order.'], + ], + 403 => [ + ['errorCode' => 'DcdnIpaServiceNotFound', 'errorMessage' => 'The DCDN IPA service has not been activated.', 'description' => 'IPA is not activated for DCDN.'], + ], + [ + ['errorCode' => 'NoResource', 'errorMessage' => 'The required port has no resources, please submit a ticket.', 'description' => 'The required port has no resources, please submit a ticket.'], + ], + ], + 'title' => 'AddDcdnIpaDomain', + 'summary' => 'Call the AddDcdnIpaDomain operation to add a domain name for IP Application Accelerator (IPA). You can add only one accelerated domain name at a time.', + 'description' => '> - Before you add an accelerated domain name, you must activate the IPA service for DCDN.'."\n" + .'> - The accelerated domain name must have a valid ICP filing.'."\n" + .'> - If the content of the origin server is not stored on Alibaba Cloud, the content is subject to review. The review is completed within one business day.'."\n" + .'> - The call frequency for a single user is limited to 10 calls per second.', + 'requestParamsDescription' => 'Fields in Sources'."\n" ."\n" - .'* You can call this operation up to five times per second per user.'."\n", - 'requestParamsDescription' => ' ', + .'| Parameter | Type | Required | Description |'."\n" + .'| --------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| type | String | Yes | The type of the origin server. \\`ipaddr\\`: IP address. \\`domain\\`: domain name. The \\`oss\\` type is not supported. |'."\n" + .'| content | String | Yes | The origin URL, which can be an IP address or a domain name. |'."\n" + .'| port | Integer | Yes | A custom port. Valid values: 0 to 65535. |'."\n" + .'| priority | String | No | The priority of the origin server. Valid values: 20 and 30. Default value: 20. A value of 20 specifies a primary origin server. A value of 30 specifies a secondary origin server. |'."\n" + .'| weight | String | No | The weight of the origin server for origin fetch. The value must be an integer less than 100. Default value: 10. |', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeUserDcdnStatus' => [ - 'summary' => 'Queries whether DCDN is activated and whether your account has overdue payments.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2024-09-03T06:20:47.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-04-09T01:37:08.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-10-26T21:53:07.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddDcdnIpaDomain'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:AddDcdnIpaDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","type":"json"}]', + ], + 'BatchAddDcdnDomain' => [ + 'summary' => 'Call `BatchAddDcdnDomain` to add multiple domain names.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111578', - 'abilityTreeNodes' => [ - 'FEATUREdcdnTP4C37', - ], + 'abilityTreeCode' => '111435', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [], + 'parameters' => [ + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => 'The domain names to accelerate with DCDN. You can specify up to 20 domain names, separated by commas.', 'type' => 'string', 'required' => true, 'example' => 'example.com,example.org', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group. If you omit this parameter, the system uses the default resource group.', 'type' => 'string', 'required' => false, 'example' => 'testID', 'title' => ''], + ], + [ + 'name' => 'Sources', + 'in' => 'query', + 'schema' => ['description' => 'A JSON string specifying the origin servers.', 'type' => 'string', 'required' => true, 'example' => '[{"content":"10.10.10.10","type":"ipaddr","priority":"20","port":80,"weight":"15"}]', 'title' => ''], + ], + [ + 'name' => 'CheckUrl', + 'in' => 'query', + 'schema' => ['description' => 'The health check URL.', 'type' => 'string', 'required' => false, 'example' => 'www.example.com/test.html', 'title' => ''], + ], + [ + 'name' => 'Scope', + 'in' => 'query', + 'schema' => ['description' => 'The acceleration region. Valid values:'."\n" + ."\n" + .'- `domestic` (Default): Chinese mainland only.'."\n" + ."\n" + .'- `overseas`: Global (excluding the Chinese mainland).'."\n" + ."\n" + .'- `global`: Global.', 'type' => 'string', 'required' => false, 'example' => 'domestic', 'title' => ''], + ], + [ + 'name' => 'TopLevelDomain', + 'in' => 'query', + 'schema' => ['description' => 'The primary domain.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], + ], + ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'InDebt' => [ - 'description' => 'Indicates whether your account has overdue payments.'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'OnService' => [ - 'description' => 'Indicates whether the service is available.'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '4F51E9C3-728F-4E35-952D-0ED87A06A8A1', - ], - 'InDebtOverdue' => [ - 'description' => 'Indicates whether the grace period for your overdue payments expired.'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'Enabled' => [ - 'description' => 'Indicates whether the DCDN service is activated.'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '15C66C7B-671A-4297-9187-2C4477247A74', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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' => 'DescribeUserDcdnStatus', - 'description' => '> You can call this operation up to 30 times per second per account.'."\n", + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => 'The specified domain name is invalid.'], + ['errorCode' => 'InvalidSources.Malformed', 'errorMessage' => 'The specified Sources is invalid.', 'description' => 'The specified Sources parameter is invalid. It can be IP address or domain name. Up to 20 IP addresses are supported and they must be separated by commas (,). Only a single domain name is supported.'], + ['errorCode' => 'InvalidScope.Malformed', 'errorMessage' => 'The specified Scope is invalid.', 'description' => 'The value specified for the Scope parameter is invalid.'], + ['errorCode' => 'InvalidSource.Priority.Malformed', 'errorMessage' => 'The specified Source Priority is invalid.', 'description' => 'The value specified for the priority field in the Sources parameter is invalid.'], + ['errorCode' => 'SourceIp.Exceed', 'errorMessage' => 'The maximum number of back-to-origin IP addresses is exceeded.', 'description' => 'The number of origin IP addresses exceeds the upper limit.'], + ['errorCode' => 'InvalidCertificate', 'errorMessage' => 'The specified certificate format is invalid.', 'description' => 'The format of the specified certificate is invalid.'], + ['errorCode' => 'InvalidCertificate.TooLong', 'errorMessage' => 'The maximum length of the certificate is exceeded.', 'description' => 'The maximum length of the specified certificate content has been reached.'], + ['errorCode' => 'CheckSourceHealthFailed', 'errorMessage' => 'Error checking the security. Provide the valid origin site information.', 'description' => 'The origin check failed. Please provide the correct origin information.'], + ['errorCode' => 'ExtensiveAndAllBothExist', 'errorMessage' => 'A wildcard domain name and a domain name with an all. prefix cannot be both specified.', 'description' => 'Wildcard domain names and domain names that start with "all." cannot both exist.'], + ['errorCode' => 'CdnTypeNotSupportExtensiveDomain', 'errorMessage' => 'Wildcard domain names are not supported.', 'description' => 'Wildcard domain names are not supported.'], + ['errorCode' => 'ExtensiveAndSpecificDomainConflict', 'errorMessage' => 'The wildcard domain name overlaps a domain name at the same level.', 'description' => 'Wildcard domain names and specific domain names of the same level as the wildcard domain names are mutually exclusive. Enter another domain name.'], + ['errorCode' => 'InvalidResourceGroupId.Malformed', 'errorMessage' => 'The specified ResourceGroupId is invalid.', 'description' => 'The value specified for the ResourceGroupId parameter is invalid. Specify a valid value and try again.'], + ['errorCode' => 'DomainReserved', 'errorMessage' => 'The root domain of your domain is reserved by another account. Submit a ticket to contact customer support.', 'description' => 'The root domain name of this domain name is used by another account. Submit a ticket to apply for new domain names.'], + ['errorCode' => 'InvalidDomainNameLevel', 'errorMessage' => 'The alicdn.com domain supports a maximum of three levels of domain.', 'description' => 'alicdn.com supports up to three domain levels for wildcard domain names.'], + ['errorCode' => 'TopLevelDomain.NotFound', 'errorMessage' => 'The specified TopLevelDomain does not exist.', 'description' => 'The specified top-level domain name does not exist.'], + ['errorCode' => 'EntityNotExists.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => 'The specified resource group does not exist.'], + ['errorCode' => 'EntityNotExist.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => 'The specified resource group does not exist.'], + ['errorCode' => 'InvalidStatus.ResourceGroup', 'errorMessage' => 'The current status of the resource group does not support this operation.', 'description' => 'This operation is not supported while the resource group is in the current state.'], + ['errorCode' => 'NotInternationRealIdentity', 'errorMessage' => 'Real-name registration is required for services offered in Mainland China.', 'description' => 'You have not passed real-name verification. According to the regulations issued by MIIT, you must pass real-name verification if you want to purchase information services in the Chinese mainland.'], + ['errorCode' => 'RecordCheckNotAvailable', 'errorMessage' => 'The ICP filing interface is unavailable. Please try again later.', 'description' => 'The operation for ICP filing is unavailable. Try again later.'], + ['errorCode' => 'IcpBlack', 'errorMessage' => 'The domain is on the ICP blacklist.', 'description' => 'The domain name is on the blacklist of the MIIT.'], + ['errorCode' => 'IspBlack', 'errorMessage' => 'The domain is on the ISP blacklist.', 'description' => 'The domain name is on the blacklist of Alibaba Cloud.'], + ['errorCode' => 'DomainOwnerVerifyFail', 'errorMessage' => 'Owner verification of the root domain failed.', 'description' => 'The first time a domain name is added to DCDN, you must prove the ownership of the domain name. You must add a DNS record or upload a verification file for the domain name before it can be added to DCDN.'], + ['errorCode' => 'TopLevelDomain.Mismatch', 'errorMessage' => 'The specified TopLevelDomain does not match webSiteType.', 'description' => 'The top-level domain name does not match the domain name type.'], + ['errorCode' => 'DomainOverLimit', 'errorMessage' => 'The maximum number of domains is exceeded.', 'description' => 'The maximum number of domain names has been reached.'], + ['errorCode' => 'DomainInRiskList', 'errorMessage' => 'The domain you added may be at risk. If you have any questions, please submit a ticket.', 'description' => 'The domain name you added may be at risk. If you have any questions, please submit a work order.'], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A74\\"\\n}","type":"json"}]', + 'title' => 'BatchAddDcdnDomain', + 'description' => '**Prerequisites**:'."\n" + ."\n" + .'- You must [activate DCDN](~~64926~~) before you add an accelerated domain name.'."\n" + ."\n" + .'- If you select **Chinese mainland only** or **Global** as the acceleration region, the accelerated domain name must have a valid ICP filing.'."\n" + ."\n" + .'- You must complete domain ownership verification when you add a domain name to Alibaba Cloud DCDN for the first time. For more information, see [VerifyDcdnDomainOwner](~~VerifyDcdnDomainOwner~~).'."\n" + ."\n" + .'- You can add only one accelerated domain name per call. Each user has a default quota of 50 domain names. To add more, submit a request in Quota Center.'."\n" + ."\n" + .'- Each user can call this operation up to 100 times per hour.', + 'requestParamsDescription' => 'The following table describes the fields of the `Sources` parameter.'."\n" + ."\n" + .'| Parameter | Type | Required | Description |'."\n" + .'| --------- | ------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| type | String | Yes | The type of the origin. Valid values:<br>**ipaddr**: An IP origin.<br>**domain**: A domain origin.<br>**oss**: An OSS bucket.<br>**fc_domain**: A Function Compute origin. |'."\n" + .'| content | String | Yes | The IP address or domain name of the origin. |'."\n" + .'| port | Integer | No | The origin port. Valid values:<br>**80**: The default port.<br>**443**: For HTTPS connections.<br>A custom port number. |'."\n" + .'| priority | String | No | The priority of the origin. Valid values:<br>**20**: Primary origin (default).<br>**30**: Backup origin. |'."\n" + .'| weight | String | No | The origin weight, an integer from 1 to 100 (default: 10). |', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnService' => [ - 'summary' => 'Queries information about the Dynamic Content Delivery Network (DCDN) service. The information includes the time when the service was activated, the current service status, the current billing method, and the billing method of the next cycle.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2024-09-03T06:20:47.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-10-27T07:31:22.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchAddDcdnDomain'], + ], ], + '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' => 'Call the BatchCreateDcdnWafRules operation to set WAF mitigation rules.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111546', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZA9EPX', + 'abilityTreeNodes' => ['FEATUREdcdnV3YEJ8'], + ], + 'parameters' => [ + [ + 'name' => 'PolicyId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the mitigation policy.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'title' => '', 'example' => '1000001'], + ], + [ + 'name' => 'RuleConfigs', + 'in' => 'formData', + 'schema' => ['description' => 'The configurations of the mitigation rules.', 'type' => 'string', 'required' => true, 'title' => '', '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"}]'], ], - 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'WebsocketChangingTime' => [ - 'description' => 'The time when the changes of the WebSocket configuration take effect. The value is the same as that of the ChangingAffectTime parameter. This parameter can be displayed in the console only if the specified time is later than the current time.'."\n", - 'type' => 'string', - 'example' => '2018-03-19T11:16:11Z', - ], - 'WebsocketChangingType' => [ - 'description' => 'The next effective billing method of WebSocket. Valid values: **websockettraffic** and **websocketbps**. A value of websockettraffic indicates that you are billed based on the traffic volume. A value of websocketbps indicates that you are billed based on the bandwidth.'."\n", - 'type' => 'string', - 'example' => 'websocketbps', - ], - 'ChangingAffectTime' => [ - 'description' => 'The time when the renewed secure DCDN takes effect. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2018-03-31T16:00:00Z', - ], - 'ChangingChargeType' => [ - 'description' => 'The new metering method for the renewed secure DCDN. Valid values:'."\n" - ."\n" - .'* **PayByTraffic**: pay by data transfer'."\n" - .'* **PayByBandwidth**: pay by bandwidth'."\n" - .'* **PayByBandwidth95**: pay by 95th percentile bandwidth'."\n" - .'* **PayByBandwidth_monthavg**: pay by monthly average bandwidth'."\n" - .'* **PayByBandwidth_month4th**: pay by fourth peak bandwidth per month'."\n" - .'* **PayByBandwidth_monthday95avg**: pay by monthly average 95th percentile bandwidth'."\n" - .'* **PayByBandwidth_nighthalf95**: pay by 95th percentile bandwidth (50% off during nighttime)'."\n", - 'type' => 'string', - 'example' => 'PayByBandwidth', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'EF2AEBC2-EDBD-41CF-BF64-7E095D42D6EF', - ], - 'OpeningTime' => [ - 'description' => 'The time when the DCDN service was activated. The time follows the ISO 8601 standard.'."\n", - 'type' => 'string', - 'example' => '2018-03-19T11:16:11Z', - ], - 'InternetChargeType' => [ - 'description' => 'The current metering method. Valid values:'."\n" - ."\n" - .'* **PayByTraffic**: pay by data transfer'."\n" - .'* **PayByBandwidth**: pay by bandwidth'."\n" - .'* **PayByBandwidth95**: pay by 95th percentile bandwidth'."\n" - .'* **PayByBandwidth_monthavg**: pay by monthly average bandwidth'."\n" - .'* **PayByBandwidth_month4th**: pay by fourth peak bandwidth per month'."\n" - .'* **PayByBandwidth_monthday95avg**: pay by monthly average 95th percentile bandwidth'."\n" - .'* **PayByBandwidth_nighthalf95**: pay by 95th percentile bandwidth (50% off during nighttime)'."\n", - 'type' => 'string', - 'example' => 'PayByTraffic', - ], - 'WebsocketType' => [ - 'description' => 'The current billing method of WebSocket. Valid values: **websockettraffic** and **websocketbps**. A value of websockettraffic indicates that you are billed based on the traffic volume. A value of websocketbps indicates that you are billed based on the bandwidth.'."\n", - 'type' => 'string', - 'example' => 'websocketbps', - ], - 'InstanceId' => [ - 'description' => 'The ID of the instance.'."\n", - 'type' => 'string', - 'example' => 'FP-mkqgwxxxx', - ], - 'OperationLocks' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'CB1A380B-09F0-41BB-280B-72F8FD6DA2FE'], + 'RuleIds' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'LockReason' => [ - 'description' => 'The lock status of DCDN.'."\n", + 'RuleId' => [ + 'description' => 'The IDs of created rules.'."\n", 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'LockReason' => [ - 'description' => 'The reason why secure DCDN was locked. For example, a value of financial indicates that an overdue payment exists.'."\n", - 'type' => 'string', - 'example' => 'financial', - ], - ], - ], + 'items' => ['description' => 'The IDs of the created rules.', 'type' => 'string', 'title' => '', 'example' => '100001,200002'], + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], ], 'description' => '', + 'title' => '', ], ], ], - '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' => 'DescribeDcdnService', - 'description' => '> You can call this operation up to 30 times per second per account.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'AddDcdnDomain' => [ - 'summary' => 'Adds a domain name to accelerate. You can specify only one domain name in each request.', - 'methods' => [ - 'get', - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'Policy.NotExist', 'errorMessage' => 'The specified policy does not exist.', 'description' => 'The specified protection policy does not exist.'], + ['errorCode' => 'RuleConfigs.Malformed', 'errorMessage' => 'The specified RuleConfigs format is invalid.', 'description' => 'The RuleConfigs parameter is in an invalid format.'], + ['errorCode' => 'RuleName.AlreadyExists', 'errorMessage' => 'Rule name already exists in specified policy.', 'description' => 'The specified rule name is already used by another rule.'], + ['errorCode' => 'Rule.QuantityOverflow', 'errorMessage' => 'Rules are overflowed quantity in specified policy.', 'description' => 'The number of rules in the specified policy has already reached the upper limit.'], + ], + 403 => [ + ['errorCode' => '%s.NotSupport', 'errorMessage' => 'The specified resource type %s is not supported.', 'description' => 'The specified resource type is not supported. To use this type of resource, contact us.'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => 'The number of resources exceeds the quota. If you want to apply for more resources, contact us.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => 'An internal error occurred. Try again later. If the error persists, submit a ticket.'], + ], + ], + 'title' => 'BatchCreateDcdnWafRules', + 'description' => '> The call frequency for this operation is limited to 20 calls per second for each user.', + 'requestParamsDescription' => '## Description of RuleConfigs'."\n" + ."\n" + .'- RuleConfigs is an array of objects. Each object represents a rule.'."\n" + .'- The format of RuleConfigs varies based on the mitigation policy type that is associated with the PolicyId.'."\n" + ."\n" + .'### Scenario 1: WAF (waf\\_group)'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| ----------- | ------ | -------- | ------- | ----------------------------------------------------------------------------------------------- |'."\n" + .'| status | String | No | on | The status of the rule. Valid values: on and off. The default value is on. |'."\n" + .'| action | String | Yes | block | The action of the rule. Valid values: block and monitor. |'."\n" + .'| wafGroupIds | String | No | 1012 | The ID of the WAF rule group. The default value is 1012. Separate multiple IDs with commas (,). |'."\n" + ."\n" + .'Example of waf\\_group configurations:'."\n" + ."\n" + .'```'."\n" + .'// A WAF policy supports only one rule.'."\n" + .'['."\n" + .' {'."\n" + .' "status": "on",'."\n" + .' "action": "block"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + ."\n" + .'### Scenario 2: Custom rules (custom\\_acl)'."\n" + ."\n" + .'| Name | Type | Required | Example | Description |'."\n" + .'| ---------- | --------- | -------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| name | string | Yes | acl\\_1 | The name of the rule. The name can contain lowercase letters, uppercase letters, digits (0 to 9), and underscores (\\_). The name can be up to 64 characters long. |'."\n" + .'| status | string | No | on | Valid values: on and off. The default value is on. |'."\n" + .'| conditions | Condition | Yes | \\[ {"key": "URI", "subKey": "","opValue": "contain", "values": "/login.php" }] | The conditions that trigger the rule. For more information about the parameters, see **Table 1. Condition parameters**. |'."\n" + .'| ccStatus | string | Yes | off | Specifies whether to enable rate limiting. Valid values: on and off. |'."\n" + .'| rateLimit | RateLimit | No | { "target": "Header", "subKey": "User-Agent", "interval": 5, "threshold": 2, "ttl": 1800} | The rate limiting rule. This parameter is required if ccStatus is set to on. For more information about the parameters, see **Table 2. RateLimit parameters**. |'."\n" + .'| effect | string | No | service | The scope of the rate limiting blacklist. This parameter is required if ccStatus is set to on. Valid values: rule (the current rule) and service (global). |'."\n" + .'| action | string | Yes | deny | The action of the rule. Valid values: deny, js (JavaScript Challenge), and monitor. |'."\n" + ."\n" + .'Table 1. Condition parameters'."\n" + ."\n" + .'| Name | Type | Required | Example | Description |'."\n" + .'| ------- | ------ | -------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| Key | string | Yes | Query String Parameter | The match field. For more information, see [DescribeDcdnWafFilterInfo](~~423285~~). |'."\n" + .'| subKey | string | No | action | The match subfield. For more information, see [DescribeDcdnWafFilterInfo](~~423285~~). |'."\n" + .'| opValue | String | Yes | eq | The logical operator. For more information, see [DescribeDcdnWafFilterInfo](~~423285~~). |'."\n" + .'| values | String | No | js | The match content. Separate multiple values with commas (,). For more information, see [DescribeDcdnWafFilterInfo](~~423285~~). |'."\n" + ."\n" + .'Table 2. RateLimit parameters'."\n" + ."\n" + .'| Name | Type | Required | Example | Description |'."\n" + .'| --------- | --------------- | -------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| target | string | Yes | Header | The field used for rate limiting statistics. Valid values: IP (requests from the same IP address), Header (requests that contain a specified header), Query String Parameter (requests that contain a specified parameter), Cookie Name (requests that contain a specified cookie), and Session (requests from the same session). |'."\n" + .'| subKey | string | No | User-Agent | The subfield of the statistical field. This parameter is required if target is set to Header, Query String Parameter, or Cookie Name. |'."\n" + .'| Interval | Integer | Yes | 5 | The statistical period. Valid values: 5 to 1800. Unit: seconds. |'."\n" + .'| threshold | Integer | Yes | 2 | The statistical threshold. Valid values: 2 to 50000. Unit: times. |'."\n" + .'| ttl | Integer | Yes | 1800 | The timeout period for the blacklist. Valid values: 60 to 86400. Unit: seconds. |'."\n" + .'| status | RateLimitStatus | No | {"code": "404", "ratio": 10} | Response code statistics. For more information about the parameters, see **Table 3. RateLimitStatus parameters**. |'."\n" + ."\n" + .'Table 3. RateLimitStatus parameters'."\n" + ."\n" + .'| Name | Type | Required | Example | Description |'."\n" + .'| ----- | ------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| code | string | Yes | 404 | The HTTP status code. |'."\n" + .'| ratio | Integer | No | 10 | The percentage of requests that trigger the rule. Valid values: 1 to 100. You can specify either this parameter or count. |'."\n" + .'| count | Integer | No | 10 | The number of requests that trigger the rule. Valid values: 2 to 50000. You can specify either this parameter or ratio. |'."\n" + ."\n" + .'Example of custom\\_acl configurations:'."\n" + ."\n" + .'```'."\n" + .'['."\n" + .' // Access control'."\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" + .' // Rate limiting'."\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" + .'### Scenario 3: Whitelist (whitelist)'."\n" + ."\n" + .'| Name | Type | Required | Example | Description |'."\n" + .'| ------------ | --------- | -------- | -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| name | string | Yes | on | The name of the rule. The name can contain lowercase letters, uppercase letters, digits (0 to 9), and underscores (\\_). The name can be up to 64 characters long. |'."\n" + .'| status | string | No | on | The status of the rule. Valid values: on (default) and off. |'."\n" + .'| conditions | Condition | Yes | \\[{ "key": "Http-Method","subKey": "","opValue": "match-one", "values": "GET,POST,DELETE" }] | The conditions that trigger the rule. For more information about the parameters, see **Table 1. Condition parameters**. |'."\n" + .'| tags | String | Yes | \\[ "waf\\_group", "custom\\_acl"] | A list of mitigation policy types. |'."\n" + .'| regularTypes | String | No | \\[ \\[ "sqli", "xss","code\\_exec", "crlf", "lfilei", "rfilei", "webshell","vvip", "other"] | The type of the regular expression rule. This parameter is available if waf\\_group is specified for tags. Valid values: "sqli", "xss", "code\\_exec", "crlf", "lfilei", "rfilei", "webshell", "vvip", and "other". |'."\n" + .'| regularRules | String | No | \\[ "100001", "100002", "100003"] | The regular expression rule. This parameter is available if waf\\_group is specified for tags. You can specify either this parameter or regularTypes. The value is a list of six-digit numbers in a string format. |'."\n" + ."\n" + .'Example of whitelist configurations:'."\n" + ."\n" + .'```'."\n" + .'['."\n" + .' // Skip all scenarios'."\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" + .' // Skip specified rule IDs for waf_group'."\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" + .' // Skip specified rule types for 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" + .' // Skip custom rules'."\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" + .' // Skip the IP blacklist'."\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" + .' // Skip the location blacklist'."\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" + ."\n" + .'### Scenario 4: IP blacklist (ip\\_blacklist)'."\n" + ."\n" + .'| Name | Type | Required | Example | Description |'."\n" + .'| ---------- | --------- | -------- | ----------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| name | string | Yes | ipblacklist | The name of the rule. The name can contain lowercase letters, uppercase letters, digits (0 to 9), and underscores (\\_). The name can be up to 64 characters long. |'."\n" + .'| status | string | No | on | The status of the rule. Valid values: on and off. The default value is on. |'."\n" + .'| remoteAddr | \\[]String | Yes | \\["192.168.0.1","10.10.10.10/24","::1","abcd::abcd","BCDE::BCDE"] | The IP addresses to filter. For more information, see [DescribeDcdnWafFilterInfo](~~423285~~). |'."\n" + .'| action | string | Yes | deny | The action of the rule. Valid values: deny and monitor. |'."\n" + ."\n" + .'Example of ip\\_blacklist configurations:'."\n" + ."\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" + .'### Scenario 5: Location blacklist (region\\_block)'."\n" + ."\n" + .'| Name | Type | Required | Example | Description |'."\n" + .'| --------------- | ------ | -------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| status | string | No | on | The status of the rule. Valid values: on and off. The default value is on. |'."\n" + .'| cnRegionList | string | No | 110000,TW,MO | The regions in mainland China to block. Separate multiple regions with commas (,). For more information about the supported regions, see [DescribeDcdnWafGeoInfo](~~433207~~). |'."\n" + .'| otherRegionList | string | No | JP,GB | The regions outside mainland China to block. Separate multiple regions with commas (,). For more information about the supported regions, see [DescribeDcdnWafGeoInfo](~~433207~~). |'."\n" + .'| action | string | Yes | deny | The action of the rule. Valid values: deny and monitor. |'."\n" + ."\n" + .'> You must specify at least one of cnRegionList and otherRegionList.'."\n" + ."\n" + .'Example of region\\_block configurations:'."\n" + ."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "status": "on",'."\n" + .' "cnRegionList": "110000,TW,MO",'."\n" + .' "otherRegionList": "JP,GB",'."\n" + .' "action": "deny"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + ."\n" + .'### Scenario 6: Bot management (bot)'."\n" + ."\n" + .'**Rule template**'."\n" + ."\n" + .'All rules include the following four parameters. For more information about the valid values, see the description of each rule classification.'."\n" + ."\n" + .'| Parameter | Type | Required | Description |'."\n" + .'| --------- | ---------- | -------- | ------------------------------------------------------------------------------------ |'."\n" + .'| type | String | Yes | The type of the rule. For more information, see the specific rule classification. |'."\n" + .'| status | String | Yes | The status of the rule. Valid values: on and off. |'."\n" + .'| config | TargetType | No | The rule configurations. For more information, see the specific rule classification. |'."\n" + .'| action | String | No | The action of the rule. For more information, see the specific rule classification. |'."\n" + ."\n" + .'**Rule classification 1: Protected object type**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | ---------- | -------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| type | String | Yes | target\\_type | The type of the rule. Set the value to target\\_type. |'."\n" + .'| status | String | Yes | on | The status of the rule. Set the value to on. |'."\n" + .'| config | TargetType | No | {"target":"app"} | The rule configurations. Format: target: The protected object type. This parameter is required. Valid values: web and app. |'."\n" + .'| action | String | No | empty | The action of the rule. This parameter is not applicable. Leave it empty. |'."\n" + ."\n" + .'Example of protected object type configurations:'."\n" + ."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type":"target_type",'."\n" + .' "status":"on",'."\n" + .' "config":{"target":"app"},'."\n" + .' "action":""'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + ."\n" + .'**Rule classification 2: Web SDK integration**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | ------ | -------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |'."\n" + .'| type | String | Yes | web\\_sdk | The type of the rule. Set the value to web\\_sdk. |'."\n" + .'| status | String | Yes | on | The status of the rule. Set the value to on. |'."\n" + .'| config | WebSdk | No | {"mode":"automatic","crossDomain":"example.com"} | The rule configurations. Format: mode: The integration mode of the web software development kit (SDK). This parameter is required. Valid values: automatic and manual. crossDomain: The cross-domain domain name for the call. This parameter is optional and takes effect only if mode is set to automatic. |'."\n" + .'| action | String | No | empty | The action of the rule. This parameter is not applicable. Leave it empty. |'."\n" + ."\n" + .'Example of Web SDK integration configurations:'."\n" + ."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type":"web_sdk",'."\n" + .' "status":"on",'."\n" + .' "config":{"mode":"automatic","crossDomain":"example.com"},'."\n" + .' "action":""'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + ."\n" + .'**Rule classification 3: Protected object feature**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | -------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------- |'."\n" + .'| type | String | Yes | traffic\\_feature | The type of the rule. Set the value to traffic\\_feature. |'."\n" + .'| status | String | Yes | on | The status of the rule. Set the value to on. |'."\n" + .'| config | TrafficFeature | Yes | {"conditions":\\[{"key":"Header","subKey":"User-Agent","opValue":"contain","values":"Chrome"},{"key":"IP","subKey":"","opValue":"ip-contain","values":"192.168.0.1/24"}]} | The rule configurations. For more information, see **condition**. |'."\n" + .'| action | String | No | empty | The action of the rule. This parameter is not applicable. Leave it empty. |'."\n" + ."\n" + .'**condition** (match conditions)'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | ------ | -------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| key | String | Yes | Header | The match field. For more information, see [DescribeDcdnWafFilterInfo](~~423285~~). |'."\n" + .'| subKey | String | No | User-Agent | The match subfield. For more information, see [DescribeDcdnWafFilterInfo](~~423285~~). |'."\n" + .'| opValue | String | Yes | contain | The operator. For more information, see [DescribeDcdnWafFilterInfo](~~423285~~). |'."\n" + .'| values | String | No | Chrome | The match content. Separate multiple values with commas (,). For more information, see [DescribeDcdnWafFilterInfo](~~423285~~). |'."\n" + ."\n" + .'Example of protected object feature configurations:'."\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" + ."\n" + .'**Rule classification 4: Legitimate bot management**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | ------------------- | -------- | --------------------------------------- | --------------------------------------------------------------------------------------------- |'."\n" + .'| type | String | Yes | intelligence\\_crawler | The type of the rule. Set the value to intelligence\\_crawler. |'."\n" + .'| status | String | Yes | on | The status of the rule. Set the value to on. |'."\n" + .'| config | IntelligenceCrawler | No | {"name":"intelligence\\_crawler\\_baidu"} | The rule configurations. For more information, see **name (search engine spider whitelist)**. |'."\n" + .'| action | String | Yes | bypass | The action of the rule. Set the value to bypass. |'."\n" + ."\n" + .'**name (search engine spider whitelist)**'."\n" + ."\n" + .'| Parameter value | Meaning |'."\n" + .'| ----------------------------- | -------------------------------------------------------------------------------- |'."\n" + .'| intelligence\\_crawler\\_all | Legitimate search engine whitelist (Google, Bing, Baidu, Sogou, 360, and Yandex) |'."\n" + .'| intelligence\\_crawler\\_baidu | Baidu spider whitelist |'."\n" + .'| intelligence\\_crawler\\_sogou | Sogou spider whitelist |'."\n" + .'| intelligence\\_crawler\\_360 | 360 spider whitelist |'."\n" + .'| intelligence\\_crawler\\_google | Google spider whitelist |'."\n" + .'| intelligence\\_crawler\\_bing | Bing spider whitelist |'."\n" + .'| intelligence\\_crawler\\_yandex | Yandex spider whitelist |'."\n" + ."\n" + .'Example of legitimate bot management configurations:'."\n" + ."\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" + ."\n" + .'**Rule classification 5: Simple script filtering (JavaScript Challenge)**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | ------ | -------- | ------- | -------------------------------------------------------------------------- |'."\n" + .'| type | String | Yes | js | The type of the rule. Set the value to js. |'."\n" + .'| status | String | Yes | on | The status of the rule. Valid values: on and off. |'."\n" + .'| config | Js | No | empty | The rule configurations. This parameter is not applicable. Leave it empty. |'."\n" + .'| action | String | Yes | js | The action of the rule. Set the value to js (JavaScript Challenge). |'."\n" + ."\n" + .'Example of simple script filtering (JavaScript Challenge) configurations:'."\n" + ."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type":"js",'."\n" + .' "status":"on",'."\n" + .' "config":{},'."\n" + .' "action":"js"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + ."\n" + .'**Rule classification 6: Advanced bot defense (dynamic token challenge)**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | ------ | -------- | ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| type | String | Yes | sigchl | The type of the rule. Set the value to sigchl. |'."\n" + .'| status | String | Yes | on | The status of the rule. Valid values: on and off. |'."\n" + .'| config | Sigchl | No | {"sigchl":\\["sig","replay","driver"]} | The rule configurations. Format: sigchl: The request data signature verification. This parameter is required. Valid values: sig (abnormal signature), replay (abnormal timestamp), and driver (WebDriver attack). |'."\n" + .'| action | String | Yes | sigchl | The action of the rule. Set the value to sigchl (block). |'."\n" + ."\n" + .'Example of advanced bot defense (dynamic token challenge) configurations:'."\n" + ."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type":"sigchl",'."\n" + .' "status":"on",'."\n" + .' "config":{"sigchl":["sig","replay","driver"]},'."\n" + .' "action":"sigchl"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + ."\n" + .'**Rule classification 7: AI-powered protection**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | --------- | -------- | --------- | --------------------------------------------------------------------------- |'."\n" + .'| type | String | Yes | algorithm | The type of the rule. Set the value to algorithm. |'."\n" + .'| status | String | Yes | on | The status of the rule. Valid values: on and off. |'."\n" + .'| config | Algorithm | No | empty | The rule configurations. This parameter is not applicable. Leave it empty. |'."\n" + .'| action | String | Yes | captcha | The action of the rule. Valid values: monitor and captcha (slider CAPTCHA). |'."\n" + ."\n" + .'Example of AI-powered protection configurations:'."\n" + ."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type":"algorithm",'."\n" + .' "status":"on",'."\n" + .' "config":{},'."\n" + .' "action":"captcha"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + ."\n" + .'**Rule classification 8: IP rate limiting**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | ---------- | -------- | ------------------------------------------------------- | ------------------------------------------------------------------------------------------ |'."\n" + .'| type | String | Yes | custom\\_cc\\_ip | The type of the rule. Set the value to custom\\_cc\\_ip. |'."\n" + .'| status | String | Yes | on | The status of the rule. Valid values: on and off. |'."\n" + .'| config | CustomCcIp | Yes | {"interval":20,"target":"IP","threshold":50,"ttl":2800} | The rule configurations. For more information, see **IP rate limiting config parameters**. |'."\n" + .'| action | String | Yes | monitor | The action of the rule. Valid values: deny, monitor, and captcha (slider, for web only). |'."\n" + ."\n" + .'**IP rate limiting configuration parameters**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | ------- | -------- | ------- | ---------------------------------------------------------------------------------------- |'."\n" + .'| target | String | Yes | IP | The statistical field for rate limiting. Set the value to IP. |'."\n" + .'| subKey | String | No | empty | The subfield of the statistical field. This parameter is not applicable. Leave it empty. |'."\n" + .'| Interval | Integer | Yes | 20 | The statistical period. Valid values: 5 to 1800. Unit: seconds. |'."\n" + .'| threshold | Integer | Yes | 50 | The statistical threshold. Valid values: 2 to 50000. Unit: times. |'."\n" + .'| ttl | Integer | Yes | 2800 | The timeout period for the blacklist. Valid values: 60 to 86400. Unit: seconds. |'."\n" + ."\n" + .'Example of IP rate limiting configurations:'."\n" + ."\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" + .'**Rule classification 9: Device rate limiting**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | ----------- | -------- | ----------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |'."\n" + .'| type | String | Yes | custom\\_cc\\_dev | The type of the rule. Set the value to custom\\_cc\\_dev. |'."\n" + .'| status | String | Yes | on | The status of the rule. Valid values: on and off. |'."\n" + .'| config | CustomCcDev | Yes | {"interval":20,"target":"Header","subKey":"aliwaf\\_wxbb\\_umid","threshold":50,"ttl":2800} | The rule configurations. For more information, see **Device rate limiting config parameters**. |'."\n" + .'| action | String | Yes | monitor | The action of the rule. Valid values: deny and monitor. |'."\n" + ."\n" + .'**Device rate limiting configuration parameters**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | ------- | -------- | ------------------ | ------------------------------------------------------------------------------- |'."\n" + .'| target | String | Yes | Header | The statistical field for rate limiting. Set the value to Header. |'."\n" + .'| subKey | String | No | aliwaf\\_wxbb\\_umid | The subfield of the statistical field. Set the value to aliwaf\\_wxbb\\_umid. |'."\n" + .'| Interval | Integer | Yes | 20 | The statistical period. Valid values: 5 to 1800. Unit: seconds. |'."\n" + .'| threshold | Integer | Yes | 50 | The statistical threshold. Valid values: 2 to 50000. Unit: times. |'."\n" + .'| ttl | Integer | Yes | 2800 | The timeout period for the blacklist. Valid values: 60 to 86400. Unit: seconds. |'."\n" + ."\n" + .'Example of device rate limiting configurations:'."\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" + .'**Rule classification 10: Custom session rate limiting**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | ---------- | -------- | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |'."\n" + .'| type | String | Yes | custom\\_cc | The type of the rule. Set the value to custom\\_cc. |'."\n" + .'| status | String | Yes | on | The status of the rule. Valid values: on and off. |'."\n" + .'| config | CustomCcIp | Yes | {"interval":10,"target":"Query String Parameter","subKey":"arg","threshold":30,"ttl":1800} | The rule configurations. For more information, see **Custom session rate limiting config parameters**. |'."\n" + .'| action | String | Yes | monitor | The action of the rule. Valid values: deny, monitor, and captcha (slider, for web only). |'."\n" + ."\n" + .'**Custom session rate limiting configuration parameters**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | ------- | -------- | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| target | String | Yes | Query String Parameter | The field used for rate limiting statistics. Valid values: Header (requests that contain a specified header), Query String Parameter (requests that contain a specified parameter), Cookie Name (requests that contain a specified cookie), and Session (requests from the same session). |'."\n" + .'| subKey | String | No | arg | The subfield of the statistical field. This is a custom field. |'."\n" + .'| Interval | Integer | Yes | 10 | The statistical period. Valid values: 5 to 1800. Unit: seconds. |'."\n" + .'| threshold | Integer | Yes | 30 | The statistical threshold. Valid values: 2 to 50000. Unit: times. |'."\n" + .'| ttl | Integer | Yes | 2800 | The timeout period for the blacklist. Valid values: 60 to 86400. Unit: seconds. |'."\n" + ."\n" + .'Example of custom session rate limiting configurations:'."\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" + .'**Rule classification 11: Bot threat intelligence library**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | ------------ | -------- | ------------ | --------------------------------------------------------------------------- |'."\n" + .'| type | String | Yes | intelligence | The type of the rule. Set the value to intelligence. |'."\n" + .'| status | String | Yes | on | The status of the rule. Valid values: on and off. |'."\n" + .'| config | Intelligence | No | empty | The rule configurations. This parameter is not applicable. Leave it empty. |'."\n" + .'| action | String | Yes | captcha | The action of the rule. Valid values: monitor and captcha (slider CAPTCHA). |'."\n" + ."\n" + .'Example of bot threat intelligence library configurations:'."\n" + ."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type":"intelligence",'."\n" + .' "status":"on",'."\n" + .' "config":{},'."\n" + .' "action":"captcha"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + ."\n" + .'**Rule classification 12: IDC blacklist blocking**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | --------------- | -------- | ------------------------------------- | ---------------------------------------------------------------------------------- |'."\n" + .'| type | String | Yes | intelligence\\_idc | The type of the rule. Set the value to intelligence\\_idc. |'."\n" + .'| status | String | Yes | on | The status of the rule. Valid values: on and off. |'."\n" + .'| config | IntelligenceIdc | Yes | {"name":"intelligence\\_idc\\_alibaba"} | The rule configurations. For more information, see **name parameters**. |'."\n" + .'| action | String | Yes | captcha | The action of the rule. Valid values: deny, monitor, and captcha (slider CAPTCHA). |'."\n" + ."\n" + .'**name parameters**'."\n" + ."\n" + .'| Parameter value | Meaning |'."\n" + .'| -------------------------- | ------------------------------ |'."\n" + .'| intelligence\\_idc\\_alibaba | IDC IP library - Alibaba Cloud |'."\n" + .'| intelligence\\_idc\\_tencent | IDC IP library - Tencent Cloud |'."\n" + .'| intelligence\\_idc\\_mtyun | IDC IP library - Meituan Cloud |'."\n" + .'| intelligence\\_idc\\_vnet | IDC IP library - 21Vianet |'."\n" + .'| intelligence\\_idc\\_other | IDC IP library - Other |'."\n" + ."\n" + .'Example of IDC blacklist blocking configurations:'."\n" + ."\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" + .'**Rule classification 13: Forged spider blocking**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | ----------------------- | -------- | --------------------------- | -------------------------------------------------------------------------- |'."\n" + .'| type | String | Yes | intelligence\\_fake\\_crawler | The type of the rule. Set the value to intelligence\\_fake\\_crawler. |'."\n" + .'| status | String | Yes | on | The status of the rule. Valid values: on and off. |'."\n" + .'| config | IntelligenceFakeCrawler | No | empty | The rule configurations. This parameter is not applicable. Leave it empty. |'."\n" + .'| action | String | Yes | deny | The action of the rule. Set the value to deny. |'."\n" + ."\n" + .'Example of forged spider blocking configurations:'."\n" + ."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "type": "intelligence_fake_crawler",'."\n" + .' "status": "on",'."\n" + .' "config":{},'."\n" + .' "action": "deny"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + ."\n" + .'**Rule classification 14: Bot feature detection**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | ------ | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |'."\n" + .'| type | String | Yes | app\\_sdk | The type of the rule. Set the value to app\\_sdk. |'."\n" + .'| status | String | Yes | on | The status of the rule. Set the value to on. |'."\n" + .'| config | AppSdk | Yes | {"featureAbnormal":\\["simulator","proxy","root","debugged","hook","virtual","antiReplay","signInvalid"],"customSignStatus":"on","customSign":{"key":"header","value":"ua"}} | The rule configurations. For more information, see **Bot feature detection config parameters**. |'."\n" + .'| action | String | Yes | monitor | The action of the rule. Valid values: deny and monitor. |'."\n" + ."\n" + .'**Bot feature detection configuration parameters**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| ---------------- | ---------- | -------- | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| featureAbnormal | \\[]String | Yes | simulator | signInvalid: The app signature is abnormal. antiReplay: The signature is expired. simulator: An emulator is used. proxy: A proxy is used. root: The device is rooted. debugged: Debug mode is enabled. hook: The app is hooked. virtual: The app is multi-opened. |'."\n" + .'| customSignStatus | String | No | on | Specifies whether to enable the custom signing field. Valid values: on and off. |'."\n" + .'| customSign | CustomSign | No | {"key":"header","value":"ua"} | The custom signing field. Format: key: The field name. This parameter is required. Valid values: header, arg, and cookie. value: The field value. This parameter is required. |'."\n" + ."\n" + .'Example of bot feature detection configurations:'."\n" + ."\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" + .'**Rule classification 15: Advanced mitigation (repackaging detection)**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | ---------- | -------- | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |'."\n" + .'| type | String | Yes | app\\_package | The type of the rule. Set the value to app\\_package. |'."\n" + .'| status | String | Yes | on | The status of the rule. Set the value to on. |'."\n" + .'| config | AppPackage | No | {"packageSigns":\\[{"name":"aaaaa","sign":"bbbb"},{"name":"cccc","sign":"dddd"}]} | The rule configurations. For more information, see **packageSigns parameters**. |'."\n" + .'| action | String | Yes | monitor | The action of the rule. Valid values: deny and monitor. |'."\n" + ."\n" + .'**packageSigns parameters**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | ------ | -------- | ------- | ---------------------------- |'."\n" + .'| name | String | Yes | aaaaa | The legitimate package name. |'."\n" + .'| sign | String | No | bbbb | The package signature. |'."\n" + ."\n" + .'Example of advanced mitigation (repackaging detection) configurations:'."\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" + ."\n" + .'**Example of combined parameter configurations for bot management on web pages or browsers**'."\n" + ."\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" + ."\n" + .'**Example of combined parameter configurations for bot management in apps**'."\n" + ."\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" + .'### Scenario 7: Scan protection (anti\\_scan)'."\n" + ."\n" + .'**Rule template**'."\n" + ."\n" + .'All rules include the following four parameters. For more information about the valid values, see the description of each rule classification.'."\n" + ."\n" + .'| Parameter | Type | Required | Description |'."\n" + .'| --------- | ------ | -------- | ------------------------------------------------------------------------------------ |'."\n" + .'| type | String | Yes | The type of the rule. For more information, see the specific rule classification. |'."\n" + .'| status | String | No | The status of the rule. Valid values: on and off. |'."\n" + .'| config | Type | No | The rule configurations. For more information, see the specific rule classification. |'."\n" + .'| action | String | No | The action of the rule. For more information, see the specific rule classification. |'."\n" + ."\n" + .'**Rule classification 1: High-frequency scan blocking**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | ------------- | -------- | -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |'."\n" + .'| type | String | Yes | high\\_frequency | The type of the rule. Set the value to high\\_frequency. |'."\n" + .'| status | String | Yes | on | The status of the rule. Valid values: on and off. The default value is on. |'."\n" + .'| config | HighFrequency | No | {"target":"IP","interval":20,"wafBlockThreshold":20,"ttl":1800,"distinctWafRuleThreshold":2} | The rule configurations. For more information, see the following struct string. |'."\n" + .'| action | String | No | deny | The action of the rule. Valid values: deny and monitor. |'."\n" + ."\n" + .'- HighFrequency parameters'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| ------------------------ | ------- | -------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| target | String | Yes | IP | The field for rate limiting statistics. Valid values: IP, Session, Header, Query String Parameter, and Cookie Name. |'."\n" + .'| subKey | String | No | yoursubKey | The subfield of the statistical field. This parameter is available if you use a custom field. For example, if target is set to Header, this parameter specifies the key of the header. |'."\n" + .'| interval | Integer | Yes | 20 | The detection period. Valid values: 5 to 1800. Unit: seconds. |'."\n" + .'| wafBlockThreshold | Integer | Yes | 20 | The number of times the basic protection rule is triggered. Valid values: 3 to 50000. |'."\n" + .'| ttl | Integer | Yes | 1800 | The blocking duration. Valid values: 60 to 86400. Unit: seconds. |'."\n" + .'| distinctWafRuleThreshold | Integer | Yes | 2 | The number of triggered rules is greater than this value. Valid values: 1 to 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" + .'**Rule classification 2: Directory traversal blocking**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | ------------------ | -------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |'."\n" + .'| type | String | Yes | directory\\_traversal | The type of the rule. Set the value to directory\\_traversal. |'."\n" + .'| status | String | Yes | on | The status of the rule. Valid values: on and off. The default value is on. |'."\n" + .'| config | DirectoryTraversal | No | {"target":"IP","interval":10,"threshold":50,"status":{"code":"404","ratio":70,"count":50},"ttl":1800} | The rule configurations. For more information, see the following struct string. |'."\n" + .'| action | String | No | deny | The action of the rule. Valid values: deny and monitor. |'."\n" + ."\n" + .'- DirectoryTraversal parameters'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | --------------- | -------- | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| target | String | Yes | IP | The field for rate limiting statistics. Valid values: IP, Session, Header, Query String Parameter, and Cookie Name. |'."\n" + .'| subKey | String | No | yoursubKey | The subfield of the statistical field. This parameter is available if you use a custom field. For example, if target is set to Header, this parameter specifies the key of the header. |'."\n" + .'| interval | Integer | Yes | 10 | The detection period. Valid values: 5 to 1800. Unit: seconds. |'."\n" + .'| threshold | Integer | Yes | 50 | The number of requests for the current protected object exceeds this value. Valid values: 2 to 50000. |'."\n" + .'| status | RateLimitStatus | Yes | {"code":"404","ratio":70,"count":50} | The response code. |'."\n" + .'| ttl | Integer | Yes | 1800 | The blocking duration. Valid values: 60 to 86400. Unit: seconds. |'."\n" + ."\n" + .'- RateLimitStatus parameters'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | ------- | -------- | ------- | ----------------------------------------------------------------- |'."\n" + .'| code | String | Yes | 404 | The HTTP status code. Set the value to 404. |'."\n" + .'| ratio | Integer | Yes | 70 | The percentage of 404 responses. Valid values: 1 to 100. |'."\n" + .'| count | Integer | Yes | 50 | The number of non-existent directories. Valid values: 2 to 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" + .'**Rule classification 3: Scan tool blocking**'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | --------- | -------- | ----------- | -------------------------------------------------------------------------- |'."\n" + .'| type | String | Yes | scan\\_tools | The type of the rule. Set the value to scan\\_tools. |'."\n" + .'| status | String | Yes | on | The status of the rule. Valid values: on and off. The default value is on. |'."\n" + .'| config | ScanTools | No | Empty | The rule configurations. This parameter is not applicable. |'."\n" + .'| action | String | No | deny | The action of the rule. Valid values: deny and monitor. |'."\n" + ."\n" + .'```json'."\n" + .'['."\n" + .' {'."\n" + .' "type":"scan_tools",'."\n" + .' "status":"on",'."\n" + .' "config":{},'."\n" + .' "action":"deny"'."\n" + .' }'."\n" + .']'."\n" + .'```'."\n" + ."\n" + .'**Final combined parameters**'."\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' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchCreateDcdnWafRules'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:BatchCreateDcdnWafRules', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-280B-72F8FD6DA2FE\\",\\n \\"RuleIds\\": {\\n \\"RuleId\\": [\\n \\"100001,200002\\"\\n ]\\n }\\n}","type":"json"}]', + ], + 'BatchDeleteDcdnDomainConfigs' => [ + 'summary' => 'Call BatchDeleteDcdnDomainConfigs to delete configurations for multiple domain names at once.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -780,413 +2033,607 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111432', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeNodes' => ['FEATUREdcdn2JMMUY'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'DomainNames', 'in' => 'query', - 'schema' => [ - 'description' => 'The domain name that you want to add. You can specify only one domain name in each request.'."\n" - ."\n" - .'Wildcard domain names are supported. A wildcard domain name must start with a period (.), such as .example.com.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain names for which you want to delete configurations. Separate multiple domain names with commas (,). Note the following limits:'."\n" + ."\n" + .'- You can specify up to 20 domain names in a single request.'."\n" + ."\n" + .'- The product of the number of domain names and the number of function names must be 50 or less.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'FunctionNames', 'in' => 'query', + 'schema' => ['description' => 'The names of the functions whose configurations you want to delete. Separate multiple function names with commas (,). You can specify up to 50 function names in a single request. For more function names, see [Domain configuration function parameters](~~410622~~).', 'type' => 'string', 'required' => true, 'example' => 'referer_white_list_set,https_force', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The ID of the resource group. If you do not specify a value for this parameter, the system automatically assigns the ID of the default resource group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmyuji4b6r4**', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', 'title' => ''], + ], + 'description' => 'The response parameters.', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => 'FunctionName [%s] is not supported.', 'description' => 'The specified configuration is not supported.'], + ['errorCode' => 'DeleteFunctionFailed', 'errorMessage' => 'Batch delete functions failed.', 'description' => 'Failed to delete the configurations.'], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]', + 'title' => 'BatchDeleteDcdnDomainConfigs', + 'description' => '> - Request rate limit per user: 30 requests per second.', + 'requestParamsDescription' => 'The following table lists all supported functions.'."\n" + ."\n" + .'| Name | Parameters |'."\n" + .'| ------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| referer_white_list_set: Referer hotlink protection whitelist | refer_domain_allow_list: Whitelist entries separated by commas (,).<br>allow_empty: Whether to allow access to DCDN resources when the Referer field is empty. Valid values: on or off. |'."\n" + .'| referer_black_list_set: Referer hotlink protection blacklist | refer_domain_deny_list: Blacklist entries separated by commas (,).<br>allow_empty: Whether to allow access to DCDN resources when the Referer field is empty. Valid values: on or off. |'."\n" + .'| filetype_based_ttl_set: File type cache expiration time settings | ttl: Cache time in seconds.<br>file_type: File types. Separate multiple file types with commas (,), such as TXT, JPG.<br>weight: Weight. |'."\n" + .'| path_based_ttl_set: Path-based cache expiration time settings | ttl: Cache time in seconds.<br>path: Path. Must start with a forward slash (/).<br>weight: Weight. |'."\n" + .'| oss_auth: OSS authentication bucket | oss_bucket_id: Your bucket address. |'."\n" + .'| ip_black_list_set: IP address blacklist | ip_list: IP addresses separated by commas (,). |'."\n" + .'| ip_allow_list_set: IP address whitelist | ip_list: IP addresses separated by commas (,). |'."\n" + .'| error_page: Error page redirection | error_code: Error code.<br>rewrite_page: Redirect page. |'."\n" + .'| set_req_host_header: Modify custom origin request HOST header | domain_name: Content of the origin request HOST header. |'."\n" + .'| set_hashkey_args: Ignore URL parameters | hashkey_args: Parameters to retain. Separate multiple parameters with commas (,). You can specify up to 10 parameters.<br>disable: Set to on to ignore all parameters. Set to off to not ignore parameters (cache hashkey ignores all parameters, but this setting has lower priority than the parameter retention list).<br>keep_oss_args: Set to on to retain all parameters in origin requests. Set to off to use the same parameters as the cache hashkey. |'."\n" + .'| aliauth: Alibaba Cloud authentication | auth_type: Authentication type. Valid values: no_auth (no authentication), type_a, type_b, type_c.<br>auth_key1: Authentication key1. auth_key2: Authentication key2.<br>ali_auth_delta: Custom authentication buffer time. |'."\n" + .'| set_resp_header: Set HTTP response headers (visible in browsers) | key (required): Response header.<br>value (required): Response header value. Set to null to delete.<br>header_operation_type: Header operation type. Valid values: add, delete, modify, rewrite.<br>duplicate: Whether to allow duplicates. Valid values: on or off.<br>header_source: Find.<br>header_destination: Replace with.<br>match_all: Match all. Valid values: on or off. |'."\n" + .'| https_force: Force HTTPS redirect | enable: Enable or disable the feature. Valid values: on or off. |'."\n" + .'| http_force: Force HTTP redirect | enable: Enable or disable the feature. Valid values: on or off. |'."\n" + .'| https_option: HTTPS basic parameters | http2: HTTP/2 switch. Valid values: on or off.<br>ocsp_stapling: OCSP Stapling switch. Valid values: on or off. |'."\n" + .'| forward_scheme: Static protocol follows origin protocol | enable: Switch. Valid values: on or off.<br>scheme_origin: Origin protocol type. Valid values: http, https, follow. |'."\n" + .'| dynamic: DCDN-related configuration | enable (required): Switch. Valid values: on or off.<br>static_route_type: File extensions for static acceleration.<br>static_route_url: URIs for static acceleration.<br>static_route_path: Paths for static acceleration.<br>dynamic_route_origin: Origin fetch scheme. Valid values: http, https, follow, follow-port.<br>dynamic_route_round_robin: Enable Server Load Balancer. Valid values: on or off.<br>dynamic_route_adapt_cache: Enable adaptive caching. Valid values: on or off. |'."\n" + .'| set_req_header: Custom origin request HTTP header | key: Origin request header.<br>value: Origin request header value. |'."\n" + .'| l2_oss_key: Private OSS bucket origin fetch on Alibaba Cloud | private_oss_auth: Switch for private bucket origin fetch. Valid values: on or off. |'."\n" + .'| range: Range-based origin fetch | enable: Switch. Valid values: on or off. |'."\n" + .'| video_seek: Video seeking | enable (required): Switch. Valid values: on or off.<br>flv_seek_by_time: Enable FLV time-based seeking. Valid values: on or off.<br>mp4_seek_start: Custom MP4 start parameter.<br>mp4_seek_end: Custom MP4 end parameter.<br>flv_seek_start: Custom FLV start parameter.<br>flv_seek_end: Custom FLV end parameter. |'."\n" + .'| websocket: WebSocket | enabled (required): Whether to enable. Valid values: on or off.<br>origin_scheme: Origin fetch scheme. Valid values: http, https, follow.<br>heartbeat: Heartbeat interval in seconds. Default: 60. Valid range: 1–300. |'."\n" + .'| ali_remove_args: Ignore URL parameters (remove) | ali_remove_args (required): Parameters to remove. Separate multiple parameters with spaces. Remaining parameters become part of the URL args in the hashkey.<br>keep_oss_args: Retain parameters in origin requests. Valid values: on (retain all parameters) or off (use the same parameters as the cache hashkey). |'."\n" + .'| https_tls_version: TLS protocol version | tls10: Enable TLSv1.0. Default: on. Valid values: on or off.<br>tls11: Enable TLSv1.1. Default: on. Valid values: on or off.<br>tls12: Enable TLSv1.2. Default: on. Valid values: on or off.<br>tls13: Enable TLSv1.3. Default: off. Valid values: on or off. |'."\n" + .'| HSTS: HTTP Strict Transport Security | enabled (required): Switch. Default: off. Valid values: on or off.<br>https_hsts_max_age (required): Expiration time in milliseconds. We recommend 5184000000 ms (60 days).<br>https_hsts_include_subdomains: Include the includeSubDomains directive in the HSTS header. Valid values: on or off. Use caution. Before enabling, ensure all subdomains of the accelerated domain name support HTTPS. Otherwise, subdomains may become inaccessible after automatic HTTPS redirects. |'."\n" + .'| filetype_force_ttl_code: File status code expiration time settings | file_type (required): File types. Separate multiple types with commas (,), such as TXT, JPG.<br>code_string (required): Status codes. Separate multiple codes with commas (,). Example: 302=0,301=0,4xx=2. |'."\n" + .'| path_force_ttl_code: Path status code expiration time settings | path (required): Must start with a forward slash (/), such as /image.<br>code_string (required): Status codes. Separate multiple codes with commas (,). Example: 302=0,301=0,4xx=2. |'."\n" + .'| gzip: Intelligent compression | enable (required): Switch. Valid values: on or off. |'."\n" + .'| tesla: HTML optimization | enable (required): Switch. Valid values: on or off.<br>trim_js: Valid values: on or off. When enabled, optimizes inline JavaScript in HTML.<br>trim_css: Valid values: on or off. When enabled, optimizes inline CSS in HTML. |'."\n" + .'| https_origin_sni: Origin SNI | enabled: Switch. Valid values: on or off.<br>https_origin_sni (required): Origin SNI value. |'."\n" + .'| protogw: IP application acceleration | realip (required): Origin IP pass-through method. Valid values: off, toa, pp.<br>port (required): Service port.<br>patten: Pattern string. |'."\n" + .'| host_redirect: Rewrite function | regex: URL to rewrite, such as ^/$.<br>replacement: Target URL, such as /go/act/sale/tbzlsy.php.<br>flag: Valid values: redirect, break. |'."\n" + .'| forward_timeout: Origin request timeout | forward_timeout: Timeout in seconds. We recommend setting it to no more than 100 seconds. |'."\n" + .'| ipv6: IPv6 configuration | switch (required): Switch. Valid values: on (enable) or off (disable).<br>region: Regions where IPv6 is enabled. Supports asterisk (*) for all regions. |'."\n" + .'| edge_function: Edge function | rule (required): DSL rule.<br>pri (required): Priority.<br>enable (required): Whether the rule takes effect. Valid values: on or off.<br>name: Rule name.<br>pos: Execution position. For DCDN domain names, only head is supported. foot is not supported.<br>brk: Skip remaining rules at the current execution position after this rule matches.<br>option: Option control.<br>grammar: Grammar control. Valid values: empty, es2, js.<br>jsmode: JS domain whitelist control. Valid values: redirect, bypass. |'."\n" + .'| brotli: Brotli compression | enable (required): Switch. Valid values: on or off.<br>brotli_level: Compression level. Valid range: [1,11]. |'."\n" + .'| ali_ua: User-Agent blacklist/whitelist | ua: User-Agent.<br>type: List type. Valid values: black or white. |', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchDeleteDcdnDomainConfigs'], + ], + ], + 'ramActions' => [ [ - 'name' => 'Sources', - 'in' => 'query', - 'schema' => [ - 'description' => 'The information about the addresses of origin servers.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '[{"content":"10.10.10.10","type":"ipaddr","priority":"20","port":80}]', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:BatchDeleteDcdnDomainConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], ], ], + ], + ], + 'BatchDeleteDcdnKv' => [ + 'summary' => 'Deletes a batch of key-value pairs from a specified KV namespace.', + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'CheckUrl', + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '213944', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + ], + 'parameters' => [ + [ + 'name' => 'Namespace', 'in' => 'query', + 'schema' => ['description' => 'The name of the namespace. You specify this name when you call [](t2457197.xdita#).', 'type' => 'string', 'title' => '', 'required' => true, 'example' => 'test_namespace'], + ], + [ + 'name' => 'Keys', + 'in' => 'formData', + 'style' => 'json', 'schema' => [ - 'description' => 'The URL that is used for health checks.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', + 'description' => 'A list of keys to delete. You can delete a maximum of 10,000 keys.', + 'type' => 'array', + 'items' => ['description' => 'The key to delete.', 'type' => 'string', 'required' => false, 'example' => 'test_key1', 'title' => ''], + 'required' => true, + 'title' => '', + 'example' => '', ], ], - [ - 'name' => 'Scope', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The acceleration region. Valid values:'."\n" - ."\n" - .'* **domestic**: Chinese mainland'."\n" - .'* **overseas**: outside the Chinese mainland'."\n" - .'* **global**: global'."\n" - ."\n" - .'Default value: **domestic**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'domestic', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'EEEBE525-F576-1196-8DAF-2D70CA3F4D2F'."\n"], + 'FailKeys' => [ + 'description' => 'A list of keys that failed to be deleted.', + 'type' => 'array', + 'items' => ['description' => 'The key that failed to be deleted.', 'type' => 'string', 'example' => 'test_key1', 'title' => ''], + 'title' => '', + 'example' => '', + ], + 'SuccessKeys' => [ + 'description' => 'A list of keys that were successfully deleted.', + 'type' => 'array', + 'items' => ['description' => 'The key that was successfully deleted.', 'type' => 'string', 'example' => 'test_key2', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'The parameter is set to an invalid value.'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'The namespace is invalid. Check whether a namespace is specified.'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => 'The account is invalid. Check whether an account is specified.'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'The key is invalid. Check whether a key is specified.'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'The key cannot exceed 512 bytes in length.'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'The value cannot exceed 2,000,000 bytes in length.'], + ['errorCode' => 'InvalidKey.TooManyKeys', 'errorMessage' => 'request contains too many keys.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'The capacity of the namespace has reached the upper limit. Each namespace can be at most 1 GB.'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => 'An authentication parameter is set to an invalid value.'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => 'The authentication time parameter you entered is invalid. Check the parameter value and try again.'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => 'The token you entered is invalid. Please check and enter the correct token and try again.'], + ], [ - 'name' => 'TopLevelDomain', - 'in' => 'query', - 'schema' => [ - 'description' => 'The top-level domain.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'yourTopLevelDomain', + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'The specified namespace does not exist.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'BatchDeleteDcdnKv', + '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' => 'All Resource', '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' => 'Deletes multiple key-value pairs from a specified KV namespace based on a list of keys. The maximum size of the request body is 100 MB.', + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'Tag', + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '213943', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'Namespace', 'in' => 'query', - 'style' => 'repeatList', + 'schema' => ['description' => 'The name specified when you called [](t2457197.xdita#).', 'type' => 'string', 'title' => '', 'required' => true, 'example' => 'test_namespace'."\n"], + ], + [ + 'name' => 'Url', + 'in' => 'query', + 'schema' => ['description' => 'The download link for the key-value pairs to batch delete. This parameter is automatically generated by the SDK. You must use an SDK to call this operation.', 'type' => 'string', 'required' => true, 'isFileTransferUrl' => true, 'example' => 'https://xxxobject.oss-cn-reginon.aliyuncs.com/9d91_xxxxxxxxxxx_158bb6e0f97c477791209bb46bd599f7', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The information about the tags.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of a tag. Valid values of N: **1 to 20**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'Value' => [ - 'description' => 'The value of a tag. Valid values of N: **1 to 20**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'value', - ], + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'EEEBE525-F576-1196-8DAF-2D70CA3F4D2F'], + 'FailKeys' => [ + 'description' => 'The list of keys that failed to be deleted.', + 'type' => 'array', + 'items' => ['description' => 'The name of the key that failed to be deleted.', 'type' => 'string', 'example' => 'test_key1', 'title' => ''], + 'title' => '', + 'example' => '', + ], + 'SuccessKeys' => [ + 'description' => 'The list of keys that were successfully deleted.', + 'type' => 'array', + 'items' => ['description' => 'The name of the key that was successfully deleted.', 'type' => 'string', 'example' => 'test_key1', 'title' => ''], + 'title' => '', + 'example' => '', ], - 'required' => false, ], - 'required' => false, - 'maxItems' => 21, + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'The parameter is set to an invalid value.'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'The namespace is invalid. Check whether a namespace is specified.'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => 'The account is invalid. Check whether an account is specified.'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'The key is invalid. Check whether a key is specified.'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'The key cannot exceed 512 bytes in length.'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'The value cannot exceed 2,000,000 bytes in length.'], + ['errorCode' => 'InvalidKey.TooManyKeys', 'errorMessage' => 'request contains too many keys.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'The capacity of the namespace has reached the upper limit. Each namespace can be at most 1 GB.'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => 'An authentication parameter is set to an invalid value.'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => 'The authentication time parameter you entered is invalid. Check the parameter value and try again.'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => 'The token you entered is invalid. Please check and enter the correct token and try again.'], + ], [ - 'name' => 'FunctionType', - 'in' => 'query', - 'schema' => [ - 'description' => 'Computing service type. Valid values:'."\n" - ."\n" - .'* **routine**'."\n" - .'* **image**'."\n" - .'* **cloudFunction**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'routine', + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'The specified namespace does not exist.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'BatchDeleteDcdnKvWithHighCapacity', + 'description' => 'This operation provides the same features as [](t2701599.xdita#)but supports a larger request body. If your request body is small, use the [](t2701599.xdita#)operation to reduce server-side processing time. You must use an SDK to call this operation. For example, if you use the Go SDK, you must call the BatchDeleteDcdnKvWithHighCapacityAdvance function.'."\n" + ."\n" + .'```'."\n" + .'func TestBatchDeleteWithHighCapacity() error {'."\n" + .' // Initialize the configuration.'."\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" + .' // Construct a request to batch delete key-value pairs.'."\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" + .' // If the payload is larger than 2 MB, call the high-capacity operation to delete the key-value pairs.'."\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" + .'}'."\n" + .'```', + 'changeSet' => [ + ['createdAt' => '2024-06-13T06:35:32.000Z', 'description' => 'Request parameters changed'], + ], + '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' => 'All Resource', 'arn' => '*'], + ], ], ], ], + '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' => 'The IDs of the protection rules that you want to delete. Separate multiple IDs with commas (,).', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '20000001,20000002'], + ], + ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '15C66C7B-671A-4297-9187-2C4477247A74', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'CB1A380B-09F0-41BB-802B-72F8FD6DA2FE'], ], + 'description' => '', + 'title' => '', ], ], ], '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' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ], + 403 => [ + ['errorCode' => '%s.NotSupport', 'errorMessage' => 'The specified resource type %s is not supported.', 'description' => 'The specified resource type is not supported. To use this type of resource, contact us.'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => 'The number of resources exceeds the quota. If you want to apply for more resources, contact us.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => 'An internal error occurred. Try again later. If the error persists, submit a ticket.'], ], ], - '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' => 'AddDcdnDomain', - 'description' => '> * Dynamic Content Delivery Network (DCDN) is activated.'."\n" - .'> * Internet content provider (ICP) filing is complete for the accelerated domain name.'."\n" - .'> * If the content of the origin server is not stored on Alibaba Cloud, the content must be reviewed. After you submit the request, the review is complete by the end of the following business day.'."\n" - .'> * You can call this operation up to 30 times per second per account.', - 'requestParamsDescription' => 'The following table describes the fields in the Sources parameter.'."\n" - ."\n" - .'|Field|Type|Required|Description|'."\n" - .'|---|---|---|---|'."\n" - .'|type|String|Yes|The type of the origin server. A value of ipaddr specifies the IP address of the origin server. A value of domain specifies the domain name of the origin server. A value of oss specifies the domain name of an Object Storage Service (OSS) bucket.|'."\n" - .'|content|String|Yes|The address of the origin server. You can specify an IP address or a domain name.|'."\n" - .'|port|Integer|No|The port number. You can set the port parameter to 443, 80, or a custom port. Default value: 80. If you specify port 443, DCDN communicates with the origin server over HTTPS.|'."\n" - .'|priority|String|No|The priority of the origin server if multiple origin servers are specified. Valid values: 20 and 30. Default value: 20. A value of 20 specifies that the origin is a primary origin. A value of 30 specifies that the origin is a secondary origin.|'."\n" - .'|weight|String|No|The weight of the origin server if multiple origin servers are specified. You must specify a value that is less than 100. Default value: 10.|', + 'title' => 'BatchDeleteDcdnWafRules', + 'summary' => 'Call BatchDeleteDcdnWafRules to delete WAF rules in a batch.', + 'description' => '> - The call frequency for a single user is 20 calls per second.'."\n" + .'> - This operation supports POST requests.', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchAddDcdnDomain' => [ - 'summary' => 'Adds one or more domain names to DCDN at a time.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:15.000Z', 'description' => 'Error codes changed'], + ], + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-802B-72F8FD6DA2FE\\"\\n}","type":"json"}]', + ], + 'BatchModifyDcdnWafRules' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111435', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeNodes' => ['FEATUREdcdnV3YEJ8'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => 'You can add up to 20 domain names to DCDN for each of your Alibaba Cloud account. If you specify multiple domain names, separate them with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com,example.org', - ], + 'name' => 'PolicyId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the mitigation policy.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'title' => '', 'example' => '10000001'], ], [ - 'name' => 'ResourceGroupId', - 'in' => 'query', + 'name' => 'RuleConfigs', + 'in' => 'formData', + 'schema' => ['description' => 'The configurations of the mitigation rules.', 'type' => 'string', 'required' => true, 'title' => '', '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' => 'The ID of the resource group. If you do not specify a value for this parameter, the system uses the ID of the default resource group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'testID', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'CB1A380B-09F0-41BB-XXXX-72F8FD6DA2FE'], + ], + 'description' => '', + 'title' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'Policy.NotExist', 'errorMessage' => 'The specified policy does not exist.', 'description' => 'The specified protection policy does not exist.'], + ['errorCode' => 'Rule.NotExist', 'errorMessage' => 'The specified rule does not exist.', 'description' => 'The specified rule does not exist in the current context or system configuration. Please verify the existence of the rule identifier and ensure it has been correctly defined or implemented.'], + ['errorCode' => 'RuleConfigs.Malformed', 'errorMessage' => 'The specified RuleConfigs format is invalid.', 'description' => 'The RuleConfigs parameter is in an invalid format.'], + ['errorCode' => 'RuleName.AlreadyExists', 'errorMessage' => 'Rule name already exists in specified policy.', 'description' => 'The specified rule name is already used by another rule.'], + ['errorCode' => 'Rule.QuantityOverflow', 'errorMessage' => 'Rules are overflowed quantity in specified policy.', 'description' => 'The number of rules in the specified policy has already reached the upper limit.'], + ], + 403 => [ + ['errorCode' => '%s.NotSupport', 'errorMessage' => 'The specified resource type %s is not supported.', 'description' => 'The specified resource type is not supported. To use this type of resource, contact us.'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => 'The number of resources exceeds the quota. If you want to apply for more resources, contact us.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => 'An internal error occurred. Try again later. If the error persists, submit a ticket.'], + ], + ], + 'title' => 'BatchModifyDcdnWafRules', + 'summary' => 'You can call BatchModifyDcdnWafRules to modify WAF mitigation rules in a batch. This operation supports modifying configurations only in the bot management scenario.', + 'description' => '> The call frequency for each user is limited to 20 calls per second.', + 'requestParamsDescription' => '### Description of RuleConfigs'."\n" + ."\n" + .'RuleConfigs is a list of structs. Each struct represents a rule.'."\n" + ."\n" + .'- For more information about the rule content in the struct, see [BatchCreateDcdnWafRules](~~423350~~).'."\n" + .'- You must pass all rules that belong to the current policy.'."\n" + .'- In each struct, add the mitigation rule ID to specify the rule that you want to modify.'."\n" + ."\n" + .'| Parameter | Type | Required | Example | Description |'."\n" + .'| --------- | ---- | -------- | ------- | ------------------------------ |'."\n" + .'| id | Long | No | 134 | The ID of the mitigation rule. |'."\n" + ."\n" + .'In the bot management scenario:'."\n" + ."\n" + .'- To add a rule: Omit the id parameter or set its value to 0.'."\n" + .'- To modify a rule: Pass the ID of the rule and set the status parameter to "on".'."\n" + .'- To delete a rule: Set the status parameter to "off" in the rule\'s struct. A rule is also deleted if its ID is not included in the policy.', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:14.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-09-27T08:42:38.000Z', 'description' => 'OpenAPI offline'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchModifyDcdnWafRules'], + ], + ], + 'ramActions' => [ [ - 'name' => 'Sources', - 'in' => 'query', - 'schema' => [ - 'description' => 'The information about the addresses of origin servers.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '[{"content":"10.10.10.10","type":"ipaddr","priority":"20","port":80,"weight":"15"}]', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:BatchModifyDcdnWafRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-XXXX-72F8FD6DA2FE\\"\\n}","type":"json"}]', + ], + 'BatchPutDcdnKv' => [ + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'CheckUrl', - 'in' => 'query', - 'schema' => [ - 'description' => 'The URL that is used for health checks.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'www.example.com/test.html', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '189479', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + ], + 'parameters' => [ [ - 'name' => 'Scope', + 'name' => 'Namespace', 'in' => 'query', - 'schema' => [ - 'description' => 'The acceleration region. Default value: domestic. Valid values:'."\n" - ."\n" - .'* domestic: Chinese mainland'."\n" - .'* overseas: global (excluding the Chinese mainland)'."\n" - .'* global: global'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'domestic', - ], + 'schema' => ['title' => '', 'description' => 'The name of the namespace.', 'type' => 'string', 'required' => true, 'example' => 'ns1'], ], [ - 'name' => 'TopLevelDomain', - 'in' => 'query', + 'name' => 'KvList', + 'in' => 'formData', + 'style' => 'json', 'schema' => [ - 'description' => 'The top-level domain.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', + 'description' => 'The list of key-value pairs to add or update. The total size cannot exceed 2 MB (2 × 1000 × 1000 bytes).', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The name of the key. The key can be up to 512 characters in length and cannot contain spaces or backslashes (/).', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'test_key'], + 'Value' => ['description' => 'The value of the key.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'test_value'], + 'Expiration' => ['description' => 'The expiration time as a UNIX timestamp in seconds. The time cannot be earlier than the current time. If you set both Expiration and ExpirationTtl, ExpirationTtl takes precedence.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'title' => '', 'example' => '1690081381'], + 'ExpirationTtl' => ['description' => 'The relative expiration time in seconds. If you set both Expiration and ExpirationTtl, ExpirationTtl takes precedence.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'title' => '', 'example' => '3600'], + ], + 'required' => true, + 'description' => '', + 'title' => '', + ], + 'required' => true, + 'maxItems' => 5000, + 'title' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The response schema.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '15C66C7B-671A-4297-9187-2C4477247A74', + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '156A6B-677B1A-4297B7-9187B7-2B44792'], + 'FailKeys' => [ + 'description' => 'A list of keys that failed to be written.', + 'type' => 'array', + 'items' => ['description' => 'A key that failed to be written.', 'type' => 'string', 'title' => '', 'example' => 'testKey1'], + 'title' => '', + ], + 'SuccessKeys' => [ + 'description' => 'A list of keys that were successfully written.', + 'type' => 'array', + 'items' => ['description' => 'A key that was successfully written.', 'type' => 'string', 'title' => '', 'example' => 'testKey2'], + 'title' => '', ], ], ], @@ -1194,347 +2641,366 @@ ], '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' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'The parameter is set to an invalid value.'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'The namespace is invalid. Check whether a namespace is specified.'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => 'The account is invalid. Check whether an account is specified.'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'The key is invalid. Check whether a key is specified.'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'The key cannot exceed 512 bytes in length.'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'The value cannot exceed 2,000,000 bytes in length.'], + ['errorCode' => 'InvalidKey.TooManyKeys', 'errorMessage' => 'request contains too many keys.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'The capacity of the namespace has reached the upper limit. Each namespace can be at most 1 GB.'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => 'An authentication parameter is set to an invalid value.'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => 'The authentication time parameter you entered is invalid. Check the parameter value and try again.'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => 'The token you entered is invalid. Please check and enter the correct token and try again.'], + ], + [ + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'The specified namespace does not exist.'], ], ], - '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' => 'BatchAddDcdnDomain', - 'description' => '**Prerequisites**:'."\n" - ."\n" - .'* The [DCDN service is activated](~~64926~~).'."\n" - .'* Internet content provider (ICP) filing is complete for the accelerated domain names.'."\n" - ."\n" - .'> * If the content of the origin server is not stored on Alibaba Cloud, the content must be reviewed. After you submit the request, the review is complete by the end of the following business day.'."\n" - .'>* You can specify up to 50 domain names in each request.'."\n" - .'>* You can call this operation up to 30 times per second per account.', - 'requestParamsDescription' => 'The following table describes the fields in the Sources parameter.'."\n" - ."\n" - .'|Field|Type|Required|Description|'."\n" - .'|---|---|---|---|'."\n" - .'|type|String|Yes|The type of the origin server. Valid values:<br>**ipaddr**: an IP address<br>**domain**: a domain name<br>**oss**: the OSS domain of an Object Storage Service (OSS) bucket<br>**fc\\_domain**: Function Compute domain name|'."\n" - .'|content|String|Yes|The address of the origin server. You can specify an IP address or a domain name.|'."\n" - .'|port|Integer|No|The port. Valid values:<br>**80**: the default port<br>**443**: the HTTPS portCustom port|'."\n" - .'|priority|String|No|The priority of the origin server if multiple origin servers are specified. Default values: 20. Valid values:<br>**20**: the primary origin server<br>**30**: the secondary origin server|'."\n" - .'|weight|String|No|The weight of the origin server if multiple origin servers are specified. You must specify a value that is less than 100. Default value: 10.|', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteDcdnDomain' => [ - 'summary' => 'Deletes a specified accelerated domain name.', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'BatchPutDcdnKv', + 'summary' => 'Adds or updates multiple key-value (KV) pairs in a specified namespace.', + 'changeSet' => [ + ['createdAt' => '2024-04-29T15:00:33.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-03-27T02:23:15.000Z', 'description' => 'Request parameters changed'], + ], + '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' => 'All Resource', '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' => 'write', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeCode' => '213941', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'Namespace', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name to be deleted. You can specify only one domain name.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The name specified when you call [](t2457197.xdita#).', 'type' => 'string', 'title' => '', 'required' => true, 'example' => 'test_namespace'], + ], + [ + 'name' => 'Url', + 'in' => 'query', + 'schema' => ['description' => 'The download link for the key-value pairs to set in a batch. This parameter is automatically generated when you call the operation using an SDK.', 'type' => 'string', 'required' => true, 'isFileTransferUrl' => true, 'example' => 'https://xxxobject.oss-cn-reginon.aliyuncs.com/9d91_xxxxxxxxxxx_158bb6e0f97c477791209bb46bd599f7', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'EEEBE525-F576-1196-8DAF-2D70CA3F4D2F'."\n"], + 'FailKeys' => [ + 'description' => 'A list of keys that failed to be written.', + 'type' => 'array', + 'items' => ['description' => 'The name of the key that failed to be written.', 'type' => 'string', 'example' => 'test_key1', 'title' => ''], + 'title' => '', + 'example' => '', + ], + 'SuccessKeys' => [ + 'description' => 'A list of keys that were successfully written.', + 'type' => 'array', + 'items' => ['description' => 'The name of the key that was successfully written.', 'type' => 'string', 'example' => 'test_key2', 'title' => ''], + 'title' => '', + 'example' => '', ], ], - 'description' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidDomainName.Malformed', - 'errorMessage' => 'The specified DomainName is invalid.', - ], - [ - 'errorCode' => 'DomainActiveInConfigGroup', - 'errorMessage' => 'The domain has been activated in config group, it cannot be deleted.', - ], + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'The parameter is set to an invalid value.'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'The namespace is invalid. Check whether a namespace is specified.'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => 'The account is invalid. Check whether an account is specified.'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'The key is invalid. Check whether a key is specified.'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'The key cannot exceed 512 bytes in length.'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'The value cannot exceed 2,000,000 bytes in length.'], + ['errorCode' => 'InvalidKey.TooManyKeys', 'errorMessage' => 'request contains too many keys.', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'The capacity of the namespace has reached the upper limit. Each namespace can be at most 1 GB.'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => 'An authentication parameter is set to an invalid value.'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => 'The authentication time parameter you entered is invalid. Check the parameter value and try again.'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => 'The token you entered is invalid. Please check and enter the correct token and try again.'], + ], + [ + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'The specified namespace does not exist.'], ], ], - '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' => 'DeleteDcdnDomain', - 'description' => '> * Before you delete your domain name, you need to request the Domain Name System (DNS) provider to restore the A record of the domain name. Otherwise, the domain name may become inaccessible after you delete it.'."\n" - .'> * If you call the **DeleteDcdnDomain** operation, all the information about the accelerated domain name is deleted. If you want to disable an accelerated domain name, call the [StopDcdnDomain](~~130622~~) operation.'."\n" - .'> * You can call this operation up to 10 times per second per account.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnDeletedDomains' => [ - 'summary' => 'Queries the domain names that are deleted from your Alibaba Cloud account.', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'BatchPutDcdnKvWithHighCapacity', + 'summary' => 'Sets multiple key-value pairs for a specified KV namespace. The request body can be up to 100 MB.', + 'description' => 'This operation provides the same functionality as [](t2491327.xdita#)but supports a larger request body. If the request body is small, use the [](t2491327.xdita#)operation to reduce server-side processing time. You must use a software development kit (SDK) to call this operation. For example, if you use the Go SDK, call the \\`BatchPutDcdnKvWithHighCapacityAdvance\\` function.'."\n" + ."\n" + .'```'."\n" + .'func TestBatchPutDcdnKvWithHighCapacity() error {'."\n" + .' // Initialize the configuration.'."\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" + .' // Construct the request for batch uploading key-value pairs.'."\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" + .' // If the payload is larger than 2 MB, call the high-capacity operation to upload.'."\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" + .'}'."\n" + .'```', + 'changeSet' => [ + ['createdAt' => '2024-06-13T06:35:32.000Z', 'description' => 'Request parameters changed'], ], - 'schemes' => [ - 'http', - 'https', + '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' => 'All Resource', '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` configures multiple domain names at once.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeNodes' => ['FEATUREdcdn2JMMUY'], ], 'parameters' => [ [ - 'name' => 'PageNumber', + 'name' => 'DomainNames', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Valid values: **1** to **100000**. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100000', - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The accelerated domain names. Separate multiple domain names with a comma. Note the following limits:'."\n" + ."\n" + .'- You can specify a maximum of 20 domain names.'."\n" + ."\n" + .'- The number of domain names multiplied by the number of features in the `Functions` parameter must not exceed 50.', 'type' => 'string', 'required' => true, 'example' => 'example.com,example.org', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'Functions', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of domain names to return on each page. Valid values: an integer from **1** to **500**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'minimum' => '1', - 'example' => '5', - 'default' => '20', - ], + 'schema' => ['description' => 'A list of up to 50 features. The value must be in the following format:'."\n" + ."\n" + .'- **functionName** (feature name): The name of the feature. For a list of configurable features, see [feature list](~~410622~~).'."\n" + ."\n" + .'- **argName**: A configuration item for the feature specified by **functionName**. You can specify multiple configuration items.'."\n" + ."\n" + .'- **argValue**: The value of the configuration item.'."\n" + ."\n" + .'- **parentid** (rule condition ID, optional): You can create a rule condition by configuring the **condition** function of the rules engine. A rule condition filters user requests based on various parameters. After a rule condition is created, a corresponding [configid](~~388994~~) is generated. You can use this configid as the value of the `ParentId` parameter to reference the rule condition in other functions. This way, you can combine rule conditions with feature configurations to create more flexible configurations. For more information, see [Parameters for domain name configuration features](~~410622~~).'."\n" + ."\n" + .'```'."\n" + .'['."\n" + .' {'."\n" + .' "functionArgs": ['."\n" + .' {'."\n" + .' "argName": "feature parameter A", '."\n" + .' "argValue": "value of feature parameter A"'."\n" + .' }, '."\n" + .' {'."\n" + .' "argName": "feature parameter B", '."\n" + .' "argValue": "value of feature parameter B"'."\n" + .' }'."\n" + .' ], '."\n" + .' "functionName": "feature name"'."\n" + .' }'."\n" + .']'."\n" + .'```', 'type' => 'string', 'required' => true, 'example' => '[{"functionArgs":[{"argName":"switch","argValue":"on"},{"argName":"region","argValue":"*"}],"functionName":"ipv6"}]', 'title' => ''], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'AA75AADB-5E25-4970-B480-EAA1F5658483', - ], - 'PageNumber' => [ - 'description' => 'The page number of the returned page, which is the same as the **PageNumber** parameter in request parameters.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => 'The number of domain names returned per page, which is the same as the **PageSize** parameter in request parameters.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '5', - ], - 'TotalCount' => [ - 'description' => 'The total number of domain names returned.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '16', - ], - 'Domains' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', 'title' => ''], + 'DomainConfigList' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'PageData' => [ - 'description' => 'The information about the accelerated domain name.'."\n", + 'DomainConfigModel' => [ + 'description' => 'The domain name configurations.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'GmtModified' => [ - 'description' => 'The time when the accelerated domain name was modified. The time follows the ISO 8601 standard in the yyyy-MM-ddThh:mm:ssZ format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2015-10-28T11:05:52Z', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], + 'ConfigId' => ['description' => 'The configuration ID. If the value is 0, the configuration failed and you must reconfigure the feature.', 'type' => 'integer', 'format' => 'int64', 'example' => '123456', 'title' => ''], + 'DomainName' => ['description' => 'The domain name.', 'type' => 'string', 'example' => 'www.example.com', 'title' => ''], + 'FunctionName' => ['description' => 'The feature name.', 'type' => 'string', 'example' => 'set_resp_header', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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.', - ], - ], - ], - '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' => 'DescribeDcdnDeletedDomains', - 'description' => '> You can call this operation up to 10 times per second per account.'."\n", - 'requestParamsDescription' => ' ', + ['errorCode' => 'InvalidFunctions.Malformed', 'errorMessage' => 'The specified Functions is invalid.', 'description' => 'The specified configuration is invalid.'], + ['errorCode' => 'InvalidArgValue.Malformed', 'errorMessage' => 'The specified ArgValue is invalid.', 'description' => 'The value specified for the ArgValue parameter is invalid.'], + ['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => '[%s] is not supported.', 'description' => 'The specified value is not supported.'], + ['errorCode' => 'Invalid%s.Malformed', 'errorMessage' => 'The specified ArgValue [%s] is invalid.', 'description' => 'The value specified for the ArgValue parameter is invalid.'], + ['errorCode' => 'MissingParameter', 'errorMessage' => 'You must specify ArgValue.', 'description' => 'A required parameter is not set.'], + ['errorCode' => 'InvalidRule.Malformed', 'errorMessage' => '%s', 'description' => '%s'], + ['errorCode' => 'InvalidHeaderKey.ValueNotSupported', 'errorMessage' => 'The specified value of parameter HeaderKey is not supported.', 'description' => 'The HeaderKey parameter is set to an invalid value.'], + ['errorCode' => 'MissingParameter%s', 'errorMessage' => 'The specified value of ArgName %s is missing.', 'description' => 'A required parameter is not set.'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'Domain already exists in high ddos.', 'description' => 'The domain name is already protected by Anti-DDoS services.'], + ['errorCode' => 'ConfigExceedLimit', 'errorMessage' => 'Count of config entries exceeds the limit.', 'description' => 'The number of features exceeds the limit.'], + ['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' => 'The extension has a background configuration or a configured parameter 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.', 'description' => 'A background custom rule exists or a configured parameter is invalid. For more information, submit a ticket.'], + ['errorCode' => 'EdgeScriptNotSupportJs', 'errorMessage' => 'JavaScript rules are not supported. For more information, submit a ticket.', 'description' => 'JavaScript rules are not supported. For more information, submit a ticket.'], + ['errorCode' => 'ServiceInvokeFailed', 'errorMessage' => 'Failed to invoke service.', 'description' => 'An error occurred while invoking internal services.'], + ['errorCode' => 'ConfigParentExceedLimit', 'errorMessage' => 'Config Parent exceed limit.', 'description' => ''], + ['errorCode' => 'BatchSetBusinessError', 'errorMessage' => 'some configs error:%s', 'description' => ''], + ['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' => ''], + ['errorCode' => 'Domain.DDosAlreadyExists', 'errorMessage' => 'This specified domain has been in DDoS.', 'description' => ''], + ['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' => ''], + ], + ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'BatchSetDcdnDomainConfigs', + 'description' => '- The rate limit is 30 calls per second per account.', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'VerifyDcdnDomainOwner' => [ - 'summary' => 'Verifies the ownership of a domain name.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2023-10-10T02:13:33.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-08-17T03:49:12.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-07-26T09:39:05.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-13T04:55:51.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-06-13T02:28:13.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-05-23T03:11:42.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-15T07:31:17.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-11-24T06:47:17.000Z', 'description' => 'Error codes changed'], ], - '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' => 'Configures IP Application Acceleration (IPA) for multiple domain names in a single operation.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1542,106 +3008,115 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111626', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeNodes' => ['FEATUREdcdn2JMMUY'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'DomainNames', 'in' => 'query', - 'schema' => [ - 'description' => 'The domain name of which you want to verify the ownership. You can specify only one domain name in each call.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '**example**.com', - ], + 'schema' => ['description' => 'The domain names to configure for IPA. Separate multiple domain names with a comma (,).'."\n" + ."\n" + .'- You can specify a maximum of 20 domain names.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], [ - 'name' => 'VerifyType', + 'name' => 'Functions', 'in' => 'query', - 'schema' => [ - 'description' => 'The verification method. Valid values:'."\n" - ."\n" - .'* **dnsCheck**: by DNS record'."\n" - .'* **fileCheck**: by verification file'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'dnsCheck', - ], + 'schema' => ['description' => 'The functions to configure, specified as a JSON string. Format: `[{"functionArgs":[{"argName":"Configuration Name","argValue":"Configuration Value"}],"functionName":"Function Name"}]`', 'type' => 'string', 'required' => true, 'example' => '[{"functionArgs":[{"argName":"domain_name","argValue":"api.*com"}],"functionName":"protogw"}]', 'title' => ''], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => 'The verification result.'."\n", - 'type' => 'string', - 'example' => 'verify_dffeb6610035dcb77b413a59c32cd9**', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB', - ], + 'RequestId' => ['description' => 'The unique ID of the request.', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', 'title' => ''], ], + 'description' => 'The response parameters.', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'DomainOwnerVerifyFail', - 'errorMessage' => 'Owner verification of the root domain failed.', - ], + ['errorCode' => 'InvalidFunctions.Malformed', 'errorMessage' => 'The specified Functions is invalid.', 'description' => 'The specified configuration is invalid.'], + ['errorCode' => 'InvalidArgValue.Malformed', 'errorMessage' => 'The specified ArgValue is invalid.', 'description' => 'The value specified for the ArgValue parameter is invalid.'], + ['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => '[%s] is not supported.', 'description' => 'The specified value is not supported.'], + ['errorCode' => 'Invalid%s.Malformed', 'errorMessage' => 'The specified ArgValue [%s] is invalid.', 'description' => 'The value specified for the ArgValue parameter is invalid.'], + ], + 403 => [ + ['errorCode' => 'DcdnIpaServiceNotFound', 'errorMessage' => 'The DCDN IPA service has not been activated.', 'description' => 'IPA is not activated for DCDN.'], ], ], - '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' => 'VerifyDcdnDomainOwner', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","type":"json"}]', + 'title' => 'BatchSetDcdnIpaDomainConfigs', + 'description' => '> The request rate for this operation is limited to 20 requests per second per user.', + 'requestParamsDescription' => '**Features**'."\n" + ."\n" + .'| Name | Parameter |'."\n" + .'| ------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| protogw: IP Application Acceleration (IPA) | `realip` (Required): Specifies the method for passing the client\'s real IP to the origin server. The following methods are supported:<br>• `off`: Disables Origin IP Passthrough.<br>• `toa`: Passes the client\'s real IP address to the origin server. The TOA Kernel Module must be installed on the origin server. No application modifications are required.<br>• `pp`: Passes the client\'s real IP address to the origin server. This method is enabled by default in open-source Nginx. Ensure compatibility if you use other server software.<br>`port` (Required): The service port. |', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnVerifyContent' => [ - 'summary' => 'Queries the ownership verification content of a domain name.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchSetDcdnIpaDomainConfigs'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:BatchSetDcdnIpaDomainConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + ], + 'BatchSetDcdnWafDomainConfigs' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The domain name for which you want to query the ownership verification content. You can specify only one domain name in one request.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '**example**.com', - ], + 'name' => 'DomainNames', + 'in' => 'formData', + 'schema' => ['description' => 'The domain names for which you want to change the protection status. You can specify up to 50 domain names. Separate multiple domain names with commas (,).', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com,example2.com'], + ], + [ + 'name' => 'DefenseStatus', + 'in' => 'formData', + 'schema' => ['description' => 'The protection status. Valid values: \\`on\\`, \\`off\\`, or empty.'."\n" + ."\n" + .'- **on**: Enables protection for the domain names. The \\`ClientIpTag\\` parameter takes effect. If you use the default header, \\`ClientIpTag\\` is empty. If you use a custom header, \\`ClientIpTag\\` is set to the specified value.'."\n" + ."\n" + .'- **off**: Disables protection for the domain names. The \\`ClientIpTag\\` parameter does not take effect.'."\n" + ."\n" + .'- empty: Leave this parameter empty if you only want to modify the \\`ClientIpTag\\` parameter.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'on'], + ], + [ + 'name' => 'ClientIpTag', + 'in' => 'formData', + 'schema' => ['description' => 'The header used to obtain the client IP address. If you use the default header, leave this parameter empty. If you use a custom header, set this parameter to the header name. You can specify up to five header names. Separate them with commas (,).', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'X-Forwarded-For'], ], ], 'responses' => [ @@ -1649,38 +3124,58 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => 'The verification result.'."\n", - 'type' => 'string', - 'example' => 'verify_dffeb6610035dcb78b413a59c31cd9**', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB', - ], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => 'CB1A380B-09F0-41BB-3C82-72F8FD6DA2FE'], ], 'description' => '', + 'title' => '', ], ], ], - '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' => 'DescribeDcdnVerifyContent', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'StartDcdnDomain' => [ - 'summary' => 'Enables a specified disabled accelerated domain. After the accelerated domain is enabled, the value of the DomainStatus parameter changes to Online for the domain.', - 'methods' => [ - 'get', - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ], + 403 => [ + ['errorCode' => 'DomainInProtectedMode', 'errorMessage' => 'The domain is in protection mode. To request permission, contact Customer Service.', 'description' => 'The specified domain name is in the protected mode. If you must perform this operation, contact customer service.'], + ['errorCode' => '%s.NotSupport', 'errorMessage' => 'The specified resource type %s is not supported.', 'description' => 'The specified resource type is not supported. To use this type of resource, contact us.'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => 'The number of resources exceeds the quota. If you want to apply for more resources, contact us.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => 'An internal error occurred. Try again later. If the error persists, submit a ticket.'], + ], + ], + 'title' => 'BatchSetDcdnWafDomainConfigs', + 'summary' => 'Call BatchSetDcdnWafDomainConfigs to set the protection status for multiple domain names in a batch.', + 'description' => '> - The maximum call frequency for a single user is 20 calls per second.'."\n" + .'>'."\n" + .'> - This operation supports POST requests.', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:15.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + '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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-3C82-72F8FD6DA2FE\\"\\n}","type":"json"}]', + ], + 'BatchStartDcdnDomain' => [ + 'summary' => 'Enables multiple disabled accelerated domain names in a batch. This operation changes the DomainStatus to online.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1691,20 +3186,13 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'DomainNames', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. You can specify only one domain name in each request.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain names. Separate multiple domain names with commas (,).', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], ], ], 'responses' => [ @@ -1712,53 +3200,54 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', - ], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], ], 'description' => '', + 'title' => '', ], ], ], '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' => 'RecordCheckNotAvailable', 'errorMessage' => 'The ICP filing interface is unavailable. Please try again later.', 'description' => 'The operation for ICP filing is unavailable. Try again later.'], + ['errorCode' => 'IcpBlack', 'errorMessage' => 'The domain is on the ICP blacklist.', 'description' => 'The domain name is on the blacklist of the MIIT.'], + ['errorCode' => 'IspBlack', 'errorMessage' => 'The domain is on the ISP blacklist.', 'description' => 'The domain name is on the blacklist of Alibaba Cloud.'], ], ], - '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' => 'StartDcdnDomain', - 'description' => '> '."\n" - ."\n" - .'* If an accelerated domain name is in invalid state or your account has an overdue payment, the accelerated domain name cannot be enabled.'."\n" - ."\n" - .'* You can call this operation up to 30 times per second per account.'."\n", + 'title' => 'BatchStartDcdnDomain', + 'description' => '> - You cannot call this operation to enable an accelerated domain name if the domain name is invalid or the associated account has an overdue payment.'."\n" + .'>'."\n" + .'> - A maximum of 50 domain names can be enabled in a single request.'."\n" + .'>'."\n" + .'> - The call frequency for a single user is limited to 30 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchStartDcdnDomain' => [ - 'summary' => 'Enables one or more accelerated domain names. After the accelerated domain names are enabled, the value of the DomainStatus parameter for the domain names changes to Online.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchStartDcdnDomain'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:BatchStartDcdnDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","type":"json"}]', + ], + 'BatchStopDcdnDomain' => [ + 'summary' => 'Disables one or more accelerated domain names and changes their status to offline.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1769,20 +3258,13 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ 'name' => 'DomainNames', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. You can specify multiple accelerated domain names and separate them with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain names that you want to disable. Separate multiple domain names with commas (,).', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], ], ], 'responses' => [ @@ -1790,81 +3272,70 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', - ], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], ], 'description' => '', + 'title' => '', ], ], ], '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' => 'DomainNameOverLimit', 'errorMessage' => 'A maximum of 50 domains is supported for each request.', 'description' => 'The number of domain names cannot exceed 50. Reduce domain names and try again.'], ], ], - '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' => 'BatchStartDcdnDomain', - 'description' => '> '."\n" - ."\n" - .'* If an accelerated domain name is in an invalid state or your account has an overdue payment, the accelerated domain name cannot be enabled.'."\n" - ."\n" - .'* You can specify up to 50 domain names in each request.'."\n" - ."\n" - .'* You can call this operation up to 30 times per second per account.'."\n", + 'title' => 'BatchStopDcdnDomain', + 'description' => '> - After you disable an accelerated domain name, its configuration information is retained. However, Alibaba Cloud DCDN stops providing acceleration for the domain name. The domain name is resolved to an invalid address, \\`offline.\\*\\*\\*.com\\`, and becomes inaccessible.'."\n" + .'>'."\n" + .'> - You can specify a maximum of 50 domain names in a single request.'."\n" + .'>'."\n" + .'> - The API call frequency is limited to 30 calls per second for each user.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'StopDcdnDomain' => [ - 'summary' => 'Disables a specified accelerated domain. After the accelerated domain is disabled,'."\n" - .' the value of the DomainStatus parameter changes to Offline for the domain.'."\n" - .' ', - '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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","type":"json"}]', + ], + 'CheckDcdnProjectExist' => [ + 'summary' => 'Checks whether a real-time log delivery project exists.', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeCode' => '111444', + 'abilityTreeNodes' => ['FEATUREdcdn9K10I1'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'ProjectName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name that you want to disable. You can specify only one domain name in each request.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The name of a real-time log delivery project.', 'type' => 'string', 'required' => true, 'example' => 'example', 'title' => ''], ], ], 'responses' => [ @@ -1872,37 +3343,61 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'b021e538-9dde-46ed-a1f2-9469da8f3e77', 'title' => ''], + 'Content' => [ + 'description' => 'The returned results.', + 'type' => 'object', + 'properties' => [ + 'Exist' => ['description' => 'Indicates whether the real-time log delivery project exists. Valid values:'."\n" + ."\n" + .'- **false**'."\n" + ."\n" + .'- **true**', 'type' => 'string', 'example' => 'false', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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' => 'StopDcdnDomain', - 'description' => '> '."\n" - ."\n" - .'* After an accelerated domain is disabled, Dynamic Content Delivery Network (DCDN) retains its information and routes all the requests that are destined for the accelerated domain to the origin server.'."\n" - ."\n" - .'* You can call this operation up to 30 times per second per account.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'BatchStopDcdnDomain' => [ - 'summary' => 'Disables one or more accelerated domain names. After an accelerated domain name is disabled, the value of the DomainStatus parameter for the domain name changes to Offline.', - 'methods' => [ - 'get', - 'post', + 'errorCodes' => [ + 500 => [ + ['errorCode' => 'Internal Exception', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'Internal error, please try again later or contact us.'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'title' => 'CheckDcdnProjectExist', + 'description' => '> Each account can call this operation up to 100 times per second.', + 'changeSet' => [ + ['createdAt' => '2024-12-18T07:22:52.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CheckDcdnProjectExist'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:CheckDcdnProjectExist', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"b021e538-9dde-46ed-a1f2-9469da8f3e77\\",\\n \\"Content\\": {\\n \\"Exist\\": \\"false\\"\\n }\\n}","type":"json"}]', + ], + 'CommitStagingRoutineCode' => [ + 'summary' => 'You can call the CommitStagingRoutineCode operation to promote a staging version of your JavaScript (JS) code to the production environment.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1913,20 +3408,19 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeCode' => '111446', + 'abilityTreeNodes' => ['FEATUREdcdn75UYDO'], ], 'parameters' => [ [ - 'name' => 'DomainNames', - 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain names. If you need to specify multiple accelerated domain names, separate domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the EdgeRoutine function. The name must be unique within an Alibaba Cloud account.', 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''], + ], + [ + 'name' => 'CodeDescription', + 'in' => 'formData', + 'schema' => ['description' => 'The description of the code version.', 'type' => 'string', 'required' => true, 'example' => 'Hello World', 'title' => ''], ], ], 'responses' => [ @@ -1934,474 +3428,495 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', - ], + 'Content' => ['description' => 'The version number of the code.', 'type' => 'object', 'example' => '1620876959997924701', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5CC228B4-7A67-4016-9C9F-4A4133494A91', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'DomainNameOverLimit', - 'errorMessage' => 'A maximum of 50 domains is supported for each request.', - ], + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => 'A server error occurred. Try again later. If the error persists, submit a ticket.'], ], ], - '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' => 'BatchStopDcdnDomain', - 'description' => '> * After an accelerated domain name is disabled, Dynamic Content Delivery Network (DCDN) retains the domain name information. The system automatically reroutes all requests that are destined for the accelerated domain name to the origin.'."\n" - .'>* You can specify up to 50 domain names in each request.'."\n" - .'>* You can call this operation up to 30 times per second per account.', + 'title' => 'CommitStagingRoutineCode', + 'description' => '> The call frequency for this operation is limited to 100 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnUserDomains' => [ - 'summary' => 'Queries the accelerated domain names that belong to your Alibaba Cloud account. You can filter domains by name or by status. Fuzzy match is supported when you filter domains by name.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CommitStagingRoutineCode'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:CommitStagingRoutineCode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": 1620876959997924600,\\n \\"RequestId\\": \\"5CC228B4-7A67-4016-9C9F-4A4133494A91\\"\\n}","type":"json"}]', + ], + 'CreateDcdnCertificateSigningRequest' => [ + 'summary' => 'You can call CreateDcdnCertificateSigningRequest to create a Certificate Signing Request (CSR) file.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111558', - 'abilityTreeNodes' => [ - 'FEATUREdcdnWQK30N', - ], + 'abilityTreeCode' => '204191', + 'abilityTreeNodes' => ['FEATUREdcdnX7NWEB'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'PageSize', + 'name' => 'CommonName', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Default value: **20**. Valid values: **1** to **500**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'example' => '20', - 'default' => '20', - ], + 'schema' => ['description' => 'The common name of the certificate.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'SANs', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of returned pages. Valid values: **1** to **100000**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The Subject Alternative Names (SANs) for the certificate. These are the domain names that are bound to the certificate. Use a comma (,) to separate multiple domain names.', 'type' => 'string', 'required' => false, 'example' => 'example.com,example.org', 'title' => ''], ], [ - 'name' => 'DomainName', + 'name' => 'Organization', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain names. If you do not set this parameter, configurations of all domain names that match the conditions are returned.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - 'maxLength' => 6800, - ], + 'schema' => ['description' => 'The name of the organization. The default value is Alibaba Inc.', 'type' => 'string', 'required' => false, 'default' => 'Alibaba Inc.', 'example' => 'Alibaba Inc', 'title' => ''], ], [ - 'name' => 'DomainStatus', + 'name' => 'OrganizationUnit', 'in' => 'query', - 'schema' => [ - 'description' => 'The status of the domain name. Valid values:'."\n" - ."\n" - .'* **online**: enabled'."\n" - .'* **offline**: disabled'."\n" - .'* **configuring**: configuring'."\n" - .'* **configure_failed**: configuration failed'."\n" - .'* **checking**: reviewing'."\n" - .'* **check_failed:** review failed'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'online', - ], + 'schema' => ['description' => 'The name of the department. The default value is Aliyun CDN.', 'type' => 'string', 'required' => false, 'default' => 'Aliyun CDN', 'example' => 'Aliyun CDN', 'title' => ''], ], [ - 'name' => 'DomainSearchType', + 'name' => 'Country', 'in' => 'query', - 'schema' => [ - 'description' => 'The search method. Default value: full_match. Valid values:'."\n" - ."\n" - .'* **fuzzy_match**: fuzzy match'."\n" - .'* **pre_match**: prefix match'."\n" - .'* **suf_match**: suffix match'."\n" - .'* **full_match** (default): exact match'."\n" - ."\n" - .'> If you specify the domain names to query but do not set the DomainSearchType parameter, the exact match mode is used.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'fuzzy_match', - ], + 'schema' => ['description' => 'The country. The default value is CN.', 'type' => 'string', 'required' => false, 'default' => 'CN', 'example' => 'CN', 'title' => ''], ], [ - 'name' => 'CheckDomainShow', + 'name' => 'State', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to display domain names that are under review, failed the review, or failed to be configured. Valid values:'."\n" - ."\n" - .'* true: displays domain names.'."\n" - .'* false: does not display detailed information.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The province or state. The default value is Zhejiang.', 'type' => 'string', 'required' => false, 'default' => 'Zhejiang', 'example' => 'Zhejiang', 'title' => ''], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'City', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmv6jutt**', - ], + 'schema' => ['description' => 'The city. The default value is Hangzhou.', 'type' => 'string', 'required' => false, 'default' => 'Hangzhou', 'example' => 'Hangzhou', 'title' => ''], ], [ - 'name' => 'ChangeStartTime', + 'name' => 'Email', 'in' => 'query', + 'schema' => ['description' => 'The email address.', 'type' => 'string', 'required' => false, 'example' => 'username@example.com', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC+0.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-05-10T12:00:00Z', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', 'title' => ''], + 'PubMd5' => ['description' => 'The MD5 hash of the public key of the certificate.', 'type' => 'string', 'example' => '629bf4fd8104eda171135bcb0f77a10b', 'title' => ''], + 'Csr' => ['description' => 'The content of the CSR file.', 'type' => 'string', 'example' => '-----BEGIN CERTIFICATE REQUEST-----\\nMIIC/zCCAecCAQAwZTELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAlpKMQswCQYDVQQH', 'title' => ''], + 'CommonName' => ['description' => 'The common name of the certificate.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['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' => ''], + ], + ], + 'title' => 'CreateDcdnCertificateSigningRequest', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDcdnCertificateSigningRequest'], + ], + ], + 'ramActions' => [ [ - 'name' => 'ChangeEndTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC+0.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-05-10T14:00:00Z', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:CreateDcdnCertificateSigningRequest', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => 'Call CreateDcdnDeliverTask to create a report tracking task. After you subscribe, the system periodically sends statistical reports to you by email.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Coverage', - 'in' => 'query', - 'schema' => [ - 'description' => 'The acceleration region. By default, all acceleration regions are queried.'."\n" - ."\n" - .'* **domestic**: Chinese mainland'."\n" - .'* **overseas**: outside the Chinese mainland'."\n" - .'* **global**: global'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'domestic', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREdcdnZZCERX'], + ], + 'parameters' => [ [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'repeatList', + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the tracking task.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'Domain subscription'], + ], + [ + 'name' => 'Reports', + 'in' => 'formData', + 'schema' => ['description' => 'A list of reports to which you want to subscribe. The value must be a JSON-escaped string.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '[{\\"reportId\\":2,\\"conditions\\":[{\\"field\\":\\"prov\\",\\"op\\":\\"in\\",\\"value\\":[\\" Heilongjiang\\",\\" Beijing\\"]}]}]'], + ], + [ + 'name' => 'DomainName', + 'in' => 'formData', + 'schema' => ['description' => '<props="china">'."\n" + ."\n" + .'The list of domain names to subscribe to. Separate multiple domain names with a comma (,). The subscription limit is 500 domain names. To subscribe to more than 500 domain names, please [fill out the information](https://page.aliyun.com/form/act2017566026/index.htm) to submit a request.'."\n" + ."\n" + .'</props>'."\n" + ."\n" + .'<props="intl">'."\n" + ."\n" + .'The domain names for the subscription. Separate multiple domain names with commas (,). The maximum number of domain names for a subscription is 500. To subscribe to more than 500 domain names, [submit a ticket](https://workorder-intl.console.aliyun.com/?spm=5176.2020520001.aliyun_topbar.18.dbd44bd3e4f845#/ticket/createIndex).'."\n" + ."\n" + .'</props>'."\n" + ."\n" + .'> If you do not specify this parameter, reports for all domain names that are associated with your account are delivered by default.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'example.com,example.org'], + ], + [ + 'name' => 'Deliver', + 'in' => 'formData', + 'schema' => ['description' => 'The method used to send reports. Only email is supported. The value must be a JSON-escaped string.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '{"email":{"subject":"Topic name","to":["username@example.com","username@example.org"]}}'], + ], + [ + 'name' => 'Schedule', + 'in' => 'formData', + 'schema' => ['description' => 'The parameters for the subscription cycle. The value must be a JSON-escaped string.', 'type' => 'string', 'required' => true, 'title' => '', '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' => [ - 'description' => 'The list of tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'Description of the tags.'."\n", - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. Valid values of N: **1** to **20**. You can call the TagDcdnResources operation to set a tag for a domain name.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], - 'Value' => [ - 'description' => 'The tag value. Valid values of N: **1** to **20**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], - ], - 'required' => false, + 'type' => 'object', + 'properties' => [ + 'DeliverId' => ['description' => 'The ID of the tracking task.', 'type' => 'string', 'title' => '', 'example' => '92'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], - 'required' => false, - 'maxItems' => 20, + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'TimeParseFailed', 'errorMessage' => 'Failed to parse the time parameter.', 'description' => 'Failed to parse the time parameter.'], + ['errorCode' => 'SubscriptionNotFound', 'errorMessage' => 'The subscription is not found.', 'description' => 'The subscription is not found.'], + ['errorCode' => 'NameAlreadyExists', 'errorMessage' => 'The name already exists.', 'description' => 'The name already exists.'], + ['errorCode' => 'DeliverExceedLimit', 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', 'description' => 'The number of tracking tasks has reached the upper limit.'], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DeliverId\\": \\"92\\",\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]', + 'title' => 'CreateDcdnDeliverTask', + 'description' => '> The throttling limit for a single user is 3 calls per second.', + 'requestParamsDescription' => '**Reports**'."\n" + ."\n" + .'| Parameter | Type | Required | Description |'."\n" + .'| ---------- | ----------- | -------- | ------------------------------------- |'."\n" + .'| reportId | String | Yes | The report ID. |'."\n" + .'| conditions | ConDatas\\[] | No | The filter conditions for the report. |'."\n" + ."\n" + .'**Conditions**'."\n" + ."\n" + .'| Parameter | Type | Required | Description |'."\n" + .'| --------- | --------- | -------- | ---------------------------------------------- |'."\n" + .'| field | String | No | The filter field. |'."\n" + .'| op | String | No | The filter operator. Only **in** is supported. |'."\n" + .'| value | String\\[] | No | An array of field values. |'."\n" + ."\n" + .'**Deliver**'."\n" + ."\n" + .'| Parameter | Type | Required | Description |'."\n" + .'| --------- | --------- | -------- | -------------------------------------- |'."\n" + .'| subject | String | No | The subject of the subscription email. |'."\n" + .'| to | String\\[] | Yes | An array of recipient email addresses. |'."\n" + ."\n" + .'**Schedule**'."\n" + ."\n" + .'| Parameter | Type | Required | Description |'."\n" + .'| ------------- | ------ | -------- | ---------------------------------------------------------------------------------------------------------- |'."\n" + .'| schedName | String | No | The name of the tracking task. |'."\n" + .'| description | String | No | The description of the tracking task. |'."\n" + .'| crontab | String | Yes | The execution cycle of the tracking task. |'."\n" + .'| frequency | String | Yes | The execution frequency. Valid values: h: hour d: day w: week |'."\n" + .'| status | String | No | The status of the tracking task. Valid values: enable: The task is enabled. disable: The task is disabled. |'."\n" + .'| effectiveFrom | String | No | The start time of the delivery task. |'."\n" + .'| effectiveEnd | String | No | The end time of the delivery task. |', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDcdnDeliverTask'], + ], + ], + 'ramActions' => [ [ - 'name' => 'WebSiteType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The business type of the domain. Separate multiple values with commas (,). Default value: **dynamic**. To query common domains, keep the default value. To query domains of the computing business type, enter **computing_routine** or **computing_image**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'computing_routine', - 'default' => 'dynamic', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:CreateDcdnDeliverTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'DeliverTask', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], ], ], ], + 'translator' => 'machine', + ], + 'CreateDcdnSLSRealTimeLogDelivery' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '111450', + 'abilityTreeNodes' => ['FEATUREdcdn9K10I1'], + ], + 'parameters' => [ + [ + 'name' => 'ProjectName', + 'in' => 'formData', + 'schema' => ['description' => 'The name of a real-time log delivery project.', 'type' => 'string', 'required' => true, 'example' => 'example', 'title' => ''], + ], + [ + 'name' => 'DomainName', + 'in' => 'formData', + 'schema' => ['description' => 'The domain names from which logs were collected. You can specify one or more domain names. Separate multiple domain names with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], + ], + [ + 'name' => 'SamplingRate', + 'in' => 'formData', + 'schema' => ['description' => 'The sampling rate.', 'type' => 'string', 'required' => false, 'example' => '1.0', 'title' => ''], + ], + [ + 'name' => 'SLSRegion', + 'in' => 'formData', + 'schema' => ['description' => 'The region to which real-time logs are delivered.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], + ], + [ + 'name' => 'SLSProject', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the Log Service project.', 'type' => 'string', 'required' => true, 'example' => 'aliyundoc', 'title' => ''], + ], + [ + 'name' => 'SLSLogStore', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the Log Service Logstore.', 'type' => 'string', 'required' => true, 'example' => 'demo', 'title' => ''], + ], + [ + 'name' => 'DataCenter', + 'in' => 'formData', + 'schema' => ['description' => 'The data center. Valid values:'."\n" + ."\n" + .'- cn: China'."\n" + ."\n" + .'- sg: Singapore'."\n" + ."\n" + .'- eu: Europe'."\n" + ."\n" + .'- us: United States', 'type' => 'string', 'required' => true, 'example' => 'cn', 'title' => ''], + ], + [ + 'name' => 'BusinessType', + 'in' => 'formData', + 'schema' => ['description' => 'The type of the collected logs. Default value: cdn\\_log\\_access\\_l1. Valid values:'."\n" + ."\n" + .'- **cdn\\_log\\_access\\_l1**: access logs of Dynamic Content Delivery Network (DCDN) points of presence (POPs)'."\n" + ."\n" + .'- **cdn\\_log\\_origin**: back-to-origin logs'."\n" + ."\n" + .'- **cdn\\_log\\_er**: EdgeRoutine logs', 'type' => 'string', 'required' => false, 'default' => 'dcdn_log_access_l1', 'example' => 'cdn_log_access_l1', 'title' => ''], + ], + ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'AA75AADB-5E25-4970-B480-EAA1F5658483', - ], - 'PageNumber' => [ - 'description' => 'The page number of the returned page.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '12', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '12', - ], - 'Domains' => [ + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'F32C57AA-7BF8-49AE-A2CC-9F42390F5A19', 'title' => ''], + 'Content' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'PageData' => [ - 'description' => 'The information about the queried domains.'."\n", + 'Domains' => [ + 'description' => 'The configuration results of the domain name.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'GmtCreated' => [ - 'description' => 'The time when the domain was added to DCDN.'."\n", - 'type' => 'string', - 'example' => '2015-10-28T11:05:50Z', - ], - 'Description' => [ - 'description' => 'The reason why the domain failed the review.'."\n", - 'type' => 'string', - 'example' => 'audit failed', - ], - 'SSLProtocol' => [ - 'description' => 'Indicates whether HTTPS was enabled.'."\n" - ."\n" - .'* **on**: enabled.'."\n" - .'* **off**: disabled.'."\n", - 'type' => 'string', - 'example' => 'on', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmv6jutt**', - ], - 'Sandbox' => [ - 'description' => 'The sandbox status.'."\n", - 'type' => 'string', - 'example' => 'normal', - ], - 'DomainStatus' => [ - 'description' => 'The domain status.'."\n" - ."\n" - .'* **online**: The domain is active.'."\n" - .'* **offline**: The domain is suspended.'."\n" - .'* **configuring**: The domain is being configured.'."\n" - .'* **configure_failed**: The domain failed to be configured.'."\n" - .'* **checking**: The domain is under review.'."\n" - .'* **check_failed**: The domain failed the review.'."\n", - 'type' => 'string', - 'example' => 'online', - ], - 'Cname' => [ - 'description' => 'The CNAME of the domain.'."\n", - 'type' => 'string', - 'example' => 'test.aliyun.com.w.alikunlun.com', - ], - 'GmtModified' => [ - 'description' => 'The time when the domain was modified.'."\n", - 'type' => 'string', - 'example' => '2015-10-28T09:31:59Z', - ], - 'DomainName' => [ - 'description' => 'The domain name.'."\n", - 'type' => 'string', - 'example' => 'www.example.com', - ], - 'DomainId' => [ - 'description' => 'The domain ID.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '11223344', - ], - 'Sources' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Source' => [ - 'description' => 'The information about the origin servers.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => 'The type of the origin server.'."\n", - 'type' => 'string', - 'example' => 'oss', - ], - 'Weight' => [ - 'description' => 'The weight of the origin server.'."\n", - 'type' => 'string', - 'example' => '20', - ], - 'Priority' => [ - 'description' => 'The priority of the origin server.'."\n", - 'type' => 'string', - 'example' => '20', - ], - 'Port' => [ - 'description' => 'The port of the origin server.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'Content' => [ - 'description' => 'The address of the origin server.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - ], - 'description' => '', - ], - ], - ], - ], - 'Scene' => [ - 'description' => 'The acceleration scenario. Valid values:'."\n" - ."\n" - .'* **apiscene**: accelerates response to API calls.'."\n" - .'* **webservicescene**: accelerates content delivery for websites.'."\n" - .'* **staticscene**: accelerates the delivery of videos, images, and text.'."\n" - .'* **If you leave this parameter empty, no scenarios are supported.'."\n", - 'type' => 'string', - 'example' => 'apiscene', - ], - 'FunctionType' => [ - 'description' => 'The computing service type. Valid values:'."\n" - ."\n" - .'* **routine**'."\n" - .'* **image**'."\n" - .'* **cloudFunction**'."\n", - 'type' => 'string', - 'example' => 'routine', - ], + 'Status' => ['description' => 'The status of real-time logs.', 'type' => 'string', 'example' => 'success', 'title' => ''], + 'DomainName' => ['description' => 'The domain name from which real-time logs were collected.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'Region' => ['description' => 'The region to which real-time logs were delivered.', 'type' => 'string', 'example' => 'cn', 'title' => ''], + 'Desc' => ['description' => 'The description of the returned result.', 'type' => 'string', 'example' => 'ok', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'The parameter is set to an invalid value.'], + ], + 500 => [ + ['errorCode' => 'Internal Exception', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'Internal error, please try again later or contact us.'], ], ], - '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' => 'DescribeDcdnUserDomains', - 'description' => '> You can call this operation up to 80 times per second per account.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainDetail' => [ - 'summary' => 'Queries the basic configuration information about an accelerated domain name.', - 'methods' => [ - 'get', - 'post', + 'title' => 'CreateDcdnSLSRealTimeLogDelivery', + 'summary' => 'Creates a real-time log delivery project.', + 'description' => '> Each account can call this operation up to 100 times per second.', + 'changeSet' => [ + ['createdAt' => '2024-12-18T07:22:51.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-12-04T08:12:41.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + '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}'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'CreateDcdnSubTask' => [ + 'summary' => 'You can call the CreateDcdnSubTask operation to customize operations reports.', + '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' => 'ReportIds', + 'in' => 'formData', + 'schema' => ['description' => 'The IDs of the reports that you want to customize. Separate multiple IDs with a comma (,). Valid values:'."\n" + ."\n" + .'- **2**: Top URLs sorted by number of requests.'."\n" + .'- **4**: Top URLs sorted by traffic.'."\n" + .'- **6**: Top referers sorted by number of requests.'."\n" + .'- **8**: Top referers sorted by traffic.'."\n" + .'- **10**: Top back-to-origin URLs sorted by number of requests.'."\n" + .'- **12**: Top back-to-origin URLs sorted by traffic.'."\n" + .'- **14**: Top client IP addresses sorted by number of requests.'."\n" + .'- **16**: Top client IP addresses sorted by traffic.'."\n" + .'- **18**: Top domain names sorted by traffic.'."\n" + .'- **20**: Page views (PVs) and unique visitors (UVs).'."\n" + .'- **22**: Distribution of client locations.'."\n" + .'- **24**: Distribution of carriers.'."\n" + .'- **26**: Peak bandwidth for IPv4 and IPv6.'."\n" + .'- **27**: Back-to-origin bandwidth.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '2,4,6'], + ], + [ 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. You can specify only one domain name.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'in' => 'formData', + 'schema' => ['description' => '<props="china">'."\n" + ."\n" + .'The domain names that you want to subscribe to. Separate multiple domain names with a comma (,). You can specify a maximum of 500 domain names. To subscribe to more than 500 domain names, [submit an application](https://page.aliyun.com/form/act2017566026/index.htm).'."\n" + ."\n" + .'</props>'."\n" + ."\n" + .'<props="intl">'."\n" + ."\n" + .'The domain names for which you want to subscribe to reports. Separate multiple domain names with a comma (,). You can specify up to 500 domain names at a time. To add more than 500 domain names, [submit a ticket](https://workorder-intl.console.aliyun.com/?spm=5176.2020520001.aliyun_topbar.18.dbd44bd3e4f845#/ticket/createIndex).'."\n" + ."\n" + .'</props>'."\n" + ."\n" + .'> If you do not specify this parameter, reports for all domain names under your account are subscribed to by default.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'example.com,example.org'], ], ], 'responses' => [ @@ -2409,275 +3924,206 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '09ABE829-6CD3-4FE0-AFEE-556113E29727', - ], - 'DomainDetail' => [ - 'description' => 'The information about the accelerated domain name.'."\n", - 'type' => 'object', - 'properties' => [ - 'GmtCreated' => [ - 'description' => 'The time when the domain name was added.'."\n", - 'type' => 'string', - 'example' => '2017-11-27T06:51:26Z', - ], - 'SSLPub' => [ - 'description' => 'The public key of the certificate if HTTPS is enabled.'."\n", - 'type' => 'string', - 'example' => 'xxx', - ], - 'Description' => [ - 'description' => 'The information about the Internet content provider (ICP) filing of the domain name.'."\n", - 'type' => 'string', - 'example' => 'Beijing ICP Filing No. 1703xxxx'."\n", - ], - 'SSLProtocol' => [ - 'description' => 'Indicates whether the Security Socket Layer (SSL) certificate is enabled. Valid values:'."\n" - ."\n" - .'* **on**: **enabled**'."\n" - .'* **off**: **disabled**'."\n", - 'type' => 'string', - 'example' => 'on', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmyuji4b6r4**', - ], - 'Scope' => [ - 'description' => 'The acceleration region. Default value: domestic. Valid values:'."\n" - ."\n" - .'* **domestic**: Chinese mainland'."\n" - .'* **overseas**: global (excluding the Chinese mainland)'."\n" - .'* **global**: global'."\n", - 'type' => 'string', - 'example' => 'overseas', - ], - 'Cname' => [ - 'description' => 'The CNAME that is assigned to the accelerated domain name. You must add the CNAME record to the system of your Domain Name System (DNS) provider to map the accelerated domain name to the CNAME.'."\n", - 'type' => 'string', - 'example' => 'example.aliyundoc.com', - ], - 'DomainStatus' => [ - 'description' => 'The status of the accelerated domain name. Valid values:'."\n" - ."\n" - .'* **online**'."\n" - .'* **offline**'."\n" - .'* **configuring**'."\n" - .'* **configure_failed**'."\n" - .'* **checking**'."\n" - .'* **check_failed**'."\n", - 'type' => 'string', - 'example' => 'online', - ], - 'GmtModified' => [ - 'description' => 'The time when the domain name was last modified.'."\n", - 'type' => 'string', - 'example' => '2017-11-27T06:51:25Z', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'Sources' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Source' => [ - 'description' => 'The information about the origin server.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => 'The type of the origin server. Valid values:'."\n" - ."\n" - .'* **ipaddr**: an IP address'."\n" - .'* **domain**: an origin domain name'."\n" - .'* **oss**: the domain name of an Object Storage Service (OSS) bucket'."\n", - 'type' => 'string', - 'example' => 'oss', - ], - 'Weight' => [ - 'description' => 'The weight of the origin server if multiple origin servers are specified.'."\n", - 'type' => 'string', - 'example' => '20', - ], - 'Enabled' => [ - 'description' => 'The status.'."\n", - 'type' => 'string', - 'example' => 'online', - ], - 'Priority' => [ - 'description' => 'The priority.'."\n", - 'type' => 'string', - 'example' => '50', - ], - 'Port' => [ - 'description' => 'The port over which requests are redirected to the origin server. Ports 443 and 80 are supported.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'Content' => [ - 'description' => 'The address of the origin server.'."\n", - 'type' => 'string', - 'example' => 'example.org', - ], - ], - ], - ], - ], - ], - 'Scene' => [ - 'description' => 'Acceleration scenario. Valid values:'."\n" - ."\n" - .'* **apiscene**: API acceleration.'."\n" - .'* **webservicescene**: website acceleration.'."\n" - .'* **staticscene**: video, image, and text acceleration.'."\n" - .'* **an empty string**: no acceleration scenario is used.'."\n", - 'type' => 'string', - 'example' => 'apiscene', - ], - 'FunctionType' => [ - 'description' => 'Computing service type. Valid values:'."\n" - ."\n" - .'* **routine**'."\n" - .'* **image**'."\n" - .'* **cloudFunction**'."\n", - 'type' => 'string', - 'example' => 'routine', - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], 'description' => '', + 'title' => '', ], ], ], - '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' => 'DescribeDcdnDomainDetail', - 'description' => '> You can call this operation up to 30 times per second per account.'."\n", + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'TimeParseFailed', 'errorMessage' => 'Failed to parse the time parameter.', 'description' => 'Failed to parse the time parameter.'], + ['errorCode' => 'SubscriptionAlreadyExists', 'errorMessage' => 'The subscription already exists.', 'description' => 'The subscription already exists.'], + ['errorCode' => 'SubscriptionNotFound', 'errorMessage' => 'The subscription is not found.', 'description' => 'The subscription is not found.'], + ['errorCode' => 'NameAlreadyExists', 'errorMessage' => 'The name already exists.', 'description' => 'The name already exists.'], + ['errorCode' => 'DeliverExceedLimit', 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', 'description' => 'The number of tracking tasks has reached the upper limit.'], + ], + ], + 'title' => 'CreateDcdnSubTask', + 'description' => '> - You can customize operations reports for specific domain names. After a report is customized, its data is available for daily viewing.'."\n" + .'> - The maximum call frequency for a single user is 3 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnUserDomainsByFunc' => [ - 'summary' => 'Queries all accelerated domain names with specified features configured that belong to your Alibaba Cloud account based on the FuncId parameter.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2023-05-18T11:11:03.000Z', 'description' => 'Request parameters changed'], ], - 'schemes' => [ - 'http', - '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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]', + ], + 'CreateDcdnWafGroup' => [ + 'summary' => 'The CreateDcdnWafGroup operation creates a custom WAF rule group.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeNodes' => ['FEATUREdcdnSU2QP6'], ], 'parameters' => [ [ - 'name' => 'FuncId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the feature. For more information about how to query feature IDs, see [Parameters for configuring features for domain names](~~410622~~). For example, the ID of the origin host feature (set_req_host_header) is 18.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '7', - ], + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the WAF rule group. The name can be up to 128 characters in length. This parameter is required when you create a custom WAF rule group.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'test'], ], [ - 'name' => 'FuncFilter', - 'in' => 'query', + 'name' => 'TemplateId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the rule group to copy. This parameter is required when you copy a custom WAF rule group. You can call the [DescribeDcdnWafGroups](~~DescribeDcdnWafGroups~~) operation to query the ID of the rule group. If you do not use a template, set this parameter to 0 or leave it unspecified.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'title' => '', 'example' => '0'], + ], + [ + 'name' => 'Subscribe', + 'in' => 'formData', 'schema' => [ - 'description' => 'Specifies whether the feature that is specified by the FuncId parameter is enabled.'."\n" + 'description' => 'Specifies whether to subscribe to the rule group. Valid values:'."\n" ."\n" - .'* **config**: enabled'."\n" - .'* **unconfig**: not enabled'."\n", + .'- **on**: The subscription is enabled.'."\n" + .'- **off**: The subscription is disabled.'."\n" + ."\n" + .'Do not specify this parameter when you copy another custom rule group.', 'type' => 'string', 'required' => false, - 'example' => 'config', + 'enum' => [], + 'title' => '', + 'example' => 'on', ], ], - [ - 'name' => 'DomainName', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The accelerated domain name whose ICP filing status you want to update.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', + 'title' => 'Schema of Response', + 'description' => 'The request ID.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '675F4820-400E-5929-8B03-2C031A5D5391'], + 'Id' => ['description' => 'The ID of the WAF rule group that was created.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '30000166'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'WafGroup.Quantity.Overflow', 'errorMessage' => 'WAF groups are overflowed quantity.', 'description' => 'The number of WAF rule groups exceeds the limit.'], + ['errorCode' => 'WafGroup.NotExist', 'errorMessage' => 'The specified WAF group does not exist.', 'description' => 'The specified WAF rule group does not exist.'], + ['errorCode' => 'WafGroup.Name.Malformed', 'errorMessage' => 'The specified parameter Name is invalid.', 'description' => 'The format of the Name parameter is invalid.'], + ], + 403 => [ + ['errorCode' => '%s.NotSupport', 'errorMessage' => 'The specified resource type %s is not supported.', 'description' => 'The specified resource type is not supported. To use this type of resource, contact us.'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => 'The number of resources exceeds the quota. If you want to apply for more resources, contact us.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => 'An internal error occurred. Try again later. If the error persists, submit a ticket.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'CreateDcdnWafGroup', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:15.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDcdnWafGroup'], + ], + ], + 'ramActions' => [ [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Default value: **1**. Valid values: **1 to 100000**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100000', - 'minimum' => '1', - 'example' => '1', - 'default' => '1', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:CreateDcdnWafGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"675F4820-400E-5929-8B03-2C031A5D5391\\",\\n \\"Id\\": 30000166\\n}","type":"json"}]', + ], + 'CreateDcdnWafPolicy' => [ + 'summary' => 'Invokes CreateDcdnWafPolicy to set WAF mitigation policies.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Default value: **20**. Valid values: **1 to 500**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'minimum' => '1', - 'example' => '20', - 'default' => '20', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREdcdnV3G3FZ', 'FEATUREdcdnSU2QP6'], + ], + 'parameters' => [ [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmyuji4b6r4**', - ], + 'name' => 'PolicyName', + 'in' => 'formData', + 'schema' => ['description' => 'The Policy Name of the mitigation policy. The name can contain Chinese characters, letters (uppercase and lowercase), digits (0 to 9), and underscores (_). The name can be up to 64 characters in length.', 'type' => 'string', 'required' => true, 'example' => 'policy_test', 'title' => ''], ], [ - 'name' => 'MatchType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the search. Default value: exact_match. Valid values:'."\n" - ."\n" - .'* fuzzy_match: fuzzy search.'."\n" - .'* exact_match: exact search.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'exact_match', - 'enum' => [ - 'fuzzy_match', - 'exact_match', - ], - ], + 'name' => 'PolicyType', + 'in' => 'formData', + 'schema' => ['description' => 'Specifies whether the current policy is the default policy. Valid values:'."\n" + ."\n" + .'- default: default policy.'."\n" + ."\n" + .'- custom: non-default policy.', 'type' => 'string', 'required' => true, 'example' => 'default', 'title' => ''], + ], + [ + 'name' => 'PolicyStatus', + 'in' => 'formData', + 'schema' => ['description' => 'The status of the mitigation policy. Valid values:'."\n" + ."\n" + .'- on: enabled.'."\n" + ."\n" + .'- off: disabled.', 'type' => 'string', 'required' => true, 'example' => 'on', 'title' => ''], + ], + [ + 'name' => 'DefenseScene', + 'in' => 'formData', + 'schema' => ['description' => 'The type of the WAF mitigation policy. Valid values:'."\n" + ."\n" + .'- waf_group: Basic Web Protection.'."\n" + ."\n" + .'- custom_acl: custom mitigation policy.'."\n" + ."\n" + .'- whitelist: whitelist.'."\n" + ."\n" + .'- ip_blacklist: IP blacklist.'."\n" + ."\n" + .'- region_block: Location Blacklist.'."\n" + ."\n" + .'- bot: bot management.', 'type' => 'string', 'required' => true, 'example' => 'waf_group', 'title' => ''], ], ], 'responses' => [ @@ -2685,222 +4131,89 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'AA75AADB-5E25-4970-B480-EAA1F5658483', - ], - 'PageNumber' => [ - 'description' => 'The page number of the page returned.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '5', - ], - 'TotalCount' => [ - 'description' => 'The total number of domain names returned.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '16', - ], - 'Domains' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'PageData' => [ - 'description' => 'The array that consists of multiple PageData parameters. The details about each accelerated domain name are included in a separate PageData parameter.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'GmtCreated' => [ - 'description' => 'The time when the accelerated domain name was added to Dynamic Content Delivery Network (DCDN).'."\n", - 'type' => 'string', - 'example' => '2015-10-28T09:32:51Z', - ], - 'SslProtocol' => [ - 'description' => 'Indicates whether HTTPS is enabled. Valid values:'."\n" - ."\n" - .'* **on**: HTTPS is enabled.'."\n" - .'* **off**: HTTPS is disabled.'."\n", - 'type' => 'string', - 'example' => 'on', - ], - 'Description' => [ - 'description' => 'The reason why the accelerated domain name failed the review.'."\n", - 'type' => 'string', - 'example' => 'audit failed', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmyuji4b6r4**', - ], - 'Sandbox' => [ - 'description' => 'Indicates whether the accelerated domain name was in a sandbox.'."\n", - 'type' => 'string', - 'example' => 'normal', - ], - 'DomainStatus' => [ - 'description' => 'The status of the accelerated domain name. Valid values:'."\n" - ."\n" - .'* **online**'."\n" - .'* **offline**'."\n" - .'* **configuring**'."\n" - .'* **configure_failed**'."\n" - .'* **checking**'."\n" - .'* **check_failed**'."\n", - 'type' => 'string', - 'example' => 'configure_failed', - ], - 'Cname' => [ - 'description' => 'The CNAME assigned to the accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com.w.alikunlun.net', - ], - 'GmtModified' => [ - 'description' => 'The time when the accelerated domain name was modified.'."\n", - 'type' => 'string', - 'example' => '2015-10-28T11:05:50Z', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'Sources' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Source' => [ - 'description' => 'The information about the origin servers.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => 'The type of the origin server.'."\n", - 'type' => 'string', - 'example' => 'oss', - ], - 'Weight' => [ - 'description' => 'The weight of the origin server if multiple origin servers have been specified.'."\n", - 'type' => 'string', - 'example' => '20', - ], - 'Priority' => [ - 'description' => 'The priority.'."\n", - 'type' => 'string', - 'example' => '20', - ], - 'Port' => [ - 'description' => 'The port of the origin server.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'Content' => [ - 'description' => 'The origin server address.'."\n", - 'type' => 'string', - 'example' => 'image.developer.aliyundoc.com', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'PolicyId' => ['description' => 'The ID of the created mitigation policy.', 'type' => 'integer', 'format' => 'int64', 'example' => '10000001', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'CB1A380B-09F0-41BB-A198-72F8FD6DA2FE', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'Policy.DefaultExisted', 'errorMessage' => 'The default policy is existed in specified defense scene.', 'description' => 'The specified protection scenario already has a default policy.'], + ['errorCode' => 'PolicyName.AlreadyExists', 'errorMessage' => 'The specified policy name already exists.', 'description' => 'The specified policy name is already used by another policy.'], + ], + 403 => [ + ['errorCode' => '%s.NotSupport', 'errorMessage' => 'The specified resource type %s is not supported.', 'description' => 'The specified resource type is not supported. To use this type of resource, contact us.'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => 'The number of resources exceeds the quota. If you want to apply for more resources, contact us.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => 'An internal error occurred. Try again later. If the error persists, submit a ticket.'], ], ], - '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' => 'DescribeDcdnUserDomainsByFunc', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainsBySource' => [ - 'summary' => 'Queries DCDN-accelerated domain names by origin server.', - 'methods' => [ - 'get', - 'post', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PolicyId\\": 10000001,\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-A198-72F8FD6DA2FE\\"\\n}","type":"json"}]', + 'title' => 'Set mitigation policies', + 'description' => '> '."\n" + .'> - The maximum number of times that each user can call this operation per second: 20.'."\n" + .'> - Request method: POST requests are supported.'."\n" + .'> - Edge WAF protection adds parameters to the Cookie, Query String, and Header of client requests to implement JavaScript verification and slider CAPTCHA verification. Make sure that your origin server can accept the added parameters. For more information, see [Parameter injection details](https://www.alibabacloud.com/help/en/edge-security-acceleration/dcdn/user-guide/overview-of-waf#section-edge-waf-param-inject).', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:15.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDcdnWafPolicy'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:CreateDcdnWafPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateRoutine' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '196998', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], - 'autoTest' => true, - 'tenantRelevance' => 'publicInformation', + 'abilityTreeCode' => '111452', + 'abilityTreeNodes' => ['FEATUREdcdn75UYDO'], ], 'parameters' => [ [ - 'name' => 'Sources', - 'in' => 'query', - 'schema' => [ - 'title' => '源站列表,可支持多个(用,分割,最多20个)', - 'description' => 'The list of origin servers. Separate origin servers with commas (,). You can specify a maximum of 20 origin servers. Fuzzy match is not supported.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.org', - ], + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the Edge Routine. The name must be unique within an Alibaba Cloud account.', 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'formData', + 'schema' => ['description' => 'The description of the Edge Routine.', 'type' => 'string', 'required' => false, 'example' => 'the description of this routine', 'title' => ''], + ], + [ + 'name' => 'EnvConf', + 'in' => 'formData', + 'style' => 'json', + 'schema' => ['description' => 'The environment configuration.', 'type' => 'object', 'required' => false, 'example' => '{"staging":{"SpecName":"50ms"},"production":{"SpecName":"50ms"}}', 'title' => ''], ], ], 'responses' => [ @@ -2908,153 +4221,202 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'F61CDR30-E83C-4FDA-BF73-9A94CDD44229', - ], - 'DomainInfo' => [ - 'description' => 'The information about each origin server and the corresponding domain names.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'DomainList' => [ - 'description' => 'The information about the domain names.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'CreateTime' => [ - 'description' => 'The creation time.'."\n", - 'type' => 'string', - 'example' => '2021-08-21T03:05:20+08:00', - ], - 'DomainCname' => [ - 'description' => 'The CNAME record assigned to the domain name.'."\n", - 'type' => 'string', - 'example' => 'example.org.alikunlun.com', - ], - 'Status' => [ - 'description' => 'The status of the domain name. Valid value:'."\n" - ."\n" - .'* **applying**: The domain name is under review.'."\n" - .'* **configuring**: The domain name is being configured.'."\n" - .'* **online**: The domain name is working as expected.'."\n" - .'* **stopping**: The domain name is being stopped.'."\n" - .'* **offline**: The domain name is disabled.'."\n" - .'* **disabling**: The domain name is being removed.'."\n", - 'type' => 'string', - 'example' => 'online', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.org', - ], - 'UpdateTime' => [ - 'description' => 'The time when the domain name was updated.'."\n", - 'type' => 'string', - 'example' => '2022-12-01T03:26:55+08:00', - ], - 'DomainType' => [ - 'description' => 'The workload type of the accelerated domain name. Valid value:'."\n" - ."\n" - .'* **ipa**: layer 4 acceleration'."\n" - .'* **dynamic**: layer 7 acceleration'."\n", - 'type' => 'string', - 'example' => 'dynamic', - ], - ], - ], - ], - 'Source' => [ - 'description' => 'The origin server.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - ], - ], - 'required' => true, - ], + 'Content' => ['description' => 'Returns "Status": "OK".', 'type' => 'object', 'example' => '{"Status": "OK"}', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => 'A server error occurred. Try again later. If the error persists, submit a ticket.'], + ], ], - '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' => 'DescribeDcdnDomainsBySource', - ], - 'UpdateDcdnDomain' => [ - 'summary' => 'Modifies an accelerated domain name.', - 'methods' => [ - 'get', - 'post', + 'title' => 'CreateRoutine', + 'summary' => 'Creates an Edge Routine.', + 'description' => '> - The request parameters must comply with the value specifications for EnvConf. The function description cannot exceed 50 characters.'."\n" + .'>'."\n" + .'> - You can specify only the Production and Staging environments.'."\n" + .'>'."\n" + .'> - The API call frequency is limited to 100 calls per second.', + 'requestParamsDescription' => '### EnvConf parameter format'."\n" + ."\n" + .'```'."\n" + .'"EnvConf": { // The configuration for each environment.'."\n" + .' "staging": { // The configuration for the staging environment.'."\n" + .' "SpecName": "50ms"// The specification name. Call the DescribeRoutineSpec operation to query available specifications, such as 5 ms, 50 ms, and 100 ms.'."\n" + .' }'."\n" + .' "production": { // The configuration for the production environment.'."\n" + .' "SpecName": "50ms"'."\n" + .' }'."\n" + .'}'."\n" + .'```', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateRoutine'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:CreateRoutine', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": {\\n \\"Status\\": \\"OK\\"\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]', + 'extraInfo' => ' ', + ], + 'CreateSlrAndSlsProject' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeCode' => '111453', + 'abilityTreeNodes' => ['FEATUREdcdn9K10I1'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. You can specify only one domain name in each call.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'name' => 'Region', + 'in' => 'formData', + 'schema' => ['description' => 'The region where Log Service resides. Valid values:'."\n" + ."\n" + .'- **cn-hangzhou**'."\n" + ."\n" + .'- **cn-shanghai**'."\n" + ."\n" + .'- **cn-qingdao**'."\n" + ."\n" + .'- **cn-beijing**'."\n" + ."\n" + .'- **cn-zhangjiakou**'."\n" + ."\n" + .'- **cn-shenzhen**'."\n" + ."\n" + .'- **eu-central-1**'."\n" + ."\n" + .'- **us-west-1**'."\n" + ."\n" + .'- **ap-south-1**'."\n" + ."\n" + .'- **ap-southeast-1**', 'type' => 'string', 'required' => true, 'example' => 'cn-shanghai', 'title' => ''], ], [ - 'name' => 'Sources', - 'in' => 'query', + 'name' => 'BusinessType', + 'in' => 'formData', + 'schema' => ['description' => 'The type of the collected logs. Default value: cdn\\_log\\_access\\_l1. Valid values:'."\n" + ."\n" + .'- **cdn\\_log\\_access\\_l1**: access logs of L1 Dynamic Route for CDN (DCDN) points of presence (POPs)'."\n" + ."\n" + .'- **cdn\\_log\\_origin**: back-to-origin logs'."\n" + ."\n" + .'- **cdn\\_log\\_er**: EdgeRoutine logs', 'type' => 'string', 'required' => false, 'default' => 'dcdn_log_access_l1', 'example' => 'cdn_log_access_l1', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The information about the addresses of origin servers.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '[{"content":"10.10.10.10","type":"ipaddr","priority":"20","port":80}]', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'fe33a379-5053-4f22-a73c-826e2b44355d', 'title' => ''], + 'SlsInfo' => [ + 'description' => 'The information about Log Service.', + 'type' => 'object', + 'properties' => [ + 'Project' => ['description' => 'The project of Log Service.', 'type' => 'string', 'example' => 'dcdn-edge-rtlog-cn-cfc7****', 'title' => ''], + 'LogStore' => ['description' => 'The Logstore of Log Service.', 'type' => 'string', 'example' => 'dcdn-edge-trlog', 'title' => ''], + 'EndPoint' => ['description' => 'The endpoint of Log Service.', 'type' => 'string', 'example' => 'cn-shanghai.log.*.com', 'title' => ''], + 'Region' => ['description' => 'The region where Log Service resides.', 'type' => 'string', 'example' => 'cn-shanghai', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + '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.', 'description' => 'You do not have the permissions to create service-linked roles. Acquire the AliyunDCDNFullAccess permission or custom permission policies from the Alibaba Cloud account. Acquire custom permission policies based on the following information: service name: realtimelogdelivery.dcdn.aliyuncs.com, service linked-role name: AliyunServiceRoleForDCDNRealTimeLogDelivery, and required permission: 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' => 'Failed to create the Log Service project. Make sure that Log Service is activated and available.'], + ['errorCode' => 'InvaildParameter', 'errorMessage' => 'The specified parameters are invalid.', 'description' => 'A parameter is set to an invalid value. Specify a valid value and try again.'], + ], + 500 => [ + ['errorCode' => 'Internal Exception', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'Internal error, please try again later or contact us.'], + ], + ], + 'title' => 'CreateSlrAndSlsProject', + 'summary' => 'Creates a service-linked role (SLR) and a Log Service project.', + 'description' => '> Each account can call this operation up to 100 times per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-12-18T07:22:52.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateSlrAndSlsProject'], + ], + ], + 'ramActions' => [ [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-xxxxx', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:CreateSlrAndSlsProject', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DeleteDcdnDeliverTask' => [ + 'summary' => 'Deletes a subscribed report task by its task ID.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'TopLevelDomain', + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM', 'FEATUREdcdn2Z4HOI'], + ], + 'parameters' => [ + [ + 'name' => 'DeliverId', 'in' => 'query', - 'schema' => [ - 'description' => 'The top-level domain.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'yourTopLevelDomain ', - ], + 'schema' => ['description' => 'The ID of the tracking task to delete. Call the [DescribeDcdnDeliverList](~~270043~~) operation to query tracking task IDs.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'title' => '', 'example' => '92'], ], ], 'responses' => [ @@ -3062,132 +4424,69 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], 'description' => '', + 'title' => '', ], ], ], '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.', - ], - ], - 403 => [ - [ - 'errorCode' => 'DomainInProtectedMode', - 'errorMessage' => 'The domain is in protection mode. To request permission, contact Customer Service.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'TimeParseFailed', 'errorMessage' => 'Failed to parse the time parameter.', 'description' => 'Failed to parse the time parameter.'], + ['errorCode' => 'SubscriptionAlreadyExists', 'errorMessage' => 'The subscription already exists.', 'description' => 'The subscription already exists.'], + ['errorCode' => 'SubscriptionNotFound', 'errorMessage' => 'The subscription is not found.', 'description' => 'The subscription is not found.'], + ['errorCode' => 'NameAlreadyExists', 'errorMessage' => 'The name already exists.', 'description' => 'The name already exists.'], + ['errorCode' => 'DeliverExceedLimit', 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', 'description' => 'The number of tracking tasks has reached the upper limit.'], ], ], - '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' => 'UpdateDcdnDomain', - 'description' => '> You can call this operation up to 30 times per second per account.'."\n", - 'requestParamsDescription' => 'The following table describes the fields in the Sources parameter.'."\n" - ."\n" - .'|Field|Type|Required|Description|'."\n" - .'|---|---|---|---|'."\n" - .'|type|String|Yes|The type of the origin server. Valid values:<br>**ipaddr**: an IP address<br>**domain**: a domain name<br>**oss**: the OSS domain of an Object Storage Service (OSS) bucket<br>**fc\\_domain**: Function Compute domain name|'."\n" - .'|content|String|Yes|The address of the origin server. You can specify an IP address or a domain name.|'."\n" - .'|port|Integer|No|The port number. You can set port to **443** or **80**. You can also specify a custom number. The default value is **80**. **443** is used for HTTPS back-to-origin requests.|'."\n" - .'|priority|String|No|The priority of the origin server. Valid values: **20** and **30**. Default value: **20**. A value of **20** indicates a primary origin server. A value of **30** indicates a secondary origin server.|'."\n" - .'|weight|String|No|The weight of the origin server. You must specify a value that is less than **100**. The default value is **10**.|', + 'title' => 'DeleteDcdnDeliverTask', + 'description' => '> The throttling limit for a single user is 3 calls per second.', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainCname' => [ - 'summary' => 'Checks whether CNAME records are configured for one or more accelerated domain names.', - 'methods' => [ - 'get', + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]', + ], + 'DeleteDcdnDomain' => [ + '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' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. Separate multiple domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com,example.org', - ], + 'schema' => ['description' => 'The accelerated domain name that you want to delete. You can delete only one domain name at a time.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], ], 'responses' => [ @@ -3195,73 +4494,56 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '15C66C7B-671A-4297-9187-2C4477247A74', - ], - 'CnameDatas' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Data' => [ - 'description' => 'The CNAME information.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The configuration status of the CNAME record. If the operation returns 0 for the parameter, the configuration was successful. Otherwise, the configuration failed.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Domain' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => '.example.com', - ], - 'Cname' => [ - 'description' => 'The CNAME assigned to the domain name.'."\n", - 'type' => 'string', - 'example' => '*.com', - ], - 'Passed' => [ - 'type' => 'string', - ], - 'ErrMsg' => [ - 'type' => 'string', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => 'The specified domain name is invalid.'], + ['errorCode' => 'DomainActiveInConfigGroup', 'errorMessage' => 'The domain has been activated in config group, it cannot be deleted.', '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' => 'DescribeDcdnDomainCname', - 'description' => '> You can call this operation up to 80 times per second per account.'."\n", + 'title' => 'DeleteDcdnDomain', + 'summary' => 'Deletes an accelerated domain name.', + 'description' => '> - Before you delete a domain name, contact your domain name resolution service provider to restore the A record of the domain name. If you do not restore the A record, the domain name may become inaccessible after it is deleted.'."\n" + .'>'."\n" + .'> - After you call the **DeleteDcdnDomain** operation, all records that are associated with the accelerated domain name are deleted. If you want to pause the accelerated domain name instead of deleting it, call the [StopDcdnDomain](~~130622~~) operation.'."\n" + .'>'."\n" + .'> - A single user can make up to 10 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ModifyDCdnDomainSchdmByProperty' => [ - 'summary' => 'Changes the acceleration region.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2023-06-21T02:52:04.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnDomain'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","type":"json"}]', + ], + 'DeleteDcdnIpaDomain' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3269,38 +4551,16 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111594', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the accelerated domain for which you want to change the acceleration region. You can specify only one domain name.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'Property', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region where the acceleration service is deployed. Valid values:'."\n" - ."\n" - .'* **domestic**: Chinese mainland'."\n" - .'* **overseas**: global (excluding mainland China)'."\n" - .'* **global**: global'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '{"coverage":"overseas"}', - ], + 'schema' => ['description' => 'The domain name that you want to delete. You can delete only one domain name at a time.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], ], ], 'responses' => [ @@ -3308,53 +4568,54 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '15C66C7B-671A-4297-9187-2C4477247A74', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '94E3559F-7B6A-4A5E-AFFD-44E2A208A249'], ], 'description' => '', + 'title' => '', ], ], ], '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' => 'The specified domain name is invalid.'], + ], + 403 => [ + ['errorCode' => 'DcdnIpaServiceNotFound', 'errorMessage' => 'The DCDN IPA service has not been activated.', 'description' => 'IPA is not activated for DCDN.'], ], ], - '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' => 'ModifyDCdnDomainSchdmByProperty', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", + 'title' => 'DeleteDcdnIpaDomain', + 'summary' => 'You can call the DeleteDcdnIpaDomain operation to delete an accelerated domain name for IP Application Accelerator (IPA).', + 'description' => '> - Before you delete a domain name, resume its A record with your domain name resolution service provider. This prevents the domain name from becoming inaccessible after it is deleted.'."\n" + .'> - After you successfully call the **DeleteDcdnIpaDomain** operation, all records related to the accelerated domain name are deleted. If you only want to pause the accelerated domain name, call the **StopDcdnIpaDomain** operation.'."\n" + .'> - The API call frequency for a single user is 10 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'SetDcdnUserConfig' => [ - 'summary' => 'Configures features for a user.', - '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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"94E3559F-7B6A-4A5E-AFFD-44E2A208A249\\"\\n}","type":"json"}]', + ], + 'DeleteDcdnIpaSpecificConfig' => [ + 'summary' => 'You can call the DeleteDcdnIpaSpecificConfig operation to delete the IP Application Accelerator (IPA) layer configuration for a specified domain name.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3362,36 +4623,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' => 'The ID of the feature.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '6', - ], + 'schema' => ['description' => 'The accelerated domain name. Only one domain name can be specified.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], ], [ - 'name' => 'Configs', + 'name' => 'ConfigId', 'in' => 'query', - 'schema' => [ - 'description' => 'The configuration parameters of the feature.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '\\"argId\\":12,\\"argValue\\":\\"on\\"', - ], + 'schema' => ['description' => 'The configuration ID. Call [DescribeDcdnDomainConfigs](~~130625~~) to query the configuration ID.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '50035**'], ], ], 'responses' => [ @@ -3399,59 +4645,51 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], 'description' => '', + 'title' => '', ], ], ], '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' => 'The specified configuration is not supported.'], + ], + 403 => [ + ['errorCode' => 'DcdnIpaServiceNotFound', 'errorMessage' => 'The DCDN IPA service has not been activated.', 'description' => 'IPA is not activated for DCDN.'], ], ], - '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' => 'SetDcdnUserConfig', - 'description' => '> You can call this operation up to 30 times per second per account.'."\n", - 'requestParamsDescription' => 'The following table describes the IDs of the features and the configuration parameters of the features.'."\n" - ."\n" - .'| FunctionID | Feature | Configuration parameter |'."\n" - .'|------------|---------|-------------------------|'."\n" - .'| 6 | websocket: WebSocket | enabled (12): specifies whether to enable the feature. Valid values: on and off. |'."\n" - .'| 16 | domain_business_control: domain configuration | allow_function (22): specifies whether features such as rate limiting, region blacklisting, and precise access control are available to users. Valid values: on and off. |'."\n" - .'| 23 | ddos: DDoS mitigation | rdomestic (42): specifies whether DDoS mitigation is enabled in the Chinese mainland. Valid values: on and off.<br> overseas (43): specifies whether DDoS mitigation is enabled in Hong Kong (China), Macao (China), Taiwan (China), and regions outside China. Valid values: on and off. |', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DeleteDcdnIpaSpecificConfig', + 'description' => '> The call frequency is limited to 10 calls per second per user.', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchSetDcdnDomainConfigs' => [ - 'summary' => 'Configures features for one or more domain names.', - '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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]', + ], + 'DeleteDcdnKv' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3459,58 +4697,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' => 'The accelerated domain names. Specify multiple accelerated domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com,example.org', - ], + 'schema' => ['description' => 'The name specified when you call the [PutDcdnKvNamespace](~~PutDcdnKvNamespace~~) operation.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'ns1'], ], [ - 'name' => 'Functions', + 'name' => 'Key', 'in' => 'query', - 'schema' => [ - 'description' => 'The features that you want to configure. Format:'."\n" - ."\n" - .'* **functionName**: The name of the feature. Separate multiple values with commas (,). For more information, see [A list of features](~~410622~~).'."\n" - ."\n" - .'* **argName**: The feature parameters for **functionName**.'."\n" - .'* **argValue**: The parameter values set for **functionName**.'."\n" - .'* **parentid**: the rule ID. This parameter is optional. You can use the **condition** rules engine to create a rule. For information, see [Feature settings for domain names](~~388460~~). A rule can identify parameters that are included in requests and filter requests based on the identified parameters. After you create a rule, a [configid](~~388994~~) is generated. A configid can be used as parentId that is referenced by other features. This way, you can combine rules and features for flexible configurations.'."\n" - ."\n" - .'If the **parentId** parameter is **-1**, the existing rules in the configurations are deleted.'."\n" - ."\n" - .'````['."\n" - .' {'."\n" - .' "functionArgs": ['."\n" - .' {'."\n" - .' "argName": "Parameter A", '."\n" - .' "argValue": Value of parameter A"'."\n" - .' }, '."\n" - .' {'."\n" - .' "argName": "Parameter B", '."\n" - .' "argValue": "Value of Parameter B"'."\n" - .' }'."\n" - .' ], '."\n" - .' "functionName": "Feature name"'."\n" - .' }'."\n" - .']```'."\n" - .'````', - 'type' => 'string', - 'required' => true, - 'example' => '[{"functionArgs":[{"argName":"switch","argValue":"on"},{"argName":"region","argValue":"*"}],"functionName":"ipv6"}]', - ], + 'schema' => ['description' => 'The name of the key to delete.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'test_key_1'], ], ], 'responses' => [ @@ -3518,210 +4720,182 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], - 'DomainConfigList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'DomainConfigModel' => [ - 'description' => 'The list of domain configurations.', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ConfigId' => [ - 'description' => 'The ID of the configuration.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '123456', - ], - 'DomainName' => [ - 'description' => 'The domain name.'."\n", - 'type' => 'string', - 'example' => 'www.example.com', - ], - 'FunctionName' => [ - 'description' => 'The name of the feature.'."\n", - 'type' => 'string', - 'example' => 'set_resp_header', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C'], ], 'description' => '', + 'title' => '', ], ], ], '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' => 'The parameter is set to an invalid value.'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => 'The account is invalid. Check whether an account is specified.'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'The namespace is invalid. Check whether a namespace is specified.'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'The key is invalid. Check whether a key is specified.'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'The key cannot exceed 512 bytes in length.'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'The value cannot exceed 2,000,000 bytes in length.'], + ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'The capacity of the namespace has reached the upper limit. Each namespace can be at most 1 GB.'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => 'An authentication parameter is set to an invalid value.'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => 'The authentication time parameter you entered is invalid. Check the parameter value and try again.'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => 'The token you entered is invalid. Please check and enter the correct token and try again.'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => 'The specified resource is invalid.'], + ], + [ + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account does not exist.', 'description' => 'The specified account does not exist.'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'The specified namespace does not exist.'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => 'The specified key does not exist.'], + ], + 406 => [ + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'The namespace already exists.'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'The number of namespaces has reached the upper limit.'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'The number of keys has reached the upper limit.'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests are submitted.', 'description' => 'Do not send requests at a high frequency.'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'Do not perform the key put/delete operation at a high frequency.'], ], ], - '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' => 'BatchSetDcdnDomainConfigs', - 'description' => '* You can specify up to 50 domain names in each request.'."\n" - .'* You can call this operation up to 30 times per second per account.'."\n", - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainConfigs' => [ - 'summary' => 'Queries the configurations of an accelerated domain name.', - 'methods' => [ - 'get', - 'post', + 'title' => 'DeleteDcdnKv', + 'summary' => 'EdgeKV provides a global key-value (KV) database on Dynamic Content Delivery Network (DCDN) edge nodes. You can call the DeleteDcdnKv operation to delete a KV pair from a namespace.', + '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' => 'All Resource', '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' => 'The name of the namespace. Call [PutDcdnKvNamespace](~~PutDcdnKvNamespace~~) to query the name.', 'type' => 'string', 'required' => true, 'maxLength' => 64, 'pattern' => '^[0-9a-zA-Z_-]+$', 'title' => '', 'example' => 'ns1'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The accelerated domain name. You can specify only one domain name in each request.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C。'], + ], + 'description' => '', + 'title' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'The parameter is set to an invalid value.'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => 'The account is invalid. Check whether an account is specified.'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'The namespace is invalid. Check whether a namespace is specified.'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'The key is invalid. Check whether a key is specified.'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'The key cannot exceed 512 bytes in length.'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'The value cannot exceed 2,000,000 bytes in length.'], + ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'The capacity of the namespace has reached the upper limit. Each namespace can be at most 1 GB.'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => 'An authentication parameter is set to an invalid value.'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => 'The authentication time parameter you entered is invalid. Check the parameter value and try again.'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => 'The token you entered is invalid. Please check and enter the correct token and try again.'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => 'The specified resource is invalid.'], + ], [ - 'name' => 'FunctionNames', - 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => 'The names of the features to query. Separate features with commas (,).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'filetype_based_ttl_set,set_req_host_header', + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account does not exist.', 'description' => 'The specified account does not exist.'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'The specified namespace does not exist.'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => 'The specified key does not exist.'], + ], + 406 => [ + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'The namespace already exists.'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'The number of namespaces has reached the upper limit.'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'The number of keys has reached the upper limit.'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests are submitted.', 'description' => 'Do not send requests at a high frequency.'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'Do not perform the key put/delete operation at a high frequency.'], + ], + ], + 'title' => 'DeleteDcdnKvNamespace', + 'summary' => 'Deletes a specified namespace from your account.', + 'changeSet' => [ + ['createdAt' => '2025-04-02T06:58:00.000Z', 'description' => 'Request parameters changed'], + ], + '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' => 'All Resource', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C。\\"\\n}","type":"json"}]', + ], + 'DeleteDcdnRealTimeLogProject' => [ + 'summary' => 'Deletes real-time logs of a log delivery project.', + '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' => 'The ID of the configuration.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '5003576', - ], + 'schema' => ['description' => 'The name of a real-time log delivery project.', 'type' => 'string', 'required' => true, 'example' => 'example', 'title' => ''], ], ], 'responses' => [ @@ -3729,146 +4903,52 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED', - ], - 'DomainConfigs' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'DomainConfig' => [ - 'description' => 'The configurations of the domain name.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of the configuration. Valid values:'."\n" - ."\n" - .'* **success**: successful'."\n" - .'* **testing**: testing'."\n" - .'* **failed**: The configuration failed.'."\n" - .'* **configuring**: The configuration is in progress.'."\n", - 'type' => 'string', - 'example' => 'success', - ], - 'ParentId' => [ - 'description' => 'The ID of the advanced condition configuration.'."\n", - 'type' => 'string', - 'example' => '1234567', - ], - 'ConfigId' => [ - 'description' => 'The ID of the configuration.'."\n", - 'type' => 'string', - 'example' => '5068995', - ], - 'FunctionName' => [ - 'description' => 'The feature name.'."\n", - 'type' => 'string', - 'example' => 'set_req_host_header', - ], - 'FunctionArgs' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'FunctionArg' => [ - 'description' => 'The configurations of the features.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ArgName' => [ - 'description' => 'The name of the configuration.'."\n", - 'type' => 'string', - 'example' => 'ttl', - ], - 'ArgValue' => [ - 'description' => 'The value of the configuration.'."\n", - 'type' => 'string', - 'example' => '13', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid%s.ValueNotSupported', - 'errorMessage' => 'FunctionName [%s] is not supported.', - ], + ['errorCode' => 'Unauthorized', 'errorMessage' => 'RealtimeLogDelivery service is not authorized.', 'description' => 'Real-time log delivery does not have the required permissions.'], + ['errorCode' => 'ProjectNotFound', 'errorMessage' => 'The project provided does not belong to you.', 'description' => 'The project does not exist or does not belong to the current user.'], + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal exception occurred, please try again later.', 'description' => 'An inner exception was triggered. Please try again later.'], ], ], - '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' => 'DescribeDcdnDomainConfigs', - 'description' => '> * You can query the configurations of one or more features in a request.'."\n" - .'> * You can call this operation up to 30 times per second per account.', - 'requestParamsDescription' => 'The following table describes the supported features.'."\n" - ."\n" - .'|Feature|Parameters|'."\n" - .'|---|---|'."\n" - .'|referer\\_white\\_list\\_set: configures a Referer whitelist for hotlink protection.|refer\\_domain\\_allow\\_list: the Referers to be added to the whitelist. Separate multiple Referers with commas (,).allow\\_empty: Specifies whether requests with an empty Referer header are allowed to access DCDN resources. Valid values: on and off.|'."\n" - .'|referer\\_black\\_list\\_set: configures a Referer blacklist for hotlink protection.|refer\\_domain\\_deny\\_list: the Referers to be added to the blacklist. Separate multiple Referers with commas (,).allow\\_empty: Specifies whether requests with an empty Referer header are allowed to access DCDN resources. Valid values: on and off.|'."\n" - .'|filetype\\_based\\_ttl\\_set: configures an expiration rule for specified file types.|ttl: the time period after which the cached resources expire. Unit: seconds.file\\_type: the file type. Separate multiple file types with commas (,), such as, TXT,JPG.weight: the weight of the file in the cache.|'."\n" - .'|path\\_based\\_ttl\\_set: configures an expiration rule for a specific directory.|ttl: the time period after which the cached resources expire. Unit: seconds.path: the directory. The directory must start with a forward slash (/).weight: the weight of the file in the cache.|'."\n" - .'|oss\\_auth: configures authentication for requests destined for an Object Storage Service (OSS) bucket.|oss\\_bucket\\_id: the address of the OSS bucket.|'."\n" - .'|ip\\_black\\_list\\_set: configures an IP address blacklist.|ip\\_list: the IP addresses to be added to the blacklist. Separate multiple IP addresses with commas (,).|'."\n" - .'|ip\\_allow\\_list\\_set: configures an IP address whitelist.|ip\\_list: the IP addresses to be added to the whitelist. Separate multiple IP addresses with commas (,).|'."\n" - .'|error\\_page: redirects an error page to a specified page.|error\\_code: the error code.rewrite\\_page: the page to which the error page is redirected.|'."\n" - .'|set\\_req\\_host\\_header: configures the custom header for requests that are redirected to the origin server.|domain\\_name: a domain name that is used as the origin host.|'."\n" - .'|set\\_hashkey\\_args: ignores URL parameters.|hashkey\\_args: the parameters to be reserved. Separate multiple parameters with commas (,). You can specify up to 10 parameters to be reserved.disable: specifies whether to ignore all parameters. Valid values: on and off. The hashkey\\_args setting has a higher priority. Even if you set this parameter to on, the parameters that are specified by the hashkey\\_args parameter are retained.keep\\_oss\\_args: specifies whether to retain all URL parameters in requests before they are redirected to origin servers. A value of on indicates that all URL parameters are retained in requests before they are redirected to origin servers. A value of off indicates that only the parameters specified in hashkey\\_args are retained.|'."\n" - .'|aliauth: configures Alibaba Cloud URL signing.|auth\\_type: the URL signing type. no\\_auth: disables URL signing. type\\_a: enables type A signing. type\\_b: enables type B signing. type\\_c: enables type C signing.auth\\_key1: specifies the primary cryptographic key. auth\\_key2: specifies the secondary cryptographic key.ali\\_auth\\_delta: the custom buffer time for authentication.|'."\n" - .'|set\\_resp\\_header: configures an HTTP response header. To verify the setting, you can check responses in a browser.|key: the response header. This parameter is required.value (Required): specifies the content of the response header. Enter "null" if you want to delete the header.header\\_operation\\_type: specifies the operation performed on the request header. Valid values: add, delete, modify, and rewrite.duplicate: specifies whether to allow duplicate response headers. Valid values: on and off.header\\_source: searches for the source of the response header.header\\_destination: replaces the response header.match\\_all: specifies whether to match all queries. Valid values: on and off.|'."\n" - .'|https\\_force: forces redirection over HTTPS.|enable: specifies whether to enable this feature. Valid values: on and off.|'."\n" - .'|https\\_force: forces redirection over HTTP.|enable: specifies whether to enable this feature. Valid values: on and off.|'."\n" - .'|https\\_option: configures basic HTTPS parameters.|http2: specifies whether to enable HTTP/2. Valid values: on and off.ocsp\\_stapling: specifies whether to enable Online Certificate Status Protocol (OCSP) stapling. Valid values: on and off.|'."\n" - .'|forward\\_scheme: configures the static origin protocol policy.|enable: specifies whether to enable this feature. Valid values: on and off.scheme\\_origin: the origin protocol policy. Valid values: http, https, and follow.|'."\n" - .'|dynamic: configures the DCDN service.|enable: specifies whether to enable the feature. This parameter is required. Valid values: on and off.static\\_route\\_type: the filename extension for static content.static\\_route\\_url: the URI of the static content.static\\_route\\_path: the path of the static content.dynamic\\_route\\_origin: specifies the scheme of the back-to-origin route. Valid values: http, https, follow, and follow-port.dynamic\\_route\\_round\\_robin: specifies whether to enable load balancing. Valid values: on and off.dynamic\\_route\\_adapt\\_cache: specifies whether to enable adaptive caching. Valid values: on and off.|'."\n" - .'|set\\_req\\_header: a custom HTTP header for requests that are redirected to the origin server.|key: the name of the request header.value: the content of the header field for the origin request.|'."\n" - .'|l2\\_oss\\_key: retrieves content from private OSS buckets.|private\\_oss\\_auth: specifies whether to enable this feature. Valid values: on and off.|'."\n" - .'|range: configures object chunking.|enable: specifies whether to enable the feature. Valid values: on and off.|'."\n" - .'|video\\_seek: configures video seeking.|enable: specifies whether to enable the feature. This parameter is required. Valid values: on and off.flv\\_seek\\_by\\_time: specifies whether to enable Flash Video (FLV) seeking by time. Valid values: on and off.mp4\\_seek\\_start: the custom start parameters for MP4 files.mp4\\_seek\\_end: the custom end parameter for MP4 files.flv\\_seek\\_start: the custom start parameters for FLV files.flv\\_seek\\_end: the custom end parameter for FLV files.|'."\n" - .'|websocket: configures WebSocket.|enabled: specifies whether to enable the feature. This parameter is required. Valid values: on and off.dynamic\\_route\\_origin: the origin protocol policy. Valid values: http, https, and follow.heartbeat: the heartbeat interval. Unit: seconds. Valid values: 1 to 300. Default value: 60.|'."\n" - .'|ali\\_remove\\_args: deletes URL parameters.|ali\\_remove\\_args: the parameters to be deleted. Separate multiple parameters with spaces. The remaining parameters are used as the URL parameters in hashkey\\_args. This parameter is required.keep\\_oss\\_args: specifies whether to retain URL parameters in requests before they are redirected to origin servers. A value of on indicates that all URL parameters are reserved in requests before they are redirected to origin servers. A value of off indicates that only the parameters in hashkey\\_args are reserved.|'."\n" - .'|https\\_tls\\_version: configures the TLS protocol.|tls10: specifies whether to enable TLS 1.0. Valid values: on and off. Default value: on.tls11: specifies whether to enable TLS 1.1. Valid values: on and off. Default value: on.tls12: specifies whether to enable TLS 1.2. Valid values: on and off. Default value: on.tls13: specifies whether to enable TLS 1.3. Valid values: on and off. Default value: off.|'."\n" - .'|HSTS: configures HTTP Strict Transport Security (HSTS).|enabled: specifies whether to enable the feature. This parameter is required. Valid values: on and off. Default value: off.https\\_hsts\\_max\\_age: specifies the validity period of the HSTS policy. This parameter is required. Unit: millisecond. We recommend that you set the value to 5184000000 milliseconds. This value equals 60 days.https\\_hsts\\_include\\_subdomains: specifies whether the HSTS header contains the includeSubDomains parameter. Valid values: on and off. Proceed with caution when you enable this feature. Make sure that HTTPS is enabled for all the subdomains of the accelerated domain name. Otherwise, the HTTPS URLs to which requests are redirected from the subdomains become inaccessible.|'."\n" - .'|filetype\\_force\\_ttl\\_code: configures an expiration rule for file status codes.|file\\_type: the file type. You can specify one or more file types. Separate multiple file types with commas (,), such as TXT,JPG. This parameter is required.code\\_string: required. This parameter specifies TTL values for HTTP status codes. Separate multiple TTL settings with commas (,). Example: 302=0,301=0,4xx=2.|'."\n" - .'|path\\_force\\_ttl\\_code: configures an expiration rule for directory status codes.|path: a directory. It must start with a forward slash (/), such as, /image. This parameter is required.code\\_string: required. This parameter specifies TTL values for HTTP status codes. Separate multiple TTL settings with commas (,). Example: 302=0,301=0,4xx=2.|'."\n" - .'|gzip: configures gzip compression.|enable: specifies whether to enable this feature. This parameter is required. Valid values: on and off.|'."\n" - .'|tesla: configures page optimization.|enable: specifies whether to enable this feature. This parameter is required. Valid values: on and off.trim\\_js: specifies whether to trim JavaScript code of HTML pages. Valid values: on and off.trim\\_css: specifies whether to trim CSS code of HTML pages. Valid values: on and off.|'."\n" - .'|https\\_origin\\_sni: configures origin Server Name Indication (SNI) settings.|enabled: specifies whether to enable the feature. Valid values: on and off.https\\_origin\\_sni (required) It specifies an origin SNI.|'."\n" - .'|protogw: configures IP Application Accelerator (IPA).|realip: the transparent proxy mode for the origin server to obtain the real IP addresses of the clients. This parameter is required. Valid values: off, toa, and pp.port: specifies the service port. This parameter is required.patten: the description in a string.|'."\n" - .'|host\\_redirect: configures the rewrite feature.|regex: the URL to be rewritten, such as, ^/$.replacement: specifies the final URL, for example, /go/act/sale/tbzlsy.php.flag: the action. Valid values: redirect and break.|'."\n" - .'|forward\\_timeout: configures the timeout period for requests that are redirected to the origin server.|forward\\_timeout: a time period, in seconds. We recommend that you set a value that is not greater than 100.|'."\n" - .'|ipv6: configures IPv6.|switch: specifies whether to enable the feature. This parameter is required. Valid values: on and off.region: specifies the region where you want to enable IPv6. You can enter an asterisk (\\*) to specify all regions.|'."\n" - .'|edge\\_function: configures an edge script.|rule (required): the domain-specific language (DSL) script.pri (required): the priority.enable: specifies whether to enable the script. This parameter is required. Valid values: on and off.name: the name of the rule.pos: the position from which to execute the script. For the accelerated domain names of DCDN, only the value of head is supported. The value of foot is not supported.brk: After the current script is matched, the scripts after the specified position are skipped.option: the extension used to perform response header debugging.grammar: specifies an extension that is used to specify the scripting language. Valid values: es2 and js. You can leave this parameter empty.jsmode: specifies an extension that is used to manage the domain name whitelist in JavaScript. Valid values: redirect and bypass.|'."\n" - .'|brotli: configures Brotli compression.|enable: specifies whether to enable this feature. This parameter is required. Valid values: on and off.brotli\\_level: the compression level. Valid values: 1 to 11.|'."\n" - .'|ali\\_ua: configures a User-Agent whitelist or blacklist.|ua: the User-Agent that you want to add to the list.type: the type of the User-Agent list. Valid values: black and white.|', + 'title' => 'DeleteDcdnRealTimeLogProject', + 'description' => '> Each account can call this operation up to 100 times per second.', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteDcdnSpecificConfig' => [ - 'summary' => 'Deletes specified configurations of an accelerated domain name.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2024-12-04T08:12:40.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnRealTimeLogProject'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnRealTimeLogProject', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9732E117-8A37-49FD-A36F-ABBB87556CA7\\"\\n}","type":"json"}]', + ], + 'DeleteDcdnSpecificConfig' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3879,30 +4959,18 @@ 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn2JMMUY', - ], + 'abilityTreeNodes' => ['FEATUREdcdn2JMMUY'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. You can specify only one domain name.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name. You can delete a configuration for only one domain name at a time.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], [ 'name' => 'ConfigId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the configuration. Separate multiple configuration IDs with commas (,). For more information about ConfigId, see [Usage notes on ConfigId](~~410558~~).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2117', - ], + 'schema' => ['description' => 'The ID of the feature configuration. To specify multiple IDs, separate them with commas (,). For more information, see [Usage of ConfigId](~~410558~~).', 'type' => 'string', 'required' => true, 'example' => '2117', 'title' => ''], ], ], 'responses' => [ @@ -3910,44 +4978,50 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'The specified configuration is not supported.'], + ['errorCode' => 'InvalidDomain.BelongToConfigGroup', 'errorMessage' => 'The domain is bound to a configuration group. Modify the domain in the configuration group.', 'description' => 'The domain name is associated with a configuration group. To modify the configuration of the domain name, you must modify the configuration group.'], ], ], - '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' => 'DeleteDcdnSpecificConfig', - 'description' => '> You can call this operation up to 30 times per second per account.'."\n", + 'summary' => 'Deletes a specific configuration for a domain name.', + 'description' => '> The call frequency for a single user is limited to 30 calls per second.', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchDeleteDcdnDomainConfigs' => [ - 'summary' => 'Deletes configurations of multiple accelerated domain names at a time.', - '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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]', + ], + 'DeleteDcdnSpecificStagingConfig' => [ + 'summary' => 'Deletes one or more staging (grayscale) configurations for an accelerated domain name.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3955,33 +5029,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' => 'The accelerated domain names whose configurations you want to delete. Separate multiple accelerated domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name. You can specify only one domain name.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], ], [ - 'name' => 'FunctionNames', + 'name' => 'ConfigId', 'in' => 'query', - 'schema' => [ - 'description' => 'The names of the features that you want to delete. Separate multiple feature names with commas (,). For more information about feature names, see [Feature settings for a domain name](~~410622~~).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'referer_white_list_set,https_force', - ], + 'schema' => ['description' => 'The configuration ID. To specify multiple configuration IDs, separate them with commas (,).'."\n" + ."\n" + .'Call the [DescribeDcdnDomainStagingConfig](~~DescribeDcdnDomainStagingConfig~~) operation to query configuration IDs.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '2317'], ], ], 'responses' => [ @@ -3989,226 +5053,274 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], + 'description' => '', + 'title' => '', ], ], ], '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' => 'The specified configuration is not supported.'], + ['errorCode' => 'GrayConfigIsNull', 'errorMessage' => 'You cannot delete all gary configurations. You can clear them by rolling back the simulation environment.', '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' => 'BatchDeleteDcdnDomainConfigs', - 'description' => '> - You can specify up to 50 domain names in each request.'."\n" - .'> - You can call this operation up to 30 times per second per account.', + 'title' => 'DeleteDcdnSpecificStagingConfig', + 'description' => '> The call frequency is limited to 20 calls per second per user.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeRDDomainConfig' => [ - 'summary' => 'Queries the feature configurations of an accelerated domain name in the resource directory.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2023-06-08T02:49:29.000Z', 'description' => 'Error codes changed'], ], - '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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]', + ], + 'DeleteDcdnSubTask' => [ + 'summary' => 'You can call the DeleteDcdnSubTask operation to delete all customized operations reports.', + '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' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], + ], + 'description' => '', + 'title' => '', + ], ], ], - 'parameters' => [ + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'TimeParseFailed', 'errorMessage' => 'Failed to parse the time parameter.', 'description' => 'Failed to parse the time parameter.'], + ['errorCode' => 'SubscriptionAlreadyExists', 'errorMessage' => 'The subscription already exists.', 'description' => 'The subscription already exists.'], + ['errorCode' => 'SubscriptionNotFound', 'errorMessage' => 'The subscription is not found.', 'description' => 'The subscription is not found.'], + ['errorCode' => 'NameAlreadyExists', 'errorMessage' => 'The name already exists.', 'description' => 'The name already exists.'], + ['errorCode' => 'DeliverExceedLimit', 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', 'description' => 'The number of tracking tasks has reached the upper limit.'], + ], + ], + 'title' => 'DeleteDcdnSubTask', + 'description' => '> The call frequency for each user is limited to 3 calls per second.', + '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' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnSubTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]', + ], + 'DeleteDcdnUserConfig' => [ + 'summary' => 'Deletes a user-level feature configuration.', + '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' => 'The name of the feature. Default value: source_group.'."\n", + 'description' => 'The name of the feature to delete. Currently, you can only delete the DCDN WAF feature. The default value is waf.', 'type' => 'string', 'required' => false, - 'example' => 'source_group', - 'default' => 'source_group', + 'default' => 'waf', + 'enum' => ['waf'], + 'title' => '', + 'example' => 'waf', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'C80705BF-0F76-41FA-BAD1-5B59296A4E59', - ], - 'DomainConfigs' => [ - 'description' => 'The configuration of the domain name.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ConfigId' => [ - 'description' => 'The ID of the configuration.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '6295', - ], - 'Status' => [ - 'description' => 'The status. Valid values:'."\n" - ."\n" - .'* **success**'."\n" - .'* **testing**'."\n" - .'* **failed**'."\n" - .'* **configuring**'."\n", - 'type' => 'string', - 'example' => 'success', - ], - 'FunctionArgs' => [ - 'description' => 'The configurations of the features.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ArgName' => [ - 'description' => 'The name of the configuration.'."\n", - 'type' => 'string', - 'example' => 'source_group_name', - ], - 'ArgValue' => [ - 'description' => 'The value of the configuration.'."\n", - 'type' => 'string', - 'example' => '123', - ], - ], - ], - ], - 'FunctionName' => [ - 'description' => 'The name of the feature.'."\n", - 'type' => 'string', - 'example' => 'set_req_host_header', - ], - 'ParentId' => [ - 'description' => 'The ID of the advanced condition configuration.'."\n", - 'type' => 'string', - 'example' => '1234567', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '5CC228B4-7A67-4016-9C9F-4A4133494A91'], ], + 'description' => '', + 'title' => '', ], ], ], - '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' => 'DescribeRDDomainConfig', - ], - 'RefreshDcdnObjectCaches' => [ - 'summary' => 'Refreshes specified objects on points of presence (POPs). The objects can be included in the content of files or URLs. You can refresh multiple URLs in each request.', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DeleteDcdnUserConfig', + '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' => 'All Resource', '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' => 'The ID of the custom WAF rule group.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'title' => '', 'example' => '30000135'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The path of the objects that you want to refresh. Separate multiple URLs with line feed characters (\\n) or a pair of carriage return and line feed characters (\\r\\n).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com/example.txt', + 'title' => 'Schema of Response', + 'description' => 'The request ID.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '2430E05E-1340-5773-B5E1-B743929F46F2'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'WafGroup.BeingBound', 'errorMessage' => 'The specified WAF group is being bound.', 'description' => 'The specified WAF rule group is bound to one or more protection policies.'], + ['errorCode' => 'WafGroup.NotExist', 'errorMessage' => 'The specified WAF group does not exist.', 'description' => 'The specified WAF rule group does not exist.'], + ], + 403 => [ + ['errorCode' => '%s.NotSupport', 'errorMessage' => 'The specified resource type %s is not supported.', 'description' => 'The specified resource type is not supported. To use this type of resource, contact us.'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => 'The number of resources exceeds the quota. If you want to apply for more resources, contact us.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => 'An internal error occurred. Try again later. If the error persists, submit a ticket.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DeleteDcdnWafGroup', + 'summary' => 'You can call the DeleteDcdnWafGroup operation to delete a custom WAF rule group.', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:15.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDcdnWafGroup'], + ], + ], + 'ramActions' => [ [ - 'name' => 'ObjectType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The refresh type. Valid values:'."\n" - ."\n" - .'* **File** (default): refreshes resources based on URLs.'."\n" - .'* **Directory**: refreshes resources based on directories.'."\n" - .'* **Regex**: refreshes content based on regular expressions.'."\n" - .'* **IgnoreParams**: removes the question mark (`?`) and parameters after `?` in a request URL and refreshes content. After you call this operation with the request URL submitted, the system compares the submitted URL with the URL of the cached resource without specific parameters. If the URLs match, the DCDN POPs refresh the cached resource.'."\n" - ."\n" - .'>* For more information about features of URL refresh and directory refresh, see [Refresh and prefetch resources](~~64936~~).'."\n" - .'>* If you set ObjectType to Directory, the resources in the directory that you want to refresh are marked as expired. You cannot delete the directory. If clients request resources after the resources on POPs are marked as expired, DCDN checks whether the resources on your origin server are updated with a later version. If a later version exists, DCDN retrieves the resources of the later version and returns the resources to the clients. Otherwise, DCDN retrieves the 304 status code from the origin server.', - 'type' => 'string', - 'required' => false, - 'example' => 'File', - 'default' => 'File', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnWafGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => 'Specifies whether to refresh resources in a directory if the resources are different from the resources in the same directory in the origin server. Default value: false.'."\n" - ."\n" - .'* **true**: refresh all resources in the directory.'."\n" - .'* **false**: refresh the changed resources in the directory.'."\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' => 'The ID of the mitigation policy that you want to delete. You can specify only one ID.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'title' => '', 'example' => '1000001'], ], ], 'responses' => [ @@ -4216,86 +5328,126 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RefreshTaskId' => [ - 'description' => 'The ID of the refresh task. Multiple IDs are separated by commas (,).'."\n", - 'type' => 'string', - 'example' => '95248880', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'E5BD4B50-7A02-493A-AE0B-97B9024B4135', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'CB1A380B-09F0-41BB-B084-72F8FD6DA2FE'], ], + 'description' => '', + 'title' => '', ], ], ], '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' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'Policy.NotExist', 'errorMessage' => 'The specified policy does not exist.', 'description' => 'The specified protection policy does not exist.'], + ['errorCode' => 'Policy.DeleteForbidden', 'errorMessage' => 'The specified policy is forbidden to delete.', 'description' => 'You cannot delete the specified policy.'], + ], + 403 => [ + ['errorCode' => '%s.NotSupport', 'errorMessage' => 'The specified resource type %s is not supported.', 'description' => 'The specified resource type is not supported. To use this type of resource, contact us.'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => 'The number of resources exceeds the quota. If you want to apply for more resources, contact us.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => 'An internal error occurred. Try again later. If the error persists, submit a ticket.'], + ], + ], + 'title' => 'DeleteDcdnWafPolicy', + 'summary' => 'Deletes a specified mitigation policy.', + 'description' => '> - The throttling limit is 20 calls per second per user.'."\n" + .'> - This operation supports POST requests.', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:14.000Z', 'description' => 'Error codes changed'], + ], + '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' => 'All Resource', 'arn' => '*'], + ], ], ], - 429 => [ - [ - 'errorCode' => 'TooManyRequests', - 'errorMessage' => 'Too many requests, please try again later', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-B084-72F8FD6DA2FE\\"\\n}","type":"json"}]', + ], + 'DeleteRoutine' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '111467', + 'abilityTreeNodes' => ['FEATUREdcdn75UYDO'], + ], + 'parameters' => [ + [ + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the routine. The name must be unique within your Alibaba Cloud account.', 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Content' => ['description' => 'Returns "Status": "OK".', 'type' => 'object', 'example' => '{"Status": "OK"}', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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' => 'RefreshDcdnObjectCaches', - 'description' => '* Dynamic Content Delivery Network (DCDN) supports POST requests in which parameters are sent as a form.'."\n" - .'* You can call the [RefreshDcdnObjectCaches](~~130620~~) operation to purge content and call the [PreloadDcdnObjectCaches](~~130636~~) operation to prefetch content.'."\n" - .'* By default, each Alibaba Cloud account can purge content from a maximum of 10,000 URLs and 100 directories including subdirectories per day. If the daily peak bandwidth of your Alibaba Cloud account exceeds 200 Mbit/s, [submit a ticket](https://account.alibabacloud.com/login/login.htm?oauth_callback=https%3A//ticket-intl.console.aliyun.com/%23/ticket/createIndex) to request a quota increase. Alibaba Cloud determines whether to approve your application based on your workloads.'."\n" - .'* You can specify up to 1,000 URLs or 100 directories that you want to purge in each request.'."\n" - .'* You can specify up to 1,000 URLs that you want to purge per minute for each domain name.'."\n" - .'* You can call this operation up to 30 times per second per account.'."\n" - ."\n" - .'#### [](#)Precautions'."\n" - ."\n" - .'* After a purge task is completed, your resources that are cached on points of presence (POPs) are removed. When a POP receives a request for your resources, the request is redirected to the origin server to retrieve the resources. Then, the resources are returned to the client and cached on POPs. If you frequently run purge tasks, more requests are redirected to the origin server for resources. This results in high bandwidth costs and more loads on the origin server.'."\n" - .'* A purge task takes effect 5 to 6 minutes after being submitted. If the resource you want to purge has a TTL of less than 5 minutes, you wait for it to expire instead of manually running a purge task.'."\n" - .'* To allow RAM users to perform this operation, you need to first grant them the required permissions. For more information, see [Authorize a RAM user to prefetch and refresh resources](~~445051~~).'."\n", + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => 'A server error occurred. Try again later. If the error persists, submit a ticket.'], + ], + ], + 'title' => 'DeleteRoutine', + 'summary' => 'Deletes the configuration for an Edge Routine function.', + 'description' => '> The call frequency for this API is 100 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'PreloadDcdnObjectCaches' => [ - 'summary' => 'Prefetches content from origin servers to points of presence (POPs). This reduces workloads on origin servers because users can hit cache upon their first visits.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteRoutine'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:DeleteRoutine', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": {\\n \\"Status\\": \\"OK\\"\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]', + ], + 'DeleteRoutineCodeRevision' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4303,76 +5455,98 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111597', - 'abilityTreeNodes' => [ - 'FEATUREdcdn4TTNAL', - ], + 'abilityTreeCode' => '111468', + 'abilityTreeNodes' => ['FEATUREdcdn75UYDO'], ], 'parameters' => [ [ - 'name' => 'ObjectPath', - 'in' => 'query', - 'schema' => [ - 'description' => 'The path of the content that you want to prefetch. Separate multiple URLs with line feed characters (\\n) or a pair of carriage return and line feed characters (\\r\\n).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com/examplefile.txt', - ], + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the Edge Routine. The name must be unique within an Alibaba Cloud account.', 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''], ], [ - 'name' => 'Area', - 'in' => 'query', + 'name' => 'SelectCodeRevision', + 'in' => 'formData', + 'schema' => ['description' => 'The version number of the code that you want to delete.', 'type' => 'string', 'required' => true, 'example' => '123456', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The acceleration region in which you want to prefetch content. If you do not specify a region, the value overseas is used.'."\n" - ."\n" - .'* **domestic**: Chinese mainland'."\n" - .'* **overseas**: outside the Chinese mainland'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'domestic', - 'enum' => [ - 'domestic', - 'overseas', + 'type' => 'object', + 'properties' => [ + 'Content' => ['description' => 'The content of the response. A successful response contains "Status": "OK".', 'type' => 'object', 'example' => '{"Status": "OK"}', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => 'A server error occurred. Try again later. If the error persists, submit a ticket.'], + ], + ], + 'title' => 'DeleteRoutineCodeRevision', + 'summary' => 'Deletes a specific code revision of an Edge Routine.', + 'description' => '> The API call frequency is limited to 100 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteRoutineCodeRevision'], + ], + ], + 'ramActions' => [ [ - 'name' => 'L2Preload', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to prefetch content to POPs. Valid values:'."\n" - ."\n" - .'* **true**: prefetches content to nodes that include L2 DCDN nodes.'."\n" - .'* **false**: prefetches content to L2 POPs or L3 POPs.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'false', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:DeleteRoutineCodeRevision', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": {\\n \\"Status\\": \\"OK\\"\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]', + ], + 'DeleteRoutineConfEnvs' => [ + 'summary' => 'Deletes custom grayscale environments from the environment list of an Edge Routine.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'WithHeader', - 'in' => 'query', - 'schema' => [ - 'description' => 'The custom header for prefetch in the JSON format.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{'."\n" - .' "Accept-Encoding": ['."\n" - .' "gzip"'."\n" - .' ]'."\n" - .'}', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '111469', + 'abilityTreeNodes' => ['FEATUREdcdn75UYDO'], + ], + 'parameters' => [ [ - 'name' => 'QueryHashkey', - 'in' => 'query', - 'schema' => [ - 'type' => 'boolean', - ], + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the Edge Routine. The name must be unique within an Alibaba Cloud account.', 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''], + ], + [ + 'name' => 'Envs', + 'in' => 'formData', + 'style' => 'json', + 'schema' => ['description' => 'The list of custom grayscale environments to delete.', 'type' => 'object', 'required' => true, 'example' => '["presetCanaryZheJiang"]', 'title' => ''], ], ], 'responses' => [ @@ -4380,76 +5554,51 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'PreloadTaskId' => [ - 'description' => 'The ID of the prefetch task. Multiple IDs are separated by commas (,).'."\n", - 'type' => 'string', - 'example' => '95248880', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'E5BD4B50-7A02-493A-AE0B-97B9024B4135', - ], + 'Content' => ['description' => 'Returns "Status": "OK".', 'type' => 'object', 'example' => '{"Status": "OK"}', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'A server error occurred. Try again later. If the error persists, submit a ticket.'], ], ], - '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' => 'PreloadDcdnObjectCaches', - 'description' => '* You can call the [RefreshDcdnObjectCaches](~~130620~~) operation to refresh content and call the [PreloadDcdnObjectCaches](~~130636~~) operation to prefetch content.'."\n" - .'* Dynamic Content Delivery Network (DCDN) supports POST requests in which parameters are sent as a form.'."\n" - .'* By default, each Alibaba Cloud account can submit up to 1,000 URLs per day. If the daily peak bandwidth value of your workloads exceeds 200 Mbit/s, you can [submit a ticket](https://account.alibabacloud.com/login/login.htm?oauth_callback=https%3A//ticket-intl.console.aliyun.com/%23/ticket/createIndex) to increase your daily quota. Alibaba Cloud reviews your application and then increases the quota accordingly.'."\n" - .'* You can specify up to 100 URLs to prefetch.'."\n" - .'* The prefetch queue of each Alibaba Cloud account can contain up to 100,000 URLs. DCDN executes prefetch tasks based on the time at which you submit the URLs.'."\n" - .'* You can call this operation up to 15 times per second per account.'."\n" - ."\n" - .'## Description'."\n" - ."\n" - .'* After a refresh task is submitted and completed, the POPs immediately start to retrieve resources from the origin server. Therefore, a large number of refresh tasks cause a large number of concurrent download tasks. This increases the number of requests that are redirected to the origin server. The back-to-origin routing process consumes more bandwidth resources and the origin server may be overwhelmed.'."\n" - .'* The time required for a prefetch task to complete is proportional to the size of the prefetched file. In actual practice, most prefetch tasks require 5 to 30 minutes to complete. A task with a smaller average file size requires less time.'."\n" - .'* To allow RAM users to perform this operation, you need to first grant them the required permissions. For more information, see [Authorize a RAM user to prefetch and refresh resources](~~445051~~).'."\n", + 'title' => 'DeleteRoutineConfEnvs', + 'description' => '> - Only custom Preset Canary environments can be deleted. You cannot delete the Production or Staging environments.'."\n" + .'>'."\n" + .'> - API call frequency: 100 calls/second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnRefreshQuota' => [ - 'summary' => 'Queries the maximum number and the remaining number of URLs and directories that can be refreshed or the maximum number and the remaining number of URLs that can be prefetched per day.', - '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": {\\n \\"Status\\": \\"OK\\"\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]', + ], + 'DescribeDcdnAclFields' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4460,109 +5609,86 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111537', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', + 'abilityTreeNodes' => ['FEATUREdcdn33QGRH'], + ], + 'parameters' => [ + [ + 'name' => 'Lang', + 'in' => 'query', + 'schema' => [ + 'description' => 'The language of the response. Valid values:'."\n" + ."\n" + .'- **en** (default): English'."\n" + ."\n" + .'- **zh**: Chinese', + 'type' => 'string', + 'required' => true, + 'enum' => ['zh', 'en'], + 'example' => 'en', + 'title' => '', + ], ], - 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'BlockQuota' => [ - 'description' => 'The maximum number of URLs that can be blocked.'."\n", - 'type' => 'string', - 'example' => '100', - ], - 'RegexRemain' => [ - 'description' => 'The remaining number of URLs or directories that can be refreshed by using regular expressions on the current day.'."\n", - 'type' => 'string', - 'example' => '100', - ], - 'BlockRemain' => [ - 'description' => 'The remaining number of URLs that can be blocked on the current day.'."\n", - 'type' => 'string', - 'example' => '100', - ], - 'PreloadRemain' => [ - 'description' => 'The remaining number of URLs that can be prefetched on the current day.'."\n", - 'type' => 'string', - 'example' => '500', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '42E0554B-80F4-4921-AED6-ACFB22CAAAD0', - ], - 'DirRemain' => [ - 'description' => 'The remaining number of directories that can be refreshed on the current day.'."\n", - 'type' => 'string', - 'example' => '100', - ], - 'UrlRemain' => [ - 'description' => 'The remaining number of URLs that can be refreshed on the current day.'."\n", - 'type' => 'string', - 'example' => '2000', - ], - 'DirQuota' => [ - 'description' => 'The maximum number of directories that can be refreshed on the current day.'."\n", - 'type' => 'string', - 'example' => '100', - ], - 'UrlQuota' => [ - 'description' => 'The maximum number of URLs that can be refreshed on the current day.'."\n", - 'type' => 'string', - 'example' => '2000', - ], - 'PreloadQuota' => [ - 'description' => 'The maximum number of URLs that can be prefetched on the current day.'."\n", - 'type' => 'string', - 'example' => '500', - ], - 'RegexQuota' => [ - 'description' => 'The maximum number of URLs or directories that can be refreshed by using regular expressions on the current day.'."\n", - 'type' => 'string', - 'example' => '100', - ], - 'IgnoreParamsQuota' => [ - 'description' => 'The maximum number of URLs or directories with parameters ignored that can be refreshed on the current day.'."\n", - 'type' => 'string', - 'example' => '100', - ], - 'IgnoreParamsRemain' => [ - 'description' => 'The number of remaining URLs or directories that can be refreshed with parameters ignored on the current day.'."\n", - 'type' => 'string', - 'example' => '10', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '30A3A25A-86B3-4C1D-BAA8-12B8607A5CFD', 'title' => ''], + 'Content' => [ + 'description' => 'The rule details.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Fields' => ['description' => 'The supported rule items and configuration policies. The value is a JSON string that requires decoding.', '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\\"}]', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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' => 'DescribeDcdnRefreshQuota', - 'description' => '> '."\n" - ."\n" - .'* You can call the **RefreshDcdnObjectCaches** operation to refresh content and call the **PreloadDcdnObjectCaches** operation to prefetch content.'."\n" - ."\n" - .'* You can call this operation up to 20 times per second per account.'."\n", + 'title' => 'DescribeDcdnAclFields', + 'summary' => 'You can call the DescribeDcdnAclFields operation to query the fields that are available for access control rules.', + 'description' => '> The call frequency for a single user is limited to 3 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnRefreshTasks' => [ - 'summary' => 'Queries the refresh or prefetch tasks. You can query the tasks in the last three days.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2022-12-08T02:53:10.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnAclFields'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnAclFields', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnBgpBpsData' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4573,134 +5699,286 @@ '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' => 'The ID of the task. A task ID is assigned when you create a refresh or prefetch task.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '704225667', - ], + 'schema' => ['description' => 'The line to query. To query multiple lines, separate them with commas (,). If you specify multiple lines, the data is aggregated. By default, data for all lines is queried.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- cu: China Unicom.'."\n" + ."\n" + .'- cmi: China Mobile.'."\n" + ."\n" + .'- ct: China Telecom.', 'type' => 'string', 'required' => false, 'example' => 'cu', 'title' => ''], ], [ - 'name' => 'ObjectPath', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The path of the object. The path is used as a condition for exact matching.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'http://example.com/examplefile.txt', - ], + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'The minimum data granularity is 1 hour.'."\n" + ."\n" + .'By default, data from the past 24 hours is read.', 'type' => 'string', 'required' => false, 'example' => '2018-11-29T00:00:00Z', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Valid values: **1** to **100000**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '42949672', - 'example' => '2', - 'default' => '1', - ], + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2018-11-30T00:00:00Z', 'title' => ''], ], [ - 'name' => 'ObjectType', + 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the task.'."\n" - ."\n" - .'* **file**: URL-based refresh'."\n" - .'* **directory**: directory-based refresh'."\n" - .'* **preload**: URL-based prefetch'."\n" - ."\n" - .'If you set **DomainName** or **Status**, you must also set this parameter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'file', - 'enum' => [ - 'file', - 'directory', - 'preload', - 'IgnoreParams', - 'regex', - ], - ], + 'schema' => ['description' => 'The data granularity in seconds. Valid values are 300 and 3600. The default value is 300 (five minutes). The final granularity also depends on the specified time span.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''], ], [ - 'name' => 'DomainName', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. You can specify only one domain name in each request.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The device name. If you specify a device name, data for that device is returned. If you do not specify a device name, data for all devices is merged and returned.', 'type' => 'string', 'required' => false, 'example' => 'devicename', 'title' => ''], ], [ - 'name' => 'Status', + 'name' => 'DevicePort', 'in' => 'query', + 'schema' => ['description' => 'The device port. If you specify a port, data for that port is returned. If you do not specify a port, data for all ports is returned. This parameter takes effect only when you specify **DeviceName**.', 'type' => 'string', 'required' => false, 'example' => '123', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The status of the task.'."\n" - ."\n" - .'* **Complete**: The task is complete.'."\n" - .'* **Refreshing**: The task is in progress.'."\n" - .'* **Failed**: The task failed.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Complete', - 'enum' => [ - 'Complete', - 'Refreshing', - 'Failed', + 'type' => 'object', + 'properties' => [ + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2018-11-30T00:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range.', 'type' => 'string', 'example' => '2018-11-29T00:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'E9D3257A-1B7C-414C-90C1-8D07AC47BCAC', 'title' => ''], + 'BgpDataInterval' => [ + 'description' => 'The BGP bandwidth data for each time interval.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Out' => ['description' => 'The outbound bandwidth. Unit: Bps.', 'type' => 'number', 'format' => 'float', 'example' => '183', 'title' => ''], + 'In' => ['description' => 'The inbound bandwidth. Unit: Bps.', 'type' => 'number', 'format' => 'float', 'example' => '318', 'title' => ''], + 'TimeStamp' => ['description' => 'The start time of the time slice.', 'type' => 'string', 'example' => '2018-11-29T20:00:00Z', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], + ], + ], + 'title' => 'DescribeDcdnBgpBpsData', + 'summary' => 'Call the DescribeDcdnBgpBpsData operation to query bandwidth data for Border Gateway Protocol (BGP) acceleration at a 5-minute granularity.', + 'description' => '- If you do not specify \\`StartTime\\` and \\`EndTime\\`, the operation retrieves data from the past 24 hours by default. You can also specify both \\`StartTime\\` and \\`EndTime\\` to query data for a specific time range.'."\n" + ."\n" + .'- If you specify multiple lines, the data is aggregated.'."\n" + ."\n" + .'- You can query data from the last 90 days.'."\n" + ."\n" + .'- The maximum time span between \\`StartTime\\` and \\`EndTime\\` is 31 days.'."\n" + ."\n" + .'- If the time span is 72 hours or less, the data is returned at a 5-minute granularity. If the time span is more than 72 hours, the data is returned at an hourly granularity.'."\n" + ."\n" + .'- The maximum call frequency for a single user is 5 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnBgpBpsData'], + ], + ], + 'ramActions' => [ [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Default value: **20**. Maximum value: **50**. Valid values: **1** to **50**.'."\n", - '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' => 'All Resource', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnBgpTrafficData' => [ + 'summary' => 'Call the DescribeDcdnBgpTrafficData operation to query Border Gateway Protocol (BGP) acceleration traffic data at a five-minute granularity.', + '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' => 'The line to query. To query multiple lines, separate them with commas (,). If you specify multiple lines, the data is aggregated. By default, all lines are queried.'."\n" + ."\n" + .'Valid values:'."\n" + ."\n" + .'- cu: China Unicom.'."\n" + ."\n" + .'- cmi: China Mobile.'."\n" + ."\n" + .'- ct: China Telecom.', 'type' => 'string', 'required' => false, 'example' => 'cu', 'title' => ''], + ], [ 'name' => 'StartTime', 'in' => 'query', + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'The minimum data granularity is 1 hour.'."\n" + ."\n" + .'By default, data from the last 24 hours is read.', 'type' => 'string', 'required' => false, 'example' => '2018-11-29T00:00:00Z', 'title' => ''], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2018-11-30T00:00:00Z', 'title' => ''], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => ['description' => 'The data granularity. Valid values are 300 (5 minutes) and 3600 (1 hour). The default value is 300. The actual granularity depends on the time span of the query.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-01-01T12:12:20Z', + 'type' => 'object', + 'properties' => [ + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2018-11-30T00:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range.', 'type' => 'string', 'example' => '2018-11-29T00:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'E9D3257A-1B7C-414C-90C1-8D07AC47BCAC', 'title' => ''], + 'BgpDataInterval' => [ + 'description' => 'The BGP traffic data for each time interval.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Out' => ['description' => 'The outbound traffic. Unit: byte.', 'type' => 'integer', 'format' => 'int64', 'example' => '183', 'title' => ''], + 'In' => ['description' => 'The inbound traffic. Unit: byte.', 'type' => 'integer', 'format' => 'int64', 'example' => '318', 'title' => ''], + 'TimeStamp' => ['description' => 'The start time of the time slice.', 'type' => 'string', 'example' => '2018-11-29T20:00:00Z', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], + ], + ], + 'title' => 'DescribeDcdnBgpTrafficData', + 'description' => '- If you do not specify StartTime and EndTime, the operation retrieves data from the past 24 hours by default. To query data for a specific time range, you must specify both a start time and an end time.'."\n" + ."\n" + .'- If you specify multiple lines, the data is aggregated.'."\n" + ."\n" + .'- You can query data from the last 90 days.'."\n" + ."\n" + .'- The maximum time span between StartTime and EndTime is 31 days.'."\n" + ."\n" + .'- For a time span of 72 hours or less, data is returned at a 5-minute granularity. For a time span longer than 72 hours, data is returned at an hourly granularity.'."\n" + ."\n" + .'- The call frequency is limited to 5 calls per second for each user.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnBgpTrafficData'], + ], + ], + 'ramActions' => [ [ - 'name' => 'EndTime', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnBgpTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnBlockedRegions' => [ + 'summary' => 'Queries the countries and regions supported by the Location Blacklist feature.', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + ], + 'parameters' => [ + [ + 'name' => 'Language', 'in' => 'query', 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\n", + 'description' => 'The language. Valid values: zh, en, and jp.', 'type' => 'string', - 'required' => false, - 'example' => '2017-01-01T12:13:20Z', + 'required' => true, + 'enum' => ['zh', 'en', 'jp'], + 'example' => 'zh', + 'title' => '', ], ], ], @@ -4709,171 +5987,77 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '174F6032-AA26-470D-B90E-36F0EB205BEE', - ], - 'PageNumber' => [ - 'description' => 'The page number of the returned page.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'TotalCount' => [ - 'description' => 'The number of tasks.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - 'Tasks' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'BFFCDFAD-DACC-484E-9BE6-0AF3B3A0DD23', 'title' => ''], + 'InfoList' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Task' => [ - 'description' => 'Details about tasks.'."\n", + 'InfoItem' => [ + 'description' => 'A list of countries and regions.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => 'The status of the task.'."\n" - ."\n" - .'* **Complete**: The task is complete.'."\n" - .'* **Refreshing**: The task is in progress.'."\n" - .'* **Failed**: The task failed.'."\n", - 'type' => 'string', - 'example' => 'Complete', - ], - 'CreationTime' => [ - 'description' => 'The time when the task was created. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2014-11-27T08:23:22Z', - ], - 'ObjectType' => [ - 'description' => 'The type of the task.'."\n" - ."\n" - .'* **file**: URL-based refresh'."\n" - .'* **path**: directory-based refresh'."\n" - .'* **preload**: URL-based prefetch'."\n", - 'type' => 'string', - 'example' => 'file', - ], - 'Process' => [ - 'description' => 'The progress of the task in percentage.'."\n", - 'type' => 'string', - 'example' => '10', - ], - 'Description' => [ - 'description' => 'The type of error returned when the refresh or prefetch task has failed.'."\n" - ."\n" - .'* **InternalError**: An internal error occurred.'."\n" - .'* **OriginTimeout**: The response from the origin server timed out.'."\n" - .'* **OriginReturn StatusCode 5XX**: The origin server returned a 5XX error.'."\n", - 'type' => 'string', - 'example' => 'InternalError', - ], - 'ObjectPath' => [ - 'description' => 'The URL of the object refreshed.'."\n", - 'type' => 'string', - 'example' => 'http://example.com/examplefile.txt', - ], - 'TaskId' => [ - 'description' => 'The ID of the task.'."\n", - 'type' => 'string', - 'example' => '123', - ], + 'CountriesAndRegions' => ['description' => 'The abbreviation of the country or region.', 'type' => 'string', 'example' => 'AE', 'title' => ''], + 'Continent' => ['description' => 'The continent to which the country or region belongs.', 'type' => 'string', 'example' => 'Middle East', 'title' => ''], + 'CountriesAndRegionsName' => ['description' => 'The name of the country or region.', 'type' => 'string', 'example' => 'United Arab Emirates', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'A required parameter is not set.'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], ], ], - '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' => 'DescribeDcdnRefreshTasks', - 'description' => '* You can query the refresh or prefetch tasks by ID or URL.'."\n" - .'* You can set both **TaskId** and **ObjectPath** in a request. If you do not set **TaskId** or **ObjectPath**, the data in the last 3 days on the first page is returned. By default, a maximum of 20 entries can be displayed on each page.'."\n" - .'* If you specify **DomainName** or **Status**, you must also specify **ObjectType**.'."\n" - .'* You can call this operation up to 10 times per second per account.', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'DescribeDcdnBlockedRegions', + 'description' => '> A single user can call this operation up to 50 times per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnUserQuota' => [ - 'summary' => 'Queries the resource quotas and the used resources.', - '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'translator' => 'manual', + ], + 'DescribeDcdnCertificateDetail' => [ + 'summary' => 'You can call the DescribeDcdnCertificateDetail operation to query the details of a DCDN certificate.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -4884,142 +6068,81 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111560', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZA9EPX', + 'abilityTreeNodes' => ['FEATUREdcdnX7NWEB'], + ], + 'parameters' => [ + [ + 'name' => 'CertName', + 'in' => 'query', + 'schema' => ['description' => 'The certificate name.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '123'], ], - 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'BlockQuota' => [ - 'description' => 'The maximum number of URLs that can be blocked.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'RefreshUrlRemain' => [ - 'description' => 'The remaining number of URLs that can be refreshed.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'DomainQuota' => [ - 'description' => 'The maximum number of accelerated domains.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'BlockRemain' => [ - 'description' => 'The remaining number of URLs that can be blocked.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '500', - ], - 'PreloadRemain' => [ - 'description' => 'The remaining number of URLs that can be prefetched.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '300', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'BFFCDFAD-DACC-484E-9BE6-0AF3B3A0DD23', - ], - 'RefreshUrlQuota' => [ - 'description' => 'The maximum number of URLs that can be refreshed.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'PreloadQuota' => [ - 'description' => 'The maximum number of URLs that can be prefetched.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '500', - ], - 'RefreshDirQuota' => [ - 'description' => 'The maximum number of directories that can be refreshed.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'RefreshDirRemain' => [ - 'description' => 'The remaining number of directories that can be refreshed.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'IgnoreParamsQuota' => [ - 'description' => 'The maximum number of URLs or directories with parameters ignored that can be refreshed.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'IgnoreParamsRemain' => [ - 'description' => 'The number of remaining URLs or directories with parameters ignored that can be refreshed.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], + 'CertName' => ['description' => 'The certificate name.', 'type' => 'string', 'title' => '', 'example' => '123'], + 'Key' => ['description' => 'The certificate key.', 'type' => 'string', 'title' => '', 'example' => 'ak1htyxxxx'], + 'Cert' => ['description' => 'The content of the certificate.', 'type' => 'string', 'title' => '', 'example' => '-----BEGIN CERTIFICATE-----xxx-----END CERTIFICATE-----'], + 'CertId' => ['description' => 'The certificate ID.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '123'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'C7C69682-7F88-40DD-A198-10D0309E439B'], ], 'description' => '', + 'title' => '', ], ], ], - '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' => 'DescribeDcdnUserQuota', - 'description' => '> The maximum number of times that each user can call this operation per second is 30.'."\n", + 'title' => 'DescribeDcdnCertificateDetail', + 'description' => '> The call frequency is limited to 30 calls per second for a single user.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnRefreshTaskById' => [ - 'summary' => 'Queries the status of purge or prefetch tasks by task ID.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2022-10-27T02:44:05.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnCertificateDetail'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnCertificateDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnCertificateList' => [ + 'summary' => 'Queries a list of certificates by domain name.', + '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' => 'The ID of the task that you want to query. The following signature algorithms require different message digest algorithms:'."\n" - ."\n" - .'* Perform the [RefreshDcdnObjectCaches](~~130620~~) operation to query refresh task IDs.'."\n" - .'* Perform the [PreloadDcdnObjectCaches](~~130636~~) operation to query prefetch task IDs.'."\n" - ."\n" - .'> You can specify at most 10 task IDs in each call. Separate IDs with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '113681**', - ], + 'schema' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'example.com'], ], ], 'responses' => [ @@ -5027,408 +6150,493 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'TotalCount' => [ - 'description' => 'The total number of tasks.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'E0C2EF95-B1EC-4C93-855E-2059A7DA2B7B', - ], - 'Tasks' => [ - 'description' => 'A list of prefetch or refresh tasks.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The task status. Valid values:'."\n" - ."\n" - .'* **Complete**: The task is complete.'."\n" - .'* **Pending**: The task is pending.'."\n" - .'* **Refreshing**: The task is running.'."\n" - .'* **Failed**: The task failed.'."\n", - 'type' => 'string', - 'example' => 'Complete', - ], - 'CreationTime' => [ - 'description' => 'The time when the task was created. The time follows the ISO8601 standard in the YYYY-MM-DDThh:mmZ format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2021-05-10T08:54:23Z', - ], - 'ObjectType' => [ - 'description' => 'The type of the refresh or prefetch task. Valid values:'."\n" - ."\n" - .'* **file**: refreshes an individual file.'."\n" - .'* **directory**: refreshes files under the specified directory.'."\n" - .'* **preload**: prefetches an individual file.'."\n", - 'type' => 'string', - 'example' => 'file', - ], - 'Process' => [ - 'description' => 'The progress of the task, in percentage.'."\n", - 'type' => 'string', - 'example' => '100%', - ], - 'Description' => [ - 'description' => 'The error returned when the refresh or prefetch task failed. Valid values:'."\n" - ."\n" - .'* **Internal Error**: An internal error occurred.'."\n" - .'* **Origin Timeout**: The response from the origin server timed out.'."\n" - .'* **Origin Return StatusCode 5XX**: The origin server returned a 5XX error.'."\n", - 'type' => 'string', - 'example' => 'Internal Error', - ], - 'ObjectPath' => [ - 'description' => 'The path of the refresh or prefetch object.'."\n", - 'type' => 'string', - 'example' => 'http://example.com/image_01.png', - ], - 'TaskId' => [ - 'description' => 'The ID of the task.'."\n", - 'type' => 'string', - 'example' => '113681**', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'FC0E34AC-0239-44A7-AB0E-800DE522C8DA'], + 'CertificateListModel' => [ + 'description' => 'A container for certificate information.', + 'type' => 'object', + 'properties' => [ + 'Count' => ['description' => 'The number of certificates.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '2'], + 'CertList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Cert' => [ + 'description' => 'The list of certificates.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Fingerprint' => ['description' => 'The fingerprint of the certificate.', 'type' => 'string', 'title' => '', 'example' => '0151xxxx'], + 'Issuer' => ['description' => 'The issuer of the certificate.', 'type' => 'string', 'title' => '', 'example' => 'DigiCert'], + 'CertId' => ['description' => 'The ID of the certificate.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '7428244'], + 'CertName' => ['description' => 'The name of the certificate.', 'type' => 'string', 'title' => '', 'example' => 'yourCertName'], + 'LastTime' => ['description' => 'The time when the certificate was last modified. The time is in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '1548065550'], + 'Common' => ['description' => 'The common name of the certificate.', 'type' => 'string', 'title' => '', 'example' => 'example.com'], + ], + 'description' => 'The list of certificates.', + 'title' => '', + ], + 'title' => '', + ], ], + 'description' => '', + 'title' => '', ], ], + 'title' => '', ], ], 'description' => '', + 'title' => '', ], ], ], - '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' => 'DescribeDcdnCertificateList', + 'changeSet' => [ + ['createdAt' => '2022-10-27T03:10:38.000Z', 'description' => 'Error codes changed'], + ], + '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' => 'DescribeDcdnRefreshTaskById', - 'description' => '> '."\n" - ."\n" - .'* You can query data within the last three days.'."\n" - ."\n" - .'* You can call this operation up to 30 times per second per account.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', + '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"}]', 'extraInfo' => ' ', ], - 'RefreshDcdnObjectCacheByCacheTag' => [ - 'summary' => 'Purges the cache based on cache tags that you configured.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'https', - ], + 'DescribeDcdnDdosService' => [ + 'summary' => 'Queries the status of the DCDN DDoS service.', + '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' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the service. Valid values:'."\n" + ."\n" + .'- **Normal**: The service is running as expected.'."\n" + ."\n" + .'- **WaitForExpire**: The service is about to be suspended.'."\n" + ."\n" + .'- **Expired**: The service has expired.'."\n" + ."\n" + .'- **Released**: The service is released.', 'type' => 'string', 'title' => '', 'example' => 'Normal'], + 'ChangingAffectTime' => ['description' => 'The time when the new settings will take effect. The time is in GMT.', 'type' => 'string', 'title' => '', 'example' => '2018-03-31T16:00:00Z'], + 'OpeningTime' => ['description' => 'The time when the service was enabled.', 'type' => 'string', 'title' => '', 'example' => '2021-09-26T16:00:00Z'], + 'ChangingEdition' => ['description' => 'The edition of the service after the change takes effect. Valid values:'."\n" + ."\n" + .'- **poc**: Proof of Concept (POC) Edition.'."\n" + ."\n" + .'- **basic**: Basic Edition.'."\n" + ."\n" + .'- **insurance**: Insurance Edition.'."\n" + ."\n" + .'- **unlimited**: Unlimited Edition.', 'type' => 'string', 'title' => '', 'example' => 'basic'], + 'ChargeType' => ['description' => 'The billing method. Valid values:'."\n" + ."\n" + .'- **PayByBandwidth**: pay-by-daily-peak-bandwidth.'."\n" + ."\n" + .'- **PayByTraffic**: pay-by-traffic.'."\n" + ."\n" + .'- **PayByBandwidth95**: pay-by-95th-percentile-bandwidth.', 'type' => 'string', 'title' => '', 'example' => 'PayByTraffic'], + 'DomianNum' => ['description' => 'The number of protected domain names.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '20'], + 'ChangingProtectNum' => ['description' => 'The number of mitigation sessions after the change takes effect.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '100'], + 'ChangingDomianNum' => ['description' => 'The number of protected domain names after the change takes effect.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '30'], + 'InstanceId' => ['description' => 'The instance ID.', 'type' => 'string', 'title' => '', 'example' => 'xxx-12345'], + 'Edition' => ['description' => 'The current edition of the service. Valid values:'."\n" + ."\n" + .'- **poc**: POC Edition.'."\n" + ."\n" + .'- **basic**: Basic Edition.'."\n" + ."\n" + .'- **insurance**: Insurance Edition.'."\n" + ."\n" + .'- **unlimited**: Unlimited Edition.', 'type' => 'string', 'title' => '', 'example' => 'poc'], + 'ChangingChargeType' => ['description' => 'The billing method after the change takes effect. Valid values:'."\n" + ."\n" + .'- **PayByBandwidth**: pay-by-daily-peak-bandwidth.'."\n" + ."\n" + .'- **PayByTraffic**: pay-by-traffic.'."\n" + ."\n" + .'- **PayByBandwidth95**: pay-by-95th-percentile-bandwidth.', 'type' => 'string', 'title' => '', 'example' => 'PayByBandwidth'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'C370DAF1-C838-4288-A1A0-9A87633D248E'], + 'ProtectNum' => ['description' => 'The number of mitigation sessions.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '100'], + 'Enabled' => ['description' => 'Indicates whether the service is enabled. Valid values:'."\n" + ."\n" + .'- **on**: Enabled.'."\n" + ."\n" + .'- **off**: Not enabled.', 'type' => 'string', 'title' => '', 'example' => 'on'], + 'EndingTime' => ['description' => 'The expiration time of the service.', 'type' => 'string', 'title' => '', 'example' => '2023-09-26T16:00:00Z'], + ], 'description' => '', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com ', + 'title' => '', ], ], + ], + 'title' => 'DescribeDcdnDdosService', + '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' => 'All Resource', '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' => 'Queries the edition specifications for Anti-DDoS for DCDN.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Force', - 'in' => 'query', - 'schema' => [ - 'description' => '', - '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' => '', - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', - ], - 'RefreshTaskId' => [ - 'description' => '', - 'type' => 'string', - 'example' => '17410889914', + 'Edition' => ['description' => 'The edition. Valid values:'."\n" + ."\n" + .'- **poc**: Proof of Concept (POC) Edition.'."\n" + .'- **basic**: Basic Edition.'."\n" + .'- **insurance**: Insurance Edition.'."\n" + .'- **unlimited**: Unlimited Edition.'."\n" + .'- **port\\_enhancement**: Special Port Enhancement Edition.', 'type' => 'string', 'title' => '', 'example' => 'insurance'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'DEA8E7BE-33C6-56F5-AC56-74D50547CF34'], + 'Enable' => ['description' => 'Indicates whether the Anti-DDoS service is enabled. Valid values:'."\n" + ."\n" + .'- **on**: The service is enabled.'."\n" + .'- **off**: The service is disabled.', 'type' => 'string', 'title' => '', 'example' => 'on'], + 'ProtectedArea' => ['description' => 'The protected region. Valid values:'."\n" + ."\n" + .'- **global**: Global.'."\n" + .'- **chinese\\_mainland**: the Chinese mainland.'."\n" + .'- **global\\_excluding\\_the\\_chinese\\_mainland**: Global (excluding the Chinese mainland).', 'type' => 'string', 'title' => '', 'example' => 'global'], + 'BandwidthLimit' => ['description' => 'The bandwidth limit for a single instance.', 'type' => 'string', 'title' => '', 'example' => '40Gbps'], + 'QpsLimit' => ['description' => 'The queries per second (QPS) limit.', 'type' => 'string', 'title' => '', 'example' => '100'], + 'SpecInfos' => [ + 'description' => 'The supported rule codes and the configurations of the rules.', + 'type' => 'array', + 'items' => [ + 'description' => 'The supported rule codes and the configurations of the rules.', + 'type' => 'object', + 'properties' => [ + 'Rule' => ['description' => 'The rule of the edition. Valid values:'."\n" + ."\n" + .'- **version\\_defense\\_num**: rules related to the number of mitigation sessions for the edition.'."\n" + .'- **domain\\_num**: rules related to the limit on the number of domain names.'."\n" + .'- **defence\\_package\\_num**: rules related to extra mitigation session packages.', 'type' => 'string', 'title' => '', 'example' => 'version_defense_num'], + 'Configs' => [ + 'description' => 'The configurations of the rule.', + 'type' => 'array', + 'items' => [ + 'description' => 'The configurations of the rule.', + 'type' => 'object', + 'properties' => [ + 'Value' => ['description' => 'The value of the configuration expression for the rule.', 'type' => 'string', 'title' => '', 'example' => '1'], + 'Config' => ['description' => 'The configuration code for the rule. Valid values:'."\n" + ."\n" + .'- **total\\_defense\\_num**: the total number of mitigation sessions included in the edition.'."\n" + .'- **consume\\_defense\\_num**: the number of used mitigation sessions included in the edition.'."\n" + .'- **max\\_domain\\_num**: the maximum number of domain names that can be added.'."\n" + .'- **emain\\_domain\\_num**: the number of added domain names.'."\n" + .'- **defence\\_package\\_num**: the total number of mitigation sessions in purchased extra packages.'."\n" + .'- **consume\\_defence\\_package\\_num**: the number of used mitigation sessions from purchased extra packages.', 'type' => 'string', 'title' => '', 'example' => 'total_defense_num'], + 'Expr' => ['description' => 'The configuration expression of the rule.', 'type' => 'string', 'title' => '', 'example' => 'equal'], + ], + 'title' => '', + ], + 'title' => '', + ], + ], + 'title' => '', + ], + 'title' => '', ], + 'IsSpecialPort' => ['description' => 'Indicates whether custom ports are supported. Valid values:'."\n" + ."\n" + .'- **yes**: Custom ports are supported.'."\n" + .'- **no**: Custom ports are not supported.', 'type' => 'string', 'title' => '', 'example' => 'no'], ], + 'description' => '', + 'title' => '', ], ], ], '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' => 'A parameter is set to an invalid value.'], ], - 429 => [ - [ - 'errorCode' => 'TooManyRequests', - 'errorMessage' => 'Too many requests, please try again later', - ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => 'An internal error occurred. Try again later. If the error persists, submit a ticket.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => 'DescribeDcdnDdosSpecInfo', + 'changeSet' => [ + ['createdAt' => '2023-09-14T01:39:06.000Z', 'description' => 'Response parameters changed'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\",\\n \\"RefreshTaskId\\": \\"17410889914\\"\\n}","type":"json"}]', - 'title' => 'RefreshDcdnObjectCacheByCacheTag', - ], - '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' => 'All Resource', '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' => 'Queries the domain names that have been deleted from your account.', + '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' => '', - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The number of the page to return. The default value is **1**. Valid values: **1** to **100000**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100000', 'minimum' => '1', 'default' => '1', 'title' => '', 'example' => '1'], ], [ - 'name' => 'CacheTag', + 'name' => 'PageSize', 'in' => 'query', + 'schema' => ['description' => 'The number of domain names to return on each page. The default value is **20**. Valid values: an integer from **1** to **500**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'minimum' => '1', 'default' => '20', 'title' => '', 'example' => '5'], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => 'AA75AADB-5E25-4970-B480-EAA1F5658483'], + 'PageNumber' => ['description' => 'The number of the returned page. The value is the same as the **PageNumber** request parameter.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '1'], + 'PageSize' => ['description' => 'The number of domain names returned on each page. The value is the same as the **PageSize** request parameter.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '5'], + 'TotalCount' => ['description' => 'The total number of domain names that are returned.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '16'], + 'Domains' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'PageData' => [ + 'description' => 'The information about the accelerated domain names.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'GmtModified' => ['description' => 'The time when the accelerated domain name was last modified. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'title' => '', 'example' => '2015-10-28T11:05:52Z'], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'title' => '', 'example' => 'example.com'], + ], + 'description' => '', + 'title' => '', + ], + 'title' => '', + ], + ], + 'description' => '', + 'title' => '', + ], + ], 'description' => '', - 'type' => 'string', - 'required' => true, - 'example' => 'tag1,tag2', + 'title' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidPageNumber.ValueNotSupported', 'errorMessage' => 'The specified value of PageNumber is not supported.', 'description' => 'The PageNumber parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'InvalidPageSize.ValueNotSupported', 'errorMessage' => 'The specified value of PageSize is invalid.', 'description' => 'The PageSize parameter is set to an invalid. Specify a valid value and try again.'], + ], + ], + 'title' => 'DescribeDcdnDeletedDomains', + 'description' => '> The call frequency is limited to 10 calls per second for each user.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDeletedDomains'], + ], + ], + 'ramActions' => [ [ - 'name' => 'MergeDomainName', - 'in' => 'query', - 'schema' => [ - 'description' => '', - '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' => 'All Resource', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDeliverList' => [ + 'summary' => 'Call the DescribeDcdnDeliverList operation to query a list of all report tracking tasks.', + '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' => '', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'The ID of the tracking task that you want to query. If you do not specify this parameter, all tracking tasks are returned.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'title' => '', 'example' => '92'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '', - 'type' => 'string', - 'example' => 'EEEBE525-F576-1196-8DAF-2D70CA3F4D2F'."\n", - ], - 'RefreshTaskId' => [ - 'description' => '', - 'type' => 'string', - 'example' => '17410889914', - ], + 'Content' => ['description' => 'The data of the tracking task list.', 'type' => 'string', 'title' => '', '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' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'TimeParseFailed', 'errorMessage' => 'Failed to parse the time parameter.', 'description' => 'Failed to parse the time parameter.'], + ['errorCode' => 'SubscriptionAlreadyExists', 'errorMessage' => 'The subscription already exists.', 'description' => 'The subscription already exists.'], + ['errorCode' => 'SubscriptionNotFound', 'errorMessage' => 'The subscription is not found.', 'description' => 'The subscription is not found.'], + ['errorCode' => 'NameAlreadyExists', 'errorMessage' => 'The name already exists.', 'description' => 'The name already exists.'], + ['errorCode' => 'DeliverExceedLimit', 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', 'description' => 'The number of tracking tasks has reached the upper limit.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EEEBE525-F576-1196-8DAF-2D70CA3F4D2F\\\\n\\",\\n \\"RefreshTaskId\\": \\"17410889914\\"\\n}","type":"json"}]', - ], - 'DescribeDcdnDomainHttpCodeData' => [ - 'summary' => 'Queries the total number and proportions of HTTP status codes returned from one or more accelerated domain names. Data is collected every 5 minutes. You can query data in the last 90 days.', - 'methods' => [ - 'get', - 'post', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'DescribeDcdnDeliverList', + 'description' => '> The throttling limit for a single user is 3 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => '**Description of the Content parameter**'."\n" + ."\n" + .'| Parameter | Type | Description |'."\n" + .'| ---------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| deliverId | Long | The ID of the tracking task. |'."\n" + .'| status | String | The status of the tracking task. Valid values: enable: The task is enabled. disable: The task is disabled. |'."\n" + .'| createTime | String | The time when the tracking task was created. |'."\n" + .'| crontab | String | The execution schedule of the tracking task. |'."\n" + .'| frequency | String | The execution frequency. Valid values: h: hour d: day M: month |'."\n" + .'| name | String | The name of the tracking task. |'."\n" + .'| dmList | String\\[] | The list of domain names for the tracking task. |'."\n" + .'| reports | String\\[] | The list of subscribed reports. This parameter contains the following subparameters: reportId: The ID of the report. conditions: The filter conditions for the report. This parameter is empty if no filter conditions are specified. A filter condition consists of the following parts: op (the filter operator, only in is supported), field (the filter field), and **value** (the filter value). |'."\n" + .'| deliver | String | The delivery module, which contains information such as the email subject and recipients. email: The email delivery details. subject: The email subject. to: The list of recipients. copy: The list of CC recipients. |', + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'translator' => 'machine', + ], + 'DescribeDcdnDomainBpsData' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -5439,82 +6647,52 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdn6V3WP1'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. Separate multiple accelerated domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name.'."\n" + ."\n" + .'To query data for multiple domain names, separate them with commas (,). If you do not set this parameter, data for all accelerated domain names is queried by default.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2019-03-01T00:00:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2019-03-02T00:00:00Z', - ], + 'schema' => ['description' => 'The end of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z', 'title' => ''], ], [ 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => 'The time granularity of the data entries. Unit: seconds.'."\n" - ."\n" - .'The time granularity varies with the maximum time range per query. Valid values: 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). For more information, see **Usage notes**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => 'The time granularity of the data to query, in seconds.'."\n" + ."\n" + .'Depending on the maximum time range per query, valid values are 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). For more information, see the supported time granularities described in the **Usage notes** section.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''], ], [ 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the Internet service provider (ISP).'."\n" - ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query ISPs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'unicom', - ], + 'schema' => ['description' => 'The English name of the carrier.'."\n" + ."\n" + .'You can call [DescribeDcdnRegionAndIsp](~~207199~~) to obtain the name. By default, data for all carriers is queried.', 'type' => 'string', 'required' => false, 'example' => 'beijing', 'title' => ''], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the region.'."\n" - ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query regions.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => 'The English name of the region.'."\n" + ."\n" + .'You can call [DescribeDcdnRegionAndIsp](~~207199~~) to obtain the name. By default, data for all regions is queried.', 'type' => 'string', 'required' => false, 'example' => 'unicom', 'title' => ''], ], ], 'responses' => [ @@ -5522,140 +6700,98 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2018-03-01T13:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The start of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2019-03-01T00:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '91FC2D9D-B042-4634-8A5C-7B8E7482C22D', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '300', - ], - 'DataPerInterval' => [ + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range.', 'type' => 'string', 'example' => '2017-12-10T10:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'DataInterval' => ['description' => 'The time granularity of the data.', 'type' => 'string', 'example' => '300', 'title' => ''], + 'BpsDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => 'The proportions of HTTP status codes at each time interval.'."\n", + 'description' => 'The network bandwidth data at each time interval.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'TimeStamp' => [ - 'description' => 'The timestamp of the data returned.'."\n", - 'type' => 'string', - 'example' => '2019-03-01T13:00:00Z', - ], - 'HttpCodeDataPerInterval' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'HttpCodeDataModule' => [ - 'description' => 'The proportions of the HTTP status codes.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => 'The HTTP status code returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '404', - ], - 'Proportion' => [ - 'description' => 'The proportion of the HTTP status code.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '33.333333', - ], - 'Count' => [ - 'description' => 'The count of each HTTP status code.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '1', - ], - ], - ], - ], - ], - ], + 'TimeStamp' => ['description' => 'The beginning of the time slice.', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z', 'title' => ''], + 'StaticHttpsBps' => ['description' => 'The static HTTPS bandwidth. Unit: bit/s.', 'type' => 'number', 'format' => 'float', 'example' => '123', 'title' => ''], + 'Bps' => ['description' => 'The bandwidth. Unit: bit/s.', 'type' => 'number', 'format' => 'float', 'example' => '11286', 'title' => ''], + 'DynamicHttpsBps' => ['description' => 'The dynamic HTTPS bandwidth. Unit: bit/s.', 'type' => 'number', 'format' => 'float', 'example' => '12312', 'title' => ''], + 'DynamicHttpBps' => ['description' => 'The dynamic HTTP bandwidth. Unit: bit/s.', 'type' => 'number', 'format' => 'float', 'example' => '11286111', 'title' => ''], + 'StaticHttpBps' => ['description' => 'The static HTTP bandwidth. Unit: bit/s.', 'type' => 'number', 'format' => 'float', 'example' => '123', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'DescribeDcdnDomainHttpCodeData', - 'description' => '* If you do not set the **StartTime** or **EndTime** parameter, the request returns the data collected in the last 24 hours. If you set both the **StartTime** and **EndTime** parameters, the request returns the data collected within the specified time range.'."\n" - .'* You can call this operation up to 100 times per second per account.'."\n" + 'title' => 'DescribeDcdnDomainBpsData', + 'summary' => 'Call DescribeDcdnDomainBpsData to query network bandwidth monitoring data for accelerated domain names.', + 'description' => '- A single user can call this operation up to 100 times per second.'."\n" + ."\n" + .'- If you do not specify the **StartTime** and **EndTime** parameters, data from the last 24 hours is returned. If you specify **StartTime** and **EndTime**, data within the specified time range is returned.'."\n" ."\n" - .'**Time granularity**'."\n" + .'**Supported time granularities**'."\n" ."\n" - .'The time granularity supported by the Interval parameter, the maximum time period within which historical data is available, and the data delay vary with the maximum time range per query, as described in the following table.'."\n" + .'The time granularity that you can specify in the Interval parameter varies based on the maximum time range per query. The following table describes the supported time granularities, the maximum time range for a single query, the time range of historical data that you can query, and the data latency.'."\n" ."\n" - .'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\n" - .'|---|---|---|---|'."\n" - .'|5 minutes|3 days|93 days|15 minutes|'."\n" - .'|1 hour|31 days|186 days|4 hours|'."\n" - .'|1 day|366 days|366 days|04:00 on the next day|', + .'| Time granularity | Maximum time range per query | Queryable historical data range | Data latency |'."\n" + .'| ---------------- | ---------------------------- | ------------------------------- | --------------------- |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | 4 hours |'."\n" + .'| 1 day | 366 days | 366 days | 04:00 on the next day |', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainHttpCodeDataByLayer' => [ - 'summary' => 'Queries HTTP status codes by protocol.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainBpsDataByLayer' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -5666,84 +6802,51 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. You can specify multiple domain names and separate them with commas (,). You can specify up to 500 domain names in each request. The query results of multiple domain names are aggregated. If you do not specify this parameter, data of all accelerated domain names under your account is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name to query. You can specify up to 500 domain names. Separate multiple domain names with commas (,). If you specify multiple domain names, the data is aggregated.'."\n" + .'If you do not specify this parameter, aggregated data for all your accelerated domain names is returned.', 'type' => 'string', 'required' => false, 'example' => 'example.com ', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time needs to be in UTC. The minimum data granularity is 5 minutes. If you do not set this parameter, data in the last 24 hours is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T20:00:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 format as yyyy-MM-ddTHH:mm:ssZ. The time must be in UTC.'."\n" + .'The minimum time granularity is 5 minutes.'."\n" + .'If you do not specify this parameter, data in the last 24 hours is queried.', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T20:00:00Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time needs to be in UTC.'."\n" - ."\n" - .'> The end time needs to be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T21:00:00Z', - ], + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 format as yyyy-MM-ddTHH:mm:ssZ. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T21:00:00Z', 'title' => ''], ], [ 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => 'The time interval between the data entries. Unit: seconds.'."\n" - ."\n" - .'The time granularity varies with the maximum time range per query. Valid values: 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). For more information, see **Usage notes**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => 'The time granularity to query data. Unit: seconds.'."\n" + ."\n" + .'Valid values are 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). The supported time granularity depends on the maximum time range per query. For more information, see **Usage notes**.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''], ], [ 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the Internet service provider (ISP). You can call the DescribeDcdnRegionAndIsp operation to query the ISP name. If you do not specify a value for this parameter, all ISPs are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'telecom', - ], + 'schema' => ['description' => 'The name of the carrier. Call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query carriers. If you do not specify this parameter, data for all carriers is returned.', 'type' => 'string', 'required' => false, 'example' => 'telecom', 'title' => ''], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the region. You can call the DescribeDcdnRegionAndIsp operation to query the region name. If you do not specify a value for this parameter, all regions are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'hangzhou', - ], + 'schema' => ['description' => 'The name of the region. Call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query regions. If you do not specify this parameter, data for all regions is returned.', 'type' => 'string', 'required' => false, 'example' => 'hangzhou', 'title' => ''], ], [ 'name' => 'Layer', 'in' => 'query', - 'schema' => [ - 'description' => 'The layer at which you want to query the bandwidth data. The network layer supports IPv4 and IPv6. The application layer supports http, https, and quic. You can also set the value to all. Default value: all.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'all', - ], + 'schema' => ['description' => 'The dimension to query. Valid values: network layer (IPv4 or IPv6), application layer (http, https, or quic), or all.'."\n" + .'Default value: all.', 'type' => 'string', 'required' => false, 'example' => 'all', 'title' => ''], ], ], 'responses' => [ @@ -5751,103 +6854,98 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '300', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'BEA5625F-8FCF-48F4-851B-CA63946DA664', - ], - 'HttpCodeDataInterval' => [ + 'DataInterval' => ['description' => 'The time interval between data entries. Unit: seconds.', 'type' => 'string', 'example' => '300', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'BEA5625F-8FCF-48F4-851B-CA63946DA664', 'title' => ''], + 'BpsDataInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => 'The distribution of HTTP status codes at each time interval.'."\n", + 'description' => 'The bandwidth data for each time interval.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Value' => [ - 'description' => 'The number of times that the HTTP status code was returned.'."\n", - 'type' => 'object', - 'example' => '{"200": 10,"206": 100}', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the returned data.'."\n", - 'type' => 'string', - 'example' => '2015-12-10T21:00:00Z', - ], - 'TotalValue' => [ - 'description' => 'The total number of times that HTTP status codes were returned.'."\n", - 'type' => 'string', - 'example' => '110', - ], + 'Value' => ['description' => 'The total bandwidth. Unit: bit/s.', 'type' => 'string', 'example' => '0.56', 'title' => ''], + 'TrafficValue' => ['description' => 'The total traffic. Unit: bytes.', 'type' => 'string', 'example' => '331', 'title' => ''], + 'TimeStamp' => ['description' => 'The beginning of the time slice.', 'type' => 'string', 'example' => '2015-12-10T21:00:00Z', 'title' => ''], + 'DynamicValue' => ['description' => 'The total dynamic bandwidth. Unit: bit/s.', 'type' => 'string', 'example' => '0.34', 'title' => ''], + 'StaticValue' => ['description' => 'The total static bandwidth. Unit: bit/s.', 'type' => 'string', 'example' => '0.22', 'title' => ''], + 'DynamicTrafficValue' => ['description' => 'The total dynamic traffic. Unit: bytes.', 'type' => 'string', 'example' => '200', 'title' => ''], + 'StaticTrafficValue' => ['description' => 'The total static traffic. Unit: bytes.', 'type' => 'string', 'example' => '131', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The StartTime cannot exceed 31 days before the current time.', 'description' => 'You can query data only within the last 31 days.'], ], ], - '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' => 'DescribeDcdnDomainHttpCodeDataByLayer', - 'description' => '* You can call this operation up to 20 times per second per account.'."\n" - .'* You cannot query the distribution of HTTP status codes by IP protocol.'."\n" - .'* If you do not specify the **StartTime** or **EndTime** parameter, the data that is collected within the last 24 hours is collected. If you specify both the **StartTime** and **EndTime** parameters, the data that is collected within the time range that you specify is collected.'."\n" + 'title' => 'DescribeDcdnDomainBpsDataByLayer', + 'summary' => 'Call the DescribeDcdnDomainBpsDataByLayer operation to query bandwidth data by protocol.', + 'description' => '- The call frequency for a single user is limited to 20 calls per second.'."\n" + ."\n" + .'- If you do not specify the **StartTime** and **EndTime** parameters, data in the last 24 hours is queried. If you specify the **StartTime** and **EndTime** parameters, data in the specified time range is queried.'."\n" ."\n" - .'**Time granularity**'."\n" + .'**Supported time granularities**'."\n" ."\n" - .'The time granularity supported by the Interval parameter, the maximum time period within which historical data is available, and the data delay vary with the maximum time range per query, as described in the following table.'."\n" + .'The time granularity that you can specify for the Interval parameter depends on the maximum time range per query. The following table describes the supported time granularities, queryable time ranges, and data latency.'."\n" ."\n" - .'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\n" - .'|---|---|---|---|'."\n" - .'|5 minutes|3 days|93 days|15 minutes|'."\n" - .'|1 hour|31 days|186 days|4 hours|'."\n" - .'|1 day|366 days|366 days|04:00 on the next day|', + .'| Time granularity | Maximum time range per query | Queryable time range | Data latency |'."\n" + .'| ---------------- | ---------------------------- | -------------------- | ---------------------------------------------- |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | Typically 3 to 4 hours |'."\n" + .'| 1 day | 90 days | 366 days | Typically 4 hours, up to a maximum of 24 hours |', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainRegionData' => [ - 'summary' => 'Queries regional distribution of users. Data is collected every day. You can query data within the last 90 days.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2023-04-13T06:01:52.000Z', 'description' => 'Response parameters changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainBpsDataByLayer'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainBpsDataByLayer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainByCertificate' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -5858,46 +6956,33 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnX7NWEB'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'SSLPub', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. You can specify only one domain name.'."\n" - ."\n" - .'If you do not specify an accelerated domain name, the data of all accelerated domain names that belong to your account is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The public key of the certificate. The public key must be in PEM format. The value must be Base64-encoded and then encoded using \\`encodeURIComponent\\`.'."\n" + ."\n" + .'The value must first be Base64-encoded and then \\`encodeURIComponent\\`-encoded. The PEM format is supported.', 'type' => 'string', 'required' => true, 'example' => 'xxx', 'title' => ''], ], [ - 'name' => 'StartTime', + 'name' => 'SSLStatus', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-05T12:00:00Z', - ], + 'schema' => ['description' => 'Specifies whether to return only domain names for which HTTPS is enabled or disabled.'."\n" + ."\n" + .'- true: enabled'."\n" + ."\n" + .'- false: disabled', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], [ - 'name' => 'EndTime', + 'name' => 'Exact', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. The end time must be later than the start time.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-07T12:00:00Z', - ], + 'schema' => ['description' => 'Specifies whether the returned domain names must be an exact match for the certificate.'."\n" + ."\n" + .'- true: enabled'."\n" + ."\n" + .'- false: disabled', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], ], 'responses' => [ @@ -5905,156 +6990,254 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2015-12-07T12:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The start of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2015-12-05T12:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '2E5AD83F-BD7B-462E-8319-2E30E305519A', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '86400', - ], - 'Value' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'ASAF2FDS-12SADSA-DDSAE3D-DSADCD4C-CDADS2D', 'title' => ''], + 'CertInfos' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'RegionProportionData' => [ - 'description' => 'The proportions of requests that were initiated from each region.'."\n", + 'CertInfo' => [ + 'description' => 'The certificate information.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Qps' => [ - 'description' => 'The number of queries per second (QPS).'."\n", - 'type' => 'string', - 'example' => '0', - ], - 'TotalQuery' => [ - 'description' => 'The total number of requests that are destined for your website.'."\n", - 'type' => 'string', - 'example' => '0', - ], - 'TotalBytes' => [ - 'description' => 'The total amount of network traffic.'."\n", - 'type' => 'string', - 'example' => '0', - ], - 'RegionEname' => [ - 'description' => 'The name of the region.'."\n", - 'type' => 'string', - 'example' => 'chongqing', - ], - 'Region' => [ - 'description' => 'The information of the regions.'."\n", - 'type' => 'string', - 'example' => 'Chongqing'."\n", - ], - 'AvgResponseRate' => [ - 'description' => 'The average response speed. Unit: byte/s.'."\n", - 'type' => 'string', - 'example' => '0', - ], - 'AvgResponseTime' => [ - 'description' => 'The average response time. Unit: milliseconds.'."\n", - 'type' => 'string', - 'example' => '0', - ], - 'Proportion' => [ - 'description' => 'The proportion of requests from the specified region based on the total number of requests in percentile. For example, a value of 90 indicates that 90% of the requests were coming from the specified region.'."\n", - 'type' => 'string', - 'example' => '0', - ], - 'AvgObjectSize' => [ - 'description' => 'The average response size. Unit: bytes.'."\n", - 'type' => 'string', - 'example' => '0', - ], - 'Bps' => [ - 'description' => 'The bandwidth.'."\n", - 'type' => 'string', - 'example' => '0', - ], - 'BytesProportion' => [ - 'description' => 'The proportion of network traffic. For example, a value of 90 indicates that 90% of network traffic was coming from the specified ISP.'."\n", - 'type' => 'string', - 'example' => '0.003544181046236794', - ], + 'CertStartTime' => ['description' => 'The start time of the certificate\'s validity period.', 'type' => 'string', 'example' => 'Nov 29 23:59:59 2017 GMT', 'title' => ''], + 'CertExpireTime' => ['description' => 'The expiration time of the certificate.', 'type' => 'string', 'example' => 'Nov 29 00:00:00 2016 GMT', 'title' => ''], + 'CertCaIsLegacy' => ['description' => 'The deprecation status of the certificate authority (CA). Valid values:'."\n" + ."\n" + .'- **yes**: The CA is deprecated.'."\n" + ."\n" + .'- **no**: The CA is not deprecated.', 'type' => 'string', 'example' => 'yes', 'title' => ''], + 'CertSubjectCommonName' => ['description' => 'The common name of the certificate owner.', 'type' => 'string', 'example' => 'example.aliyundoc.com', 'title' => ''], + 'CertType' => ['description' => 'The type of the certificate. Valid values are **RSA**, **DSA**, and **ECDSA**.', 'type' => 'string', 'example' => 'RSA', 'title' => ''], + 'DomainNames' => ['description' => 'The domain names that match the certificate, as specified in the DNS field. If there are multiple domain names, separate them with commas (,).', 'type' => 'string', 'example' => '*.example.com,example.org', 'title' => ''], + 'CertExpired' => ['description' => 'The expiration status of the certificate. Valid values:'."\n" + ."\n" + .'- **yes**: The certificate has expired.'."\n" + ."\n" + .'- **no**: The certificate has not expired.', 'type' => 'string', 'example' => 'yes', 'title' => ''], + 'Issuer' => ['description' => 'The certificate issuer.', 'type' => 'string', 'example' => 'C=US, O=Symantec Corporation, OU=Symantec Trust Network, OU=Domain Validated SSL, CN=Symantec Basic DV SSL CA - G1', 'title' => ''], + 'DomainList' => ['description' => 'The list of domain names that use the certificate. Multiple domain names are separated by commas (,).'."\n" + ."\n" + .'If one or more domain names are returned, the domain names are matched with the specified certificate. Multiple domain names are separated with commas (,).', 'type' => 'string', 'example' => 'example.com,example.org', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'The specified certificate format is invalid.'], + ['errorCode' => 'SSLPub.MissingParameter', 'errorMessage' => 'The SSLPub parameter is required.', 'description' => 'The SSLPub parameter is not specified.'], + ['errorCode' => 'Decode.Error', 'errorMessage' => 'Error decoding the SSLPub or SSLPri certificate.', 'description' => 'The system has failed to decode the public key or the private key of the SSL certificate.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => 'An internal error occurred. Try again later. If the error persists, submit a ticket.'], + ], + ], + 'title' => 'DescribeDcdnDomainByCertificate', + 'summary' => 'Call the DescribeDcdnDomainByCertificate operation to query domain names based on certificate information.', + 'description' => '> A single user can call this operation up to 100 times per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-08-22T02:06:44.000Z', 'description' => 'Request parameters changed'], + ], + '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' => 'All Resource', 'arn' => '*'], + ], ], ], - 404 => [ - [ - 'errorCode' => 'InvalidDomain.NotFound', - 'errorMessage' => 'The specified domain does not exist.', + ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainCcActivityLog' => [ + 'summary' => 'Call DescribeDcdnDomainCcActivityLog to query logs of requests blocked by CC protection rules.', + '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' => 'The accelerated domain name to query. You can specify multiple domain names separated by commas (,).'."\n" + ."\n" + .'If you leave this parameter empty, data for all your accelerated domain names is returned.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'The minimum data granularity is 5 minutes.'."\n" + ."\n" + .'If you do not specify this parameter, data from the last 24 hours is returned.', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T20:00:00Z', 'title' => ''], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T21:05:00Z', 'title' => ''], + ], + [ + 'name' => 'TriggerObject', + 'in' => 'query', + 'schema' => ['description' => 'The object that triggers the rate limiting rule.'."\n" + ."\n" + .'If you leave this parameter empty, all block events are queried.', 'type' => 'string', 'required' => false, 'example' => 'IP', 'title' => ''], + ], + [ + 'name' => 'Value', + 'in' => 'query', + 'schema' => ['description' => 'The value of the trigger object.'."\n" + ."\n" + .'If you leave this parameter empty, all block events are queried.', 'type' => 'string', 'required' => false, 'example' => '10.10.10.10', 'title' => ''], + ], + [ + 'name' => 'RuleName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the rule.'."\n" + ."\n" + .'- Normal mode: default\\_normal'."\n" + ."\n" + .'- Emergency mode: default\\_attack'."\n" + ."\n" + .'- Custom mode: a custom rule name, such as test2.'."\n" + ."\n" + .'If you leave this parameter empty, all block events are queried.', 'type' => 'string', 'required' => false, 'example' => 'test2', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries to return on each page. Default value: **30**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '100', 'default' => '30', 'example' => '30', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number. Default value: **1**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'PageIndex' => ['description' => 'The page number of the returned page.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries returned on each page.', 'type' => 'integer', 'format' => 'int64', 'example' => '30', 'title' => ''], + 'Total' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int64', 'example' => '20', 'title' => ''], + 'ActivityLog' => [ + 'description' => 'The data about block events.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Value' => ['description' => 'The value of the trigger object.', 'type' => 'string', 'example' => '10.10.10.10', 'title' => ''], + 'Ttl' => ['description' => 'The period during which the rule is effective, in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '300', 'title' => ''], + 'Action' => ['description' => 'The block action.', 'type' => 'string', 'example' => 'deny', 'title' => ''], + 'TriggerObject' => ['description' => 'The trigger object.', 'type' => 'string', 'example' => 'IP', 'title' => ''], + 'TimeStamp' => ['description' => 'The beginning of the time slice.', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'RuleName' => ['description' => 'The name of the block rule.', 'type' => 'string', 'example' => 'test2', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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' => 'DescribeDcdnDomainRegionData', - 'description' => '> '."\n" - ."\n" - .'* If you do not specify the StartTime and EndTime parameters, the data within the last 24 hours is queried. If you specify the StartTime and EndTime parameters, the data within the specified time range is queried.'."\n" - ."\n" - .'* You can call this operation up to 100 times per second per account.'."\n", + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], + ], + ], + 'title' => 'DescribeDcdnDomainCcActivityLog', + 'description' => '> - If you do not specify StartTime and EndTime, data from the last 24 hours is returned by default. To query data within a specific time range, you must specify both StartTime and EndTime.'."\n" + .'>'."\n" + .'> - You can query data from the last 30 days.'."\n" + .'>'."\n" + .'> - The rate limit for a single user is 50 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnRegionAndIsp' => [ - 'summary' => 'Queries the list of Internet service providers (ISPs) and regions.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainCertificateInfo' => [ + 'summary' => 'Call the DescribeDcdnDomainCertificateInfo operation to query the certificate information for a specified domain name.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6065,94 +7248,228 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111540', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', + 'abilityTreeNodes' => ['FEATUREdcdnX7NWEB'], + ], + 'parameters' => [ + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => 'The accelerated domain name. You can query only one domain name at a time.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], - 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '2387C335-932C-4E1E-862C-1C4363B6DE72', - ], - 'Regions' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '5C1E43DC-9E51-4771-82C0-7D5ECEB547A1', 'title' => ''], + 'CertInfos' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Region' => [ - 'description' => 'The list of regions.'."\n", + 'CertInfo' => [ + 'description' => 'The certificate information.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'NameEn' => [ - 'description' => 'The English name of the region.'."\n", - 'type' => 'string', - 'example' => 'liaoning', - ], - 'NameZh' => [ - 'description' => 'The Chinese name of the region.'."\n", - 'type' => 'string', - 'example' => '辽宁省', - ], + 'Status' => ['description' => 'The status of the certificate.'."\n" + ."\n" + .'- **success**: The certificate is active.'."\n" + ."\n" + .'- **checking**: The system is checking whether the domain name is accelerated by Alibaba Cloud DCDN.'."\n" + ."\n" + .'- **cname\\_error**: The domain name is not mapped to Alibaba Cloud DCDN.'."\n" + ."\n" + .'- **domain\\_invalid**: The domain name contains invalid characters.'."\n" + ."\n" + .'- **unsupport\\_wildcard**: Wildcard domain names are not supported.'."\n" + ."\n" + .'- **applying**: The certificate is being applied for.'."\n" + ."\n" + .'- **get\\_token\\_timeout**: The Certificate Signing Request (CSR) timed out.'."\n" + ."\n" + .'- **check\\_token\\_timeout**: The verification timed out.'."\n" + ."\n" + .'- **get\\_cert\\_timeout**: The request to obtain the certificate timed out.'."\n" + ."\n" + .'- **failed**: The certificate application failed.', 'type' => 'string', 'example' => 'success', 'title' => ''], + 'CertLife' => ['description' => 'The validity period of the certificate. The unit can be **months** or **years**.', 'type' => 'string', 'example' => '3 months', 'title' => ''], + 'CertExpireTime' => ['description' => 'The expiration time of the certificate.', 'type' => 'string', 'example' => '2018-06-03T22:03:39Z', 'title' => ''], + 'SSLPub' => ['description' => 'The public key of the certificate.', 'type' => 'string', 'example' => 'xxxx', 'title' => ''], + 'SSLProtocol' => ['description' => 'The HTTPS status.'."\n" + ."\n" + .'- **on**: Enabled.'."\n" + ."\n" + .'- **off**: Disabled.', 'type' => 'string', 'example' => 'on', 'title' => ''], + 'CertType' => ['description' => 'The type of the certificate.'."\n" + ."\n" + .'- **cas**: An Alibaba Cloud Security certificate.'."\n" + ."\n" + .'- **upload**: A custom certificate that you uploaded.', 'type' => 'string', 'example' => 'cas', 'title' => ''], + 'CertDomainName' => ['description' => 'The domain name that is associated with the certificate.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'CertName' => ['description' => 'The name of the certificate.', 'type' => 'string', 'example' => 'cert-example.com', 'title' => ''], + 'CertOrg' => ['description' => 'The certificate authority (CA) that issued the certificate.', 'type' => 'string', 'example' => 'Let\'s Encrypt', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'CertId' => ['description' => 'The ID of the certificate.', 'type' => 'string', 'example' => '9002448', 'title' => ''], + 'CertRegion' => ['description' => 'The region where the certificate is used.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], - 'Isps' => [ + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + ], + ], + 'title' => 'DescribeDcdnDomainCertificateInfo', + 'description' => '> The call frequency limit for a single user is 100 calls per second.', + '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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5C1E43DC-9E51-4771-82C0-7D5ECEB547A1\\",\\n \\"CertInfos\\": {\\n \\"CertInfo\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"CertLife\\": \\"3 months\\",\\n \\"CertExpireTime\\": \\"2018-06-03T22:03:39Z\\",\\n \\"SSLPub\\": \\"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}","type":"json"}]', + ], + 'DescribeDcdnDomainCname' => [ + 'summary' => 'Call DescribeDcdnDomainCname to verify the CNAME configuration for an accelerated domain name.', + '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' => 'The accelerated domain name. To specify multiple domain names, separate them with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'example.com,example.org', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '15C66C7B-671A-4297-9187-2C4477247A74', 'title' => ''], + 'CnameDatas' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Isp' => [ - 'description' => 'The list of ISPs.', + 'Data' => [ + 'description' => 'Details about the CNAME records.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'NameEn' => [ - 'description' => 'The English name of the region.'."\n", - 'type' => 'string', - 'example' => 'unicom', - ], - 'NameZh' => [ - 'description' => 'The Chinese name of the ISP.'."\n", - 'type' => 'string', - 'example' => '联通', - ], + 'Status' => ['description' => 'The CNAME configuration status. A value of `0` indicates success. Other values indicate a configuration error.'."\n" + ."\n" + .'- `0`: DNS resolution detected the assigned CNAME.'."\n" + ."\n" + .'- `1`: DNS resolution has not detected the assigned CNAME.'."\n" + ."\n" + .'- `-1`: The DNS resolution check timed out.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''], + 'Domain' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => '.example.com', 'title' => ''], + 'Cname' => ['description' => 'The CNAME assigned to the domain name by Alibaba Cloud DCDN.', 'type' => 'string', 'example' => 'a.com.w.alikunlun.net', 'title' => ''], + 'Passed' => ['description' => 'Specifies whether the CNAME passed the DNS resolution check. Valid values:'."\n" + ."\n" + .'- `true`: The check passed.'."\n" + ."\n" + .'- `false`: The check failed.'."\n" + ."\n" + .'- `timeout`: The check timed out.', 'type' => 'string', 'example' => 'true', 'title' => ''], + 'ErrMsg' => ['description' => 'The error message returned if the CNAME check fails or times out.', 'type' => 'string', 'example' => 'timeout', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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' => 'DescribeDcdnRegionAndIsp', - 'description' => '> You can call this operation up to 30 times per second per account.'."\n", + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'DescribeDcdnDomainCname', + 'description' => '> The maximum call frequency per user is 80 calls/second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainIspData' => [ - 'summary' => 'Queries data statistics about accelerated domain names by Internet service provider (ISP). You can query the data that is collected over the last 90 days.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2025-05-21T08:10:18.000Z', 'description' => 'Response parameters changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '80', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainCname'], + ], ], + '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' => [], @@ -6163,44 +7480,25 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111491', + 'abilityTreeNodes' => ['FEATUREdcdnWQK30N'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. You can specify only one domain name in each request.'."\n" - ."\n" - .'If you do not specify an accelerated domain name, the data of all accelerated domain names that belong to your account is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name. You can query only one domain name at a time.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], ], [ - 'name' => 'StartTime', + 'name' => 'FunctionNames', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2019-12-05T12:00:00Z', - ], + 'allowEmptyValue' => true, + 'schema' => ['description' => 'The names of the features. Separate multiple feature names with commas (,).', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'filetype_based_ttl_set,set_req_host_header'], ], [ - 'name' => 'EndTime', + 'name' => 'ConfigId', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2019-12-06T12:00:00Z', - ], + 'schema' => ['description' => 'The configuration ID.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '5003576'], ], ], 'responses' => [ @@ -6208,166 +7506,307 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2019-12-06T12:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The start of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2019-12-05T12:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '2E5AD83F-BD7B-462E-8319-2E30E305519A', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '86400', - ], - 'Value' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED'], + 'DomainConfigs' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'IspProportionData' => [ - 'description' => 'The access statistics by ISP.'."\n", + 'DomainConfig' => [ + 'description' => 'The domain name configurations.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Qps' => [ - 'description' => 'The number of queries per second (QPS).'."\n", - 'type' => 'string', - 'example' => '5.9523809523809524E-5', - ], - 'TotalQuery' => [ - 'description' => 'The total number of requests that are destined for your website.'."\n", - 'type' => 'string', - 'example' => '3', - ], - 'TotalBytes' => [ - 'description' => 'The total volume of traffic.'."\n", - 'type' => 'string', - 'example' => '2400057', - ], - 'AvgResponseRate' => [ - 'description' => 'The average response speed. Unit: byte/ms.'."\n", - 'type' => 'string', - 'example' => '154.3345765545624', - ], - 'AvgResponseTime' => [ - 'description' => 'The average response time. Unit: milliseconds.'."\n", - 'type' => 'string', - 'example' => '5183.666666666667', - ], - 'Proportion' => [ - 'description' => 'The proportion of the HTTP status code.'."\n", - 'type' => 'string', - 'example' => '0.01155980271270037', - ], - 'AvgObjectSize' => [ - 'description' => 'The average response size. Unit: bytes.'."\n", - 'type' => 'string', - 'example' => '800019.0', - ], - 'IspEname' => [ - 'description' => 'The name of the ISP.'."\n", - 'type' => 'string', - 'example' => 'unicom', - ], - 'Bps' => [ - 'description' => 'The bandwidth.'."\n", - 'type' => 'string', - 'example' => '380.9614285714286', - ], - 'Isp' => [ - 'description' => 'The information about the ISP.'."\n", - 'type' => 'string', - 'example' => 'China Unicom'."\n", - ], - 'BytesProportion' => [ - 'description' => 'The proportion of network traffic. For example, a value of 90 indicates that 90% of network traffic was coming from the specified ISP.'."\n", - 'type' => 'string', - 'example' => '0.003544181046236794', + 'Status' => ['description' => 'The status. Valid values:'."\n" + ."\n" + .'- **success**: The operation was successful.'."\n" + ."\n" + .'- **testing**: The feature is being tested.'."\n" + ."\n" + .'- **failed**: The operation failed.'."\n" + ."\n" + .'- **configuring**: The feature is being configured.', 'type' => 'string', 'title' => '', 'example' => 'success'], + 'ParentId' => ['description' => 'The ID of the advanced condition configuration.', 'type' => 'string', 'title' => '', 'example' => '1234567'], + 'ConfigId' => ['description' => 'The configuration ID.', 'type' => 'string', 'title' => '', 'example' => '5068995'], + 'FunctionName' => ['description' => 'The feature name.', 'type' => 'string', 'title' => '', 'example' => 'set_req_host_header'], + 'FunctionArgs' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'FunctionArg' => [ + 'description' => 'The feature configuration.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ArgName' => ['description' => 'The configuration name.', 'type' => 'string', 'title' => '', 'example' => 'ttl'], + 'ArgValue' => ['description' => 'The configuration value.', 'type' => 'string', 'title' => '', 'example' => '13'], + ], + 'description' => '', + 'title' => '', + ], + 'title' => '', + ], + ], + 'description' => '', + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - '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' => 'The specified configuration is not supported.'], + ], + ], + 'title' => 'DescribeDcdnDomainConfigs', + 'summary' => 'Call DescribeDcdnDomainConfigs to get the configurations of an accelerated domain name.', + 'description' => '> - You can query the configurations of multiple features in a single request.'."\n" + .'>'."\n" + .'> - The request rate limit for a single user is 30 calls per second.', + 'requestParamsDescription' => 'The following table describes the features.'."\n" + ."\n" + .'| Name | Parameters |'."\n" + .'| ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| referer_white_list_set: Referer hotlink protection whitelist | refer_domain_allow_list: The whitelist. Separate multiple domain names with commas (,).<br>allow_empty: Specifies whether to allow requests with an empty Referer header to access DCDN resources. Valid values: on and off. |'."\n" + .'| referer_black_list_set: Referer hotlink protection blacklist | refer_domain_deny_list: The blacklist. Separate multiple domain names with commas (,).<br>allow_empty: Specifies whether to allow requests with an empty Referer header to access DCDN resources. Valid values: on and off. |'."\n" + .'| filetype_based_ttl_set: Configure time-to-live (TTL) based on file type | ttl: The cache duration. Unit: seconds.<br>file_type: The file type. Separate multiple file types with commas (,), for example, TXT,JPG.<br>weight: The weight. |'."\n" + .'| path_based_ttl_set: Configure TTL based on path | ttl: The cache duration. Unit: seconds.<br>path: The path. The path must start with a forward slash (/).<br>weight: The weight. |'."\n" + .'| oss_auth: OSS authentication for buckets | oss_bucket_id: The URL of your bucket. |'."\n" + .'| ip_black_list_set: IP address blacklist | ip_list: The list of IP addresses. Separate multiple IP addresses with commas (,). |'."\n" + .'| ip_allow_list_set: IP address whitelist | ip_list: The list of IP addresses. Separate multiple IP addresses with commas (,). |'."\n" + .'| error_page: Error page redirection | error_code: The error code.<br>rewrite_page: The redirection page. |'."\n" + .'| set_req_host_header: Modify the custom back-to-origin Host header | domain_name: The content of the back-to-origin Host header. |'."\n" + .'| set_hashkey_args: Ignore URL parameters | hashkey_args: The list of parameters to retain. Separate multiple parameters with commas (,). You can specify up to 10 parameters.<br>disable: Set to on to ignore all parameters or off to not ignore them. Ignoring all parameters in the cache key has a lower priority than retaining specific parameters.<br>keep_oss_args: Set to on to retain all parameters for back-to-origin requests, or off to use the same parameters as the cache key. |'."\n" + .'| aliauth: Alibaba Cloud authentication | auth_type: The authentication type. no_auth: no authentication. type_a: Authentication Method A. type_b: Authentication Method B. type_c: Authentication Method C.<br>auth_key1: Authentication key 1. auth_key2: Authentication key 2.<br>ali_auth_delta: The custom authentication grace period. |'."\n" + .'| set_resp_header: Set HTTP response headers (visible to browsers) | key (Required): The response header.<br>value (Required): The content of the response header. To delete the header, set this to null.<br>header_operation_type: The operation on the request header. Valid values: add, delete, modify, and rewrite.<br>duplicate: Specifies whether to allow duplicates. Valid values: on or off.<br>header_source: The header to find.<br>header_destination: The header to replace with.<br>match_all: Specifies whether to match all. Valid values: on or off. |'."\n" + .'| https_force: Force HTTPS redirection | enable: The switch for the feature. Valid values: on or off. |'."\n" + .'| http_force: Force HTTP redirection | enable: The switch for the feature. Valid values: on or off. |'."\n" + .'| https_option: Basic HTTPS parameters | http2: The HTTP/2 switch. Valid values: on or off.<br>ocsp_stapling: The Online Certificate Status Protocol (OCSP) Stapling switch. Valid values: on or off. |'."\n" + .'| forward_scheme: Follow protocol for back-to-origin requests | enable: The switch. Valid values: on or off.<br>scheme_origin: The protocol for back-to-origin requests. Valid values: http, https, and follow. |'."\n" + .'| dynamic: DCDN-related configurations | enable (Required): The switch. Valid values: on or off.<br>static_route_type: The file extensions for static acceleration.<br>static_route_url: The URI for static acceleration.<br>static_route_path: The path for static acceleration.<br>dynamic_route_origin: The scheme for the back-to-origin route. Valid values: http, https, follow, and follow-port.<br>dynamic_route_round_robin: The switch for load balancing. Valid values: on or off.<br>dynamic_route_adapt_cache: The switch for adaptive caching. Valid values: on or off. |'."\n" + .'| set_req_header: Custom back-to-origin HTTP headers | key: The back-to-origin header.<br>value: The content of the back-to-origin header. |'."\n" + .'| l2_oss_key: Back-to-origin requests to private Alibaba Cloud OSS buckets | private_oss_auth: The switch for back-to-origin requests to private buckets. Valid values: on or off. |'."\n" + .'| range: Range-based back-to-origin requests | enable: The switch. Valid values: on and off. |'."\n" + .'| video_seek: Video seeking | enable (Required): The switch. Valid values: on or off.<br>flv_seek_by_time: Enables seeking by time for FLV files. Valid values: on or off.<br>mp4_seek_start: The custom start parameter for MP4 seeking.<br>mp4_seek_end: The custom end parameter for MP4 seeking.<br>flv_seek_start: The custom start parameter for FLV seeking.<br>flv_seek_end: The custom end parameter for FLV seeking. |'."\n" + .'| websocket: WebSocket | enabled (Required): Specifies whether to enable WebSocket. Valid values: on or off.<br>origin_scheme: The scheme for back-to-origin requests. Valid values: http, https, and follow.<br>heartbeat: The heartbeat interval. Default value: 60. Unit: seconds. Valid values: 1 to 300. |'."\n" + .'| ali_remove_args: Ignore URL parameters (delete) | ali_remove_args (Required): The parameters to delete. Separate multiple parameters with spaces. The remaining parameters are used as the URL arguments in the cache key.<br>keep_oss_args: Specifies whether to retain parameters for back-to-origin requests. Valid values: on and off. on indicates that all parameters are retained. off indicates that the parameters are the same as those in the cache key. |'."\n" + .'| https_tls_version: TLS protocol versions | tls10: Enables TLSv1.0. Default value: on. Valid values: on or off.<br>tls11: Enables TLSv1.1. Default value: on. Valid values: on or off.<br>tls12: Enables TLSv1.2. Default value: on. Valid values: on or off.<br>tls13: Enables TLSv1.3. Default value: off. Valid values: on or off. |'."\n" + .'| HSTS: HTTP Strict Transport Security (HSTS) | enabled (Required): The switch. Default value: off. Valid values: on or off.<br>https_hsts_max_age (Required): The expiration time. Unit: ms. A value of 5184000000 ms (60 days) is recommended.<br>https_hsts_include_subdomains: Specifies whether the HSTS header includes the includeSubDomains parameter. Valid values: on or off. Enable this feature with caution. Before you enable it, make sure that HTTPS is enabled for all subdomains of the accelerated domain name. Otherwise, the subdomains become inaccessible after they are redirected to HTTPS. |'."\n" + .'| filetype_force_ttl_code: Expiration time of status codes for file types | file_type (Required): The file type. Separate multiple file types with commas (,), for example, TXT,JPG.<br>code_string (Required): The status code. Separate multiple status codes with commas (,). For example: 302=0,301=0,4xx=2. |'."\n" + .'| path_force_ttl_code: Expiration time of status codes for paths | path (Required): The path must start with a forward slash (/), for example, /image.<br>code_string (Required): The status code. Separate multiple status codes with commas (,). For example: 302=0,301=0,4xx=2. |'."\n" + .'| gzip: Intelligent compression | enable (Required): The switch for the feature. Valid values: on or off. |'."\n" + .'| tesla: HTML optimization | enable (Required): The switch for the feature. Valid values: on or off.<br>trim_js: Valid values: on or off. If you enable this feature, the embedded JavaScript code in HTML pages is optimized.<br>trim_css: Valid values: on or off. If you enable this feature, the embedded CSS code in HTML pages is optimized. |'."\n" + .'| https_origin_sni: Back-to-origin SNI | enabled: The switch for the feature. Valid values: on or off.<br>https_origin_sni (Required): The back-to-origin SNI. |'."\n" + .'| protogw: IP application acceleration | realip (Required): The method to pass through the origin IP address. Valid values: off, toa, and pp.<br>port (Required): The service port.<br>pattern: The pattern string. |'."\n" + .'| host_redirect: Rewrite feature | regex: The URL to rewrite. For example: ^/$.<br>replacement: The destination URL. For example: /go/act/sale/tbzlsy.php.<br>flag: Only redirect and break are supported. |'."\n" + .'| forward_timeout: Timeout period for back-to-origin requests | forward_timeout: The timeout period. Unit: seconds. Do not set this to a value greater than 100 seconds. |'."\n" + .'| ipv6: IPv6 configuration | switch (Required): The switch. Valid values: on (enables IPv6) and off (disables IPv6).<br>region: The region where IPv6 is enabled. The asterisk (*) is supported. |'."\n" + .'| edge_function: EdgeScript | rule (Required): The DSL rule.<br>pri (Required): The priority.<br>enable (Required): Specifies whether the rule is effective. Valid values: on or off.<br>name: The rule name.<br>pos: The position where the rule is executed. For DCDN domain names, only head is supported. foot is not supported.<br>brk: If this rule is hit, the remaining rules at the current execution position are skipped.<br>option: Option control.<br>grammar: Grammar control. Optional values: empty, es2, and js.<br>jsmode: JS domain name whitelist control. Optional values: redirect and bypass. |'."\n" + .'| brotli: Brotli compression | enable (Required): The switch for the feature. Valid values: on or off.<br>brotli_level: The compression level. Valid values: 1 to 11. |'."\n" + .'| ali_ua: User-Agent blacklist/whitelist | ua: The User-Agent.<br>type: The list type. Valid values: black or white. |', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-03-27T01:47:58.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-11-16T03:01:20.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-11-15T06:00:54.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-10-27T06:31:12.000Z', 'description' => 'Response parameters changed'], + ], + '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainDetail' => [ + 'summary' => 'Call DescribeDcdnDomainDetail to get the basic configuration of a specified accelerated domain name.', + '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' => 'The accelerated domain name. You can query only one domain name at a time.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '09ABE829-6CD3-4FE0-AFEE-556113E29727', 'title' => ''], + 'DomainDetail' => [ + 'description' => 'The details of the domain name.', + 'type' => 'object', + 'properties' => [ + 'GmtCreated' => ['description' => 'The time when the domain name was created.', 'type' => 'string', 'example' => '2017-11-27T06:51:26Z', 'title' => ''], + 'SSLPub' => ['description' => 'If HTTPS is enabled, this is the public key of the certificate.', 'type' => 'string', 'example' => 'xxx', 'title' => ''], + 'Description' => ['description' => 'The ICP filing information of the domain name.', 'type' => 'string', 'example' => 'Beijing ICP Filing No. 1703xxxx', 'title' => ''], + 'SSLProtocol' => ['description' => 'Indicates whether the SSL certificate is enabled. Valid values:'."\n" + ."\n" + .'- **on**: **Enabled**.'."\n" + ."\n" + .'- **off**: **Disabled**.', 'type' => 'string', 'example' => 'on', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'example' => 'rg-acfmyuji4b6r4**', 'title' => ''], + 'Scope' => ['description' => 'The acceleration region.'."\n" + ."\n" + .'- **domestic** (default): the Chinese mainland only.'."\n" + ."\n" + .'- **overseas**: global (excluding the Chinese mainland).'."\n" + ."\n" + .'- **global**: global.', 'type' => 'string', 'example' => 'overseas', 'title' => ''], + 'Cname' => ['description' => 'The CNAME that is assigned to the accelerated domain name. You need to add a CNAME record for the accelerated domain name at your DNS service provider.', 'type' => 'string', 'example' => 'example.aliyundoc.com', 'title' => ''], + 'DomainStatus' => ['description' => 'The status of the accelerated domain name. Valid values:'."\n" + ."\n" + .'- **online**: Enabled.'."\n" + ."\n" + .'- **offline**: Disabled.'."\n" + ."\n" + .'- **configuring**: Configuring.'."\n" + ."\n" + .'- **configure\\_failed**: Configuration failed.'."\n" + ."\n" + .'- **checking**: Under review.'."\n" + ."\n" + .'- **check\\_failed**: Review failed.', 'type' => 'string', 'example' => 'online', 'title' => ''], + 'GmtModified' => ['description' => 'The time when the domain name was last modified.', 'type' => 'string', 'example' => '2017-11-27T06:51:25Z', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'Sources' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Source' => [ + 'description' => 'The information about the origin servers.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => 'The type of the origin server. Valid values:'."\n" + ."\n" + .'- **ipaddr**: IP address.'."\n" + ."\n" + .'- **domain**: domain name.'."\n" + ."\n" + .'- **oss**: OSS bucket.', 'type' => 'string', 'example' => 'oss', 'title' => ''], + 'Weight' => ['description' => 'The origin fetch weight.', 'type' => 'string', 'example' => '20', 'title' => ''], + 'Enabled' => ['description' => 'The status.', 'type' => 'string', 'example' => 'online', 'title' => ''], + 'Priority' => ['description' => 'The priority.', 'type' => 'string', 'example' => '50', 'title' => ''], + 'Port' => ['description' => 'The port. Valid values: 443 and 80.', 'type' => 'integer', 'format' => 'int32', 'example' => '80', 'title' => ''], + 'Content' => ['description' => 'The origin URL.', 'type' => 'string', 'example' => 'example.org', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'Scene' => ['description' => 'The acceleration scenario. Valid values:'."\n" + ."\n" + .'- **apiscene**: API acceleration.'."\n" + ."\n" + .'- **webservicescene**: website acceleration.'."\n" + ."\n" + .'- **staticscene**: acceleration for videos, images, and text.'."\n" + ."\n" + .'- **(empty)**: no scenario.', 'type' => 'string', 'example' => 'apiscene', 'title' => ''], + 'FunctionType' => ['description' => 'The type of the computing service. Valid values:'."\n" + ."\n" + .'- **routine**: program.'."\n" + ."\n" + .'- **image**: image.'."\n" + ."\n" + .'- **cloudFunction**: function.', 'type' => 'string', 'example' => 'routine', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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' => 'DescribeDcdnDomainIspData', - 'description' => '> '."\n" - ."\n" - .'* You can call this operation up to 100 times per second per account.'."\n" - ."\n" - .'* If **StartTime** is set but **EndTime** is not set, the data within the hour that starts from **StartTime** is queried.'."\n" - ."\n" - .'* If **EndTime** is set but **StartTime** is not set, the data within the last hour that precedes **EndTime** is queried.'."\n" - ."\n" - .'* You can query data of a domain name or all domain names that belong to your account.'."\n" - ."\n" - .'* You can view data that is collected over the last seven days. The interval at which data is queried is based on the time range specified by **StartTime** and **EndTime**.'."\n" - ."\n" - .' * **If the time range is shorter than or equal to one hour**, data is queried every minute.'."\n" - .' * **If the time range is longer than 1 hour but shorter than or equal to three days**, data is queried every five minutes.'."\n" - .' * **If the time range is longer than three days but shorter than or equal to seven days**, data is queried every hour.'."\n", + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'DescribeDcdnDomainDetail', + 'description' => '> Call frequency for a single user: 30 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainHitRateData' => [ - 'summary' => 'Queries the byte hit ratios for an accelerated domain name.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2023-08-29T08:41:52.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-10-27T07:42:51.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + '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}'], + ], + ], + ], + ], + 'translator' => 'manual', + ], + 'DescribeDcdnDomainHitRateData' => [ + 'summary' => 'Call DescribeDcdnDomainHitRateData to query the byte hit ratio of one or more domain names.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6378,56 +7817,34 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. You can specify only one domain name.'."\n" - ."\n" - .'If you do not specify a value for this parameter, all domain names are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name. You can specify only one domain name.'."\n" + ."\n" + .'If you do not specify this parameter, data for all your accelerated domain names is queried.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time needs to be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-03-02T12:00:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2018-03-02T12:00:00Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time needs to be in UTC.'."\n" - ."\n" - .'The end time needs to be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-03-02T15:00:00Z', - ], + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2018-03-02T15:00:00Z', 'title' => ''], ], [ 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => 'The time granularity for a query. Unit: seconds.'."\n" - ."\n" - .'The time granularity varies with the maximum time range per query. Valid values: 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). For more information, see **Usage notes**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => 'The time granularity to query data, in seconds.'."\n" + ."\n" + .'Valid values: 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). The supported time granularity varies based on the specified time range. For more information, see the **Supported time granularities** section in this topic.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''], ], ], 'responses' => [ @@ -6435,115 +7852,94 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2018-03-02T15:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The beginning of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2018-03-02T12:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '4D07ABFE-4737-4834-B1B9-A661308C47B4', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '3600', - ], + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2018-03-02T15:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range.', 'type' => 'string', 'example' => '2018-03-02T12:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '4D07ABFE-4737-4834-B1B9-A661308C47B4', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'DataInterval' => ['description' => 'The time interval between the data entries, in seconds.', 'type' => 'string', 'example' => '3600', 'title' => ''], 'HitRatePerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => 'The byte hit ratio at each time interval. The byte hit ratio is measured in percentage.'."\n", + 'description' => 'The hit ratio at each time interval.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'TimeStamp' => [ - 'description' => 'The timestamp of the returned data.'."\n", - 'type' => 'string', - 'example' => '2018-03-02T13:00:00Z', - ], - 'ByteHitRate' => [ - 'description' => 'The byte hit ratio.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'ReqHitRate' => [ - 'description' => 'The request hit ratio.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], + 'TimeStamp' => ['description' => 'The timestamp of the data point.', 'type' => 'string', 'example' => '2018-03-02T13:00:00Z', 'title' => ''], + 'ByteHitRate' => ['description' => 'The byte hit ratio.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''], + 'ReqHitRate' => ['description' => 'The request hit ratio.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'DescribeDcdnDomainHitRateData', - 'description' => '#'."\n" + 'description' => '- A single user can call this operation up to 100 times per second.'."\n" + ."\n" + .'- If you do not specify **StartTime** and **EndTime**, data from the last 24 hours is queried by default. If you specify both parameters, data in the specified time range is queried.'."\n" + ."\n" + .'**Supported time granularities**'."\n" ."\n" - .'* You can call this operation up to 100 times per second per account.'."\n" - .'* If you do not set the **StartTime** or **EndTime** parameter, the request returns the data collected in the last 24 hours. If you set both the **StartTime** and **EndTime** parameters, the request returns the data collected within the specified time range.'."\n" + .'The supported time granularity for a query is determined by the maximum time range you can specify. The following table lists the available time granularities, the maximum time range for a single query, the queryable historical data range, and the data latency.'."\n" ."\n" - .'**Time granularity** The time granularity supported by the Interval parameter, the maximum time period within which historical data is available, and the data delay vary with the maximum time range per query, as described in the following table. |Time granularity |Maximum time range per query |Historical data available |Data delay | -------------- | -------------- | ------ |5 minutes |3 days |93 days |15 minutes |1 hour |31 days |186 days |4 hours |1 day |366 days |366 days |04:00 on the next day'."\n", + .'| Time granularity | Maximum time range per query | Queryable historical data range | Data latency |'."\n" + .'| ---------------- | ---------------------------- | ------------------------------- | --------------------------------------------- |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | Typically 3 to 4 hours |'."\n" + .'| 1 day | 366 days | 366 days | Typically 4 hours, with a maximum of 24 hours |', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainQpsData' => [ - 'summary' => 'You can call this operation to query the number of queries per second (QPS) for one or more accelerated domains.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainHttpCodeData' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6554,84 +7950,50 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name.'."\n" - ."\n" - .'Separate multiple domain names with commas (,). If you do not specify a value for this parameter, all accelerated domain names are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name. To specify multiple domain names, separate them with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2019-03-01T00:00:00Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], + 'schema' => ['description' => 'The end of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2019-03-02T00:00:00Z', 'title' => ''], ], [ 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => 'The time granularity for a query. Unit: seconds.'."\n" - ."\n" - .'The time granularity varies with the maximum time range per query. Valid values: 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). For more information, see **Usage notes**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => 'The time granularity of the data to query, in seconds.'."\n" + ."\n" + .'Valid values are 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). For more information, see the "Supported time granularities" table in the **Usage notes** section.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''], ], [ 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the Internet service provider (ISP).'."\n" - ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query ISPs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'unicom', - ], + 'schema' => ['description' => 'The English name of the Internet Service Provider (ISP).'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~) operation to query ISP names. If you do not set this parameter, data for all ISPs is queried.', 'type' => 'string', 'required' => false, 'example' => 'unicom', 'title' => ''], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the region.'."\n" - ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query regions.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => 'The English name of the region.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~) operation to query region names. If you do not set this parameter, data for all regions is queried.', 'type' => 'string', 'required' => false, 'example' => 'beijing', 'title' => ''], ], ], 'responses' => [ @@ -6639,167 +8001,119 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The start of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'BEA5625F-8FCF-48F4-851B-CA63946DA664', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '300', - ], - 'QpsDataPerInterval' => [ + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2018-03-01T13:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range.', 'type' => 'string', 'example' => '2019-03-01T00:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '91FC2D9D-B042-4634-8A5C-7B8E7482C22D', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'DataInterval' => ['description' => 'The time interval between data records, in seconds.', 'type' => 'string', 'example' => '300', 'title' => ''], + 'DataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => 'The QPS returned at each time interval.'."\n", + 'description' => 'The proportions of HTTP return codes for each time interval.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'DynamicHttpsAcc' => [ - 'description' => 'The number of requests for dynamic content delivery over HTTPS.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'DynamicHttpAcc' => [ - 'description' => 'The number of requests for dynamic content delivery over HTTP.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'Qps' => [ - 'description' => 'The total QPS.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0.56', - ], - 'StaticHttpsAcc' => [ - 'description' => 'The number of requests for static content delivery over HTTPS.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'StaticHttpQps' => [ - 'description' => 'The QPS for static content delivery over HTTP.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'StaticHttpAcc' => [ - 'description' => 'The number of requests for static content delivery over HTTP.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'DynamicHttpsQps' => [ - 'description' => 'The QPS for dynamic content delivery over HTTPS.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'Acc' => [ - 'description' => 'The total number of requests.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '100', - ], - 'StaticHttpsQps' => [ - 'description' => 'The QPS for static content delivery over HTTPS.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'DynamicHttpQps' => [ - 'description' => 'The QPS for dynamic content delivery over HTTP.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the returned data.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', + 'TimeStamp' => ['description' => 'The beginning of the time slice.', 'type' => 'string', 'example' => '2019-03-01T13:00:00Z', 'title' => ''], + 'HttpCodeDataPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'HttpCodeDataModule' => [ + 'description' => 'A list of data about the proportions of HTTP return codes.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => 'The HTTP return code.', 'type' => 'integer', 'format' => 'int32', 'example' => '404', 'title' => ''], + 'Proportion' => ['description' => 'The proportion.', 'type' => 'number', 'format' => 'float', 'example' => '33.333333', 'title' => ''], + 'Count' => ['description' => 'The total number.', 'type' => 'number', 'format' => 'float', 'example' => '1', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'DescribeDcdnDomainQpsData', - 'description' => '* You can call this operation up to 100 times per second per account.'."\n" - .'* If you do not set the **StartTime** or **EndTime** parameter, the request returns the data collected in the last 24 hours. If you set both the **StartTime** and **EndTime** parameters, the request returns the data collected within the specified time range.'."\n" + 'title' => 'DescribeDcdnDomainHttpCodeData', + 'summary' => 'Call DescribeDcdnDomainHttpCodeData to query the total number and proportions of HTTP return codes for accelerated domain names.', + 'description' => '- If you do not specify **StartTime** and **EndTime**, the operation returns data from the last 24 hours. If you specify **StartTime** and **EndTime**, the operation returns data for the specified time range.'."\n" + ."\n" + .'- The call frequency for a single user is 100 calls/second.'."\n" ."\n" - .'**Time granularity**'."\n" + .'**Supported time granularities**'."\n" ."\n" - .'The time granularity supported by the Interval parameter, the maximum time period within which historical data is available, and the data delay vary with the maximum time range per query, as described in the following table.'."\n" + .'The Interval parameter supports different time granularities. The supported granularity depends on the maximum time span of a single query. The following table lists the supported time granularities, queryable historical data ranges, and data latencies.'."\n" ."\n" - .'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\n" - .'|---|---|---|---|'."\n" - .'|5 minutes|3 days|93 days|15 minutes|'."\n" - .'|1 hour|31 days|186 days|4 hours|'."\n" - .'|1 day|366 days|366 days|04:00 on the next day|', - 'requestParamsDescription' => '> You can call this operation up to 100 times per second per account.'."\n", + .'| Time granularity | Maximum time span per query | Queryable historical data range | Data latency |'."\n" + .'| ---------------- | --------------------------- | ------------------------------- | --------------------------------- |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | Typically 3 to 4 hours |'."\n" + .'| 1 day | 366 days | 366 days | Typically 4 hours, up to 24 hours |', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainQpsDataByLayer' => [ - 'summary' => 'Queries the number of queries per second (QPS) of accelerated domain names by protocol.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainHttpCodeDataByLayer' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6810,84 +8124,51 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. You can specify multiple domain names and separate them with commas (,). You can specify up to 500 domain names in each request. The query results of multiple domain names are aggregated. If you do not specify a domain name, data of all domain names is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name to query. You can specify multiple domain names and separate them with commas (,). You can specify up to 500 domain names. If you specify multiple domain names, aggregated data is returned.'."\n" + .'If you leave this parameter empty, aggregated data for all accelerated domain names is returned.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC. The minimum data granularity is 5 minutes. If you do not set this parameter, data in the last 24 hours is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T20:00:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + .'The minimum data granularity is 5 minutes.'."\n" + .'If you do not set this parameter, data in the last 24 hours is returned.', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T20:00:00Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T21:00:00Z', - ], + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T21:00:00Z', 'title' => ''], ], [ 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => 'The time interval between the data entries. Unit: seconds.'."\n" - ."\n" - .'The time granularity varies with the maximum time range per query. Valid values: 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). For more information, see **Usage notes**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => 'The time granularity of the data to query, in seconds.'."\n" + ."\n" + .'The value of this parameter varies based on the maximum time span for a single query. Valid values: 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). For more information, see the supported time granularities in the **Usage notes** section.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''], ], [ 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the ISP. You can call the DescribeDcdnRegionAndIsp operation to query the ISP name. If you do not specify a value for this parameter, all ISPs are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'telecom', - ], + 'schema' => ['description' => 'The English name of the carrier. To obtain the English name, call the [DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~) operation. If you do not set this parameter, data for all carriers is returned.', 'type' => 'string', 'required' => false, 'example' => 'telecom', 'title' => ''], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the region. You can call the DescribeDcdnRegionAndIsp operation to query the region name. If you do not specify a value for this parameter, all regions are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'hangzhou', - ], + 'schema' => ['description' => 'The English name of the region. To obtain the English name, call the [DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~) operation. If you do not set this parameter, data in all regions is returned.', 'type' => 'string', 'required' => false, 'example' => 'hangzhou', 'title' => ''], ], [ 'name' => 'Layer', 'in' => 'query', - 'schema' => [ - 'description' => 'The layers at which you want to query the QPS. The network layer supports IPv4 and IPv6. The application layer supports http, https, and quic. You can also set the value to all. Default value: all.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'all', - ], + 'schema' => ['description' => 'The query dimension. You can query data by network layer (IPv4 and IPv6), application layer (http, https, and quic), or all.'."\n" + .'Default value: all.', 'type' => 'string', 'required' => false, 'example' => 'all', 'title' => ''], ], ], 'responses' => [ @@ -6895,144 +8176,94 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2015-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The start of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2015-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'BEA5625F-8FCF-48F4-851B-CA63946DA664', - ], - 'Layer' => [ - 'description' => 'The layer at which the data was collected.'."\n", - 'type' => 'string', - 'example' => 'all', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com ', - ], - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '300', - ], - 'QpsDataInterval' => [ + 'DataInterval' => ['description' => 'The time interval between data entries, in seconds.', 'type' => 'string', 'example' => '300', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'BEA5625F-8FCF-48F4-851B-CA63946DA664', 'title' => ''], + 'HttpCodeDataInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => 'The QPS returned at each time interval.'."\n", + 'description' => 'The distribution of HTTP status codes at each time interval. Unit: count.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Value' => [ - 'description' => 'The total number of queries per second.'."\n", - 'type' => 'string', - 'example' => '0.56', - ], - 'AccValue' => [ - 'description' => 'The total number of requests.'."\n", - 'type' => 'string', - 'example' => '56', - ], - 'AccDomesticValue' => [ - 'description' => 'The number of requests in the Chinese mainland.'."\n", - 'type' => 'string', - 'example' => '12', - ], - 'OverseasValue' => [ - 'description' => 'The number of queries per second outside the Chinese mainland.'."\n", - 'type' => 'string', - 'example' => '0.44', - ], - 'AccOverseasValue' => [ - 'description' => 'The number of requests outside the Chinese mainland.'."\n", - 'type' => 'string', - 'example' => '44', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the returned data.'."\n", - 'type' => 'string', - 'example' => '2015-12-10T21:00:00Z', - ], - 'DomesticValue' => [ - 'description' => 'The number of queries per second in the Chinese mainland.'."\n", - 'type' => 'string', - 'example' => '0.12', - ], + 'Value' => ['description' => 'The number of responses for each HTTP status code.', 'type' => 'object', 'example' => '{"200": 10,"206": 100}', 'title' => ''], + 'TimeStamp' => ['description' => 'The beginning of the time slice.', 'type' => 'string', 'example' => '2015-12-10T21:00:00Z', 'title' => ''], + 'TotalValue' => ['description' => 'The total number of responses.', 'type' => 'string', 'example' => '110', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'DescribeDcdnDomainQpsDataByLayer', - 'description' => '* You can call this operation up to 20 times per second per account.'."\n" - .'* If you do not set the **StartTime** or **EndTime** parameter, the request returns the data collected in the last 24 hours. If you set both the **StartTime** and **EndTime** parameters, the request returns the data collected within the specified time range.'."\n" + 'title' => 'DescribeDcdnDomainHttpCodeDataByLayer', + 'summary' => 'Call the DescribeDcdnDomainHttpCodeDataByLayer operation to obtain HTTP status code data classified by protocol.', + 'description' => '- The call frequency for a single user is limited to 20 calls per second.'."\n" + ."\n" + .'- IP protocol-based queries are not supported.'."\n" + ."\n" + .'- If you do not specify the **StartTime** and **EndTime** parameters, data in the last 24 hours is returned. If you specify the **StartTime** and **EndTime** parameters, data in the specified time range is returned.'."\n" ."\n" - .'**Time granularity**'."\n" + .'**Supported time granularities**'."\n" ."\n" - .'The time granularity supported by the Interval parameter, the maximum time period within which historical data is available, and the data delay vary with the time range to query, as described in the following table.'."\n" + .'The time granularity of the data to query varies based on the maximum time span for a single query. The following table describes the supported time granularities, queryable historical data periods, and data latency.'."\n" ."\n" - .'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\n" - .'|---|---|---|---|'."\n" - .'|5 minutes|3 days|93 days|15 minutes|'."\n" - .'|1 hour|31 days|186 days|4 hours|'."\n" - .'|1 day|366 days|366 days|04:00 on the next day|', + .'| Time granularity | Maximum time span for a single query | Queryable historical data period | Data latency |'."\n" + .'| ---------------- | ------------------------------------ | -------------------------------- | -------------------------------------------- |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | Typically 3 to 4 hours |'."\n" + .'| 1 day | 90 days | 366 days | Typically 4 hours, but no more than 24 hours |', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainBpsData' => [ - 'summary' => 'Queries the monitoring data of network bandwidth for one or more accelerated domain names. You can query data in the last 90 days.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainIpaBpsData' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7043,84 +8274,72 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn6V3WP1', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name.'."\n" - ."\n" - .'Separate multiple domain names with commas (,). If you do not specify a value for this parameter, bandwidth data of all accelerated domain names is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name.'."\n" + ."\n" + .'You can specify multiple domain names and separate them with commas (,). If you leave this parameter empty, data for all accelerated domain names is queried.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], + 'schema' => ['description' => 'The end of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z', 'title' => ''], + ], + [ + 'name' => 'TimeMerge', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to automatically adjust the time granularity. If you set this parameter to **1**, an appropriate value for the **Interval** parameter is used based on the specified **StartTime** and **EndTime**. You can specify either this parameter or the **Interval** parameter.', 'type' => 'string', 'required' => false, 'example' => '1', 'title' => ''], ], [ 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => 'The time granularity of the data entries. Unit: seconds.'."\n" - ."\n" - .'The time granularity varies with the maximum time range per query. Valid values: 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). For more information, see **Usage notes**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => 'The time granularity of the data to query, in seconds.'."\n" + ."\n" + .'The valid values for this parameter depend on the time span between **StartTime** and **EndTime**:'."\n" + ."\n" + .'- If the time span is less than 3 days: **300**, **3600**, and **86400** are supported. The default value is **300**.'."\n" + ."\n" + .'- If the time span is from 3 to 31 days (exclusive): **3600** and **86400** are supported. The default value is **3600**.'."\n" + ."\n" + .'- If the time span is 31 days or more: **86400** is supported. The default value is **86400**.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''], + ], + [ + 'name' => 'FixTimeGap', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to pad data with zeros. Valid values:'."\n" + ."\n" + .'- **true**: Pads data with zeros.'."\n" + ."\n" + .'- **false**: Does not pad data with zeros.', 'type' => 'string', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the Internet service provider (ISP).'."\n" - ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query ISPs. If you do not specify an ISP, bandwidth data of all ISPs is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => 'The English name of the carrier. You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query the English name. If you do not specify this parameter, data for all carriers is queried.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation, which queries all carriers by default.', 'type' => 'string', 'required' => false, 'example' => 'Unicom', 'title' => ''], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the region.'."\n" - ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query regions. If you do not specify a region, bandwidth data in all regions is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'unicom', - ], + 'schema' => ['description' => 'The English name of the region. You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query the English name. If you do not specify this parameter, data for all regions is queried.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation. By default, all regions are queried.', 'type' => 'string', 'required' => false, 'example' => 'beijing', 'title' => ''], ], ], 'responses' => [ @@ -7128,135 +8347,86 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The start of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T10:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned.'."\n", - 'type' => 'string', - 'example' => '300', - ], + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range.', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'DataInterval' => ['description' => 'The time interval between data points. Unit: seconds.', 'type' => 'string', 'example' => '300', 'title' => ''], 'BpsDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => 'The bandwidth data returned at each interval.'."\n", + 'description' => 'The network bandwidth data for each time interval.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'TimeStamp' => [ - 'description' => 'The timestamp of the data returned.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'StaticHttpsBps' => [ - 'description' => 'The bandwidth that was consumed to deliver static content over HTTPS. Unit: bit/s.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '123', - ], - 'Bps' => [ - 'description' => 'The bandwidth value. Unit: bit/s.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '11286', - ], - 'DynamicHttpsBps' => [ - 'description' => 'The bandwidth that was consumed to deliver dynamic content over HTTPS. Unit: bit/s.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '12312', - ], - 'DynamicHttpBps' => [ - 'description' => 'The bandwidth that was consumed to deliver dynamic content over HTTP. Unit: bit/s.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '11286111', - ], - 'StaticHttpBps' => [ - 'description' => 'The bandwidth that was consumed to deliver static content over HTTP. Unit: bit/s.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '123', - ], + 'IpaBps' => ['description' => 'The bandwidth value. Unit: bit/second.', 'type' => 'number', 'format' => 'float', 'example' => '11288111', 'title' => ''], + 'TimeStamp' => ['description' => 'The timestamp of the data point.', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'DescribeDcdnDomainBpsData', - 'description' => '* You can call this operation up to 100 times per second per account.'."\n" - .'* If you do not set the **StartTime** or **EndTime** parameter, the request returns the data collected in the last 24 hours. If you set both the **StartTime** and **EndTime** parameters, the request returns the data collected within the specified time range.'."\n" - ."\n" - .'**Time granularity**'."\n" - ."\n" - .'The time granularity supported by the Interval parameter, the maximum time period within which historical data is available, and the data delay vary with the maximum time range per query, as described in the following table.'."\n" - ."\n" - .'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\n" - .'|---|---|---|---|'."\n" - .'|5 minutes|3 days|93 days|15 minutes|'."\n" - .'|1 hour|31 days|186 days|4 hours|'."\n" - .'|1 day|366 days|366 days|04:00 on the next day|', + 'title' => 'DescribeDcdnDomainIpaBpsData', + 'summary' => 'Call DescribeDcdnDomainIpaBpsData to query network bandwidth monitoring data for Layer 4 acceleration of accelerated domain names. You can query data from the last 90 days.', + 'description' => '> - The data is measured in bit/second.'."\n" + .'>'."\n" + .'> - If you do not specify **StartTime** and **EndTime**, data from the last 24 hours is returned. If you specify **StartTime** and **EndTime**, data in the specified time range is returned.'."\n" + .'>'."\n" + .'> - The call frequency for a single user is limited to 100 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainBpsDataByLayer' => [ - 'summary' => 'Queries bandwidth data of accelerated domain names.', - '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' => '[{"errorExample":"","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"BpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"IpaBps\\": 11288111,\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribeDcdnDomainIpaConnData' => [ + 'summary' => 'Call the DescribeDcdnDomainIpaConnData operation to query the number of connections for IP Application Accelerator (IPA).', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7267,92 +8437,40 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. Separate mutiple domain names with commas (,). You can specify up to 500 domain names in each request. The query results of multiple domain names are aggregated.'."\n" - ."\n" - .'If you do not specify a domain name, data of all domain names is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com ', - ], + 'schema' => ['description' => 'The accelerated domain name for the IPA application. To specify multiple domain names, separate them with commas (,).'."\n" + ."\n" + .'> If you leave this parameter empty, the merged data for all accelerated domain names is returned.', 'type' => 'string', 'required' => false, 'example' => 'example1.com', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'The minimum data granularity is 5 minutes.'."\n" - ."\n" - .'If you do not set this parameter, data in the last 24 hours is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T20:00:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2015-02-21T07:00:00Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T21:00:00Z', - ], - ], - [ - 'name' => 'Interval', - 'in' => 'query', - 'schema' => [ - 'description' => 'The time granularity of the data entries. Unit: seconds.'."\n" - ."\n" - .'The time granularity varies with the maximum time range per query. Valid values: 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). For more information, see **Usage notes**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], - ], - [ - 'name' => 'IspNameEn', - 'in' => 'query', - 'schema' => [ - 'description' => 'The Internet service provider (ISP) name. You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query the ISP name. If you do not specify this parameter, all ISPs are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'telecom', - ], - ], - [ - 'name' => 'LocationNameEn', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region name. You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query regions. If you do not specify this parameter, all regions are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'hangzhou', - ], + 'schema' => ['description' => 'The end of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2015-02-22T7:00:00Z', 'title' => ''], ], [ - 'name' => 'Layer', + 'name' => 'SplitBy', 'in' => 'query', - 'schema' => [ - 'description' => 'The layer at which you want to query the bandwidth data. The network layer supports IPv4 and IPv6. The application layer supports http, https, and quic. You can also set the value to all.'."\n" - ."\n" - .'Default value: all.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'all', - ], + 'schema' => ['description' => 'The method to group the data. Valid values:'."\n" + ."\n" + .'- domain: The data is grouped by accelerated domain name.'."\n" + ."\n" + .'- If you leave this parameter empty, the data is not grouped. This is the default value.', 'type' => 'string', 'required' => false, 'example' => 'domain', 'title' => ''], ], ], 'responses' => [ @@ -7360,123 +8478,85 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '300', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'BEA5625F-8FCF-48F4-851B-CA63946DA664', - ], - 'BpsDataInterval' => [ + 'EndTime' => ['description' => 'The end of the time range that was queried.', 'type' => 'string', 'example' => '2015-02-22T15:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range that was queried.', 'type' => 'string', 'example' => '2015-02-21T15:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'A2A1EEF8-043E-43A1-807C-BEAC18EA1807', 'title' => ''], + 'ConnectionDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => 'The bandwidth returned at each time interval.'."\n", + 'description' => 'The number of connections in each time interval.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Value' => [ - 'description' => 'The total bandwidth. Unit: bit/s.'."\n", - 'type' => 'string', - 'example' => '0.56', - ], - 'TrafficValue' => [ - 'description' => 'The total traffic. Unit: bytes.'."\n", - 'type' => 'string', - 'example' => '331', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the data returned.'."\n", - 'type' => 'string', - 'example' => '2015-12-10T21:00:00Z', - ], - 'DynamicValue' => [ - 'description' => 'The bandwidth that is used to deliver dynamic content. Unit: bit/s.'."\n", - 'type' => 'string', - 'example' => '0.34', - ], - 'StaticValue' => [ - 'description' => 'The bandwidth that is used to deliver static content. Unit: bit/s.'."\n", - 'type' => 'string', - 'example' => '0.22', - ], - 'DynamicTrafficValue' => [ - 'description' => 'The traffic that is used to deliver dynamic content. Unit: bytes.'."\n", - 'type' => 'string', - 'example' => '200', - ], - 'StaticTrafficValue' => [ - 'description' => 'The traffic that is used to deliver static content. Unit: bytes.'."\n", - 'type' => 'string', - 'example' => '131', - ], + 'TimeStamp' => ['description' => 'The start time of the time interval.', 'type' => 'string', 'example' => '2022-02-21T15:00:00+08:00', 'title' => ''], + 'Domain' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example1.com', 'title' => ''], + 'Connections' => ['description' => 'The number of connections for IPA.', 'type' => 'integer', 'format' => 'int64', 'example' => '189095', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidTimeRange', 'errorMessage' => 'The time span between the StartTime and the EndTime cannot exceed 31 days.', 'description' => 'The different between the end time (EndTime) and start time (StartTime) cannot exceed 31 days.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'DescribeDcdnDomainBpsDataByLayer', - 'description' => '* You can call this operation up to 20 times per second per account.'."\n" - .'* If you do not set **StartTime** or **EndTime**, the request returns the data collected in the last 24 hours. If you set both **StartTime** and **EndTime**, the request returns the data collected within the specified time range.'."\n" - ."\n" - .'**Time granularity**'."\n" - ."\n" - .'The time granularity supported by the Interval parameter, the maximum time period within which historical data is available, and the data delay vary with the time range to query, as described in the following table.'."\n" - ."\n" - .'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\n" - .'|---|---|---|---|'."\n" - .'|5 minutes|3 days|93 days|15 minutes|'."\n" - .'|1 hour|31 days|186 days|4 hours|'."\n" - .'|1 day|366 days|366 days|04:00 on the next day|', + 'title' => 'DescribeDcdnDomainIpaConnData', + 'description' => '> - The call frequency for a single user is 10 calls per second.'."\n" + .'>'."\n" + .'> - If you do not specify the **StartTime** and **EndTime** parameters, data from the last 24 hours is returned. If you specify **StartTime** and **EndTime**, data in the specified time range is returned.'."\n" + .'>'."\n" + .'> - The minimum time granularity is 5 minutes. The maximum time range for a single query is 31 days. You can query data from the last 366 days. Data has a latency of up to 10 minutes.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainTrafficData' => [ - 'summary' => 'Queries the network traffic data of one or more domains.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainIpaTrafficData' => [ + 'summary' => 'Call DescribeDcdnDomainIpaTrafficData to query Layer 4 traffic monitoring data for accelerated domain names. You can query data from the last 90 days.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7487,84 +8567,72 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name.'."\n" - ."\n" - .'Separate multiple domain names with commas (,). If you do not specify a value for this parameter, network traffic of all accelerated domain names is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name.'."\n" + ."\n" + .'Separate multiple domain names with commas (,). If you do not specify this parameter, data for all accelerated domain names is queried.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard. The time must be in UTC. Format: yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], + 'schema' => ['description' => 'The end of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard. The time must be in UTC. Format: yyyy-MM-ddTHH:mm:ssZ.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z', 'title' => ''], + ], + [ + 'name' => 'TimeMerge', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to automatically calculate the time granularity. If you set this parameter to **1**, the system calculates a proper value for the **Interval** parameter based on the specified time range. You can specify either **TimeMerge** or **Interval**.', 'type' => 'string', 'required' => false, 'example' => '1', 'title' => ''], ], [ 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => 'The time granularity of the data entries. Unit: seconds.'."\n" - ."\n" - .'The time granularity varies with the maximum time range per query. Valid values: 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). For more information, see **Usage notes**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => 'The time granularity of the data to query. Unit: seconds.'."\n" + ."\n" + .'The value of this parameter depends on the time range specified by the **StartTime** and **EndTime** parameters:'."\n" + ."\n" + .'- If the time span is less than 3 days: **300**, **3600**, and **86400**. If you do not set this parameter, the default value is **300**.'."\n" + ."\n" + .'- If the time span is from 3 to 31 days (not including 31 days): **3600** and **86400**. If you do not set this parameter, the default value is **3600**.'."\n" + ."\n" + .'- If the time span is 31 days or more: **86400**. If you do not set this parameter, the default value is **86400**.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''], + ], + [ + 'name' => 'FixTimeGap', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to pad data with zeros. Valid values:'."\n" + ."\n" + .'- **true**: Pads data with zeros.'."\n" + ."\n" + .'- **false**: Does not pad data with zeros.', 'type' => 'string', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the Internet service provider (ISP).'."\n" - ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query ISPs. If you do not specify an ISP, network traffic of all ISPs is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'unicom', - ], + 'schema' => ['description' => 'The name of the carrier.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query the names of carriers. If you do not specify this parameter, data for all carriers is queried.', 'type' => 'string', 'required' => false, 'example' => 'unicom', 'title' => ''], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the region.'."\n" - ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query regions. If you do not specify a region, network traffic in all regions is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => 'The name of the region.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query the names of regions. If you do not specify this parameter, data for all regions is queried.', 'type' => 'string', 'required' => false, 'example' => 'beijing', 'title' => ''], ], ], 'responses' => [ @@ -7572,137 +8640,86 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The start of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '300', - ], + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The start of the time range.', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'DataInterval' => ['description' => 'The time interval between data records, in seconds.', 'type' => 'string', 'example' => '300', 'title' => ''], 'TrafficDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => 'The network traffic returned at each time interval. Unit: bytes.'."\n", + 'description' => 'The traffic data for each time interval.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'StaticHttpTraffic' => [ - 'description' => 'The network traffic that was consumed to deliver static content over HTTP.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '123', - ], - 'DynamicHttpsTraffic' => [ - 'description' => 'The network traffic that was consumed to deliver dynamic content over HTTPS.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'Traffic' => [ - 'description' => 'The total amount of network traffic.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'DynamicHttpTraffic' => [ - 'description' => 'The network traffic that was consumed to deliver dynamic content over HTTP.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the data returned.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'StaticHttpsTraffic' => [ - 'description' => 'The network traffic that was consumed to deliver static content over HTTPS.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '132', - ], + 'IpaTraffic' => ['description' => 'The total traffic.', 'type' => 'number', 'format' => 'float', 'example' => '423304182', 'title' => ''], + 'TimeStamp' => ['description' => 'The timestamp of the data point.', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time 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 \\"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' => 'DescribeDcdnDomainTrafficData', - 'description' => '* If you do not set the **StartTime** or **EndTime** parameter, the request returns the data collected in the last 24 hours. If you set both the **StartTime** and **EndTime** parameters, the request returns the data collected within the specified time range.'."\n" - .'* You can call this operation up to 100 times per second per account.'."\n" - ."\n" - .'**Time granularity**'."\n" - ."\n" - .'The time granularity supported by the Interval parameter, the maximum time period within which historical data is available, and the data delay vary with the maximum time range per query, as described in the following table.'."\n" - ."\n" - .'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\n" - .'|---|---|---|---|'."\n" - .'|5 minutes|3 days|93 days|15 minutes|'."\n" - .'|1 hour|31 days|186 days|4 hours|'."\n" - .'|1 day|366 days|366 days|04:00 on the next day|', + 'title' => 'DescribeDcdnDomainIpaTrafficData', + 'description' => '> - If you do not specify the **StartTime** and **EndTime** parameters, data from the last 24 hours is returned. If you specify both parameters, data in the specified time range is returned.'."\n" + .'>'."\n" + .'> - The data is measured in bytes.'."\n" + .'>'."\n" + .'> - The call frequency for a single user is 100 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainOriginBpsData' => [ - 'summary' => 'Queries back-to-origin bandwidth for one or more accelerated domains.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainIspData' => [ + 'summary' => 'Call DescribeDcdnDomainIspData to query daily statistics on carrier distribution for an accelerated domain name. You can query data from the last 90 days.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7713,54 +8730,27 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. Separate multiple accelerated domain names with commas (,). If you do not specify a value for this parameter, all accelerated domain names are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name. You can query data for only a single domain name.'."\n" + ."\n" + .'If you leave this parameter empty, data for all domain names that belong to your account is queried.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2019-12-10T00:00:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2019-12-05T12:00:00Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2019-12-11T00:00:00Z', - ], - ], - [ - 'name' => 'Interval', - 'in' => 'query', - 'schema' => [ - 'description' => 'The time granularity for a query. Unit: seconds.'."\n" - ."\n" - .'The time granularity varies with the maximum time range per query. Valid values: 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). For more information, see **Usage notes**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2019-12-06T12:00:00Z', 'title' => ''], ], ], 'responses' => [ @@ -7768,137 +8758,100 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2019-12-11T00:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The start of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2019-12-10T00:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '7CBCD6AD-B016-42E5-AE0B-B3731DE8F755', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '300', - ], - 'OriginBpsDataPerInterval' => [ + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2019-12-06T12:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range.', 'type' => 'string', 'example' => '2019-12-05T12:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '2E5AD83F-BD7B-462E-8319-2E30E305519A', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'DataInterval' => ['description' => 'The time interval between data records. Unit: seconds.', 'type' => 'string', 'example' => '86400', 'title' => ''], + 'Value' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DataModule' => [ - 'description' => 'The origin bandwidth data returned at each time interval. Unit: bit/s.'."\n", + 'IspProportionData' => [ + 'description' => 'A list of data about the proportion of traffic from each carrier.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'DynamicHttpOriginBps' => [ - 'description' => 'The bandwidth that was consumed for fetching dynamic content from the origin over HTTP.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '100', - ], - 'StaticHttpOriginBps' => [ - 'description' => 'The bandwidth that was consumed for fetching static content from the origin over HTTP.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '100', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the returned data.'."\n", - 'type' => 'string', - 'example' => '2019-12-10T00:00:00Z', - ], - 'StaticHttpsOriginBps' => [ - 'description' => 'The bandwidth that was consumed for fetching static content from the origin over HTTPS.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '100', - ], - 'OriginBps' => [ - 'description' => 'The bandwidth that was consumed for fetching content from the origin.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '100', - ], - 'DynamicHttpsOriginBps' => [ - 'description' => 'The bandwidth that was consumed for fetching dynamic content from the origin over HTTPS.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '100', - ], + 'Qps' => ['description' => 'The number of queries per second (QPS).', 'type' => 'string', 'example' => '5.9523809523809524E-5', 'title' => ''], + 'TotalQuery' => ['description' => 'The total number of requests.', 'type' => 'string', 'example' => '3', 'title' => ''], + 'TotalBytes' => ['description' => 'The total traffic.', 'type' => 'string', 'example' => '2400057', 'title' => ''], + 'AvgResponseRate' => ['description' => 'The average response rate. Unit: bytes/millisecond.', 'type' => 'string', 'example' => '154.3345765545624', 'title' => ''], + 'AvgResponseTime' => ['description' => 'The average response time. Unit: milliseconds.', 'type' => 'string', 'example' => '5183.666666666667', 'title' => ''], + 'Proportion' => ['description' => 'The proportion of requests.', 'type' => 'string', 'example' => '0.01155980271270037', 'title' => ''], + 'AvgObjectSize' => ['description' => 'The average size of a response. Unit: byte.', 'type' => 'string', 'example' => '800019.0', 'title' => ''], + 'IspEname' => ['description' => 'The English name of the carrier.', 'type' => 'string', 'example' => 'unicom', 'title' => ''], + 'Bps' => ['description' => 'The bandwidth. Unit: bit/s.', 'type' => 'string', 'example' => '380.9614285714286', 'title' => ''], + 'Isp' => ['description' => 'The carrier information.', 'type' => 'string', 'example' => '联通', 'title' => ''], + 'BytesProportion' => ['description' => 'The proportion of the total traffic. For example, a value of 0.9 means 90%.', 'type' => 'string', 'example' => '0.003544181046236794', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], + ], + 404 => [ + ['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'The specified domain does not exist.', 'description' => 'The specified domain name does not exist.'], ], ], - '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' => 'DescribeDcdnDomainOriginBpsData', - 'description' => '* You can call this operation up to 100 times per second per account.'."\n" - .'* If you do not set the **StartTime** or **EndTime** parameter, the request returns the data collected in the last 24 hours. If you set both the **StartTime** and **EndTime** parameters, the request returns the data collected within the specified time range.'."\n" + 'title' => 'DescribeDcdnDomainIspData', + 'description' => '- Call frequency: 100 calls per second for each user.'."\n" ."\n" - .'**Time granularity**'."\n" + .'- If you do not specify StartTime and EndTime, data from the last 24 hours is queried by default. To query data within a specific time range, specify both StartTime and EndTime.'."\n" ."\n" - .'The time granularity supported by the Interval parameter, the maximum time period within which historical data is available, and the data delay vary with the maximum time range per query, as described in the following table.'."\n" + .'- You can query data for a single domain name or for all domain names that belong to your account.'."\n" ."\n" - .'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\n" - .'|---|---|---|---|'."\n" - .'|5 minutes|3 days|93 days|15 minutes|'."\n" - .'|1 hour|31 days|186 days|4 hours|'."\n" - .'|1 day|366 days|366 days|04:00 on the next day|', + .'- You can query data generated within the last 90 days.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainOriginTrafficData' => [ - 'summary' => 'Queries the back-to-origin traffic of one or more accelerated domain names.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainLog' => [ + 'summary' => 'Call the DescribeDcdnDomainLog operation to query the download URLs of raw access logs for a specified domain name.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -7909,405 +8862,466 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. Separate multiple accelerated domain names with commas (,). If you do not specify a value for this parameter, all accelerated domain names are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name that you want to query. You can query only one domain name at a time.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], [ - 'name' => 'StartTime', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => 'The number of entries to return on each page.'."\n" + ."\n" + .'The value must be between **1** and **1000**. The default value is **300**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '1000', 'default' => '300', 'example' => '300', 'title' => ''], ], [ - 'name' => 'EndTime', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], + 'schema' => ['description' => 'The page number to return. Valid values are integers greater than **0**.'."\n" + ."\n" + .'Default value: **1**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''], ], [ - 'name' => 'Interval', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The time interval between the data entries to return. Unit: seconds.'."\n" - ."\n" - .'The time granularity varies with the maximum time range per query. Valid values: 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). For more information, see **Description**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => 'The beginning of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2021-11-07T17:00:00Z', 'title' => ''], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => 'The end of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2021-11-07T18:00:00Z', 'title' => ''], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The beginning of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'A666D44F-19D6-490E-97CF-1A64AB962C57', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '300', - ], - 'OriginTrafficDataPerInterval' => [ + 'DomainName' => ['description' => 'The domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '95594003-CAC5-5636-AF72-2A094364****', 'title' => ''], + 'DomainLogDetails' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DataModule' => [ - 'description' => 'The amount of back-to-origin traffic returned at each time interval. Unit: bytes.'."\n", + 'DomainLogDetail' => [ + 'description' => 'The details of the domain logs.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'DynamicHttpOriginTraffic' => [ - 'description' => 'The amount of back-to-origin traffic that was consumed to deliver dynamic content over HTTP.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '1000', - ], - 'StaticHttpsOriginTraffic' => [ - 'description' => 'The amount of back-to-origin traffic that was consumed to deliver static content over HTTPS.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '100', - ], - 'OriginTraffic' => [ - 'description' => 'The amount of back-to-origin traffic.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '100', - ], - 'StaticHttpOriginTraffic' => [ - 'description' => 'The amount of back-to-origin traffic that was consumed to deliver static content over HTTP.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0', - ], - 'DynamicHttpsOriginTraffic' => [ - 'description' => 'The amount of back-to-origin traffic that was consumed to deliver dynamic content over HTTPS.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '500', + 'LogCount' => ['description' => 'The total number of entries returned on the current page.', 'type' => 'integer', 'format' => 'int64', 'example' => '4', 'title' => ''], + 'LogInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LogInfoDetail' => [ + 'description' => 'The details of the log information.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'EndTime' => ['description' => 'The end time.', 'type' => 'string', 'example' => '2021-11-07T18:00:00Z', 'title' => ''], + 'LogSize' => ['description' => 'The size of the log file in bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '192', 'title' => ''], + 'StartTime' => ['description' => 'The start time.', 'type' => 'string', 'example' => '2021-11-07T17:00:00Z', 'title' => ''], + 'LogName' => ['description' => 'The name of the log file.', 'type' => 'string', 'example' => 'example.com_2021_11_08_010000_020000.gz', 'title' => ''], + 'LogPath' => ['description' => 'The path of the log file.'."\n" + ."\n" + .'The download URL contains an Expires timestamp. After this time, the URL expires and you must obtain a new one. For more information, see [LogPath field information](~~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****', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the data returned.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', + 'PageInfos' => [ + 'description' => 'The paging information.', + 'type' => 'object', + 'properties' => [ + 'PageIndex' => ['description' => 'The page number of the returned page.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries on the page.', 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''], + 'Total' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int64', 'example' => '4', 'title' => ''], + ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - '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' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The StartTime cannot exceed 31 days before the current time.', 'description' => 'You can query data only within the last 31 days.'], ], ], - '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' => 'DescribeDcdnDomainOriginTrafficData', - 'description' => '- You can call this operation up to 100 times per second per account.'."\n" - .'- If you do not set the **StartTime** or **EndTime** parameters, the request returns the data collected in the last 24 hours. If you set both the **StartTime** and **EndTime** parameters, the request returns the data collected within the specified time range.'."\n" - ."\n" - .'**Time granularity**'."\n" - ."\n" - .'The time granularity supported by the Interval parameter varies with the maximum time range per query. The following table describes the time period within which historical data is available and the data delay. '."\n" - ."\n" - .'| Time granularity | Maximum time range per query | Historical data available | Data delay |'."\n" - .'| ---------------- | ---------------------------- | ------------------------- | ---------- |'."\n" - .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" - .'| 1 hour | 31 days | 186 days | 4 hours |'."\n" - .'| 1 day | 366 days | 366 days | 04:00 on the next day |', + 'title' => 'DescribeDcdnDomainLog', + 'description' => '> - If you do not specify the **StartTime** and **EndTime** parameters, logs from the last 24 hours are queried by default. If you specify a time range, logs within that range are queried.'."\n" + .'>'."\n" + .'> - A single user can make up to 100 API calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainWebsocketHttpCodeData' => [ - 'summary' => 'The total number and proportions of HTTP status codes returned from one or more accelerated domain names for which WebSocket is enabled are queried. Data can be collected at minimum intervals of 5 minutes.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + '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' => 'The accelerated domain name. You can specify multiple accelerated domain names and separate them with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain names for which you want to query data. You can specify multiple domain names. Separate them with commas (,).'."\n" + ."\n" + .'If you do not specify this parameter, data for all accelerated domain names under your account is returned.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query.'."\n" - ."\n" - .'The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-03-01T05:00:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query.'."\n" + ."\n" + .'- Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'- The minimum data granularity is 5 minutes.'."\n" + ."\n" + .'- This parameter must be used with the EndTime parameter.'."\n" + ."\n" + .'- By default, the system reads data from the last 24 hours.'."\n" + ."\n" + .'- Use with EndTime.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', + 'schema' => ['description' => 'The end of the time range to query. The end time must be later than the start time.'."\n" + ."\n" + .'- Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'- This parameter must be used with the StartTime parameter.'."\n" + ."\n" + .'- Must be used with StartTime.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The end of the time range to query.'."\n" - ."\n" - .'The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-03-01T06:00:00Z', + 'type' => 'object', + 'properties' => [ + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range.', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', 'title' => ''], + 'RequestPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RequestDataModule' => [ + 'description' => 'The data of requests that are monitored every 5 minutes.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => 'The type of request. Valid values: StaticHttps, DynamicHttps, DynamicHttp, StaticQuic, and DynamicQuic.', 'type' => 'string', 'example' => 'DynamicHttp', 'title' => ''], + 'TimeStamp' => ['description' => 'The beginning of the time interval.', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z', 'title' => ''], + 'Domain' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'Request' => ['description' => 'The number of requests.', 'type' => 'integer', 'format' => 'int64', 'example' => '1128', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'TrafficPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'TrafficDataModule' => [ + 'description' => 'The traffic data that is monitored every 5 minutes.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => 'The type of traffic. Valid values: Simple, IPA, and WebSocket.', 'type' => 'string', 'example' => 'Simple', 'title' => ''], + 'Domain' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'TimeStamp' => ['description' => 'The beginning of the time interval.', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z', 'title' => ''], + 'Area' => ['description' => 'The region.', 'type' => 'string', 'example' => 'CN', 'title' => ''], + 'Bps' => ['description' => 'The bandwidth. Unit: bit/s.', 'type' => 'number', 'format' => 'float', 'example' => '11288111.1', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Configure a valid time span as described in API documentation.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeDcdnDomainMultiUsageData', + 'summary' => 'Calls the DescribeDcdnDomainMultiUsageData operation to query the billing data for various metrics of one or more DCDN accelerated domain names. The minimum data granularity is 5 minutes. This operation does not return data for billing items that are not request-based.', + 'description' => '- If you do not specify the StartTime and EndTime parameters, data in the last 10 minutes is returned by default. You can also query data in a specified time range. To do so, you must specify both StartTime and EndTime.'."\n" + ."\n" + .'- You can query data for multiple accelerated domain names at a time. Separate the domain names with commas (,). Data for each domain name is returned separately.'."\n" + ."\n" + .'- You can query data within the last 90 days.'."\n" + ."\n" + .'- The maximum time range for a query is 1 hour.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainMultiUsageData'], + ], + ], + 'ramActions' => [ [ - 'name' => 'Interval', - 'in' => 'query', - 'schema' => [ - 'description' => 'The time granularity for a query. Unit: seconds.'."\n" - ."\n" - .'The time granularity varies with the maximum time range per query. Valid values: 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). For more information, see **Usage notes**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainMultiUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\",\\n \\"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}","type":"json"}]', + ], + 'DescribeDcdnDomainOriginBpsData' => [ + 'summary' => 'Queries the back-to-origin bandwidth monitoring data for a domain name.', + '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' => 'The name of the Internet service provider (ISP).'."\n" - ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query ISPs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'unicom', - ], + 'schema' => ['description' => 'The accelerated domain name. Separate multiple domain names with commas (,). If you leave this parameter empty, data for all your accelerated domain names is queried.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], ], [ - 'name' => 'LocationNameEn', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the region.'."\n" - ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query regions.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2019-12-10T00:00:00Z', 'title' => ''], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2019-12-11T00:00:00Z', 'title' => ''], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => ['description' => 'The time granularity of the data to query, in seconds.'."\n" + ."\n" + .'Valid values are 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). The supported time granularity varies based on the time range of the query. For more information, see the "Usage notes" section.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The description of the parameter.'."\n", 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2018-03-01T13:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The start of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2018-03-01T05:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '91FC2D9D-B042-4634-8A5C-7B8E7482C22D', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '3600', - ], - 'HttpCodeDataPerInterval' => [ + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2019-12-11T00:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range.', 'type' => 'string', 'example' => '2019-12-10T00:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '7CBCD6AD-B016-42E5-AE0B-B3731DE8F755', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'DataInterval' => ['description' => 'The time interval between data entries, in seconds.', 'type' => 'string', 'example' => '300', 'title' => ''], + 'OriginBpsDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => 'The HTTP status code.'."\n", + 'description' => 'The back-to-origin bandwidth at each time interval. Unit: bit/s.', 'type' => 'array', 'items' => [ - 'description' => 'The HTTP status code.'."\n", 'type' => 'object', 'properties' => [ - 'TimeStamp' => [ - 'description' => 'The timestamp of the returned data.'."\n", - 'type' => 'string', - 'example' => '2018-03-01T13:00:00Z', - ], - 'WebsocketHttpCode' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'HttpCodeDataModule' => [ - 'description' => 'The proportions of the HTTP status codes.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The information about the HTTP status codes.'."\n", - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => 'The HTTP status code returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '404', - ], - 'Proportion' => [ - 'description' => 'The proportion of the HTTP status code.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '100', - ], - 'Count' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '16', - ], - ], - ], - ], - ], - ], + 'DynamicHttpOriginBps' => ['description' => 'The back-to-origin bandwidth for dynamic HTTP requests.', 'type' => 'number', 'format' => 'float', 'example' => '100', 'title' => ''], + 'StaticHttpOriginBps' => ['description' => 'The back-to-origin bandwidth for static HTTP requests.', 'type' => 'number', 'format' => 'float', 'example' => '100', 'title' => ''], + 'TimeStamp' => ['description' => 'The timestamp of the data point.', 'type' => 'string', 'example' => '2019-12-10T00:00:00Z', 'title' => ''], + 'StaticHttpsOriginBps' => ['description' => 'The back-to-origin bandwidth for static HTTPS requests.', 'type' => 'number', 'format' => 'float', 'example' => '100', 'title' => ''], + 'OriginBps' => ['description' => 'The back-to-origin bandwidth.', 'type' => 'number', 'format' => 'float', 'example' => '100', 'title' => ''], + 'DynamicHttpsOriginBps' => ['description' => 'The back-to-origin bandwidth for dynamic HTTPS requests.', 'type' => 'number', 'format' => 'float', 'example' => '100', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'DescribeDcdnDomainWebsocketHttpCodeData', - 'description' => 'You can call this operation up to 100 times per second per account.'."\n" + 'title' => 'DescribeDcdnDomainOriginBpsData', + 'description' => '- A single user can call this operation up to 100 times per second.'."\n" + ."\n" + .'- If you do not specify **StartTime** and **EndTime**, data from the last 24 hours is returned by default. If you specify **StartTime** and **EndTime**, data in the specified time range is returned.'."\n" ."\n" - .'**Time granularity**'."\n" + .'**Supported time granularities**'."\n" ."\n" - .'The time granularity supported by the Interval parameter, the maximum time period within which historical data is available, and the data delay vary with the time range to query, as described in the following table.'."\n" + .'The supported time granularity depends on the maximum time range of a single query. The following table describes the supported time granularities, queryable time ranges for historical data, and data latency.'."\n" ."\n" - .'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\n" - .'|---|---|---|---|'."\n" - .'|5 minutes|3 days|93 days|15 minutes|'."\n" - .'|1 hour|31 days|186 days|4 hours|'."\n" - .'|1 day|366 days|366 days|04:00 on the next day|', + .'| Time granularity | Maximum time range for a single query | Queryable time range for historical data | Data latency |'."\n" + .'| ---------------- | ------------------------------------- | ---------------------------------------- | --------------------------------------------- |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | Typically 3 to 4 hours |'."\n" + .'| 1 day | 366 days | 366 days | Typically 4 hours, with a maximum of 24 hours |', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainWebsocketBpsData' => [ - 'summary' => 'Queries bandwidth of one or more accelerated domain names for which WebSocket is enabled. You can query the data that is collected over the last 90 days.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainOriginTrafficData' => [ + 'summary' => 'Call DescribeDcdnDomainOriginTrafficData to query monitoring data about back-to-origin traffic for domain names.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8318,84 +9332,32 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name.'."\n" - ."\n" - .'Separate multiple domain names with commas (,). If you do not specify a value for this parameter, all accelerated domain names are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name. You can specify multiple domain names and separate them with commas (,). If you do not specify this parameter, data for all accelerated domain names is queried.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z', 'title' => ''], ], [ 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => 'The time granularity for a query. Unit: seconds.'."\n" - ."\n" - .'The time granularity varies with the maximum time range per query. Valid values: 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). For more information, see **Usage notes**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], - ], - [ - 'name' => 'IspNameEn', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the Internet service provider (ISP).'."\n" - ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query ISPs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'unicom', - ], - ], - [ - 'name' => 'LocationNameEn', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the region.'."\n" - ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query regions.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => 'The time granularity of the data to query, in seconds.'."\n" + ."\n" + .'Valid values: 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). The supported value depends on the maximum time span of a single query. For more information, see the table that describes supported time granularities.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''], ], ], 'responses' => [ @@ -8403,113 +9365,98 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The start of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '300', - ], - 'BpsDataPerInterval' => [ + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range.', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'A666D44F-19D6-490E-97CF-1A64AB962C57', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'DataInterval' => ['description' => 'The time interval between data entries, in seconds.', 'type' => 'string', 'example' => '300', 'title' => ''], + 'OriginTrafficDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => 'The bandwidth data returned at each interval.'."\n", + 'description' => 'The back-to-origin traffic data at each time interval. Unit: bytes.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'TimeStamp' => [ - 'description' => 'The timestamp of the returned data.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'WebsocketBps' => [ - 'description' => 'The bandwidth value. Unit: bit/s.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '11288111', - ], + 'DynamicHttpOriginTraffic' => ['description' => 'The back-to-origin traffic for dynamic HTTP requests.', 'type' => 'number', 'format' => 'float', 'example' => '1000', 'title' => ''], + 'StaticHttpsOriginTraffic' => ['description' => 'The back-to-origin traffic for static HTTPS requests.', 'type' => 'number', 'format' => 'float', 'example' => '100', 'title' => ''], + 'OriginTraffic' => ['description' => 'The back-to-origin traffic.', 'type' => 'number', 'format' => 'float', 'example' => '100', 'title' => ''], + 'StaticHttpOriginTraffic' => ['description' => 'The back-to-origin traffic for static HTTP requests.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''], + 'DynamicHttpsOriginTraffic' => ['description' => 'The back-to-origin traffic for dynamic HTTPS requests.', 'type' => 'number', 'format' => 'float', 'example' => '500', 'title' => ''], + 'TimeStamp' => ['description' => 'The start of the time interval.', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'DescribeDcdnDomainWebsocketBpsData', - 'description' => '* You can call this operation up to 100 times per second per account.'."\n" - .'* If you do not set the **StartTime** or **EndTime** parameter, the request returns the data collected in the last 24 hours. If you set both the **StartTime** and **EndTime** parameters, the request returns the data collected within the specified time range.'."\n" + 'title' => 'DescribeDcdnDomainOriginTrafficData', + 'description' => '- A single user can call this operation up to 100 times per second.'."\n" + ."\n" + .'- If you do not specify the **StartTime** and **EndTime** parameters, data from the last 24 hours is returned. If you specify **StartTime** and **EndTime**, data in the specified time range is returned.'."\n" ."\n" - .'**Time granularity**'."\n" + .'**Supported time granularities**'."\n" ."\n" - .'The time granularity supported by the Interval parameter, the maximum time period within which historical data is available, and the data delay vary with the maximum time range per query, as described in the following table.'."\n" + .'The time granularity that you can use to query data varies based on the maximum time range that you can specify in a single query. The following table describes the time granularity, maximum time range, time range of historical data that can be queried, and data latency.'."\n" ."\n" - .'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\n" - .'|---|---|---|---|'."\n" - .'|5 minutes|3 days|93 days|15 minutes|'."\n" - .'|1 hour|31 days|186 days|4 hours|'."\n" - .'|1 day|366 days|366 days|04:00 on the next day|', + .'| Time granularity | Maximum time span per query | Queryable time range for historical data | Data latency |'."\n" + .'| ---------------- | --------------------------- | ---------------------------------------- | -------------------------------------------- |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | Typically 3 to 4 hours |'."\n" + .'| 1 day | 366 days | 366 days | Typically 4 hours, but no more than 24 hours |', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainWebsocketTrafficData' => [ - 'summary' => 'Queries the traffic monitoring data for an accelerated domain name with WebSocket enabled. You can query data in the last 90 days.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainProperty' => [ + 'summary' => 'Call the DescribeDcdnDomainProperty operation to query the protocol type of an IP Application Accelerator (IPA) domain name.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8520,84 +9467,96 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', + 'schema' => ['description' => 'The accelerated domain name that you want to query. You can query only one domain name at a time.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], 'schema' => [ - 'description' => 'The accelerated domain name.'."\n" - ."\n" - .'Separate multiple domain names with commas (,). If you do not specify a value for this parameter, all accelerated domain names are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB'], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'title' => '', 'example' => 'example.com'], + 'Protocol' => ['description' => 'The name of the protocol. Valid values:'."\n" + ."\n" + .'- **udp**: User Datagram Protocol (UDP).'."\n" + ."\n" + .'- **tcp**: Transmission Control Protocol (TCP).', 'type' => 'string', 'title' => '', 'example' => 'udp'], + ], + 'description' => '', + 'title' => '', ], ], + ], + 'errorCodes' => [ + 404 => [ + ['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'The specified domain does not exist.', 'description' => 'The specified domain name does not exist.'], + ], + ], + 'title' => 'DescribeDcdnDomainProperty', + 'description' => '> The call frequency for a single user is 10 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainProperty'], + ], + ], + 'ramActions' => [ [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Protocol\\": \\"udp\\"\\n}","type":"json"}]', + ], + 'DescribeDcdnDomainPvData' => [ + 'summary' => 'Call DescribeDcdnDomainPvData to query page view (PV) statistics for a domain name at a minimum granularity of one hour.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query.'."\n" - ."\n" - .'The time follows the ISO 8601 standard in the yyyy-MM-ddThh:mm:ssZ format. The time is displayed in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\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' => 'The time granularity for a query. Unit: seconds.'."\n" - ."\n" - .'The time granularity varies with the maximum time range per query. Valid values: 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). For more information, see **Operation Description**.', - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => 'The accelerated domain name. You can query only one domain name at a time.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], [ - 'name' => 'IspNameEn', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the ISP.'."\n" - ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query ISPs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'unicom', - ], + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard. The format is yyyy-MM-ddTHH:mm:ssZ. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2019-11-28T00:00:00Z', 'title' => ''], ], [ - 'name' => 'LocationNameEn', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the region.'."\n" - ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query regions.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard. The format is yyyy-MM-ddTHH:mm:ssZ. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2019-11-29T00:00:00Z', 'title' => ''], ], ], 'responses' => [ @@ -8605,112 +9564,80 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The start of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '300', - ], - 'TrafficDataPerInterval' => [ + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2019-11-29T00:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range.', 'type' => 'string', 'example' => '2019-11-28T00:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'BCD7D917-76F1-442F-BB75-C810DE34C761', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'DataInterval' => ['description' => 'The time interval between data records. Unit: seconds.', 'type' => 'string', 'example' => '3600', 'title' => ''], + 'PvDataInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DataModule' => [ - 'description' => 'The network traffic returned at each time interval. Unit: bytes.'."\n", + 'UsageData' => [ + 'description' => 'The number of page views in each time interval.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'WebsocketTraffic' => [ - 'description' => 'The total volume of traffic.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '423304182', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the returned data.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], + 'Value' => ['description' => 'The usage data.', 'type' => 'string', 'example' => '9292', 'title' => ''], + 'TimeStamp' => ['description' => 'The beginning of the time slot.', 'type' => 'string', 'example' => '2015-11-28T03:00:00Z', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => 'You must set both the start time and the end time.'], ], ], - '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' => 'DescribeDcdnDomainWebsocketTrafficData', - 'description' => '* You can call this operation up to 100 times per second per account.'."\n" - .'* If you do not set the **StartTime** or **EndTime** parameter, the request returns the data collected in the last 24 hours. If you set both the **StartTime** and **EndTime** parameters, the request returns the data collected within the specified time range.'."\n" - ."\n" - .'**Time granularity**'."\n" - ."\n" - .'The time granularity supported by the Interval parameter, the maximum time period within which historical data is available, and the data delay vary with the maximum time range per query, as described in the following table.'."\n" - ."\n" - .'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\n" - .'|---|---|---|---|'."\n" - .'|5 minutes|3 days|93 days|15 minutes|'."\n" - .'|1 hour|31 days|186 days|4 hours|'."\n" - .'|1 day|366 days|366 days|04:00 on the next day|', + 'title' => 'DescribeDcdnDomainPvData', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainRealTimeQpsData' => [ - 'summary' => 'The number of QPS for one or more accelerated domain names is queried. Data is collected every minute.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainQpsData' => [ + 'summary' => 'You can call the DescribeDcdnDomainQpsData operation to query the queries per second (QPS) for a domain name.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8721,70 +9648,52 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. Separate multiple accelerated domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name.'."\n" + ."\n" + .'Separate multiple domain names with commas (,). If you do not specify this parameter, data for all accelerated domain names is queried.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], ], [ - 'name' => 'IspNameEn', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the Internet service provider (ISP).'."\n" - ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query ISPs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'telecom', - ], + 'schema' => ['description' => 'The beginning of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z', 'title' => ''], ], [ - 'name' => 'LocationNameEn', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the region.'."\n" - ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query regions.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => 'The end of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z', 'title' => ''], ], [ - 'name' => 'StartTime', + 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-01-02T11:26:00Z', - ], + 'schema' => ['description' => 'The time granularity to query data, in seconds.'."\n" + ."\n" + .'Valid values are 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). The supported value depends on the maximum time span of a single query. For more information, see the supported time granularities described in the **Usage notes** section.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''], ], [ - 'name' => 'EndTime', + 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-01-02T11:27:00Z', - ], + 'schema' => ['description' => 'The name of the carrier in English.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to obtain the carrier name. If you do not specify this parameter, data for all carriers is queried.', 'type' => 'string', 'required' => false, 'example' => 'unicom', 'title' => ''], + ], + [ + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => ['description' => 'The name of the region in English.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to obtain the region name. If you do not specify this parameter, data for all regions is queried.', 'type' => 'string', 'required' => false, 'example' => 'beijing', 'title' => ''], ], ], 'responses' => [ @@ -8792,93 +9701,102 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '32DC9806-E9F9-4490-BBDC-B3A9E32FCC1D', - ], - 'Data' => [ + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The start of the time range.', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'BEA5625F-8FCF-48F4-851B-CA63946DA664', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'DataInterval' => ['description' => 'The time interval between data records, in seconds.', 'type' => 'string', 'example' => '300', 'title' => ''], + 'QpsDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'QpsModel' => [ - 'description' => 'The information about the backup set.'."\n", + 'DataModule' => [ + 'description' => 'The QPS of each time interval.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Qps' => [ - 'description' => 'The number of queries per second (QPS).'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '1851.25', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the data returned. The time follows the ISO 8601 standard. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2018-01-02T11:26:00Z', - ], + 'DynamicHttpsAcc' => ['description' => 'The number of dynamic HTTPS requests.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''], + 'DynamicHttpAcc' => ['description' => 'The number of dynamic HTTP requests.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''], + 'Qps' => ['description' => 'The total QPS.', 'type' => 'number', 'format' => 'float', 'example' => '0.56', 'title' => ''], + 'StaticHttpsAcc' => ['description' => 'The number of static HTTPS requests.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''], + 'StaticHttpQps' => ['description' => 'The QPS of static HTTP requests.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''], + 'StaticHttpAcc' => ['description' => 'The number of static HTTP requests.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''], + 'DynamicHttpsQps' => ['description' => 'The QPS of dynamic HTTPS requests.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''], + 'Acc' => ['description' => 'The total number of requests.', 'type' => 'number', 'format' => 'float', 'example' => '100', 'title' => ''], + 'StaticHttpsQps' => ['description' => 'The QPS of static HTTPS requests.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''], + 'DynamicHttpQps' => ['description' => 'The QPS of dynamic HTTP requests.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''], + 'TimeStamp' => ['description' => 'The beginning of the time slice.', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'DescribeDcdnDomainRealTimeQpsData', - 'description' => '* You can call this operation up to 10 times per second per account.'."\n" - .'* If you do not specify the StartTime or EndTime parameter, the request returns the data collected in the last hour. If you specify both the StartTime and EndTime parameters, the request returns the data collected within the specified time range.'."\n" + 'title' => 'DescribeDcdnDomainQpsData', + 'description' => '- The maximum call frequency for a single user is 100 calls per second.'."\n" ."\n" - .'**Time granularity**'."\n" + .'- If you do not specify the **StartTime** and **EndTime** parameters, data for the last 24 hours is returned. If you specify both **StartTime** and **EndTime**, data for the specified time range is returned.'."\n" ."\n" - .'The time granularity varies with the time range specified by the StartTime and EndTime parameters. The following table describes the time period within which historical data is available and the data delay.'."\n" + .'**Supported time granularity**'."\n" ."\n" - .'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\n" - .'|---|---|---|---|'."\n" - .'|1 minute|1 hour|7 days|5 minutes|'."\n" - .'|5 minutes|3 days|93 days|15 minutes|'."\n" - .'|1 hour|31 days|186 days|4 hours|', - 'requestParamsDescription' => ' ', + .'The time granularity that you can specify for the Interval parameter depends on the maximum time span of a single query. The following table describes the supported time granularities, the time ranges of historical data that can be queried, and the data latency.'."\n" + ."\n" + .'| Time granularity | Maximum time span per query | Queryable time range for historical data | Data latency |'."\n" + .'| ---------------- | --------------------------- | ---------------------------------------- | --------------------------------------------- |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | Typically 3 to 4 hours |'."\n" + .'| 1 day | 366 days | 366 days | Typically 4 hours, with a maximum of 24 hours |', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainRealTimeTrafficData' => [ - 'summary' => 'Queries the traffic monitoring data of an accelerated domain name. Data is collected every minute.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainQpsDataByLayer' => [ + 'summary' => 'Call DescribeDcdnDomainQpsDataByLayer to query the queries per second (QPS) of an accelerated domain name by protocol.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -8886,47 +9804,50 @@ ], 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. You can specify one or more domain names and separate them with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name that you want to query. You can specify multiple domain names. Separate them with commas (,). You can specify up to 500 domain names. If you specify multiple domain names, the data is aggregated. If you leave this parameter empty, the aggregated data for all your accelerated domain names is returned.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> If you do not specify StartTime or EndTime, data within the last hour is queried. If you specify both StartTime and EndTime, data within the specified time range is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T20:00:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC. The minimum time granularity is 5 minutes. If you do not set this parameter, data in the last 24 hours is returned.', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T20:00:00Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC. The end time must be later than the start time.'."\n" - ."\n" - .'> If you do not specify StartTime or EndTime, data within the last hour is queried. If you specify both StartTime and EndTime, data within the specified time range is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T20:01:00Z', - ], + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T21:00:00Z', 'title' => ''], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => ['description' => 'The time granularity for the query, in seconds.'."\n" + ."\n" + .'Valid values are 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). The supported value depends on the maximum time span of a single query. For more information, see the table of supported time granularities in this topic.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''], + ], + [ + 'name' => 'IspNameEn', + 'in' => 'query', + 'schema' => ['description' => 'The English name of the carrier. Call the [DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~) operation to obtain the name. If you do not set this parameter, data for all carriers is returned.', 'type' => 'string', 'required' => false, 'example' => 'telecom', 'title' => ''], + ], + [ + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => ['description' => 'The English name of the region. Call the [DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~) operation to obtain the name. If you do not set this parameter, data for all regions is returned.', 'type' => 'string', 'required' => false, 'example' => 'hangzhou', 'title' => ''], + ], + [ + 'name' => 'Layer', + 'in' => 'query', + 'schema' => ['description' => 'The layer to query. Valid values: \\`network\\` (IPv4 and IPv6), \\`application\\` (HTTP, HTTPS, and QUIC), or \\`all\\`. The default value is \\`all\\`.', 'type' => 'string', 'required' => false, 'example' => 'all', 'title' => ''], ], ], 'responses' => [ @@ -8934,114 +9855,100 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2015-12-10T20:01:00Z', - ], - 'StartTime' => [ - 'description' => 'The beginning of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2015-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'A666D44F-19D6-490E-97CF-1A64AB962C57', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => 'The time interval between the data entries. Unit: seconds.'."\n" - ."\n" - .'The time granularity varies with the maximum time range per query. Valid values: 60 (1 minute), 300 (5 minutes), and 3600(1 hour). For more information, see **Usage notes**.'."\n", - 'type' => 'string', - 'example' => '60', - ], - 'RealTimeTrafficDataPerInterval' => [ + 'EndTime' => ['description' => 'The end of the time range that was queried.', 'type' => 'string', 'example' => '2015-12-10T21:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range that was queried.', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'BEA5625F-8FCF-48F4-851B-CA63946DA664', 'title' => ''], + 'Layer' => ['description' => 'The layer that was queried.', 'type' => 'string', 'example' => 'all', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'DataInterval' => ['description' => 'The time interval between each data record. Unit: seconds.', 'type' => 'string', 'example' => '300', 'title' => ''], + 'QpsDataInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => 'The amount of back-to-origin traffic returned at each interval.'."\n", + 'description' => 'The QPS value for each time interval.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Value' => [ - 'description' => 'The traffic value at each time interval.'."\n" - ."\n" - .'> The network traffic is measured in bytes.'."\n", - 'type' => 'string', - 'example' => '0', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the data returned.'."\n", - 'type' => 'string', - 'example' => '2015-12-10T20:00:00Z', - ], + 'Value' => ['description' => 'The total QPS.', 'type' => 'string', 'example' => '0.56', 'title' => ''], + 'AccValue' => ['description' => 'The total number of requests.', 'type' => 'string', 'example' => '56', 'title' => ''], + 'AccDomesticValue' => ['description' => 'The number of requests in the Chinese mainland.', 'type' => 'string', 'example' => '12', 'title' => ''], + 'OverseasValue' => ['description' => 'The QPS in regions outside the Chinese mainland.', 'type' => 'string', 'example' => '0.44', 'title' => ''], + 'AccOverseasValue' => ['description' => 'The number of requests in regions outside the Chinese mainland.', 'type' => 'string', 'example' => '44', 'title' => ''], + 'TimeStamp' => ['description' => 'The beginning of the time slice.', 'type' => 'string', 'example' => '2015-12-10T21:00:00Z', 'title' => ''], + 'DomesticValue' => ['description' => 'The QPS in the Chinese mainland.', 'type' => 'string', 'example' => '0.12', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'DescribeDcdnDomainRealTimeTrafficData', - 'description' => 'You can call this operation up to 50 times per second per user.'."\n" + 'title' => 'DescribeDcdnDomainQpsDataByLayer', + 'description' => '> - A single user can make up to 20 calls per second.'."\n" + .'>'."\n" + .'> - If you do not specify **StartTime** and **EndTime**, data in the last 24 hours is returned by default. If you specify **StartTime** and **EndTime**, data in the specified time range is returned.'."\n" ."\n" - .'**Time granularity**'."\n" + .'**Supported time granularities**'."\n" ."\n" - .'The time granularity varies with the time range specified by the StartTime and EndTime parameters. The following table describes the time period within which historical data is available and the data delay.'."\n" + .'The time granularity that you can specify in the Interval parameter varies based on the maximum time span of a single query. The following table lists the queryable historical data range and data latency for each time granularity.'."\n" ."\n" - .'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\n" - .'|---|---|---|---|'."\n" - .'|1 minute|1 hour|7 days|5 minutes|'."\n" - .'|5 minutes|3 days|93 days|15 minutes|'."\n" - .'|1 hour|31 days|186 days|4 hours|', + .'| Time granularity | Maximum time span for a single query | Queryable historical data range | Data latency |'."\n" + .'| ---------------- | ------------------------------------ | ------------------------------- | -------------------------------------------- |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | Typically 3 to 4 hours |'."\n" + .'| 1 day | 366 days | 366 days | Typically 4 hours, but no more than 24 hours |', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainRealTimeBpsData' => [ - 'summary' => 'Queries the real-time network bandwidth of a domain name.', - 'methods' => [ - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainQpsDataByLayer'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainQpsDataByLayer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainRealTimeBpsData' => [ + 'summary' => 'Call the DescribeDcdnDomainRealTimeBpsData operation to query the real-time network bandwidth of a domain name.', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9052,70 +9959,43 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. Separate multiple accelerated domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name. You can specify multiple domain names and separate them with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], [ 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the Internet service provider (ISP).'."\n" - ."\n" - .'If you do not set this parameter, all ISPs are queried. You can call [DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~) to query ISP names.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'telecom', - ], + 'schema' => ['description' => 'The name of the carrier.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~) operation to query the carrier name. If you do not set this parameter, data of all carriers is queried.', 'type' => 'string', 'required' => false, 'example' => 'telecom', 'title' => ''], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the region.'."\n" - ."\n" - .'If you do not set this parameter, all regions are queried. You can call [DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~) to query regions.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => 'The name of the region.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~) operation to query the region name. If you do not set this parameter, data of all regions is queried.', 'type' => 'string', 'required' => false, 'example' => 'beijing', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-01-02T11:00:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2018-01-02T11:00:00Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-01-02T11:00:00Z', - ], + 'schema' => ['description' => 'The end of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2018-01-02T11:00:00Z', 'title' => ''], ], ], 'responses' => [ @@ -9123,93 +10003,89 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'B49E6DDA-F413-422B-B58E-2FA23F286726', - ], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'B49E6DDA-F413-422B-B58E-2FA23F286726', 'title' => ''], 'Data' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'BpsModel' => [ - 'description' => 'The returned data.'."\n", + 'description' => 'The list of data.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Bps' => [ - 'description' => 'The bandwidth. Unit: bit/s.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '16710625.733333332', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the data returned. The time follows the ISO 8601 standard. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2018-01-02T11:05:00Z', - ], + 'Bps' => ['description' => 'The bandwidth. Unit: bit/s.', 'type' => 'number', 'format' => 'float', 'example' => '16710625.733333332', 'title' => ''], + 'TimeStamp' => ['description' => 'The timestamp of the data. The time is in the ISO 8601 standard in UTC.', 'type' => 'string', 'example' => '2018-01-02T11:05:00Z', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'DescribeDcdnDomainRealTimeBpsData', - 'description' => '* You can call this operation up to 10 times per second per account.'."\n" - .'* If you do not specify **StartTime** or **EndTime**, the request returns the data collected in the last hour by default. If you specify both parameters, the request returns the data collected within the specified time range.'."\n" + 'description' => '- The maximum number of calls that a single user can make to this operation is 10 per second.'."\n" + ."\n" + .'- If you do not specify the **StartTime** and **EndTime** parameters, the operation returns the data of the last hour. If you specify the **StartTime** and **EndTime** parameters, the operation returns the data within the specified time range.'."\n" ."\n" - .'**Time granularity**'."\n" + .'**Time granularity of the returned data**'."\n" ."\n" - .'The time granularity varies with the time range specified by the StartTime and EndTime parameters. The following table describes the time period within which historical data is available and the data delay.'."\n" + .'The time granularity of the data returned varies based on the time range specified by the StartTime and EndTime parameters. The following table describes the time period of historical data that you can query and the data latency.'."\n" ."\n" - .'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\n" - .'|---|---|---|---|'."\n" - .'|1 minute|1 hour|7 days|5 minutes|'."\n" - .'|5 minutes|3 days|93 days|15 minutes|'."\n" - .'|1 hour|31 days|186 days|3 to 4 hours|', + .'| Time granularity | Maximum time range per query | Queryable historical data period | Data latency |'."\n" + .'| ---------------- | ---------------------------- | -------------------------------- | ---------------------- |'."\n" + .'| 1 minute | 1 hour | 7 days | 5 minutes |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | Typically 3 to 4 hours |', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainRealTimeByteHitRateData' => [ - 'summary' => 'Queries byte hit ratios at a time granularity of 1 minute.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainRealTimeByteHitRateData' => [ + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9220,42 +10096,25 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The domain name. Separate multiple domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The domain names to query. Separate multiple domain names with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z', 'title' => ''], ], ], 'responses' => [ @@ -9263,93 +10122,93 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', 'title' => ''], 'Data' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'ByteHitRateDataModel' => [ - 'description' => 'The list of byte hit ratios.'."\n", + 'description' => 'A list of byte hit ratio data.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ByteHitRate' => [ - 'description' => 'The byte hit ratio.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0.8956940476262277', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the data returned. The time follows the ISO 8601 standard. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2016-10-20T04:00:00Z', - ], + 'ByteHitRate' => ['description' => 'The byte hit ratio.', 'type' => 'number', 'format' => 'float', 'example' => '0.8956940476262277', 'title' => ''], + 'TimeStamp' => ['description' => 'The data timestamp. The time is in UTC and follows the ISO 8601 standard.', 'type' => 'string', 'example' => '2016-10-20T04:00:00Z', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'DescribeDcdnDomainRealTimeByteHitRateData', - 'description' => '* You can call this operation up to 10 times per second per account.'."\n" - .'* The network traffic destined for different domain names may be redirected to the same origin server. Therefore, the byte hit ratios may be inaccurate. The accuracy of query results is based on the actual configurations.'."\n" - .'* If you do not set the **StartTime** or **EndTime** parameter, the request returns the data collected in the last hour. If you set both the **StartTime** and **EndTime** parameters, the request returns the data collected within the specified time range.'."\n" + 'summary' => 'Call the DescribeDcdnDomainRealTimeByteHitRateData operation to query real-time byte hit ratio data for one or more domain names.', + 'description' => '- The maximum call frequency for a single user is 10 calls per second.'."\n" + ."\n" + .'- The hit rate data may be inaccurate because data for multiple domain names is merged for storage. The actual data depends on your configuration.'."\n" + ."\n" + .'- If you do not specify **StartTime** and **EndTime**, the operation returns data for the last hour by default. If you specify **StartTime** and **EndTime**, the operation returns data for the specified time range.'."\n" ."\n" - .'**Time granularity**'."\n" + .'**Data granularity**'."\n" ."\n" - .'The time granularity varies with the time range specified by the StartTime and EndTime parameters. The following table describes the time period within which historical data is available and the data delay.'."\n" + .'The time granularity of the returned data varies based on the time span between StartTime and EndTime. The following table describes the time granularity, maximum time span for a single query, queryable time range for historical data, and data latency.'."\n" ."\n" - .'| Time granularity | Maximum time range per query | Historical data available | Data delay |'."\n" - .'|----|------|-----|--------|'."\n" - .'| 1 minute | 1 hour | 7 days | 5 minutes |'."\n" - .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" - .'| 1 hour | 31 days | 186 days | 4 hours |', + .'| Time granularity | Maximum time span per query | Queryable time range for historical data | Data latency |'."\n" + .'| ---------------- | --------------------------- | ---------------------------------------- | ---------------------- |'."\n" + .'| 1 minute | 1 hour | 7 days | 5 minutes |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | Typically 3 to 4 hours |', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainRealTimeReqHitRateData' => [ - 'summary' => 'Queries the request hit rates with a time granularity of 1 minute.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainRealTimeDetailData' => [ + 'summary' => 'Call DescribeDcdnDomainRealTimeDetailData to batch query traffic and request data for accelerated domain names at a 1-minute granularity. The data is aggregated by region and carrier. The maximum time range for a single query is 10 minutes.', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9360,42 +10219,72 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. Separate multiple accelerated domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name. You can specify multiple domain names and separate them with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2019-12-10T20:00:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => true, 'example' => '2019-11-30T05:33:00Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'The end time needs to be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2019-12-10T20:03:00Z', - ], + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time. The maximum time range that can be queried is 10 minutes.', 'type' => 'string', 'required' => true, 'example' => '2019-11-30T05:40:00Z', 'title' => ''], + ], + [ + 'name' => 'Field', + 'in' => 'query', + 'schema' => ['description' => 'The information to query. You can specify multiple values and separate them with commas (,). Valid values:'."\n" + ."\n" + .'- **qps**: queries per second (QPS).'."\n" + ."\n" + .'- **bps**: bandwidth.'."\n" + ."\n" + .'- **http\\_code**: HTTP status codes.', 'type' => 'string', 'required' => true, 'example' => 'bps', 'title' => ''], + ], + [ + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => ['description' => 'The English name of the region. You can call the [DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~) operation to query regions.'."\n" + ."\n" + .'If you do not set this parameter, data in all regions is queried.', 'type' => 'string', 'required' => false, 'example' => 'beijing', 'title' => ''], + ], + [ + 'name' => 'IspNameEn', + 'in' => 'query', + 'schema' => ['description' => 'The English name of the internet service provider (ISP). You can call the [DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~) operation to query ISPs.'."\n" + ."\n" + .'If you do not set this parameter, data from all ISPs is queried.', 'type' => 'string', 'required' => false, 'example' => 'unicom', 'title' => ''], + ], + [ + 'name' => 'Merge', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to return aggregated data. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false**'."\n" + ."\n" + .'The default value is **false**.', 'type' => 'string', 'required' => false, 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'MergeLocIsp', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to aggregate data by region and ISP. Valid values:'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false**'."\n" + ."\n" + .'The default value is **false**.', 'type' => 'string', 'required' => false, 'example' => 'true', 'title' => ''], ], ], 'responses' => [ @@ -9403,92 +10292,87 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', - ], - 'Data' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ReqHitRateDataModel' => [ - 'description' => 'The list of byte hit ratios.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ReqHitRate' => [ - 'description' => 'The request hit ratio.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0.8956940476262277', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the data returned. The time follows the ISO 8601 standard in the yyyy-MM-ddThh:mm:ssZ format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2016-10-20T04:00:00Z', - ], - ], - ], - ], - ], - ], + 'Data' => ['description' => 'The list of data returned.'."\n" + ."\n" + .'> This parameter is returned as a JSON string due to API limitations. The following table describes the fields in the JSON string.', '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" + .' ]', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'A603F324-7A05-4FB3-ADF3-2563233D26CC', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified StartTime or EndTime is malformed.', 'description' => 'The format of the specified start time or end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specific DomainName is invalid.', 'description' => 'The specified domain name is invalid.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'DescribeDcdnDomainRealTimeReqHitRateData', - 'description' => '* You can call this operation up to 10 times per second per user.'."\n" - .'* The network traffic destined for different domain names may be redirected to the same origin server. Therefore, the byte hit ratios may be inaccurate. The accuracy of query results is based on the actual configurations.'."\n" - .'* If you do not set the **StartTime** or **EndTime** parameter, the request returns the data collected in the last hour. If you set both the **StartTime** and **EndTime** parameters, the request returns the data collected within the specified time range.'."\n" - ."\n" - .'**Time granularity** The time granularity varies with the time range specified by the StartTime and EndTime parameters. The following table describes the time period within which historical data is available and the data delay.'."\n" - ."\n" - .'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\n" - .'|---|---|---|---|'."\n" - .'|1 minute|1 hour|7 days|5 minutes|'."\n" - .'|5 minutes|3 days|93 days|15 minutes|'."\n" - .'|1 hour|31 days|186 days|4 hours|', + 'title' => 'DescribeDcdnDomainRealTimeDetailData', + 'description' => '> - A single user can call this operation up to 10 times per second.'."\n" + .'>'."\n" + .'> - This operation is available only to users whose daily peak bandwidth is 1 Gbps or higher. If you meet this requirement, [submit a ticket](https://smartservice.console.aliyun.com/service/create-ticket) to request permissions to call this operation.', 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', + 'responseParamsDescription' => '### Data fields'."\n" + ."\n" + .'| Name | Type | Description | Example |'."\n" + .'| ----------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |'."\n" + .'| domain_name | String | The domain name that you queried. | example.com |'."\n" + .'| isp | String | The name of the ISP. | unicom |'."\n" + .'| location | String | The name of the region. | qingdao |'."\n" + .'| qps | Long | The number of queries per second. | 40 |'."\n" + .'| bps | Long | The bandwidth. | 100 |'."\n" + .'| http_code | Map | The details of HTTP status codes. The key indicates the name of the status code, and the value indicates the number of times the status code is returned. | {"200": 1, "304": 2, "403": 3} |'."\n" + .'| time_stp | String | The timestamp of the data returned. The time is in the ISO 8601 standard in UTC. | 2022-10-20T04:00:00Z |', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainRealTimeHttpCodeData' => [ - 'summary' => 'Queries the total number and proportions of HTTP status codes returned from one or more accelerated domain names.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2023-07-04T08:38:54.000Z', 'description' => 'Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRealTimeDetailData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRealTimeDetailData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Data\\": \\"[\\\\n {\\\\n \\\\\\"time_stp\\\\\\": \\\\\\"2018-06-05T20:00:00Z\\\\\\",\\\\n \\\\\\"domain_name\\\\\\": \\\\\\"example.com\\\\\\",\\\\n \\\\\\"location\\\\\\": \\\\\\"Guangdong\\\\\\",\\\\n \\\\\\"isp\\\\\\": \\\\\\"telecom\\\\\\",\\\\n \\\\\\"qps\\\\\\": 10.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}","type":"json"}]', + ], + 'DescribeDcdnDomainRealTimeHttpCodeData' => [ + 'summary' => 'Call the DescribeDcdnDomainRealTimeHttpCodeData operation to query the total number and proportions of real-time HTTP return codes for a domain name.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9499,70 +10383,43 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. Separate multiple accelerated domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name. You can specify multiple domain names and separate them with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], + 'schema' => ['description' => 'The end of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z', 'title' => ''], ], [ 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the Internet service provider (ISP).'."\n" - ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query ISPs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'unicom', - ], + 'schema' => ['description' => 'The name of the carrier.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~) operation to query carriers. If you do not set this parameter, data for all carriers is queried.', 'type' => 'string', 'required' => false, 'example' => 'unicom', 'title' => ''], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the region.'."\n" - ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query regions.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => 'The name of the region.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~) operation to query regions. If you do not set this parameter, data for all regions is queried.', 'type' => 'string', 'required' => false, 'example' => 'beijing', 'title' => ''], ], ], 'responses' => [ @@ -9570,134 +10427,118 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The beginning of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '60', - ], + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The start of the time range.', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'DataInterval' => ['description' => 'The time interval between data points, in seconds.', 'type' => 'string', 'example' => '60', 'title' => ''], 'RealTimeHttpCodeData' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'UsageData' => [ - 'description' => 'The proportions of the HTTP status codes.'."\n", + 'description' => 'A list of usage data for the proportions of return codes.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'TimeStamp' => [ - 'description' => 'The timestamp of the returned data.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], + 'TimeStamp' => ['description' => 'The start of the time slice.', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z', 'title' => ''], 'Value' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'RealTimeCodeProportionData' => [ - 'description' => 'The information about the HTTP status code returned.'."\n", + 'description' => 'The information about the return codes.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => 'The HTTP status code returned.'."\n", - 'type' => 'string', - 'example' => '200', - ], - 'Proportion' => [ - 'description' => 'The proportion of the HTTP status code.'."\n", - 'type' => 'string', - 'example' => '0.01155980271270037', - ], - 'Count' => [ - 'description' => 'The count of each HTTP status code.'."\n", - 'type' => 'string', - 'example' => '1', - ], + 'Code' => ['description' => 'The HTTP return code.', 'type' => 'string', 'example' => '200', 'title' => ''], + 'Proportion' => ['description' => 'The proportion of the return code.', 'type' => 'string', 'example' => '0.01155980271270037', 'title' => ''], + 'Count' => ['description' => 'The total number of times the return code was returned.', 'type' => 'string', 'example' => '1', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'MissingTimeParameter', - 'errorMessage' => 'The StartTime and EndTime must be both specified.', - ], - [ - '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time 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\\": \\"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' => 'DescribeDcdnDomainRealTimeHttpCodeData', - 'description' => '* You can call this operation up to 10 times per second per account.'."\n" - .'* If you do not set the StartTime or EndTime parameter, the request returns the data collected in the last hour. If you set both the StartTime and EndTime parameters, the request returns the data collected within the specified time range.'."\n" + 'description' => '- A single user can call this operation up to 10 times per second.'."\n" ."\n" - .'**Time granularity**'."\n" + .'- If you do not specify the StartTime and EndTime parameters, data of the last hour is returned. If you specify the StartTime and EndTime parameters, data within the specified time range is returned.'."\n" ."\n" - .'The time granularity varies with the time range specified by the StartTime and EndTime parameters. The following table describes the time period within which historical data is available and the data delay.'."\n" + .'**Data granularity**'."\n" ."\n" - .'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\n" - .'|---|---|---|---|'."\n" - .'|1 minute|1 hour|7 days|5 minutes|'."\n" - .'|5 minutes|3 days|93 days|15 minutes|'."\n" - .'|1 hour|31 days|186 days|4 hours|', + .'The time granularity of the returned data varies based on the time range that you specify using the StartTime and EndTime parameters. The following table describes the time granularity, maximum time range per query, queryable period of historical data, and data latency.'."\n" + ."\n" + .'| Time granularity | Maximum time range per query | Queryable historical data | Data latency |'."\n" + .'| ---------------- | ---------------------------- | ------------------------- | ------------ |'."\n" + .'| 1 minute | 1 hour | 7 days | 5 minutes |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | 3 to 4 hours |', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainRealTimeDetailData' => [ - 'summary' => 'Queries traffic usage through each Internet service provider (ISP) and the number of visits in each region. The resolution of the data is one minute. The maximum time range to query for this operation is 10 minutes.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainRealTimeQpsData' => [ + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9708,110 +10549,43 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. Separate multiple accelerated domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name. You can specify one or more domain names. Separate multiple domain names with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2019-11-30T05:33:00Z', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time, and the maximum time range to query is 10 minutes.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2019-11-30T05:40:00Z', - ], - ], - [ - 'name' => 'Field', + 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of information that you want to query. Separate multiple types with commas (,). Valid values:'."\n" - ."\n" - .'* **qps**: queries per second (QPS)'."\n" - .'* **bps**: bandwidth'."\n" - .'* **http_code**: HTTP status code'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'bps', - ], + 'schema' => ['description' => 'The English name of the carrier.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query the English name of the carrier. If you do not set this parameter, data for all carriers is returned.', 'type' => 'string', 'required' => false, 'example' => 'telecom', 'title' => ''], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the region. You can call the [DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~) operation to obtain the region name.'."\n" - ."\n" - .'If you do not set this parameter, all regions are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => 'The English name of the region.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query the English name of the region. If you do not set this parameter, data for all regions is returned.', 'type' => 'string', 'required' => false, 'example' => 'beijing', 'title' => ''], ], [ - 'name' => 'IspNameEn', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the ISP. You can call the [DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~) operation to obtain the ISP name.'."\n" - ."\n" - .'If you do not set this parameter, data of all ISPs is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'unicom', - ], + 'schema' => ['description' => 'The beginning of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2018-01-02T11:26:00Z', 'title' => ''], ], [ - 'name' => 'Merge', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to return a summary value. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n" - ."\n" - .'Default value: **false**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'true', - ], - ], - [ - 'name' => 'MergeLocIsp', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to return a summary value of **LocationNameEn** and **IspNameEn**. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n" - ."\n" - .'Default value: **false**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'The end of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2018-01-02T11:27:00Z', 'title' => ''], ], ], 'responses' => [ @@ -9819,98 +10593,91 @@ 'schema' => [ 'type' => 'object', 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '32DC9806-E9F9-4490-BBDC-B3A9E32FCC1D', 'title' => ''], 'Data' => [ - 'description' => 'The information returned.'."\n" - ."\n" - .'> The value of this parameter is a JSON string. The following table describes the fields in Data.'."\n", - 'type' => 'string', - 'example' => '['."\n" - .' {'."\n" - .' "time_stp": "2018-06-05T20:00:00Z",'."\n" - .' "domain_name": "example.com",'."\n" - .' "location": "Guangdong",'."\n" - .' "isp": "telecom",'."\n" - .' "qps": 10.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' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'A603F324-7A05-4FB3-ADF3-2563233D26CC', + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'QpsModel' => [ + 'description' => 'The list of data.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Qps' => ['description' => 'The number of queries per second.', 'type' => 'number', 'format' => 'float', 'example' => '1851.25', 'title' => ''], + 'TimeStamp' => ['description' => 'The data timestamp. The time is in the ISO 8601 standard and is displayed in UTC.', 'type' => 'string', 'example' => '2018-01-02T11:26:00Z', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'DescribeDcdnDomainRealTimeDetailData', - 'description' => '> '."\n" - .'> - You can call this operation up to 10 times per second per account.'."\n" - .'> - This operation is available only to users whose daily peak bandwidth value is higher than 1 Gbit/s. If you meet this requirement, you can [submit a ticket](https://smartservice.console.aliyun.com/service/create-ticket-intl) to apply for permissions to use this operation.', + 'title' => 'DescribeDcdnDomainRealTimeQpsData', + 'summary' => 'Call the DescribeDcdnDomainRealTimeQpsData operation to obtain the queries per second (QPS) data for an accelerated domain name.', + 'description' => '- The maximum number of times this operation can be called by a single user is 10 per second.'."\n" + ."\n" + .'- If you do not specify StartTime and EndTime, this operation returns data from the last hour by default. If you specify a time range, data for that range is returned.'."\n" + ."\n" + .'**Data granularity**'."\n" + ."\n" + .'The time granularity of the returned data depends on the time range that you specify using the StartTime and EndTime parameters. The following table describes the maximum queryable time range and data latency for each time granularity.'."\n" + ."\n" + .'| Time granularity | Maximum time span per query | Queryable historical data range | Data latency |'."\n" + .'| ---------------- | --------------------------- | ------------------------------- | ---------------------- |'."\n" + .'| 1 minute | 1 hour | 7 days | 5 minutes |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | Typically 3 to 4 hours |', 'requestParamsDescription' => ' ', - 'responseParamsDescription' => '### Fields in Data'."\n" - ."\n" - .'|Field|Type|Description|Example|'."\n" - .'|---|---|---|---|'."\n" - .'|domain\\_name|String|The domain name that was queried.|example.com|'."\n" - .'|isp|String|The name of the ISP.|unicom|'."\n" - .'|location|String|The name of the region.|qingdao|'."\n" - .'|qps|Long|The QPS.|40|'."\n" - .'|bps|Long|The bandwidth value.|100|'."\n" - .'|http\\_code|Map|The HTTP status codes returned. The key indicates the HTTP status code and the value indicates the number of the HTTP status codes.|{"200": 1, "304": 2, "403": 3}|'."\n" - .'|time\\_stp|String|The beginning of the time range that was queried. The time follows the ISO 8601 standard in the yyyy-MM-ddThh:mm:ssZ format. The time is displayed in UTC.|2022-10-20T04:00:00Z|', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainRealTimeSrcBpsData' => [ - 'summary' => 'Queries the bandwidth data of back-to-origin requests. Data is collected every minute. You can query data collected in the last 7 days.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainRealTimeReqHitRateData' => [ + 'summary' => 'Call the DescribeDcdnDomainRealTimeReqHitRateData operation to query the real-time request hit rate of one or more accelerated domain names.', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -9921,42 +10688,25 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. Separate multiple accelerated domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name. You can specify one or more domain names. Separate multiple domain names with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T20:00:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2019-12-10T20:00:00Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T20:01:00Z', - ], + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2019-12-10T20:03:00Z', 'title' => ''], ], ], 'responses' => [ @@ -9964,113 +10714,91 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2015-12-10T20:01:00Z', - ], - 'StartTime' => [ - 'description' => 'The start of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2015-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '7CBCD6AD-B016-42E5-AE0B-B3731DE8F755', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n" - ."\n" - .'The time granularity varies with the maximum time range per query. The returned value is 60 (1 minute), 300 (5 minutes), or 3600(1 hour). For more information, see **Usage notes**.'."\n", - 'type' => 'string', - 'example' => '60', - ], - 'RealTimeSrcBpsDataPerInterval' => [ + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', 'title' => ''], + 'Data' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DataModule' => [ - 'description' => 'The origin bandwidth data returned at each time interval. Unit: bit/s.'."\n", + 'ReqHitRateDataModel' => [ + 'description' => 'The list of request hit rate data.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Value' => [ - 'description' => 'The bandwidth value.'."\n", - 'type' => 'string', - 'example' => '0', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the data returned.'."\n", - 'type' => 'string', - 'example' => '2015-12-10T20:01:00Z', - ], + 'ReqHitRate' => ['description' => 'The request hit rate.', 'type' => 'number', 'format' => 'float', 'example' => '0.8956940476262277', 'title' => ''], + 'TimeStamp' => ['description' => 'The data timestamp. The time is in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2016-10-20T04:00:00Z', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'DescribeDcdnDomainRealTimeSrcBpsData', - 'description' => '* You can call this operation up to 10 times per second per account.'."\n" - .'* If you do not set the StartTime or EndTime parameter, the request returns the data collected in the last hour. If you set both the parameters, the request returns the data collected within the specified time range.'."\n" + 'title' => 'DescribeDcdnDomainRealTimeReqHitRateData', + 'description' => '- The maximum number of calls that a single user can make to this operation is 10 per second.'."\n" ."\n" - .'**Time granularity**'."\n" + .'- If data from multiple domain names is merged for storage, the returned hit rate data may be inaccurate. The actual data is subject to your configuration.'."\n" ."\n" - .'The time granularity varies with the time range specified by the StartTime and EndTime parameters. The following table describes the time period within which historical data is available and the data delay.'."\n" + .'- If you do not specify the **StartTime** and **EndTime** parameters, data in the last hour is returned. If you specify both **StartTime** and **EndTime**, data in the specified time range is returned.'."\n" ."\n" - .'| Time granularity | Maximum time range per query | Historical data available | Data delay | '."\n" - .'|-----|-----|-----|--------| '."\n" - .'| 1 minute | 1 hour | 7 days | 5 minutes | '."\n" - .'| 5 minutes | 3 days | 93 days | 15 minutes | | 1 hour | 31 days | 186 days | 4 hours |', + .'Data granularity'."\n" + .'The time granularity of the returned data varies based on the time range that you specify using the StartTime and **EndTime** parameters. The following table describes the time granularity, the maximum time range for a single query, the time range for which historical data is available, and data latency.'."\n" + ."\n" + .'| Time granularity | Maximum time range for a single query | Queryable historical data | Data latency |'."\n" + .'| ---------------- | ------------------------------------- | ------------------------- | ------------ |'."\n" + .'| 1 minute | 1 hour | 7 days | 5 minutes |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | 3 to 4 hours |', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainRealTimeSrcTrafficData' => [ - 'summary' => 'Queries the origin traffic monitoring data for an accelerated domain name. Data is collected every minute. You can query data in the last 90 days.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainRealTimeSrcBpsData' => [ + 'summary' => 'Call DescribeDcdnDomainRealTimeSrcBpsData to query the real-time back-to-origin bandwidth data for an accelerated domain name.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10081,42 +10809,25 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. Separate multiple accelerated domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name. Separate multiple domain names with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T20:00:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T20:00:00Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T20:01:00Z', - ], + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T20:01:00Z', 'title' => ''], ], ], 'responses' => [ @@ -10124,113 +10835,95 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2015-12-10T20:01:00Z', - ], - 'StartTime' => [ - 'description' => 'The start of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2015-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'A666D44F-19D6-490E-97CF-1A64AB962C57', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n" - ."\n" - .'The time granularity varies with the maximum time range per query. Valid values: 60 (1 minute), 300 (5 minutes), and 3600(1 hour). For more information, see **Usage notes**.'."\n", - 'type' => 'string', - 'example' => '60', - ], - 'RealTimeSrcTrafficDataPerInterval' => [ + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2015-12-10T20:01:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range.', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '7CBCD6AD-B016-42E5-AE0B-B3731DE8F755', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'DataInterval' => ['description' => 'The time interval between data points, in seconds.'."\n" + ."\n" + .'The value of this parameter is fixed. It can be 60 (1 minute), 300 (5 minutes), or 3600 (1 hour), depending on the maximum time range of a single query. For more information, see the data granularity details in the Usage notes.', 'type' => 'string', 'example' => '60', 'title' => ''], + 'RealTimeSrcBpsDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'DataModule' => [ - 'description' => 'The amount of origin traffic returned at each time interval. Unit: bytes.'."\n", + 'description' => 'The back-to-origin bandwidth data for each time interval. Unit: bit/s.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Value' => [ - 'description' => 'The traffic value at each time interval.'."\n", - 'type' => 'string', - 'example' => '0', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the returned data.'."\n", - 'type' => 'string', - 'example' => '2015-12-10T20:00:00Z', - ], + 'Value' => ['description' => 'The usage data.', 'type' => 'string', 'example' => '0', 'title' => ''], + 'TimeStamp' => ['description' => 'The start time of the time slice.', 'type' => 'string', 'example' => '2015-12-10T20:01:00Z', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'DescribeDcdnDomainRealTimeSrcTrafficData', - 'description' => 'If you do not set the StartTime or EndTime parameter, the request returns the data collected in the last hour. If you set both the StartTime and EndTime parameters, the request returns the data collected within the specified time range.'."\n" + 'title' => 'DescribeDcdnDomainRealTimeSrcBpsData', + 'description' => '- A single user can call this operation up to 10 times per second.'."\n" ."\n" - .'**Time granularity**'."\n" + .'- If you do not specify StartTime and EndTime, the operation returns data for the last hour by default. If you specify StartTime and EndTime, the operation returns data for the specified time range.'."\n" ."\n" - .'The time granularity varies with the time range specified by the StartTime and EndTime parameters. The following table describes the time period within which historical data is available and the data delay.'."\n" + .'**Data granularity**'."\n" ."\n" - .'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\n" - .'|---|---|---|---|'."\n" - .'|1 minute|1 hour|7 days|5 minutes|'."\n" - .'|5 minutes|3 days|93 days|15 minutes|'."\n" - .'|1 hour|31 days|186 days|4 hours|', + .'The time granularity of the returned data varies with the time range specified by StartTime and EndTime. The following table describes the time granularity, maximum query time range, queryable historical data range, and data latency.'."\n" + ."\n" + .'| Time granularity | Maximum time range per query | Queryable historical data range | Data latency |'."\n" + .'| ---------------- | ---------------------------- | ------------------------------- | ---------------------- |'."\n" + .'| 1 minute | 1 hour | 7 days | 5 minutes |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | Typically 3 to 4 hours |', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainRealTimeSrcHttpCodeData' => [ - 'summary' => 'Queries the proportions of HTTP status codes based on back-to-origin statistics with a time granularity of one minute.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainRealTimeSrcHttpCodeData' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10241,68 +10934,41 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. Separate multiple accelerated domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com,example.org', - ], + 'schema' => ['description' => 'The accelerated domain name. You can specify multiple domain names and separate them with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'example.com,example.org', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2019-11-30T05:39:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2019-11-30T05:39:00Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2019-11-30T05:40:00Z', - ], + 'schema' => ['description' => 'The end of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2019-11-30T05:40:00Z', 'title' => ''], ], [ 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the Internet service provider (ISP).'."\n" - ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query ISPs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'unicom', - ], + 'schema' => ['description' => 'The name of the carrier.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~) operation to query carriers. If you do not set this parameter, data for all carriers is queried.', 'type' => 'string', 'required' => false, 'example' => 'unicom', 'title' => ''], ], [ 'name' => 'LocationNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the region.'."\n" - ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query regions.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'beijing', - ], + 'schema' => ['description' => 'The name of the region.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~DescribeDcdnRegionAndIsp~~) operation to query regions. If you do not set this parameter, data for all regions is queried.', 'type' => 'string', 'required' => false, 'example' => 'beijing', 'title' => ''], ], ], 'responses' => [ @@ -10310,192 +10976,154 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n" - ."\n" - .'The time follows the ISO 8601 standard in the yyyy-MM-ddThh:mm:ssZ format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2019-11-30T05:40:00Z', - ], - 'StartTime' => [ - 'description' => 'The beginning of the time range during which data was queried.'."\n" - ."\n" - .'The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2019-11-30T05:33:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com,example.org', - ], - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '60', - ], + 'EndTime' => ['description' => 'The end of the time range.'."\n" + ."\n" + .'The time is in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2019-11-30T05:40:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range.'."\n" + ."\n" + .'The time is in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2019-11-30T05:33:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'BC858082-736F-4A25-867B-E5B67C85ACF7', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com,example.org', 'title' => ''], + 'DataInterval' => ['description' => 'The time interval between data points, in seconds.'."\n" + ."\n" + .'Depending on the maximum time range per query, the value can be 60 (1 minute), 300 (5 minutes), or 3600 (1 hour). For more information, see the **Data granularity** section in this topic.', 'type' => 'string', 'example' => '60', 'title' => ''], 'RealTimeSrcHttpCodeData' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'UsageData' => [ - 'description' => 'The proportions of HTTP status codes at each time interval.'."\n", + 'description' => 'The proportions of HTTP return codes at each time interval.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'TimeStamp' => [ - 'description' => 'The timestamp of the returned data.'."\n", - 'type' => 'string', - 'example' => '2019-11-30T05:40:00Z', - ], + 'TimeStamp' => ['description' => 'The timestamp of the data returned.', 'type' => 'string', 'example' => '2019-11-30T05:40:00Z', 'title' => ''], 'Value' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'RealTimeSrcCodeProportionData' => [ - 'description' => 'The proportions of the HTTP status codes.'."\n", + 'description' => 'A list of proportions for each return code.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => 'The HTTP status code returned.'."\n", - 'type' => 'string', - 'example' => '200', - ], - 'Proportion' => [ - 'description' => 'The proportion of the HTTP status code.'."\n", - 'type' => 'string', - 'example' => '66.046511627907', - ], - 'Count' => [ - 'description' => 'The number of HTTP status codes.'."\n", - 'type' => 'string', - 'example' => '2', - ], + 'Code' => ['description' => 'The HTTP return code.', 'type' => 'string', 'example' => '200', 'title' => ''], + 'Proportion' => ['description' => 'The proportion of the return code.', 'type' => 'string', 'example' => '66.046511627907', 'title' => ''], + 'Count' => ['description' => 'The number of times the return code was returned.', 'type' => 'string', 'example' => '2', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'DescribeDcdnDomainRealTimeSrcHttpCodeData', - 'description' => '* You can call this operation up to 10 times per second per account.'."\n" - .'* If you do not specify the StartTime or EndTime parameter, the request returns the data collected in the last hour. If you specify both the StartTime and EndTime parameters, the request returns the data collected within the specified time range.'."\n" + 'summary' => 'Call the DescribeDcdnDomainRealTimeSrcHttpCodeData operation to query real-time data on the proportions of origin-fetch HTTP return codes for an accelerated domain name.', + 'description' => '- A single user can call this operation up to 10 times per second.'."\n" + ."\n" + .'- If you do not specify StartTime and EndTime, this operation returns data from the last hour by default. If you specify a time range, this operation returns data for that period.'."\n" ."\n" - .'**Time granularity**'."\n" + .'**Data granularity**'."\n" ."\n" - .'The time granularity varies with the time range specified by the StartTime and EndTime parameters. The following table describes the time period within which historical data is available and the data delay.'."\n" + .'The time granularity of the returned data varies with the time range specified by the StartTime and EndTime parameters. The following table describes the time granularity, the maximum time range for a single query, the historical data that can be queried, and the data latency.'."\n" ."\n" - .'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\n" - .'|---|---|---|---|'."\n" - .'|1 minute|1 hour|7 days|5 minutes|'."\n" - .'|5 minutes|3 days|93 days|15 minutes|'."\n" - .'|1 hour|31 days|186 days|4 hours|', + .'| Time granularity | Maximum time range per query | Queryable historical data | Data latency |'."\n" + .'| ---------------- | ---------------------------- | ------------------------- | ---------------------- |'."\n" + .'| 1 minute | 1 hour | 7 days | 5 minutes |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | Typically 3 to 4 hours |', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateDcdnSubTask' => [ - 'summary' => 'Creates a custom operations report.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + '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' => 'The IDs of the metrics that you want to include in the report. Separate multiple IDs with commas (,). Valid values:'."\n" - ."\n" - .'* **2**: Popular URLs by Request'."\n" - .'* **4**: Popular URLs by Traffic'."\n" - .'* **6**: Popular Referer by Request'."\n" - .'* **8**: Popular Referer by Traffic'."\n" - .'* **10**: Popular Back-to-origin URLs by Request'."\n" - .'* **12**: Popular Back-to-origin URLs by Traffic'."\n" - .'* **14**: Top Client IPs by Request'."\n" - .'* **16**: Top Client IPs by Traffic'."\n" - .'* **18**: Popular Domain Names by Traffic'."\n" - .'* **20**: PV/UV'."\n" - .'* **22**: Visit Distribution by Region'."\n" - .'* **24**: Distribution of ISPs'."\n" - .'* **26**: Peak IPv4/IPv6 Bandwidth'."\n" - .'* **27**: Back-to-origin bandwidth'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2,4,6', - ], + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => 'The accelerated domain name. To specify multiple domain names, separate them with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], [ - 'name' => 'DomainName', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The domain names to be tracked. Separate multiple domain names with commas (,). You can specify up to 500 domain names. If you want to specify more than 500 domain names, [submit a ticket](https://workorder-intl.console.aliyun.com/?spm=5176.2020520001.aliyun_topbar.18.dbd44bd3e4f845#/ticket/createIndex).'."\n" - ."\n" - .'> If you do not specify a domain name, the tracking task is created for all domain names that belong to your Alibaba Cloud account.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com,example.org', - ], + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in Coordinated Universal Time (UTC).', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T20:00:00Z', 'title' => ''], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T20:01:00Z', 'title' => ''], ], ], 'responses' => [ @@ -10503,62 +11131,94 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2015-12-10T20:01:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range.', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'A666D44F-19D6-490E-97CF-1A64AB962C57', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'DataInterval' => ['description' => 'The time interval between data points, in seconds.'."\n" + ."\n" + .'The value is fixed at 60 (1 minute), 300 (5 minutes), or 3600 (1 hour), and varies with the time span of the query. For more information, see the data time granularity table in the **Usage notes** section.', 'type' => 'string', 'example' => '60', 'title' => ''], + 'RealTimeSrcTrafficDataPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => 'The back-to-origin traffic data at each time interval. Unit: byte.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Value' => ['description' => 'The usage data.', 'type' => 'string', 'example' => '0', 'title' => ''], + 'TimeStamp' => ['description' => 'The timestamp of the data point.', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'CreateDcdnSubTask', - 'description' => '> * This operation allows you to create a custom operations report for a specific domain name. You can view the statistics about the domain name in the report.'."\n" - .'> * You can call this operation up to three times per second per account.', + 'title' => 'DescribeDcdnDomainRealTimeSrcTrafficData', + 'summary' => 'Call the DescribeDcdnDomainRealTimeSrcTrafficData operation to query real-time back-to-origin traffic data for accelerated domain names.', + 'description' => '> If you do not specify the StartTime and EndTime parameters, data from the last hour is returned. If you specify both parameters, data in the specified time range is returned.'."\n" + ."\n" + .'**Data time granularity**'."\n" + ."\n" + .'The time granularity of the returned data varies with the time range that you specify using the StartTime and EndTime parameters. The following table describes the time granularity, maximum time span for a single query, queryable time range for historical data, and data latency.'."\n" + ."\n" + .'| Time granularity | Maximum time span for a single query | Queryable time range for historical data | Data latency |'."\n" + .'| ---------------- | ------------------------------------ | ---------------------------------------- | ------------ |'."\n" + .'| 1 minute | 1 hour | 7 days | 5 minutes |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | 3 to 4 hours |', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnSubList' => [ - 'summary' => 'Queries custom operations reports.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainRealTimeSrcTrafficData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainRealTimeSrcTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainRealTimeTrafficData' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10566,93 +11226,127 @@ ], 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111551', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - 'FEATUREdcdn2Z4HOI', + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], + ], + 'parameters' => [ + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => 'The accelerated domain name. You can specify multiple domain names. Separate them with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in Coordinated Universal Time (UTC).'."\n" + ."\n" + .'> If you do not specify StartTime and EndTime, data in the last hour is queried. If you specify both StartTime and EndTime, data in the specified time range is queried.', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T20:00:00Z', 'title' => ''], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC. The end time must be later than the start time.'."\n" + ."\n" + .'> If you do not specify StartTime and EndTime, data in the last hour is queried. If you specify both StartTime and EndTime, data in the specified time range is queried.', 'type' => 'string', 'required' => false, 'example' => '2015-12-10T20:01:00Z', 'title' => ''], ], - 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => 'The information about the custom report.'."\n", - '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' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '3250A51D-C11D-46BA-B6B3-95348EEDE652', + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2015-12-10T20:01:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range.', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'A666D44F-19D6-490E-97CF-1A64AB962C57', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'DataInterval' => ['description' => 'The time interval between two consecutive data entries. Unit: seconds.'."\n" + ."\n" + .'The value of this parameter is determined by the maximum time range per query. Valid values are 60 (1 minute), 300 (5 minutes), and 3600 (1 hour). For more information, see the **Usage notes** section in this topic.', 'type' => 'string', 'example' => '60', 'title' => ''], + 'RealTimeTrafficDataPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => 'The back-to-origin traffic data for each time interval.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Value' => ['description' => 'The usage data.'."\n" + ."\n" + .'> The unit of the data is bytes.', 'type' => 'string', 'example' => '0', 'title' => ''], + 'TimeStamp' => ['description' => 'The beginning of the time interval.', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'DescribeDcdnSubList', - 'description' => '> * By default, this operation queries all custom operations reports. However, only one operations report can be displayed. Therefore, only one operations report is returned.'."\n" - .'> * You can call this API operation up to three times per second per account.', + 'title' => 'DescribeDcdnDomainRealTimeTrafficData', + 'summary' => 'Call the DescribeDcdnDomainRealTimeTrafficData operation to query traffic monitoring data for an accelerated domain name over a time interval.', + 'description' => 'The throttling limit for a single user is 50 calls per second.'."\n" + ."\n" + .'**Data time granularity**'."\n" + ."\n" + .'The time granularity of the returned data varies based on the time range that you specify using the StartTime and EndTime parameters. The following table describes the time granularity, maximum time range per query, queryable historical data range, and data latency.'."\n" + ."\n" + .'| Time granularity | Maximum time range per query | Queryable historical data range | Data latency |'."\n" + .'| ---------------- | ---------------------------- | ------------------------------- | ---------------------- |'."\n" + .'| 1 minute | 1 hour | 7 days | 5 minutes |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | Typically 3 to 4 hours |', 'requestParamsDescription' => ' ', - 'responseParamsDescription' => '#### Fields of the Content parameter'."\n" - ."\n" - .'|Field|Type|Description|'."\n" - .'|---|---|---|'."\n" - .'|subId|Long|The ID of the request.|'."\n" - .'|reportId|Long\\[\\]|The ID of the report.|'."\n" - .'|createTime|String|The time when the report was created.|'."\n" - .'|domains|String\\[\\]|The domain names from which the custom report task collects data.|'."\n" - .'|effectiveFrom|String|The start time of the custom report task.|'."\n" - .'|effectiveEnd|String|The end time of the custom report task.|'."\n" - .'|status|String|The status of the custom report task. Valid values: enable and disable.|', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnReport' => [ - 'summary' => 'Queries the content of an operations report.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainRegionData' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10663,95 +11357,29 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - 'FEATUREdcdn2Z4HOI', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The domain names that you want to query. Separate domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'www.example.com,www.example.org', - ], - ], - [ - 'name' => 'ReportId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the operations report that you want to query. You can enter only one ID in each call. You can call the [DescribeDcdnSubList](~~270075~~) operation to query report IDs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '2', - ], - ], - [ - 'name' => 'Area', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region. You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query regions.'."\n" - ."\n" - .'* If you do not specify a region, data in all regions is queried.'."\n" - .'* If you specify a region, data in the specified region is returned. You can specify one or more regions. Separate regions with commas (,).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'shanghai', - ], - ], - [ - 'name' => 'IsOverseas', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specify whether the region is outside the Chinese mainland. Valid values:'."\n" - ."\n" - .'* **1**: outside the Chinese mainland'."\n" - .'* **0**: inside the Chinese mainland'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '0', - ], - ], - [ - 'name' => 'HttpCode', - 'in' => 'query', - 'schema' => [ - 'description' => 'The HTTP status code. Valid values:'."\n" - ."\n" - .'* **2xx**: HTTP 2xx status codes'."\n" - .'* **3xx**: HTTP 3xx status codes'."\n" - .'* **4xx**: HTTP 4xx status codes'."\n" - .'* **5xx**: HTTP 5xx status codes'."\n" - ."\n" - .'If you do not specify an HTTP status code, data for all preceding HTTP status codes is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2xx', - ], + 'schema' => ['description' => 'The accelerated domain name. Only one domain name is supported.'."\n" + ."\n" + .'If you do not specify this parameter, data for all domain names under your account is queried.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2021-07-02T00:00:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query.'."\n" + ."\n" + .'Specify the time in the YYYY-MM-DDThh:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2015-12-05T12:00:00Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2021-07-02T01:00:00Z', - ], + 'schema' => ['description' => 'The end of the time range to query. The end time must be later than the start time.'."\n" + ."\n" + .'Specify the time in the YYYY-MM-DDThh:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2015-12-07T12:00:00Z', 'title' => ''], ], ], 'responses' => [ @@ -10759,243 +11387,251 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => 'The content of the operations report.'."\n", + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2015-12-07T12:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range.', 'type' => 'string', 'example' => '2015-12-05T12:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '2E5AD83F-BD7B-462E-8319-2E30E305519A', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'DataInterval' => ['description' => 'The time interval between data records. Unit: seconds.', 'type' => 'string', 'example' => '86400', 'title' => ''], + 'Value' => [ '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' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'itemNode' => true, + 'properties' => [ + 'RegionProportionData' => [ + 'description' => 'A list of data about the proportions of requests from different regions.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Qps' => ['description' => 'The number of queries per second (QPS).', 'type' => 'string', 'example' => '0', 'title' => ''], + 'TotalQuery' => ['description' => 'The total number of requests.', 'type' => 'string', 'example' => '0', 'title' => ''], + 'TotalBytes' => ['description' => 'The total traffic.', 'type' => 'string', 'example' => '0', 'title' => ''], + 'RegionEname' => ['description' => 'The English name of the region.', 'type' => 'string', 'example' => 'chongqing', 'title' => ''], + 'Region' => ['description' => 'The name of the region.', 'type' => 'string', 'example' => '重庆市', 'title' => ''], + 'AvgResponseRate' => ['description' => 'The average response rate. Unit: bytes/second.', 'type' => 'string', 'example' => '0', 'title' => ''], + 'AvgResponseTime' => ['description' => 'The average response time. Unit: milliseconds.', 'type' => 'string', 'example' => '0', 'title' => ''], + 'Proportion' => ['description' => 'The proportion of requests. For example, a value of 90 indicates 90%.', 'type' => 'string', 'example' => '0', 'title' => ''], + 'AvgObjectSize' => ['description' => 'The average size of a response. Unit: byte.', 'type' => 'string', 'example' => '0', 'title' => ''], + 'Bps' => ['description' => 'The bandwidth.', 'type' => 'string', 'example' => '0', 'title' => ''], + 'BytesProportion' => ['description' => 'The proportion of the total traffic.', 'type' => 'string', 'example' => '0.003544181046236794', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], + ], + 404 => [ + ['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'The specified domain does not exist.', 'description' => 'The specified domain name does not exist.'], ], ], - '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' => 'DescribeDcdnReport', - 'description' => '> You can call this operation up to three times per second per account.'."\n", - 'requestParamsDescription' => '**Parameters required for report metric** | Report metric | Required parameter | Description |--------|------------------| | PV and UV | Action, ReportId, DomainName, StartTime, and EndTime | Other parameters are not supported. | | Top client IPs by traffic | Action, ReportId, DomainName, Area, StartTime, and EndTime | Other parameters are not supported. | | Top client IPs by request | Action, ReportId, DomainName, Area, StartTime, and EndTime | Other parameters are not supported. | | Distribution of visits by region | Action, ReportId, DomainName, IsOverseas, StartTime, and EndTime | Other parameters are not supported. | | Distribution of ISPs | Action, ReportId, DomainName, IsOverseas, StartTime, and EndTime | Other parameters are not supported. | | Popular Referers by traffic | Action, ReportId, DomainName, StartTime, and EndTime | Other parameters are not supported. | | Popular Referers by request | Action, ReportId, DomainName, Area, StartTime, and EndTime | Other parameters are not supported. | | Popular URLs by traffic | Action, ReportId, DomainName, HttpCode, StartTime, and EndTime | Other parameters are not supported. | | Popular URLs by request | Action, ReportId, DomainName, HttpCode, StartTime, and EndTime | Other parameters are not supported. | | Popular back-to-origin URLs by traffic | Action, ReportId, DomainName, HttpCode, StartTime, and EndTime | Other parameters are not supported. | | Popular back-to-origin URLs by request | Action, ReportId, DomainName, HttpCode, StartTime, and EndTime | Other parameters are not supported. | | Popular domain names by traffic | Action, ReportId, StartTime, and EndTime | Other parameters are not supported. |'."\n", - 'responseParamsDescription' => '**Fields in the Content parameter** | Field | Type | Description |--------|------------------| | deliver | report | The type of the report. | | data | String\\[] | Data of the report: \\[{"Field 1":"value1","Field 2":"value2"}, {"field 1":"value3","field 2":"value4"}] |'."\n" - ."\n" - .'**Fields in the report parameter** | Field | Type | Description |--------|------------------| | title | String | The title of the report. | | format | String | The format of the report. Valid values:\\'."\n" - .'chart\\'."\n" - .'table | | shape | String | The type of the chart. When the format is table, ignore this field. Valid values:\\'."\n" - .'line\\'."\n" - .'pie\\'."\n" - .'bar | | header | String\\[] | The fields that are used as the table headers. | | legend | String | The fields that are used as the legends. | | xAxis | String | The x-axis of the chart. If the chart does not have an x-axis, this field is empty. | | yAxis | String | The y-axis of the graph. If the chart does not have a y-axis, this field is empty. |'."\n", + 'title' => 'DescribeDcdnDomainRegionData', + 'summary' => 'Call the DescribeDcdnDomainRegionData operation to query daily statistics about the regional distribution of users for an accelerated domain name. You can query data from the last 90 days.', + 'description' => '> - If you do not specify the StartTime and EndTime parameters, data from the last 24 hours is returned. If you specify both StartTime and EndTime, data in the specified time range is returned.'."\n" + .'>'."\n" + .'> - The call frequency for a single user is limited to 100 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnReportList' => [ - 'summary' => 'Queries custom reports.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainStagingConfig' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', - 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdn2JMMUY'], ], 'parameters' => [ [ - 'name' => 'ReportId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the operations report that you want to query. If you do not specify an ID, all operations reports are queried.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '2', - ], + 'schema' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], + ], + [ + 'name' => 'FunctionNames', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => ['description' => 'The names of the features. Separate multiple feature names with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'aliauth', 'title' => ''], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => 'The information about the operations report.'."\n", - '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' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'C80705BF-0F76-41FA-BAD1-5B59296A4E59', 'title' => ''], + 'DomainConfigs' => [ + 'description' => 'The configurations of the accelerated domain name.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status. Valid values:'."\n" + ."\n" + .'- success: The operation was successful.'."\n" + ."\n" + .'- testing: The configuration is being tested.'."\n" + ."\n" + .'- failed: The operation failed.'."\n" + ."\n" + .'- configuring: The feature is being configured.', 'type' => 'string', 'example' => 'success', 'title' => ''], + 'ConfigId' => ['description' => 'The configuration ID.', 'type' => 'string', 'example' => '6295', 'title' => ''], + 'FunctionName' => ['description' => 'The feature name.', 'type' => 'string', 'example' => 'aliauth', 'title' => ''], + 'FunctionArgs' => [ + 'description' => 'The parameters for the feature.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ArgName' => ['description' => 'The name of the parameter.', 'type' => 'string', 'example' => 'auth_type', 'title' => ''], + 'ArgValue' => ['description' => 'The value of the parameter.', 'type' => 'string', 'example' => 'req_auth', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'The specified configuration is not supported.'], ], ], - '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' => 'DescribeDcdnReportList', - 'description' => '> * This operation queries the metadata of all operations reports. The statistics in the reports are not returned.'."\n" - .'> * You can call this operation up to three times per second per account.', + 'title' => 'DescribeDcdnDomainStagingConfig', + 'summary' => 'Call the DescribeDcdnDomainStagingConfig operation to query the configurations of a staging environment.', + 'description' => '> A single user can make up to 30 calls per second.', 'requestParamsDescription' => ' ', - 'responseParamsDescription' => '**Fields in the Content parameter**'."\n" - ."\n" - .'|Field|Type|Description|'."\n" - .'|---|---|---|'."\n" - .'|reportId|Long|The ID of the report.|'."\n" - .'|deliver|report|The type of the report.|'."\n" - ."\n\n" - .'**Fields in the report parameter**'."\n" - ."\n" - .'|Field|Type|Description|'."\n" - .'|---|---|---|'."\n" - .'|title|String|The title of the report.|'."\n" - .'|format|String|The format of the report. Valid values:charttable|'."\n" - .'|shape|String|The type of the chart. When format is set to table, ignore this field. Valid values:linepiebar|'."\n" - .'|header|String\\[\\]|The fields that are used as the table headers.|'."\n" - .'|legend|String|The fields that are used as the legends.|'."\n" - .'|xAxis|String|The x-axis of the chart. If you do not specify a value, the chart does not have an x-axis.|'."\n" - .'|yAxis|String|The y-axis of the chart. If you do not specify a value, the chart does not have a y-axis.|', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateDcdnSubTask' => [ - 'summary' => 'Updates one or more operations reports.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2022-12-14T06:29:22.000Z', 'description' => 'Request parameters changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainStagingConfig'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainStagingConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C80705BF-0F76-41FA-BAD1-5B59296A4E59\\",\\n \\"DomainConfigs\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"ConfigId\\": \\"6295\\",\\n \\"FunctionName\\": \\"aliauth\\",\\n \\"FunctionArgs\\": [\\n {\\n \\"ArgName\\": \\"auth_type\\",\\n \\"ArgValue\\": \\"req_auth\\"\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]', + ], + 'DescribeDcdnDomainTopReferVisit' => [ + 'summary' => 'Call the DescribeDcdnDomainTopReferVisit operation to query the top referrers for a domain name by the number of visits. You can query data from the last 90 days.', + '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' => 'ReportIds', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The IDs of the metrics that you want to update. Separate IDs with commas (,). You can call the [DescribeDcdnSubList](~~270075~~) operation to query the IDs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2,4,6', - ], - ], - [ 'name' => 'DomainName', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The domain names that you want to include in the operations report. If you do not specify a domain name, all domain names that belong to your Alibaba Cloud account are included.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'www.example.com', - ], + 'in' => 'query', + 'schema' => ['description' => 'The accelerated domain name. You can specify only one domain name.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], [ 'name' => 'StartTime', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The start time of the operations report. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2021-04-17T00:00:00Z', - ], + 'in' => 'query', + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'To query data for a specific day, set this parameter to yyyy-MM-ddT16:00:00Z.'."\n" + ."\n" + .'By default, data from the last 24 hours is queried.', 'type' => 'string', 'required' => false, 'example' => '2018-10-03T16:00:00Z', 'title' => ''], ], [ - 'name' => 'EndTime', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The end time of the operations report. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2021-06-17T00:00:00Z', - ], + 'name' => 'SortBy', + 'in' => 'query', + 'schema' => ['description' => 'The sorting method. Valid values:'."\n" + ."\n" + .'- **traf**: by traffic.'."\n" + ."\n" + .'- **pv**: by the number of visits.'."\n" + ."\n" + .'Default value: **pv**.', 'type' => 'string', 'required' => false, 'example' => 'pv', 'title' => ''], ], ], 'responses' => [ @@ -11003,198 +11639,122 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'StartTime' => ['description' => 'The start of the queried time range.', 'type' => 'string', 'example' => '2018-10-03T16:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '95994621-8382-464B-8762-C708E73568D1', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'TopReferList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ReferList' => [ + 'description' => 'The list of top referrer URLs.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Flow' => ['description' => 'The amount of traffic. Unit: bytes.', 'type' => 'string', 'example' => '460486880', 'title' => ''], + 'FlowProportion' => ['description' => 'The proportion of traffic.', 'type' => 'number', 'format' => 'float', 'example' => '0.35', 'title' => ''], + 'VisitData' => ['description' => 'The number of visits.', 'type' => 'string', 'example' => '229567', 'title' => ''], + 'ReferDetail' => ['description' => 'The complete referrer URL.', 'type' => 'string', 'example' => '192.XXX.XXX.1', 'title' => ''], + 'VisitProportion' => ['description' => 'The proportion of visits.', 'type' => 'number', 'format' => 'float', 'example' => '0.35', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'UpdateDcdnSubTask', - 'description' => '> You can call this operation up to three times per second per account.'."\n", + 'title' => 'DescribeDcdnDomainTopReferVisit', + 'description' => '- If you do not specify the StartTime parameter, data from the last 24 hours is queried by default.'."\n" + ."\n" + .'- You can query data for only one domain name at a time.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteDcdnSubTask' => [ - 'summary' => 'Deletes all custom operations reports.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainTopReferVisit'], ], ], - 'parameters' => [], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainTopReferVisit', + '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' => 'DeleteDcdnSubTask', - 'description' => '> You can call this operation up to 3 times per second per account.'."\n", - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'CreateDcdnDeliverTask' => [ - 'summary' => 'Creates a tracking task. After you create a tracking task, the system periodically sends operations reports to you by email.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnDomainTopUrlVisit' => [ + 'summary' => 'Call DescribeDcdnDomainTopUrlVisit to retrieve the top URLs for an accelerated domain name on a specific day.', + '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' => 'The name of the tracking task.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'Domain name report'."\n", - ], - ], - [ - 'name' => 'Reports', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The operations reports that are tracked by the task. The data must be escaped in JSON.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '\\[{\\\\"reportId\\\\":2,\\\\"conditions\\\\":\\[{\\\\"field\\\\":\\\\"prov\\\\",\\\\"op\\\\":\\\\"in\\\\",\\\\"value\\\\":\\[\\\\"Heilongjiang\\\\",\\\\"Beijing\\\\"]}]}]'."\n", - ], - ], - [ 'name' => 'DomainName', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The domain names to be tracked. Separate multiple domain names with commas (,). You can specify up to 500 domain names. If you want to specify more than 500 domain names, [submit a ticket](https://workorder-intl.console.aliyun.com/?spm=5176.2020520001.aliyun_topbar.18.dbd44bd3e4f845#/ticket/createIndex).'."\n" - ."\n" - .'> If you do not specify a domain name, the tracking task is created for all domain names that belong to your Alibaba Cloud account.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com,example.org', - ], + 'in' => 'query', + 'schema' => ['description' => 'The accelerated domain name. You can specify only one domain name.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], [ - 'name' => 'Deliver', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The method that is used to send operations reports. Operations reports are sent to you only by email. The settings must be escaped in JSON.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '{"email":{"subject":"the email subject","to":\\["username@example.com","username@example.org"]}}'."\n", - ], + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => 'The beginning of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'To query data for a specific day, set this parameter to YYYY-MM-DDT16:00:00Z.'."\n" + ."\n" + .'> If you do not set this parameter, data from the last 24 hours is queried.', 'type' => 'string', 'required' => false, 'example' => '2018-10-03T16:00:00Z', 'title' => ''], ], [ - 'name' => 'Schedule', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The parameters that specify the time interval at which the tracking task sends operations reports. The settings must be escaped in JSON.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '{"schedName":"the name of the tracking task","description":"the description","crontab":"000\\*\\*?","frequency":"d","status":"enable","effectiveFrom":"2020-09-17T00:00:00Z","effectiveEnd":"2020-11-17T00:00:00Z"}'."\n", - ], + 'name' => 'SortBy', + 'in' => 'query', + 'schema' => ['description' => 'The sorting method. Valid values:'."\n" + ."\n" + .'- **traf**: by traffic.'."\n" + ."\n" + .'- **pv**: by the number of visits.'."\n" + ."\n" + .'Default value: **pv**.', 'type' => 'string', 'required' => false, 'example' => 'pv', 'title' => ''], ], ], 'responses' => [ @@ -11202,96 +11762,195 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'DeliverId' => [ - 'description' => 'The ID of the change tracking task.'."\n", - 'type' => 'string', - 'example' => '92', + 'StartTime' => ['description' => 'The query date.', 'type' => 'string', 'example' => '2018-10-03T16:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '64D28B53-5902-409B-94F6-FD46680144FE', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'AllUrlList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'UrlList' => [ + 'description' => 'The list of all popular URLs.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Flow' => ['description' => 'The traffic. Unit: byte.', 'type' => 'string', 'example' => '460486880', 'title' => ''], + 'UrlDetail' => ['description' => 'The full URL.', 'type' => 'string', 'example' => 'http://example.com/nn_live/nn_x64/a0.m3u8', 'title' => ''], + 'FlowProportion' => ['description' => 'The traffic proportion.', 'type' => 'number', 'format' => 'float', 'example' => '0.35', 'title' => ''], + 'VisitData' => ['description' => 'The number of visits.', 'type' => 'string', 'example' => '161673', 'title' => ''], + 'VisitProportion' => ['description' => 'The visit proportion.', 'type' => 'number', 'format' => 'float', 'example' => '0.35', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'Url200List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'UrlList' => [ + 'description' => 'The list of URLs for which a 2xx status code was returned.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Flow' => ['description' => 'The traffic. Unit: byte.', 'type' => 'string', 'example' => '460486880', 'title' => ''], + 'UrlDetail' => ['description' => 'The full URL.', 'type' => 'string', 'example' => 'http://example.com/nn_live/nn_x64/a0.m3u8', 'title' => ''], + 'FlowProportion' => ['description' => 'The traffic proportion.', 'type' => 'number', 'format' => 'float', 'example' => '0.35', 'title' => ''], + 'VisitData' => ['description' => 'The number of visits.', 'type' => 'string', 'example' => '161673', 'title' => ''], + 'VisitProportion' => ['description' => 'The visit proportion.', 'type' => 'number', 'format' => 'float', 'example' => '0.35', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'Url300List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'UrlList' => [ + 'description' => 'The list of URLs for which a 3xx status code was returned.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Flow' => ['description' => 'The traffic. Unit: byte.', 'type' => 'string', 'example' => '460486880', 'title' => ''], + 'UrlDetail' => ['description' => 'The full URL.', 'type' => 'string', 'example' => 'http://example.com/nn_live/nn_x64/a0.m3u8', 'title' => ''], + 'FlowProportion' => ['description' => 'The traffic proportion.', 'type' => 'number', 'format' => 'float', 'example' => '0.35', 'title' => ''], + 'VisitData' => ['description' => 'The number of visits.', 'type' => 'string', 'example' => '161673', 'title' => ''], + 'VisitProportion' => ['description' => 'The visit proportion.', 'type' => 'number', 'format' => 'float', 'example' => '0.35', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'Url400List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'UrlList' => [ + 'description' => 'The list of URLs for which a 4xx status code was returned.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Flow' => ['description' => 'The traffic. Unit: byte.', 'type' => 'string', 'example' => '460486880', 'title' => ''], + 'UrlDetail' => ['description' => 'The full URL.', 'type' => 'string', 'example' => 'http://example.com/nn_live/nn_x64/a0.m3u8', 'title' => ''], + 'FlowProportion' => ['description' => 'The traffic proportion.', 'type' => 'number', 'format' => 'float', 'example' => '0.35', 'title' => ''], + 'VisitData' => ['description' => 'The number of visits.', 'type' => 'string', 'example' => '161673', 'title' => ''], + 'VisitProportion' => ['description' => 'The visit proportion.', 'type' => 'number', 'format' => 'float', 'example' => '0.35', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'Url500List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'UrlList' => [ + 'description' => 'The list of URLs for which a 5xx status code was returned.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Flow' => ['description' => 'The traffic. Unit: byte.', 'type' => 'string', 'example' => '460486880', 'title' => ''], + 'UrlDetail' => ['description' => 'The full URL.', 'type' => 'string', 'example' => 'http://example.com/nn_live/nn_x64/a0.m3u8', 'title' => ''], + 'FlowProportion' => ['description' => 'The traffic proportion.', 'type' => 'number', 'format' => 'float', 'example' => '0.35', 'title' => ''], + 'VisitData' => ['description' => 'The number of visits.', 'type' => 'string', 'example' => '161673', 'title' => ''], + 'VisitProportion' => ['description' => 'The visit proportion.', 'type' => 'number', 'format' => 'float', 'example' => '0.35', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => 'The specified domain name is invalid.'], ], ], - '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' => 'CreateDcdnDeliverTask', - 'description' => '**'."\n" - ."\n" - .'**You can call this operation up to three times per second.'."\n", - 'requestParamsDescription' => '**Fields of the Reports parameter**'."\n" - ."\n" - .'|Field|Type|Required|Description|'."\n" - .'|---|---|---|---|'."\n" - .'|reportId|String|Yes|The ID of the operations report.|'."\n" - .'|conditions|ConDatas\\[\\]|No|The filter conditions for the report.|'."\n" - ."\n\n" - .'**Fields of the conditions parameter**'."\n" - ."\n" - .'|Field|Type|Required|Description|'."\n" - .'|---|---|---|---|'."\n" - .'|field|String|No|The filter field.|'."\n" - .'|op|String|No|The filter action. Only **in** is supported.|'."\n" - .'|value|String\\[\\]|No|The array of field values.|'."\n" - ."\n\n" - .'**Fields of the Deliver parameter**'."\n" - ."\n" - .'|Field|Type|Required|Description|'."\n" - .'|---|---|---|---|'."\n" - .'|subject|String|No|The email subject.|'."\n" - .'|to|String\\[\\]|Yes|The email addresses to which operations reports are sent.|'."\n" - ."\n\n" - .'**Fields of the Schedule parameter**'."\n" - ."\n" - .'|Field|Type|Required|Description|'."\n" - .'|---|---|---|---|'."\n" - .'|schedName|String|No|The name of the tracking task.|'."\n" - .'|description|String|No|The description of the tracking task.|'."\n" - .'|crontab|String|Yes|The period during which the operations reports are tracked.|'."\n" - .'|frequency|String|Yes|The interval at which the reports are sent. Valid values: h: by hour. d: by day. w: by week.|'."\n" - .'|status|String|No|The status of the tracking task. Valid values: enable and disable.|'."\n" - .'|effectiveFrom|String|No|The start time of the tracking task.|'."\n" - .'|effectiveEnd|String|No|The end time of the tracking task.|', + 'title' => 'DescribeDcdnDomainTopUrlVisit', + 'description' => '> You can query data generated in the last 7 days.', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDeliverList' => [ - 'summary' => 'Queries all tracking tasks of operations reports.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainTrafficData' => [ + 'summary' => 'Queries the network traffic data of accelerated domain names.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -11302,24 +11961,52 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111485', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - 'FEATUREdcdn2Z4HOI', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ - 'name' => 'DeliverId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the tracking task that you want to query. If you do not specify an ID, all tracking tasks are queried.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '92', - ], + 'schema' => ['description' => 'The accelerated domain name.'."\n" + ."\n" + .'To specify multiple accelerated domain names, separate them with commas (,). If you do not set this parameter, data for all your accelerated domain names is queried.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => 'The beginning of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z', 'title' => ''], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => 'The end of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z', 'title' => ''], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => ['description' => 'The time granularity for the query. Unit: seconds.'."\n" + ."\n" + .'Valid values are 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). The supported value varies based on the maximum time range per query. For more information, see the supported time granularities in the **Usage notes**.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''], + ], + [ + 'name' => 'IspNameEn', + 'in' => 'query', + 'schema' => ['description' => 'The English name of the carrier.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to obtain the English name. If you do not set this parameter, data for all carriers is queried.', 'type' => 'string', 'required' => false, 'example' => 'unicom', 'title' => ''], + ], + [ + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => ['description' => 'The English name of the region.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to obtain the English name. If you do not set this parameter, data for all regions is queried.', 'type' => 'string', 'required' => false, 'example' => 'beijing', 'title' => ''], ], ], 'responses' => [ @@ -11327,251 +12014,357 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => 'The information about the tracking task.'."\n", - 'type' => 'string', - 'example' => '"data": \\[{"deliverId": 1,"status": "enable","createTime": "2021-06-14T11:19:26Z","crontab": "0 0 0 \\* \\* ?","frequency": "d","name": "Domain name report","dmList": \\["www.example.com"],"reports": \\[{"reportId": 1,"conditions": \\[{"op": "in","field": "prov","value": \\["Heilongjiang","Beijing"]}]},{"reportId": 2}],"deliver": {"email": {"subject": "subject","to": \\["username@example.com","username@example.org"],"copy":\\["username@example.com","username@example.org"]}}}]}'."\n", - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range.', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'DataInterval' => ['description' => 'The time interval between two consecutive data records. Unit: seconds.', 'type' => 'string', 'example' => '300', 'title' => ''], + 'TrafficDataPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => 'The traffic data at each time interval. Unit: byte.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'StaticHttpTraffic' => ['description' => 'The static HTTP traffic.', 'type' => 'number', 'format' => 'float', 'example' => '123', 'title' => ''], + 'DynamicHttpsTraffic' => ['description' => 'The dynamic HTTPS traffic.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''], + 'Traffic' => ['description' => 'The total traffic.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''], + 'DynamicHttpTraffic' => ['description' => 'The dynamic HTTP traffic.', 'type' => 'number', 'format' => 'float', 'example' => '0', 'title' => ''], + 'TimeStamp' => ['description' => 'The start time of the time slice.', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z', 'title' => ''], + 'StaticHttpsTraffic' => ['description' => 'The static HTTPS traffic.', 'type' => 'number', 'format' => 'float', 'example' => '132', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'DescribeDcdnDeliverList', - 'description' => '>You can call this operation up to three times per second.', + 'title' => 'DescribeDcdnDomainTrafficData', + 'description' => '- If you do not specify the **StartTime** and **EndTime** parameters, data in the last 24 hours is returned. If you specify the **StartTime** and **EndTime** parameters, data within the specified time range is returned.'."\n" + ."\n" + .'- Each account can call this operation up to 100 times per second.'."\n" + ."\n" + .'**Supported time granularities**'."\n" + ."\n" + .'The Interval parameter supports different time granularities based on the maximum time range that you can specify in a single query. The following table describes the supported time granularities, the historical data that you can query, and the data latency.'."\n" + ."\n" + .'| Time granularity | Maximum time range per query | Queryable historical data | Data latency |'."\n" + .'| ---------------- | ---------------------------- | ------------------------- | -------------------------------------------- |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | Typically 3 to 4 hours |'."\n" + .'| 1 day | 366 days | 366 days | Typically 4 hours, but no more than 24 hours |', 'requestParamsDescription' => ' ', - 'responseParamsDescription' => '**Fields of the Content parameter** |Field|Type|Description |--------|------------------| |deliverId|Long|The ID of the tracking task. | |status|String|The status of the tracking task. Valid value:\\'."\n" - .'enable\\'."\n" - .'disable | |createTime|String|The time when the tracking task was created. | |crontab|String|Specifies when the tracking task is scheduled to run. | |frequency|String|The interval at which the reports are sent. Valid values:\\'."\n" - .'h: hour\\'."\n" - .'d: day\\'."\n" - .'M: month| |name|String|The name of the tracking task. | |dmList|String\\[]|The domain names from which the tracking task collects data. | |reports|String\\[]|The information about the reports released by the tracking task, including: reportId: the ID of the report.\\'."\n" - .'\\'."\n" - .'conditions: the filter conditions, including the filter action, fields, and values. If no filter conditions are specified, this parameter does not carry a value. op: the filter action. Only **in** is supported. field: the filter fields. value: the filter values. | |deliver|String|The delivery module, including the subject and recipient of the email.\\'."\n" - .'email: indicates that reports are sent to specified email addresses.\\'."\n" - .'subject: the subject of the email.\\'."\n" - .'to: the recipient of the email.\\'."\n" - .'copy: the contacts to whom the email is copied. |'."\n", + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateDcdnDeliverTask' => [ - 'summary' => 'Updates a tracking task by task ID.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainTrafficData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainUsageData' => [ + 'summary' => 'Call the DescribeDcdnDomainUsageData operation to query the usage data of a domain name in a specific billing region.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111521', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'DeliverId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the tracking task that you want to update.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '92', - ], + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => 'The accelerated domain name that you want to query. You can specify multiple domain names and separate them with commas (,). You can specify up to 100 domain names in each call.'."\n" + ."\n" + .'> If you do not specify this parameter, the merged data of all accelerated domain names is returned.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], ], [ - 'name' => 'Name', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The name of the tracking task.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Domain name report'."\n", - ], + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The minimum time granularity is 5 minutes.', 'type' => 'string', 'required' => true, 'example' => '2015-12-10T20:00:00Z', 'title' => ''], ], [ - 'name' => 'Reports', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The operations reports that are tracked by the task. The data needs to be escaped in JSON.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '\\[{\\\\"reportId\\\\":2,\\\\"conditions\\\\":\\[{\\\\"field\\\\":\\\\"prov\\\\",\\\\"op\\\\":\\\\"in\\\\",\\\\"value\\\\":\\[\\\\"Heilongjiang\\\\",\\\\"Beijing\\\\"]}]}]'."\n", - ], + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time. The time range between the start time and the end time cannot exceed 31 days.', 'type' => 'string', 'required' => true, 'example' => '2015-12-10T22:00:00Z', 'title' => ''], ], [ - 'name' => 'DomainName', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The domain names from which the tracking task collects data. Separate domain names with commas (,). If you do not specify a domain name, the task collects data from all domain names that belong to your Alibaba Cloud account.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'www.example.com', - ], + 'name' => 'Field', + 'in' => 'query', + 'schema' => ['description' => 'The type of data to query. Valid values:'."\n" + ."\n" + .'- **bps**: bandwidth'."\n" + ."\n" + .'- **traf**: traffic'."\n" + ."\n" + .'- **acc**: number of requests'."\n" + ."\n" + .'> You cannot query the number of requests by **Area**.', 'type' => 'string', 'required' => true, 'example' => 'bps', 'title' => ''], ], [ - 'name' => 'Deliver', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The method that is used to send operations reports. Operations reports are sent to you only by email. The settings need to be escaped in JSON.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"email":{"subject":"the email subject","to":\\["username@example.com","username@example.com"]}}'."\n", - ], + 'name' => 'Type', + 'in' => 'query', + 'schema' => ['description' => 'The type of requests. Valid values:'."\n" + ."\n" + .'- **static**: static'."\n" + ."\n" + .'- **dynamic**: dynamic'."\n" + ."\n" + .'- **all**: all'."\n" + ."\n" + .'The default value is **all**.', 'type' => 'string', 'required' => false, 'default' => 'all', 'example' => 'dynamic', 'title' => ''], ], [ - 'name' => 'Schedule', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The parameters that specify the time interval at which the tracking task sends operations reports. The settings need to be escaped in JSON.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"schedName":"the name of the tracking task","description":"the description","crontab":"000\\*\\*?","frequency":"d","status":"enable","effectiveFrom":"2020-09-17T00:00:00Z","effectiveEnd":"2020-11-17T00:00:00Z"}'."\n", - ], + 'name' => 'DataProtocol', + 'in' => 'query', + 'schema' => ['description' => 'The protocol of the data to query. Valid values:'."\n" + ."\n" + .'- **quic**: QUIC'."\n" + ."\n" + .'- **https**: HTTPS'."\n" + ."\n" + .'- **http**: HTTP'."\n" + ."\n" + .'- **all**: all protocols'."\n" + ."\n" + .'The default value is **all**.', 'type' => 'string', 'required' => false, 'default' => 'all', 'example' => 'all', 'title' => ''], + ], + [ + 'name' => 'Area', + 'in' => 'query', + 'schema' => ['description' => 'The region. Valid values:'."\n" + ."\n" + .'- **CN**: the Chinese mainland'."\n" + ."\n" + .'- **OverSeas**: global (excluding the Chinese mainland)'."\n" + ."\n" + .'- **AP1**: Asia Pacific Region 1'."\n" + ."\n" + .'- **AP2**: Asia Pacific Region 2'."\n" + ."\n" + .'- **AP3**: Asia Pacific Region 3'."\n" + ."\n" + .'- **NA**: North America'."\n" + ."\n" + .'- **SA**: South America'."\n" + ."\n" + .'- **EU**: Europe'."\n" + ."\n" + .'- **MEAA**: Middle East and Africa'."\n" + ."\n" + .'- **all**: all regions'."\n" + ."\n" + .'The default value is **CN**.', 'type' => 'string', 'required' => false, 'default' => 'CN', 'example' => 'CN', 'title' => ''], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => ['description' => 'The time granularity of the data to query, in seconds.'."\n" + ."\n" + .'The time granularity varies with the maximum time range per query. Valid values are 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). For more information, see the **Usage notes** section.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2015-12-10T22:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range.', 'type' => 'string', 'example' => '2015-12-10T20:00:00Z', 'title' => ''], + 'Type' => ['description' => 'The type of usage data.', 'type' => 'string', 'example' => 'bps', 'title' => ''], + 'Area' => ['description' => 'The region where the usage data was collected.', 'type' => 'string', 'example' => 'CN', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', 'title' => ''], + 'DataInterval' => ['description' => 'The time interval between the data entries, in seconds.', 'type' => 'string', 'example' => '/', 'title' => ''], + 'UsageDataPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => 'The usage data at each time interval.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TimeStamp' => ['description' => 'The beginning of the time slice.', 'type' => 'string', 'example' => '2015-12-10T21:30:00Z', 'title' => ''], + 'PeakTime' => ['description' => 'If **Field** is set to **bps**, this parameter indicates the timestamp of the peak bandwidth. Otherwise, the value of this parameter is the same as the value of **TimeStamp**.', 'type' => 'string', 'example' => '2015-12-10T21:30:00Z', 'title' => ''], + 'Value' => ['description' => 'The usage value.', 'type' => 'string', 'example' => '4233041**', 'title' => ''], + 'SpecialValue' => ['description' => 'The special usage value.'."\n" + ."\n" + .'> This parameter indicates the usage value in special circumstances. You can ignore this parameter if no special billing rules are applied.', 'type' => 'string', 'example' => '4233041**', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified StartTime or EndTime is malformed.', 'description' => 'The format of the specified start time or end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidParameterField', 'errorMessage' => 'The specified Field is invalid.', 'description' => 'The Field parameter is set to an invalid value.'], + ['errorCode' => 'InvalidParameterType', 'errorMessage' => 'The specified Type is invalid.', 'description' => 'The Type parameter is set to an invalid value.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Configure a valid time span as described in API documentation.'], + ['errorCode' => 'InvalidParameterInterval', 'errorMessage' => 'The specified Interval is invalid.', 'description' => 'The Interval parameter is set to an invalid value.'], ], ], - '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' => 'UpdateDcdnDeliverTask', - 'description' => '> You can call this operation up to three times per second per account.'."\n", - 'requestParamsDescription' => '**Fields of the Reports parameter** |Parameter|Type|Required|Description |--------|------------------| |reportId|String|Yes|The ID of the report. | |conditions|ConDatas\\[]|No|The filter conditions for the report. |'."\n" + 'title' => 'DescribeDcdnDomainUsageData', + 'description' => '- The maximum number of calls that can be made by a single user is 10 per second.'."\n" ."\n" - .'**Fields of the conditions parameter** |Parameter|Type|Required|Description |--------|------------------| |field|String|No|The filter field. | |op|String|No|The filter action. Only **in** is supported. | |value|String\\[]|No|The array of field values. |'."\n" + .'- Usage data includes traffic, bandwidth, and the number of requests. The units are bytes, bps, and counts, respectively.'."\n" ."\n" - .'**Fields of the Deliver parameter** |Parameter|Type|Required|Description |--------|------------------| |subject|String|No|The email addresses to which operations reports are sent. | |to|String\\[]|Yes|The email addresses to which operations reports are sent. |'."\n" + .'**Supported time granularities**'."\n" ."\n" - .'**Fields of the Schedule parameter** |Parameter|Type|Required|Description |--------|------------------| |schedName|String|No|The name of the tracking task. | |description|String|No|The description of the tracking task. | |crontab|String|Yes|Indicates when the tracking task is scheduled to run. | |frequency|String|Yes|The interval at which the reports are sent. Value:\\'."\n" - .'**h**: hour\\'."\n" - .'**d**: day\\'."\n" - .'**w**: week| |status|String|No|The status of the tracking task. Valid values:\\'."\n" - .'**enable**: enabled\\'."\n" - .'**disable**: disabled | |effectiveFrom|String|No|The start time of the tracking task. | |effectiveEnd|String|No|The end time of the tracking task. |'."\n", + .'The available time granularity depends on the maximum time range of your query. The following table describes the supported time granularities, queryable historical data, and data latency.'."\n" + ."\n" + .'| Time granularity | Maximum time range per query | Queryable historical data | Data latency |'."\n" + .'| ---------------- | ---------------------------- | ------------------------- | --------------------------------------------- |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | Typically 3 to 4 hours |'."\n" + .'| 1 day | 366 days | 366 days | Typically 4 hours, with a maximum of 24 hours |', + 'requestParamsDescription' => '**Parameter combinations**'."\n" + ."\n" + .'The following table describes the mappings between billing data and parameter values. For information about how to call the operation, see the Examples section.'."\n" + ."\n" + .'| Billing data | Value of DataProtocol | Value of Type | Value of Field | Value of Area |'."\n" + .'| -------------------------------- | --------------------- | -------------------- | -------------- | ------------------------------------------------------------- |'."\n" + .'| Traffic | all or not specified | all or not specified | traf | CN<br>OverSeas<br>AP1<br>AP2<br>AP3<br>NA<br>SA<br>EU<br>MEAA |'."\n" + .'| Bandwidth | all or not specified | all or not specified | bps | CN<br>OverSeas<br>AP1<br>AP2<br>AP3<br>NA<br>SA<br>EU<br>MEAA |'."\n" + .'| Number of static HTTPS requests | https | static | acc | all |'."\n" + .'| Number of dynamic HTTP requests | http | dynamic | acc | all |'."\n" + .'| Number of dynamic HTTPS requests | https | dynamic | acc | all |', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteDcdnDeliverTask' => [ - 'summary' => 'Deletes tracking tasks by task ID.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2022-12-26T06:16:32.000Z', 'description' => 'Error codes changed'], ], - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainUvData' => [ + 'summary' => 'Call DescribeDcdnDomainUvData to obtain statistics about unique visitors (UVs) for accelerated domain names at a 1-hour granularity. You can query data from the last 90 days.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - 'FEATUREdcdn2Z4HOI', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ - 'name' => 'DeliverId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The IDs of the tracking tasks that you want to delete. You can call the [DescribeCdnDeliverList](~~270043~~) operation to query task IDs.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '92', - ], + 'schema' => ['description' => 'The accelerated domain name. You can query data for only one domain name at a time.'."\n" + ."\n" + .'If you leave this parameter empty, data for all your accelerated domain names is queried.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2015-11-29T00:00:00Z', 'title' => ''], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2015-11-30T00:00:00Z', 'title' => ''], ], ], 'responses' => [ @@ -11579,60 +12372,84 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2015-11-30T00:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range.', 'type' => 'string', 'example' => '2015-11-29T00:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'E9D3257A-1B7C-414C-90C1-8D07AC47BCAC', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'DataInterval' => ['description' => 'The time interval between data points, in seconds.', 'type' => 'string', 'example' => '3600', 'title' => ''], + 'UvDataInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'UsageData' => [ + 'description' => 'The number of unique visitors in each time interval.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Value' => ['description' => 'The number of unique visitors.', 'type' => 'string', 'example' => '326', 'title' => ''], + 'TimeStamp' => ['description' => 'The start of the time slice.', 'type' => 'string', 'example' => '2015-11-29T00:00:00Z', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], ], ], - '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' => 'DeleteDcdnDeliverTask', - 'description' => '> The maximum number of times that each user can call this operation per second is 3.'."\n", + 'title' => 'DescribeDcdnDomainUvData', + 'description' => '- If you do not specify StartTime and EndTime, data from the last 24 hours is queried by default. If you specify StartTime and EndTime, data in the specified time range is queried.'."\n" + ."\n" + .'- You can query data for a single domain name or all domain names that belong to your account.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainLog' => [ - 'summary' => 'Queries the address where you can download the raw access log data of a domain name.', - 'methods' => [ - 'get', - 'post', + '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainWebsocketBpsData' => [ + 'summary' => 'Call the DescribeDcdnDomainWebsocketBpsData operation to query network bandwidth data for a domain name that uses the WebSocket protocol.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -11643,530 +12460,370 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name that you want to query. You can specify only one domain name in each request.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name.'."\n" + ."\n" + .'Separate multiple domain names with commas (,). By default, this operation queries all accelerated domain names.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'StartTime', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => 'The number of entries to return on each page.'."\n" - ."\n" - .'Valid values: **1** to **1000**. Default value: **300**. Maximum value: **1000**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '1000', - 'example' => '300', - 'default' => '300', - ], + 'schema' => ['description' => 'The beginning of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Pages start from page **1**.'."\n" - ."\n" - .'Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The end of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z', 'title' => ''], ], [ - 'name' => 'StartTime', + 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2021-11-07T17:00:00Z', - ], + 'schema' => ['description' => 'The time granularity for the query. Unit: seconds.'."\n" + ."\n" + .'The time granularity varies based on the maximum time range per query. Valid values are 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). For more information, see the "Usage notes" section.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''], ], [ - 'name' => 'EndTime', + 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2021-11-07T18:00:00Z', - ], + 'schema' => ['description' => 'The name of the carrier.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query carriers. By default, this operation queries all carriers.', 'type' => 'string', 'required' => false, 'example' => 'unicom', 'title' => ''], + ], + [ + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => ['description' => 'The name of the region.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query regions. By default, this operation queries all regions.', 'type' => 'string', 'required' => false, 'example' => 'beijing', 'title' => ''], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'DomainName' => [ - 'description' => 'The domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '95594003-CAC5-5636-AF72-2A094364****', - ], - 'DomainLogDetails' => [ + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range.', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'DataInterval' => ['description' => 'The time interval between data records. Unit: seconds.', 'type' => 'string', 'example' => '300', 'title' => ''], + 'BpsDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DomainLogDetail' => [ - 'description' => 'The log information.'."\n", + 'DataModule' => [ + 'description' => 'The network bandwidth data at each time interval.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'LogCount' => [ - 'description' => 'The total number of entries returned on the current page.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '4', - ], - 'LogInfos' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LogInfoDetail' => [ - 'description' => 'Details about the logs.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2021-11-07T18:00:00Z', - ], - 'LogSize' => [ - 'description' => 'The size of the log file. Unit: bytes.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '192', - ], - 'StartTime' => [ - 'description' => 'The beginning of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2021-11-07T17:00:00Z', - ], - 'LogName' => [ - 'description' => 'The name of the log file.'."\n", - 'type' => 'string', - 'example' => 'example.com_2021_11_08_010000_020000.gz', - ], - 'LogPath' => [ - 'description' => 'The path of the log file.'."\n" - ."\n" - .'Take note of the Expires field (expiration timestamp) in the response parameter LogPath. If the log download URL expires, you must obtain it again. For more information, see [LogPath field](~~31952~~).'."\n", - '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' => '', - ], - ], - ], - ], - 'PageInfos' => [ - 'description' => 'The page information.'."\n", - 'type' => 'object', - 'properties' => [ - 'PageIndex' => [ - 'description' => 'The page number of the returned page.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'Total' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '4', - ], - ], - ], + 'TimeStamp' => ['description' => 'The timestamp of the data record.', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z', 'title' => ''], + 'WebsocketBps' => ['description' => 'The bandwidth. Unit: bit/s.', 'type' => 'number', 'format' => 'float', 'example' => '11288111', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'DescribeDcdnDomainLog', - 'description' => '> '."\n" + 'title' => 'DescribeDcdnDomainWebsocketBpsData', + 'description' => '- This operation can be called up to 100 times per second per user.'."\n" + ."\n" + .'- If you do not specify the **StartTime** and **EndTime** parameters, data from the last 24 hours is returned. If you specify both the **StartTime** and **EndTime** parameters, data for the specified time range is returned.'."\n" + ."\n" + .'**Supported time granularities**'."\n" ."\n" - .'* If you do not set the **StartTime** or **EndTime** parameter, the request returns the data collected in the last 24 hours. If you set both these parameters, the request returns the data collected within the specified time range.********'."\n" + .'The supported time granularity depends on the time range of a single query. The following table describes the supported time granularities, the maximum time range per query, the time range for which you can query historical data, and the data latency.'."\n" ."\n" - .'* You can call this operation up to 100 times per second per account.'."\n", + .'| Time granularity | Maximum time range per query | Queryable time range for historical data | Data latency |'."\n" + .'| ---------------- | ---------------------------- | ---------------------------------------- | -------------------------------------------- |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | Typically 3 to 4 hours |'."\n" + .'| 1 day | 366 days | 366 days | Typically 4 hours, but no more than 24 hours |', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnWafLogs' => [ - 'summary' => 'Queries the download URL of offline WAF logs for a domain name.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainWebsocketBpsData'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainWebsocketBpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"BpsDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\",\\n \\"WebsocketBps\\": 11288111\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribeDcdnDomainWebsocketHttpCodeData' => [ + 'summary' => 'You can call the DescribeDcdnDomainWebsocketHttpCodeData operation to query the total number and proportions of HTTP return codes for the WebSocket protocol for one or more domain names.', + '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' => 'The accelerated domain name. You can specify only one domain name in each request.'."\n", - 'type' => 'string', - 'required' => true, - 'enumValueTitles' => [], - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name. You can specify multiple domain names. Separate them with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-21T08:00:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query.'."\n" + ."\n" + .'The date is in the ISO 8601 standard. Use Coordinated Universal Time (UTC) in the yyyy-MM-ddTHH:mm:ssZ format.', 'type' => 'string', 'required' => false, 'example' => '2018-03-01T05:00:00Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-22T08:00:00Z', - ], + 'schema' => ['description' => 'The end of the time range to query.'."\n" + ."\n" + .'The date is in the ISO 8601 standard. Use UTC in the yyyy-MM-ddTHH:mm:ssZ format.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2018-03-01T06:00:00Z', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'Interval', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Default value: **300**. Valid values: **1 to 1000**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '300', - 'default' => '300', - ], + 'schema' => ['description' => 'The time granularity of the data to query. Unit: seconds.'."\n" + ."\n" + .'The value of this parameter varies based on the time range specified by the StartTime and EndTime parameters. Valid values: 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). For more information, see the table in the **Limits** section.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'IspNameEn', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Valid values: an integer greater than 0.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The English name of the carrier.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query the English name. If you do not set this parameter, data for all carriers is queried.', 'type' => 'string', 'required' => false, 'example' => 'unicom', 'title' => ''], + ], + [ + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => ['description' => 'The English name of the region.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query the English name. If you do not set this parameter, data for all regions is queried.', 'type' => 'string', 'required' => false, 'example' => 'beijing', 'title' => ''], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ + 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ - 'DomainLogDetails' => [ - 'description' => 'Details about logs returned.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DomainName' => [ - 'description' => 'The WAF domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com'."\n", - ], - 'LogCount' => [ - 'description' => 'The total number of entries returned on the current page.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'LogInfos' => [ - 'description' => 'The log information.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2015-05-23T14:00:00Z'."\n", - ], - 'LogName' => [ - 'description' => 'The name of the log file.'."\n", - 'type' => 'string', - 'example' => 'demo.aliyundoc.com_2015_05_23_2100_2200.xxxxxx.gz', - ], - 'LogPath' => [ - 'description' => 'The path of the log file.'."\n", - 'type' => 'string', - 'example' => 'guide.aliyundoc.com-hangzhou.xxx'."\n", - ], - 'LogSize' => [ - 'description' => 'The size of the log file. Unit: bytes.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '258', - ], - 'StartTime' => [ - 'description' => 'The beginning of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2015-05-23T13:00:00Z'."\n", - ], - ], - ], - ], - 'PageInfos' => [ - 'description' => 'The page information.'."\n", + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2018-03-01T13:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range.', 'type' => 'string', 'example' => '2018-03-01T05:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '91FC2D9D-B042-4634-8A5C-7B8E7482C22D', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'DataInterval' => ['description' => 'The time interval between data entries. Unit: seconds.', 'type' => 'string', 'example' => '3600', 'title' => ''], + 'HttpCodeDataPerInterval' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataModule' => [ + 'description' => 'A list of data entries, each corresponding to a time interval.', + 'type' => 'array', + 'items' => [ + 'description' => 'The data for a time interval.', 'type' => 'object', 'properties' => [ - 'PageIndex' => [ - 'description' => 'The page number of the returned page.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - 'default' => '1', - ], - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - 'default' => '1000', - ], - 'Total' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', + 'TimeStamp' => ['description' => 'The timestamp of the data.', 'type' => 'string', 'example' => '2018-03-01T13:00:00Z', 'title' => ''], + 'WebsocketHttpCode' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'HttpCodeDataModule' => [ + 'description' => 'A list of proportions for each return code.', + 'type' => 'array', + 'items' => [ + 'description' => 'The details of the proportions for each return code.', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => 'The HTTP return code.', 'type' => 'integer', 'format' => 'int32', 'example' => '404', 'title' => ''], + 'Proportion' => ['description' => 'The percentage of requests that correspond to the HTTP status code.', 'type' => 'number', 'format' => 'float', 'example' => '100', 'title' => ''], + 'Count' => ['description' => 'The total number of times the return code was returned.', 'type' => 'number', 'format' => 'float', 'example' => '16', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '0985A362-C81E-5A56-891D-90226BEECA7C', + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], ], ], - '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' => 'DescribeDcdnWafLogs', - 'description' => '> '."\n" + 'title' => 'DescribeDcdnDomainWebsocketHttpCodeData', + 'description' => 'The call frequency for a single user is limited to 100 calls per second.'."\n" ."\n" - .'* If you do not set the StartTime or EndTime parameter, the request returns the data collected in the last 24 hours. If you set both these parameters, the request returns the data collected within the specified time range.'."\n" + .'**Supported query time granularity**'."\n" ."\n" - .'* The log data is collected every hour.'."\n" + .'The time granularity that you can specify for the Interval parameter depends on the maximum time span of a single query. The following table describes the supported time granularities, the queryable time range for historical data, and the data latency.'."\n" ."\n" - .'* You can call this operation up to 100 times per second per account.'."\n", - ], - 'CreateDcdnSLSRealTimeLogDelivery' => [ - 'summary' => 'Creates a real-time log delivery project.', - 'methods' => [ - 'post', + .'| Time granularity | Maximum time span per query | Queryable historical data range | Data latency |'."\n" + .'| ---------------- | --------------------------- | ------------------------------- | --------------------- |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | 4 hours |'."\n" + .'| 1 day | 366 days | 366 days | 04:00 on the next day |', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnDomainWebsocketTrafficData' => [ + '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' => 'The name of a real-time log delivery project.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example', - ], - ], - [ 'name' => 'DomainName', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The domain names from which logs were collected. You can specify one or more domain names. Separate multiple domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'SamplingRate', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The sampling rate.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '1.0', - ], + 'in' => 'query', + 'schema' => ['description' => 'The accelerated domain name.'."\n" + ."\n" + .'To query data for multiple domain names, separate them with commas (,). By default, this operation queries data for all accelerated domain names.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], ], [ - 'name' => 'SLSRegion', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The region to which real-time logs are delivered.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => 'The beginning of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T20:00:00Z', 'title' => ''], ], [ - 'name' => 'SLSProject', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The name of the Log Service project.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'aliyundoc', - ], + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => 'The end of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2017-12-10T21:00:00Z', 'title' => ''], ], [ - 'name' => 'SLSLogStore', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The name of the Log Service Logstore.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'demo', - ], + 'name' => 'Interval', + 'in' => 'query', + 'schema' => ['description' => 'The time granularity for the query, in seconds.'."\n" + ."\n" + .'Valid values are 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). The supported time granularity varies based on the maximum time range per query. For more information, see the **Supported time granularities** section in this topic.', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''], ], [ - 'name' => 'DataCenter', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The data center. Valid values:'."\n" - ."\n" - .'* cn: China'."\n" - .'* sg: Singapore'."\n" - .'* eu: Europe'."\n" - .'* us: United States', - 'type' => 'string', - 'required' => true, - 'example' => 'cn', - ], + 'name' => 'IspNameEn', + 'in' => 'query', + 'schema' => ['description' => 'The name of the carrier in English.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to obtain the name. By default, data for all carriers is queried.', 'type' => 'string', 'required' => false, 'example' => 'unicom', 'title' => ''], ], [ - 'name' => 'BusinessType', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The type of the collected logs. Default value: cdn_log_access_l1. Valid values:'."\n" - ."\n" - .'* **cdn_log_access_l1**: access logs of Dynamic Content Delivery Network (DCDN) points of presence (POPs)'."\n" - .'* **cdn_log_origin**: back-to-origin logs'."\n" - .'* **cdn_log_er**: EdgeRoutine logs'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cdn_log_access_l1', - 'default' => 'dcdn_log_access_l1', - ], + 'name' => 'LocationNameEn', + 'in' => 'query', + 'schema' => ['description' => 'The name of the region in English.'."\n" + ."\n" + .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to obtain the name. By default, data for all regions is queried.', 'type' => 'string', 'required' => false, 'example' => 'beijing', 'title' => ''], ], ], 'responses' => [ @@ -12174,103 +12831,115 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'F32C57AA-7BF8-49AE-A2CC-9F42390F5A19', - ], - 'Content' => [ + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2017-12-10T21:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The start of the time range.', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'DataInterval' => ['description' => 'The time interval between data records, in seconds.', 'type' => 'string', 'example' => '300', 'title' => ''], + 'TrafficDataPerInterval' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Domains' => [ - 'description' => 'The configuration results of the domain name.'."\n", + 'DataModule' => [ + 'description' => 'The traffic data at each time interval. Unit: byte.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => 'The status of real-time logs.'."\n", - 'type' => 'string', - 'example' => 'success', - ], - 'DomainName' => [ - 'description' => 'The domain name from which real-time logs were collected.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'Region' => [ - 'description' => 'The region to which real-time logs were delivered.'."\n", - 'type' => 'string', - 'example' => 'cn', - ], - 'Desc' => [ - 'description' => 'The description of the returned result.'."\n", - 'type' => 'string', - 'example' => 'ok', - ], + 'WebsocketTraffic' => ['description' => 'The total traffic.', 'type' => 'number', 'format' => 'float', 'example' => '423304182', 'title' => ''], + 'TimeStamp' => ['description' => 'The start of the time slice.', 'type' => 'string', 'example' => '2017-12-10T20:00:00Z', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid.Parameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], - 500 => [ - [ - 'errorCode' => 'Internal Exception', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', + ], + 'title' => 'DescribeDcdnDomainWebsocketTrafficData', + 'summary' => 'Queries WebSocket network traffic data for accelerated domain names.', + 'description' => '- Each account can call this operation up to 100 times per second.'."\n" + ."\n" + .'- If you do not specify the **StartTime** and **EndTime** parameters, data for the last 24 hours is returned. If you specify both the **StartTime** and **EndTime** parameters, data for the specified time range is returned.'."\n" + ."\n" + .'**Supported time granularities**'."\n" + ."\n" + .'The supported time granularity for a query depends on the maximum time range that you can specify. The queryable historical data range and data latency also vary. The following table provides more details.'."\n" + ."\n" + .'| Time granularity | Maximum time range per query | Queryable historical data range | Data latency |'."\n" + .'| ---------------- | ---------------------------- | ------------------------------- | ----------------------------------------- |'."\n" + .'| 5 minutes | 3 days | 93 days | 15 minutes |'."\n" + .'| 1 hour | 31 days | 186 days | Typically 3 to 4 hours |'."\n" + .'| 1 day | 366 days | 366 days | Typically 4 hours, not exceeding 24 hours |', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnDomainWebsocketTrafficData'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainWebsocketTrafficData', + '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' => 'CreateDcdnSLSRealTimeLogDelivery', - 'description' => '> You can call this operation up to 100 times per second per account.', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'DescribeDcdnSLSRealtimeLogDelivery' => [ - 'summary' => 'Queries a real-time log delivery project.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnDomainsBySource' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111547', - 'abilityTreeNodes' => [ - 'FEATUREdcdn9K10I1', - ], + 'abilityTreeCode' => '196998', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], + 'autoTest' => true, + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'ProjectName', + 'name' => 'Sources', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of a real-time log delivery project.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example', - ], + 'schema' => ['description' => 'The origin servers. You can specify up to 20 origin servers. Separate multiple origin servers with commas (,). Fuzzy matching is not supported.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.org'], ], ], 'responses' => [ @@ -12278,206 +12947,140 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'F32C57AA-7BF8-49AE-A2CC-9F42390F5A19', - ], - 'Content' => [ - 'description' => 'The configuration results of the domain name.'."\n", - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of real-time logs.'."\n" - ."\n" - .'* **success**'."\n" - .'* **fail**'."\n", - 'type' => 'string', - 'example' => 'success', - ], - 'Type' => [ - 'description' => 'The type of log delivery. Only **SLS_POST** is supported.'."\n", - 'type' => 'string', - 'example' => 'SLS_POST', - ], - 'SLSLogStore' => [ - 'description' => 'The name of the Logstore.'."\n", - 'type' => 'string', - 'example' => 'example-cn', - ], - 'DataCenter' => [ - 'description' => 'The region from which logs were collected.'."\n", - 'type' => 'string', - 'example' => 'cn', - ], - 'FieldName' => [ - 'description' => 'The name of the field. For more information about fields in real-time log entries, see [Fields in a real-time log](~~324199~~).'."\n", - 'type' => 'string', - 'example' => 'field1,field2', - ], - 'ProjectName' => [ - 'description' => 'The name of the project.'."\n", - 'type' => 'string', - 'example' => 'example', - ], - 'SamplingRate' => [ - 'description' => 'The sampling rate.'."\n", - 'type' => 'string', - 'example' => '1.0', - ], - 'SLSProject' => [ - 'description' => 'The name of the log file.'."\n", - 'type' => 'string', - 'example' => 'example-cn', - ], - 'DomainName' => [ - 'description' => 'The domain names from which logs were collected. You can specify one or more domain names. Separate multiple domain names with commas (,).'."\n", - 'type' => 'string', - 'example' => 'example.com,example.org', - ], - 'BusinessType' => [ - 'description' => 'The type of the collected logs. Default value: cdn_log_access_l1. Valid values:'."\n" - ."\n" - .'* **cdn_log_access_l1**: access logs of Dynamic Content Delivery Network (DCDN) points of presence (POPs)'."\n" - .'* **cdn_log_origin**: back-to-origin logs'."\n" - .'* **cdn_log_er**: EdgeRoutine logs'."\n", - 'type' => 'string', - 'example' => 'cdn_log_access_l1', - ], - 'SLSRegion' => [ - 'description' => 'The region to which logs were delivered.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'F61CDR30-E83C-4FDA-BF73-9A94CDD44229'], + 'DomainInfo' => [ + 'description' => 'The information about each origin server and its corresponding domain names.', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'DomainList' => [ + 'description' => 'The list of domain name information.', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'CreateTime' => ['description' => 'The time when the domain name was added.', 'type' => 'string', 'example' => '2021-08-21T03:05:20+08:00', 'title' => ''], + 'DomainCname' => ['description' => 'The CNAME of the domain name.', 'type' => 'string', 'example' => 'example.org.alikunlun.com', 'title' => ''], + 'Status' => ['description' => 'The status of the domain name. Valid values:'."\n" + ."\n" + .'- **applying**: Under review'."\n" + ."\n" + .'- **configuring**: Configuring'."\n" + ."\n" + .'- **online**: Active'."\n" + ."\n" + .'- **stopping**: Stopping'."\n" + ."\n" + .'- **offline**: Inactive'."\n" + ."\n" + .'- **disabling**: Deleting', 'type' => 'string', 'example' => 'online', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.org', 'title' => ''], + 'UpdateTime' => ['description' => 'The time when the domain name information was last updated.', 'type' => 'string', 'example' => '2022-12-01T03:26:55+08:00', 'title' => ''], + 'DomainType' => ['description' => 'The business type of the accelerated domain name. Valid values:'."\n" + ."\n" + .'- **ipa**: Layer 4 acceleration'."\n" + ."\n" + .'- **dynamic**: Layer 7 acceleration', 'type' => 'string', 'example' => 'dynamic', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'Source' => ['description' => 'The origin server that you specified in the request.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], ], + 'title' => '', + 'example' => '', ], + 'required' => true, + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'ProjectNotFound', - 'errorMessage' => 'The project provided does not belong to you.', - ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeDcdnDomainsBySource', + 'summary' => 'Queries DCDN accelerated domain names by specified origin servers.', + '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' => 'All Resource', 'arn' => '*'], + ], ], ], ], - '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' => 'DescribeDcdnSLSRealtimeLogDelivery', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", - '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"}]', ], - 'UpdateDcdnSLSRealtimeLogDelivery' => [ - 'summary' => 'Updates a real-time log delivery project.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnErUsageData' => [ + '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' => ['FEATUREdcdn75UYDO'], ], 'parameters' => [ [ - 'name' => 'ProjectName', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The name of the project.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example', - ], - ], - [ - 'name' => 'DomainName', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The domain names from which logs were collected. You can specify one or more domain names. Separate multiple domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'SamplingRate', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The sampling rate.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '1.0', - ], + 'name' => 'RoutineID', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the Edge Routine that you want to query.', 'type' => 'string', 'required' => false, 'example' => 'routine1.test', 'title' => ''], ], [ - 'name' => 'SLSRegion', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The region to which logs were delivered.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - ], + 'name' => 'Spec', + 'in' => 'query', + 'schema' => ['description' => 'The specification of the Edge Routine. Valid values:'."\n" + ."\n" + .'- 5ms'."\n" + ."\n" + .'- 50ms'."\n" + ."\n" + .'- 100ms', 'type' => 'string', 'required' => false, 'example' => '50ms', 'title' => ''], ], [ - 'name' => 'SLSProject', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The name of the log file.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example-cn', - ], + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2018-10-30T16:00:00Z', 'title' => ''], ], [ - 'name' => 'SLSLogStore', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The name of the Logstore.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example-cn', - ], + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2018-10-31T16:00:00Z', 'title' => ''], ], [ - 'name' => 'DataCenter', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The region from which logs are collected.'."\n" - ."\n" - .'* **cn**: Chinese mainland'."\n" - .'* **sg**: Singapore'."\n" - .'* **in**: India'."\n" - .'* **eu**: Europe'."\n" - .'* **us**: United States'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn', - ], + 'name' => 'SplitBy', + 'in' => 'query', + 'schema' => ['description' => 'The dimension by which you want to group the query results. You can group the results by Edge Routine ID (routine) or specification (spec).'."\n" + ."\n" + .'> If you leave this parameter empty, the query results are not grouped.', 'type' => 'string', 'required' => false, 'example' => 'routine', 'title' => ''], ], ], 'responses' => [ @@ -12485,498 +13088,287 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'F32C57AA-7BF8-49AE-A2CC-9F42390F5A19', - ], - 'Content' => [ + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2018-10-31T16:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The beginning of the time range.', 'type' => 'string', 'example' => '2018-10-30T16:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'C370DAF1-C838-4288-A1A0-9A87633D248E', 'title' => ''], + 'ErAccData' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Domains' => [ - 'description' => 'The configuration results of the domain name.'."\n", + 'ErAccItem' => [ + 'description' => 'The list of data.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => 'Indicates whether the real-time log delivery project was successfully updated. Valid values:'."\n" - ."\n" - .'* **success**'."\n" - .'* **fail**'."\n", - 'type' => 'string', - 'example' => 'success', - ], - 'DomainName' => [ - 'description' => 'The domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'Region' => [ - 'description' => 'The name of the region.'."\n", - 'type' => 'string', - 'example' => 'cn', - ], - 'Desc' => [ - 'description' => 'The description of the returned result.'."\n", - 'type' => 'string', - 'example' => 'created', - ], + 'ErAcc' => ['description' => 'The number of ER requests.', 'type' => 'integer', 'format' => 'int64', 'example' => '125', 'title' => ''], + 'TimeStamp' => ['description' => 'The timestamp of the data point.', 'type' => 'string', 'example' => '2018-10-30T13:00:00Z', 'title' => ''], + 'Spec' => ['description' => 'The specification of the function. This parameter is empty by default. This parameter is returned only when you set the SplitBy request parameter to spec.', 'type' => 'string', 'example' => '50ms', 'title' => ''], + 'Routine' => ['description' => 'The ID of the Edge Routine. This parameter is empty by default. This parameter is returned only when you set the SplitBy request parameter to routine.', 'type' => 'string', 'example' => 'routine1.test', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time 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\\": \\"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' => 'UpdateDcdnSLSRealtimeLogDelivery', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", - 'extraInfo' => ' ', - ], - 'DeleteDcdnRealTimeLogProject' => [ - 'summary' => 'Deletes real-time logs of a log delivery project.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '111462', - 'abilityTreeNodes' => [ - 'FEATUREdcdn9K10I1', + 'title' => 'DescribeDcdnErUsageData', + 'summary' => 'The DescribeDcdnErUsageData operation queries the number of times an Edge Routine (ER) is executed.', + 'description' => '> - The call frequency for a single user is limited to 10 calls per second.'."\n" + .'>'."\n" + .'> - The minimum time granularity for a query is 1 hour. The maximum time span for a query is 24 hours. You can query data within the last 366 days.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnErUsageData'], ], ], - 'parameters' => [ + 'ramActions' => [ [ - 'name' => 'ProjectName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of a real-time log delivery project.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7', - ], + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnErUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], ], - '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' => 'DeleteDcdnRealTimeLogProject', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'UpdateDcdnUserRealTimeDeliveryField' => [ - 'summary' => 'Updates the fields in real-time log entries.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnFullDomainsBlockIPConfig' => [ + 'summary' => 'Call DescribeDcdnFullDomainsBlockIPConfig to query the IP address blocklist configuration.', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111623', - 'abilityTreeNodes' => [ - 'FEATUREdcdn9K10I1', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeNodes' => ['FEATUREdcdn2JMMUY'], ], 'parameters' => [ [ - 'name' => 'BusinessType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the collected logs. Default value: cdn_log_access_l1. Valid values:'."\n" - ."\n" - .'* **cdn_log_access_l1**: access logs of L1 Dynamic Route for CDN (DCDN) points of presence (POPs)'."\n" - .'* **cdn_log_origin**: back-to-origin logs'."\n" - .'* **cdn_log_er**: EdgeRoutine logs'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cdn_log_access_l1', - 'default' => 'dcdn_log_access_l1', - ], - ], - [ - 'name' => 'Fields', + 'name' => 'IPList', 'in' => 'query', - 'schema' => [ - 'description' => 'The list of fields. Separate multiple fields with commas (,). For more information, see [Fields in a real-time log](~~324199~~).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'body_bytes_sent,client_ip,content_type', - ], + 'schema' => ['description' => 'The list of IP addresses or CIDR blocks to query. Separate multiple IP addresses with commas (,). You can specify up to 50 IP addresses.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '10.XX.XX.10/24'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The response schema.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4', - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '0C58632F-BA12-1A1E-986D-09285752B42C'], + 'Message' => ['description' => 'The result message. If the request is successful, an OSS URL is returned. If the request fails, an error message is returned.', 'type' => 'string', 'title' => '', 'example' => 'http://xxxx-api.oss-cn-hangzhou.aliyuncs.com/blocklist%2Fxxxxxxxxxxxx.txt?Expires=1682663947&OSSAccessKeyId=xxxxxxxxxx&Signature=xxxxxx'], + 'Code' => ['description' => 'The result code.'."\n" + ."\n" + .'A value other than 0 may indicate one of the following errors:'."\n" + ."\n" + .'- The IP address format is invalid.'."\n" + .'- The number of IP addresses exceeds the limit.'."\n" + .'- Other errors.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '0'], ], + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameters', - 'errorMessage' => 'The specified parameters are invalid.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], ], - 500 => [ - [ - 'errorCode' => 'Internal Exception', - 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', - ], + 406 => [ + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'The number of keys has reached the upper limit.'], ], - ], - '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' => 'UpdateDcdnUserRealTimeDeliveryField', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", - 'extraInfo' => ' ', - ], - 'DescribeDcdnRealTimeDeliveryField' => [ - 'summary' => 'Queries the fields in real-time log entries.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => 'An internal error occurred. Try again later. If the error persists, submit a ticket.'], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn9K10I1', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeDcdnFullDomainsBlockIPConfig', + 'description' => '> - This operation returns the currently effective IP addresses and their expiration times for specified IP addresses or Classless Inter-Domain Routing (CIDR) blocks. If you do not specify any IP addresses, all currently effective IP addresses and their expiration times are returned.'."\n" + .'> - The results are written to an Object Storage Service (OSS) object, and an OSS URL is returned. The content in the OSS object uses the `ip-expiration time` format. The time is in the YYYY-MM-DD hh:mm:ss format.'."\n" + .'> - The shared URL of the OSS object is valid for 3 days.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnFullDomainsBlockIPConfig'], ], ], - 'parameters' => [ + 'ramActions' => [ [ - 'name' => 'BusinessType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the collected logs. Default value: cdn_log_access_l1. Valid values:'."\n" - ."\n" - .'* **cdn_log_access_l1**: access logs of Dynamic Content Delivery Network (DCDN) points of presence (POPs)'."\n" - .'* **cdn_log_origin**: back-to-origin logs'."\n" - .'* **cdn_log_er**: EdgeRoutine logs'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cdn_log_access_l1', - 'default' => 'dcdn_log_access_l1', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4', - ], - 'Content' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Fields' => [ - 'description' => 'The returned results.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Description' => [ - 'description' => 'The description of the field.'."\n", - 'type' => 'string', - 'example' => 'Access time'."\n", - ], - 'FieldName' => [ - 'description' => 'The name of the field. For more information about fields in real-time log entries, see [Fields in a real-time log](~~324199~~).'."\n", - 'type' => 'string', - 'example' => 'unixtime', - ], - ], - ], - ], - ], - ], + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnFullDomainsBlockIPConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Unauthorized', - 'errorMessage' => 'RealtimeLogDelivery service is not authorized.', - ], - ], - ], - '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' => 'DescribeDcdnRealTimeDeliveryField', - 'description' => '> You can call this API operation up to 100 times per second per account.'."\n", - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'CheckDcdnProjectExist' => [ - 'summary' => 'Checks whether a real-time log delivery project exists.', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnFullDomainsBlockIPHistory' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111444', - 'abilityTreeNodes' => [ - 'FEATUREdcdn9K10I1', - ], + 'abilityTreeCode' => '176189', + 'abilityTreeNodes' => ['FEATUREdcdnSU2QP6'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'ProjectName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of a real-time log delivery project.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example', - ], + 'name' => 'IPList', + 'in' => 'formData', + 'schema' => ['title' => 'A short description of struct', 'description' => 'The IP address or IP range to query.', 'type' => 'string', 'required' => true, 'example' => '10.XX.XX.10/24'], + ], + [ + 'name' => 'StartTime', + 'in' => 'formData', + 'schema' => ['description' => 'The start of the time range to query, in ISO 8601 format: YYYY-MM-DDThh:mm:ssZ.', 'type' => 'string', 'required' => true, 'example' => '2023-04-24T17:00:00Z', 'title' => ''], + ], + [ + 'name' => 'EndTime', + 'in' => 'formData', + 'schema' => ['description' => 'The end of the time range to query, in ISO 8601 format: YYYY-MM-DDThh:mm:ssZ. The end time must be later than the start time.', 'type' => 'string', 'required' => true, 'example' => '2023-04-24T19:00:00Z', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'b021e538-9dde-46ed-a1f2-9469da8f3e77', - ], - 'Content' => [ - 'description' => 'The returned results.'."\n", - 'type' => 'object', - 'properties' => [ - 'Exist' => [ - 'description' => 'Indicates whether the real-time log delivery project exists. Valid values:'."\n" + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '13A2B792-9212-1CC9-8525-59EBEF3FFE01'], + 'IPBlockInfo' => [ + 'description' => 'The operation result.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'BlockIP' => ['description' => 'The blocked IP address or IP range.', 'type' => 'string', 'example' => '1.XXX.XXX.0~1.XXX.XXX.255', 'title' => ''], + 'DeliverTime' => ['description' => 'The delivery time.', 'type' => 'string', 'example' => '2023-04-24 18:49:37', 'title' => ''], + 'Status' => ['description' => 'The delivery status.'."\n" ."\n" - .'* **false**'."\n" - .'* **true**'."\n", - 'type' => 'string', - 'example' => 'false', + .'- Success: The delivery was successful.'."\n" + ."\n" + .'- Failed: The delivery failed, or no delivery record exists.', 'type' => 'string', 'example' => 'Success', 'title' => ''], + 'OperationType' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'BlockInterval' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'UpdateType' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], + 'Code' => ['description' => 'The result code.'."\n" + ."\n" + .'A non-zero value indicates one of the following errors:'."\n" + ."\n" + .'- Invalid IP address format'."\n" + ."\n" + .'- Invalid time format'."\n" + ."\n" + .'- Other errors', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''], + 'Description' => ['description' => 'The status description.', 'type' => 'string', 'example' => 'OK', 'title' => ''], ], - 'description' => '', + 'example' => '', ], ], ], 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ], + 406 => [ + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'The number of keys has reached the upper limit.'], + ], 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' => 'An internal error occurred. Try again later. If the error persists, submit a ticket.'], ], ], - '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' => 'CheckDcdnProjectExist', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", - ], - 'DescribeDcdnSLSRealTimeLogType' => [ - 'summary' => 'Queries supported types of real-time logs.', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeDcdnFullDomainsBlockIPHistory', + 'summary' => 'Queries the block history.', + 'description' => '- This operation returns the delivery time and corresponding operation result for a specified IP address or IP range within a given time period.'."\n" + ."\n" + .'- If multiple delivery records exist for the specified IP address or IP range within the specified time period, the operation sorts them by delivery time in descending order.'."\n" + ."\n" + .'- The maximum time range for a query is 90 days.'."\n" + ."\n" + .'- If no delivery record is found for the specified IP address or IP range within the time period, or if the delivery fails, a delivery time is not returned.', + 'changeSet' => [ + ['createdAt' => '2024-12-18T07:47:28.000Z', 'description' => 'Response parameters changed'], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '140562', - 'abilityTreeNodes' => [ - 'FEATUREdcdn9K10I1', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnFullDomainsBlockIPHistory'], ], - 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', - ], - 'Content' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Business' => [ - 'description' => 'The returned results.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Desc' => [ - 'description' => 'The description of the real-time log type.'."\n", - 'type' => 'string', - 'example' => 'product_U8JE', - ], - 'BusinessType' => [ - 'description' => 'The type of real-time logs. Valid values:'."\n" - ."\n" - .'* **dcdn_log_access_l1**: access logs.'."\n" - .'* **dcdn_log_er**: EdgeRoutine logs'."\n" - .'* **dcdn_log_waf**: WAF interception logs'."\n", - 'type' => 'string', - 'example' => 'dcdn_log_access_l1', - ], - ], - ], - ], - ], - ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnFullDomainsBlockIPHistory', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], ], - 'description' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - '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' => 'DescribeDcdnSLSRealTimeLogType', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'ListDcdnRealTimeDeliveryProject' => [ - 'summary' => 'Queries information about a real-time log delivery project.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnHttpsDomainList' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -12984,63 +13376,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' => 'The type of the collected logs. Default value: cdn_log_access_l1. Valid values:'."\n" - ."\n" - .'* **cdn_log_access_l1**: access logs of Dynamic Content Delivery Network (DCDN) points of presence (POPs)'."\n" - .'* **cdn_log_origin**: back-to-origin logs'."\n" - .'* **cdn_log_er**: EdgeRoutine logs'."\n" - .'* By default, this parameter is left empty, and all logs are returned.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cdn_log_access_l1', - ], + 'schema' => ['description' => 'The page number. Valid values: 1 to **100000**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''], ], [ - 'name' => 'DomainName', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'The domain name. You can specify only one domain name in each request. If this parameter is not specified, all domain names are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The number of entries to return on each page. Valid values: 1 to **500**. Default value: **20**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '20', 'example' => '2', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'Keyword', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Valid values: **1** to **100000**. Default value: 1.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. The default value is 20.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - 'default' => '20', - ], + 'schema' => ['description' => 'The search keyword.', 'type' => 'string', 'required' => false, 'example' => 'cert', 'title' => ''], ], ], 'responses' => [ @@ -13048,247 +13403,112 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'TotalCount' => [ - 'description' => 'The total number of returned entries.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4', - ], - 'Content' => [ + 'TotalCount' => ['description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int32', 'example' => '16', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'F5E8DF64-7175-4186-9B06-F002C0BBD0C5', 'title' => ''], + 'CertInfos' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Projects' => [ - 'description' => 'The configuration results of the domain name.'."\n", + 'CertInfo' => [ + 'description' => 'The certificate information.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Type' => [ - 'description' => 'The type of log delivery. Only **SLS_POST** is supported.'."\n", - 'type' => 'string', - 'example' => 'SLS_POST', - ], - 'SLSLogStore' => [ - 'description' => 'The name of the Logstore.'."\n", - 'type' => 'string', - 'example' => 'example-cn', - ], - 'DataCenter' => [ - 'description' => 'The region from which logs were collected.'."\n", - 'type' => 'string', - 'example' => 'cn', - ], - 'FieldName' => [ - 'description' => 'The name of the field. For more information about fields in real-time log entries, see [Fields in a real-time log](~~324199~~).'."\n", - 'type' => 'string', - 'example' => 'field1,field2', - ], - 'ProjectName' => [ - 'description' => 'The name of the project.'."\n", - 'type' => 'string', - 'example' => 'example', - ], - 'SamplingRate' => [ - 'description' => 'The sampling rate.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '1', - ], - 'SLSProject' => [ - 'description' => 'The name of the log file.'."\n", - 'type' => 'string', - 'example' => 'example-cn', - ], - 'DomainName' => [ - 'description' => 'The domain names from which logs were collected. You can specify one or more domain names. Separate multiple domain names with commas (,).'."\n", - 'type' => 'string', - 'example' => 'example.com,example.org', - ], - 'BusinessType' => [ - 'description' => 'The type of the collected logs. Default value: cdn_log_access_l1. Valid values:'."\n" - ."\n" - .'* **cdn_log_access_l1**: access logs of DCDN POPs'."\n" - .'* **cdn_log_origin**: back-to-origin logs'."\n" - .'* **cdn_log_er**: EdgeRoutine logs'."\n", - 'type' => 'string', - 'example' => 'cdn_log_access_l1', - ], - 'SLSRegion' => [ - 'description' => 'The region to which logs were delivered.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], + 'CertStartTime' => ['description' => 'The start time of the certificate.', 'type' => 'string', 'example' => '2018-11-26 14:45:09', 'title' => ''], + 'CertExpireTime' => ['description' => 'The expiration time of the certificate.', 'type' => 'string', 'example' => '2018-12-26 14:45:09', 'title' => ''], + 'CertUpdateTime' => ['description' => 'The time when the certificate was updated.', 'type' => 'string', 'example' => '2019-01-08 18:33:16', 'title' => ''], + 'CertType' => ['description' => 'The type of the certificate. Valid values:'."\n" + ."\n" + .'- **cas**: an Alibaba Cloud Security certificate.'."\n" + ."\n" + .'- **upload**: a custom certificate that you uploaded.', 'type' => 'string', 'example' => 'upload', 'title' => ''], + 'CertName' => ['description' => 'The name of the certificate.', 'type' => 'string', 'example' => 'cert', 'title' => ''], + 'CertStatus' => ['description' => 'The status of the certificate. Valid values:'."\n" + ."\n" + .'- **ok**: Normal.'."\n" + ."\n" + .'- **mismatch**: The domain name does not match the certificate.'."\n" + ."\n" + .'- **expired**: The certificate has expired.'."\n" + ."\n" + .'- **expire\\_soon**: The certificate is about to expire.', 'type' => 'string', 'example' => 'mismatch', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => '*.com', 'title' => ''], + 'CertCommonName' => ['description' => 'The primary domain name of the certificate.', 'type' => 'string', 'example' => '*.com', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'Your account does not have an HTTP-capable domain name.'], ], ], - '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' => 'ListDcdnRealTimeDeliveryProject', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", + 'title' => 'DescribeDcdnHttpsDomainList', + 'summary' => 'Queries the information about all certificates under your account.', + 'description' => '> The call frequency for a single user is 100 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeUserLogserviceStatus' => [ - 'summary' => 'Queries whether Log Service is activated and whether you have overdue payments for your Log Service.', - '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' => 'Indicates whether your Log Service has overdue payments.'."\n" - ."\n" - .'* true'."\n" - .'* false'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'OnService' => [ - 'description' => 'Indicates whether Log Service is available.'."\n" - ."\n" - .'* true'."\n" - .'* false'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '4F51E9C3-728F-4E35-952D-0ED87A06A8A1', - ], - 'InDebtOverdue' => [ - 'description' => 'Indicates whether an overdue payment of your Log Service has passed the grace period.'."\n" - ."\n" - .'* true'."\n" - .'* false'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'Enabled' => [ - 'description' => 'Indicates whether Log Service is activated.'."\n" - ."\n" - .'* true'."\n" - .'* false'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnHttpsDomainList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => 'DescribeUserLogserviceStatus', - 'description' => '> You can call this operation up to 20 times per second per account.'."\n", - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'CreateSlrAndSlsProject' => [ - 'summary' => 'Creates a service-linked role (SLR) and a Log Service project. ', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnIpInfo' => [ + 'summary' => 'Call DescribeDcdnIpInfo to check if an IP address belongs to an Alibaba Cloud DCDN node.', + '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' => 'The region where Log Service resides. Valid values:'."\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**'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'BusinessType', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The type of the collected logs. Default value: cdn_log_access_l1. Valid values:'."\n" - ."\n" - .'* **cdn_log_access_l1**: access logs of L1 Dynamic Route for CDN (DCDN) points of presence (POPs)'."\n" - .'* **cdn_log_origin**: back-to-origin logs'."\n" - .'* **cdn_log_er**: EdgeRoutine logs'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cdn_log_access_l1', - 'default' => 'dcdn_log_access_l1', - ], + 'name' => 'IP', + 'in' => 'query', + 'schema' => ['description' => 'The IP address to check. Only a single IP address is supported.', 'type' => 'string', 'required' => true, 'example' => '10.XXX.XXX.10', 'title' => ''], ], ], 'responses' => [ @@ -13296,79 +13516,60 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'fe33a379-5053-4f22-a73c-826e2b44355d', - ], - 'SlsInfo' => [ - 'description' => 'The information about Log Service.'."\n", - 'type' => 'object', - 'properties' => [ - 'Project' => [ - 'description' => 'The project of Log Service.'."\n", - 'type' => 'string', - 'example' => 'dcdn-edge-rtlog-cn-cfc7****', - ], - 'LogStore' => [ - 'description' => 'The Logstore of Log Service.'."\n", - 'type' => 'string', - 'example' => 'dcdn-edge-trlog', - ], - 'EndPoint' => [ - 'description' => 'The endpoint of Log Service.'."\n", - 'type' => 'string', - 'example' => 'cn-shanghai.log.*.com', - ], - 'Region' => [ - 'description' => 'The region where Log Service resides.'."\n", - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '1B1D0EE7-9559-489D-BC4E-279495EB8FB8', 'title' => ''], + 'RegionEname' => ['description' => 'The English name of the region where the node is located.', 'type' => 'string', 'example' => 'China-Guizhou-guiyang', 'title' => ''], + 'Region' => ['description' => 'The name of the region where the node is located.', 'type' => 'string', 'example' => '中国-贵州省-贵阳市', 'title' => ''], + 'IspEname' => ['description' => 'The English name of the Internet Service Provider (ISP).', 'type' => 'string', 'example' => 'telecom', 'title' => ''], + 'DcdnIp' => ['description' => 'Indicates whether the IP address belongs to an Alibaba Cloud DCDN node.'."\n" + ."\n" + .'- True: The IP address belongs to an Alibaba Cloud DCDN node.'."\n" + ."\n" + .'- False: The IP address does not belong to an Alibaba Cloud DCDN node.', 'type' => 'string', 'example' => 'True', 'title' => ''], + 'ISP' => ['description' => 'The name of the ISP.', 'type' => 'string', 'example' => 'China Telecom', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'The format of the IP address is invalid.'], ], ], - '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' => 'CreateSlrAndSlsProject', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'DescribeDcdnIpInfo', + 'description' => '> The throttling limit for a single user is 50 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnUserRealTimeDeliveryField' => [ - 'summary' => 'Queries the fields that are selected.', - 'methods' => [ - 'get', + 'changeSet' => [ + ['createdAt' => '2022-11-15T06:37:30.000Z', 'description' => 'Request parameters changed'], ], - '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + 'translator' => 'manual', + ], + 'DescribeDcdnIpaDomainCidr' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -13377,101 +13578,73 @@ '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' => 'The type of the collected logs. Default value: cdn_log_access_l1. Valid values:'."\n" - ."\n" - .'* **cdn_log_access_l1**: access logs of L1 Dynamic Content Delivery Network (DCDN) points of presence (POPs)'."\n" - .'* **cdn_log_origin**: back-to-origin logs'."\n" - .'* **cdn_log_er**: EdgeRoutine logs'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cdn_log_access_l1', - 'default' => 'dcdn_log_access_l1', - ], + 'schema' => ['title' => 'A short description of struct', 'description' => 'The accelerated domain name. You can specify only one domain name.', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4', - ], - 'Content' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Fields' => [ - 'description' => 'The data returned.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Description' => [ - 'description' => 'The description of the field.'."\n", - 'type' => 'string', - 'example' => 'The timestamp of the request'."\n", - ], - 'Selected' => [ - 'description' => 'Indicates whether the field was selected.'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'FieldName' => [ - 'description' => 'The name of the field.'."\n", - 'type' => 'string', - 'example' => 'unixtime', - ], - ], - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], + 'Cidr' => [ + 'description' => 'A list of back-to-origin IP address blocks for the domain name. The IP address blocks are in CIDR format and include both IPv4 and IPv6 addresses.', + 'type' => 'array', + 'items' => ['description' => 'The IP address block.', 'type' => 'string', 'title' => '', '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"]', + 'title' => '', ], ], + 'example' => '', ], ], ], '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' => 'The specified domain name does not exist or does not belong to the current account. Check whether the domain name is valid, belongs to the current account, or has expired.'], ], ], - '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' => 'DescribeDcdnUserRealTimeDeliveryField', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", - 'extraInfo' => ' ', - ], - 'DescribeDcdnUserBillHistory' => [ - 'summary' => 'Queries the billing records of an Alibaba Cloud account. The maximum time range that you can specify is one month.', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeDcdnIpaDomainCidr', + 'summary' => 'Call DescribeDcdnIpaDomainCidr to query the back-to-origin IP address blocks for an accelerated domain name in IP Application Accelerator (IPA). This API operation requires access permissions. To use this operation, submit a ticket.', + 'description' => '> The call frequency is limited to 50 calls per second globally and 10 calls per second for a single user.', + 'changeSet' => [ + ['createdAt' => '2023-08-30T06:54:07.000Z', 'description' => 'Error codes changed, Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnIpaDomainCidr'], + ], ], - 'schemes' => [ - 'http', - 'https', + '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' => [], @@ -13482,34 +13655,18 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdn2JMMUY'], ], 'parameters' => [ [ - 'name' => 'StartTime', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'The minimum data granularity is 5 minutes.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2018-09-30T16:00:00Z', - ], + 'schema' => ['description' => 'The accelerated domain name. To specify multiple domain names, separate them with commas (,).', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], ], [ - 'name' => 'EndTime', + 'name' => 'FunctionNames', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2018-10-31T16:00:00Z', - ], + 'schema' => ['description' => 'The name of the feature. Set the value to protogw. protogw specifies IP application acceleration.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'protogw'], ], ], 'responses' => [ @@ -13517,136 +13674,98 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'ED61C6C3-8241-4187-AAA7-5157AE175CEC', - ], - 'BillHistoryData' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED'], + 'DomainConfigs' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'BillHistoryDataItem' => [ - 'description' => 'The billing history returned.'."\n", + 'DomainConfig' => [ + 'description' => 'The domain name configurations.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Dimension' => [ - 'description' => 'The dimension.'."\n", - 'type' => 'string', - 'example' => 'vas', - ], - 'BillType' => [ - 'description' => 'The metering method.'."\n", - 'type' => 'string', - 'example' => 'month_4th_day_bandwidth', - ], - 'BillTime' => [ - 'description' => 'The beginning of the time range that was queried.'."\n", - 'type' => 'string', - 'example' => '2018-09-30T17:00:00Z', - ], - 'BillingData' => [ + 'Status' => ['description' => 'The status of the feature configuration.'."\n" + ."\n" + .'- **success**: The configuration is successful.'."\n" + .'- **testing**: The configuration is being tested.'."\n" + .'- **failed**: The configuration failed.'."\n" + .'- **configuring**: The configuration is in progress.', 'type' => 'string', 'title' => '', 'example' => 'success'], + 'FunctionName' => ['description' => 'The feature name.', 'type' => 'string', 'title' => '', 'example' => 'protogw'], + 'FunctionArgs' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'BillingDataItem' => [ - 'description' => 'The billable items.'."\n", + 'FunctionArg' => [ + 'description' => 'The list of feature arguments.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Flow' => [ - 'description' => 'The amount of network traffic. Unit: bytes.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '2456', - ], - 'Bandwidth' => [ - 'description' => 'The bandwidth. Unit: bit/s.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '4839', - ], - 'Count' => [ - 'description' => 'The number of billing entries.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '205624', - ], - 'CdnRegion' => [ - 'description' => 'The region for which the billing records are generated. Valid values: **CN**, **OverSeas**, **AP1**, **AP2**, **AP3**, **NA**, **SA**, **EU**, and **MEAA**.'."\n", - 'type' => 'string', - 'example' => 'AP1', - ], - 'ChargeType' => [ - 'description' => 'The billing method of the disk. Valid values: **StaticHttp**, **DynamicHttp**, and **DynamicHttps**.', - 'type' => 'string', - 'example' => 'DynamicHttp', - ], + 'ArgValue' => ['description' => 'The value of the argument.', 'type' => 'string', 'title' => '', 'example' => 'txt'], + 'ArgName' => ['description' => 'The name of the argument.', 'type' => 'string', 'title' => '', 'example' => 'file_type'], ], 'description' => '', + 'title' => '', ], + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], + 'ConfigId' => ['description' => 'The configuration ID.', 'type' => 'string', 'title' => '', 'example' => '5003576'], ], 'description' => '', + 'title' => '', ], + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], ], 'description' => '', + 'title' => '', ], ], ], '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' => 'The specified configuration is not supported.'], ], ], - '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' => 'DescribeDcdnUserBillHistory', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", + 'title' => 'DescribeDcdnIpaDomainConfigs', + 'summary' => 'Queries the configurations of a domain name.', + 'description' => '> The call frequency for a single user is limited to 20 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnUserBillType' => [ - 'summary' => 'Queries the metering method that is used in Dynamic Content Delivery Network (DCDN).', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnIpaDomainDetail' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -13657,36 +13776,13 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111555', - 'abilityTreeNodes' => [ - 'FEATUREdcdnTP4C37', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2018-09-30T16:00:00Z', - ], - ], - [ - 'name' => 'EndTime', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query.'."\n" - ."\n" - .'The end time must be later than the start time. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2018-10-31T16:00:00Z', - ], + 'schema' => ['description' => 'The domain name accelerated by IP Application Accelerator (IPA). You can query only one domain name at a time.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], ], ], 'responses' => [ @@ -13694,123 +13790,118 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C370DAF1-C838-4288-A1A0-9A87633D248E', - ], - 'BillTypeData' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '09ABE829-6CD3-4FE0-AFEE-556113E29727'], + 'DomainDetail' => [ + 'description' => 'The details of the domain name.', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'BillTypeDataItem' => [ - 'description' => 'The information about the metering method.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'EndTime' => [ - 'description' => 'The time when the metering method ends.'."\n", - 'type' => 'string', - 'example' => '2018-10-31T16:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The time when the metering method takes effect.'."\n", - 'type' => 'string', - 'example' => '2018-10-30T16:00:00Z', - ], - 'BillingCycle' => [ - 'description' => 'The metering cycle.'."\n", - 'type' => 'string', - 'example' => 'month', - ], - 'Product' => [ - 'description' => 'The name of the service.'."\n", - 'type' => 'string', - 'example' => 'dcdn', - ], - 'BillType' => [ - 'description' => 'The metering method. Valid values:'."\n" - ."\n" - .'* **hour_flow**: pay by hourly traffic'."\n" - .'* **day_bandwidth**: pay by daily bandwidth'."\n" - .'* **month\\_95**: pay by monthly 95th percentile'."\n" - .'* **month_avg_day_bandwidth**: pay by average daily peak bandwidth per month'."\n" - .'* **month\\_4th_day_bandwidth**: pay by 4th peak bandwidth per month'."\n" - .'* **month_avg_day\\_95**: pay by average daily 95th percentile per month'."\n" - .'* **month\\_95\\_night_half**: pay by 95th percentile (50% off during nighttime)'."\n" - .'* **hour_vas**: pay by value-added service per month'."\n" - .'* **quic_hour_count**: pay by QUIC request per hour'."\n" - .'* **hour_count**: pay by request per hour'."\n" - .'* **rtlog_count_day**: pay by the number of real-time logs per day'."\n", - 'type' => 'string', - 'example' => 'month_avg_day_bandwidth_overseas', - ], - 'Dimension' => [ - 'description' => 'The dimension. Valid values:'."\n" - ."\n" - .'* **flow**: network traffic and bandwidth'."\n" - .'* **vas**: value-added services (HTTPS and requests for dynamic content)'."\n" - .'* **websocket**: WebSocket'."\n" - .'* **quic**: QUIC requests'."\n" - .'* **rtlog2sls**: log entries delivered to Log Service in real time'."\n", - 'type' => 'string', - 'example' => 'flow', + 'GmtCreated' => ['description' => 'The time when the domain name was created.', 'type' => 'string', 'title' => '', 'example' => '2017-11-27T06:51:26Z'], + 'SSLPub' => ['description' => 'The public key of the certificate if HTTPS is enabled.', 'type' => 'string', 'title' => '', 'example' => 'SSLPub'], + 'Description' => ['description' => 'The description.', 'type' => 'string', 'title' => '', 'example' => 'audit failed'], + 'SSLProtocol' => ['description' => 'Indicates whether an SSL certificate is enabled. Valid values:'."\n" + ."\n" + .'- **on**: enabled.'."\n" + ."\n" + .'- **off**: disabled.', 'type' => 'string', 'title' => '', 'example' => 'on'], + 'ResourceGroupId' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'title' => '', 'example' => 'rg-acfmyuji4b6xxxx'], + 'CertName' => ['description' => 'The name of the certificate if HTTPS is enabled.', 'type' => 'string', 'title' => '', 'example' => 'yourCertName'], + 'Scope' => ['description' => 'The acceleration region. Valid values:'."\n" + ."\n" + .'- domestic: the Chinese mainland only.'."\n" + ."\n" + .'- overseas: global (excluding the Chinese mainland).'."\n" + ."\n" + .'- global: global.', 'type' => 'string', 'title' => '', 'example' => 'overseas'], + 'Cname' => ['description' => 'The CNAME of the domain name.', 'type' => 'string', 'title' => '', 'example' => 'example.com'], + 'DomainStatus' => ['description' => 'The status of the accelerated domain name. Valid values:'."\n" + ."\n" + .'- **online**: enabled.'."\n" + ."\n" + .'- **offline**: disabled.'."\n" + ."\n" + .'- **configuring**: configuring.'."\n" + ."\n" + .'- **configure\\_failed**: configuration failed.'."\n" + ."\n" + .'- **checking**: under review.'."\n" + ."\n" + .'- **check\\_failed**: review failed.', 'type' => 'string', 'title' => '', 'example' => 'online'], + 'GmtModified' => ['description' => 'The time when the domain name was last modified.', 'type' => 'string', 'title' => '', 'example' => '2017-11-27T06:51:26Z'], + 'DomainName' => ['description' => 'The domain name that is accelerated by IPA.', 'type' => 'string', 'title' => '', 'example' => 'example.com'], + 'Sources' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Source' => [ + 'description' => 'The information about the origin server.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => 'The type of the origin server. Valid values:'."\n" + ."\n" + .'- **ipaddr**: an IP address.'."\n" + ."\n" + .'- **domain**: a domain name.'."\n" + ."\n" + .'- **oss**: an OSS bucket.', 'type' => 'string', 'title' => '', 'example' => 'oss'], + 'Weight' => ['description' => 'The weight of the origin server.', 'type' => 'string', 'title' => '', 'example' => '10'], + 'Enabled' => ['description' => 'The status of the origin server.', 'type' => 'string', 'title' => '', 'example' => 'online'], + 'Priority' => ['description' => 'The priority.', 'type' => 'string', 'title' => '', 'example' => '50'], + 'Port' => ['description' => 'A custom port. Valid values: **0** to **65535**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '80'], + 'Content' => ['description' => 'The origin URL.', 'type' => 'string', 'title' => '', 'example' => 'xxx.oss-cn-hangzhou.aliyuncs.com'], + ], + 'description' => '', + 'title' => '', ], + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], ], + 'title' => '', ], ], 'description' => '', + 'title' => '', ], ], ], - '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' => 'DescribeDcdnUserBillType', + 'title' => 'DescribeDcdnIpaDomainDetail', + 'summary' => 'Call DescribeDcdnIpaDomainDetail to get the basic configuration of a specified accelerated domain name.', + 'description' => '> Call frequency for a single user: 30 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnUserResourcePackage' => [ - 'summary' => 'Queries information about the resource plans in your Alibaba Cloud account.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2022-10-27T02:41:56.000Z', 'description' => 'Error codes changed'], ], - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnIpaService' => [ + 'summary' => 'Call DescribeDcdnIpaService to query the status of the DCDN IP Application Accelerator (IPA) service. The returned information includes the current billing method, service activation time, the next billing method to take effect, and the current service status.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -13821,160 +13912,100 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111562', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeCode' => '111529', + 'abilityTreeNodes' => ['FEATUREdcdnZA9EPX'], 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [ - [ - 'name' => 'Status', - 'in' => 'query', - 'schema' => [ - 'description' => 'The status of the resource plan. Valid values:'."\n" - ."\n" - .'* **valid**: valid'."\n" - .'* **closed**: expired'."\n" - .'* If you leave this parameter empty, all resource plans are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'valid', - 'default' => 'valid', - ], - ], - ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'Schema of data.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '96ED3127-EC7A-57C5-AFA6-A689B24B2530', - ], - 'ResourcePackageInfos' => [ + 'ChangingAffectTime' => ['description' => 'The time when the configuration change takes effect. The time is in GMT. This time is displayed in the console only when it is later than the current time.', 'type' => 'string', 'title' => '', 'example' => '2018-03-31T16:00:00Z'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'EF2AEBC2-EDBD-41CF-BF64-7E095D42D6EF'], + 'ChangingChargeType' => ['description' => 'The billing method that will take effect next. Valid values:'."\n" + ."\n" + .'- **PayByTraffic**: pay-by-traffic.'."\n" + .'- **PayByBandwidth**: pay-by-bandwidth.'."\n" + .'- **PayByBandwidth95**: 95th percentile bandwidth (monthly).'."\n" + .'- **PayByBandwidth\\_monthavg**: average daily peak bandwidth (monthly).'."\n" + .'- **PayByBandwidth\\_month4th**: 4th peak bandwidth (monthly).'."\n" + .'- **PayByBandwidth\\_monthday95avg**: average 95th percentile bandwidth (monthly).'."\n" + .'- **PayByBandwidth\\_nighthalf95**: 95th percentile bandwidth with 50% off for nightly usage (monthly).', 'type' => 'string', 'title' => '', 'example' => 'PayByBandwidth'], + 'OpeningTime' => ['description' => 'The time when the service was activated. The time is in the ISO 8601 standard.', 'type' => 'string', 'title' => '', 'example' => '2018-03-19T11:16:11Z'], + 'InternetChargeType' => ['description' => 'The current billing method. Valid values:'."\n" + ."\n" + .'- **PayByTraffic**: pay-by-traffic.'."\n" + .'- **PayByBandwidth**: pay-by-bandwidth.'."\n" + .'- **PayByBandwidth95**: 95th percentile bandwidth (monthly).'."\n" + .'- **PayByBandwidth\\_monthavg**: average daily peak bandwidth (monthly).'."\n" + .'- **PayByBandwidth\\_month4th**: 4th peak bandwidth (monthly).'."\n" + .'- **PayByBandwidth\\_monthday95avg**: average 95th percentile bandwidth (monthly).'."\n" + .'- **PayByBandwidth\\_nighthalf95**: 95th percentile bandwidth with 50% off for nightly usage (monthly).', 'type' => 'string', 'title' => '', 'example' => 'PayByBandwidth'], + 'InstanceId' => ['description' => 'The instance ID.', 'type' => 'string', 'title' => '', 'example' => '1883927335936173'], + 'OperationLocks' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'ResourcePackageInfo' => [ - 'description' => 'The detailed information about resource plans. The returned information is displayed in the format that is specified by the ResourcePackageInfo parameter.'."\n", + 'LockReason' => [ + 'description' => 'The lock status of the service.', 'type' => 'array', 'items' => [ - 'description' => 'The detailed information about resource plans. The returned information is displayed in the format that is specified by the ResourcePackageInfo parameter.'."\n", 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The expiration time. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'example' => '2022-08-24T16:00:00Z', - ], - 'Status' => [ - 'description' => 'The status of the resource plan. Valid values:'."\n" - ."\n" - .'* **valid**: valid'."\n" - .'* **closed**: expired'."\n", - 'type' => 'string', - 'example' => 'valid', - ], - 'DisplayName' => [ - 'description' => 'The name of the resource plan.'."\n", - 'type' => 'string', - 'example' => 'HTTPS requests for static content'."\n", - ], - 'StartTime' => [ - 'description' => 'The validation time. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'example' => '2021-08-24T04:09:22Z', - ], - 'CommodityCode' => [ - 'description' => 'The commodity code of the resource plan.'."\n", - 'type' => 'string', - 'example' => 'dcdnpaybag', - ], - 'InstanceId' => [ - 'description' => 'The ID of the resource plan.'."\n", - 'type' => 'string', - 'example' => 'CDNFLOWBAG-cn-7pp2bihrb01ii0', - ], - 'TemplateName' => [ - 'description' => 'The name of the template.'."\n", - 'type' => 'string', - 'example' => 'FPT_dcdnpaybag_deadlineAcc_1541151058', - ], - 'CurrCapacity' => [ - 'description' => 'The remaining quota of the resource plan.'."\n" - ."\n" - .'* The unit for traffic: bytes.'."\n" - .'* The unit for requests: count.'."\n", - 'type' => 'string', - 'example' => '10000000', - ], - 'InitCapacity' => [ - 'description' => 'The total quota of the resource plan.'."\n" - ."\n" - .'* The unit for traffic: bytes.'."\n" - .'* The unit for requests: count.'."\n", - 'type' => 'string', - 'example' => '10000000', - ], - 'Region' => [ - 'type' => 'string', - ], - 'CurrCapacityShowValue' => [ - 'type' => 'string', - ], - 'CurrCapacityShowUnit' => [ - 'type' => 'string', - ], - 'CurrCapacityBaseUnit' => [ - 'type' => 'string', - ], - 'InitCapacityShowValue' => [ - 'type' => 'string', - ], - 'InitCapacityShowUnit' => [ - 'type' => 'string', - ], - 'InitCapacityBaseUnit' => [ - 'type' => 'string', - ], + 'LockReason' => ['description' => 'The reason why the service is locked. For example, **financial** indicates an overdue payment.', 'type' => 'string', 'title' => '', 'example' => 'financial'], ], + 'description' => '', + 'title' => '', ], + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], ], ], 'errorCodes' => [ 403 => [ - [ - 'errorCode' => 'DcdnServiceNotFound', - 'errorMessage' => 'The DCDN service is not activated.', - ], + ['errorCode' => 'DcdnIpaServiceNotFound', 'errorMessage' => 'The DCDN IPA service has not been activated.', 'description' => 'IPA is not activated for DCDN.'], ], ], - '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' => 'DescribeDcdnUserResourcePackage', - 'description' => 'The maximum number of times that each user can call this operation per second is 30.', + 'title' => 'DescribeDcdnIpaService', + 'description' => '> The call frequency for a single user is limited to 20 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainUsageData' => [ - 'summary' => 'Queries resource usage about domain names in a billable region.', - '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnIpaUserDomains' => [ + 'summary' => 'Call the DescribeDcdnIpaUserDomains operation to query all IP Application Accelerator (IPA) domain names that belong to your account. You can perform a fuzzy search or filter the domain names by status.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -13985,286 +14016,240 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111521', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of domain names to return on each page. The default value is **20**. The maximum value is **500**. Valid values: **1** to **500**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'default' => '20', 'example' => '5', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number. Valid values: **1** to **100000**. The default value is **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''], + ], + [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. You can specify up to 100 domain names in each request. Separate multiple domain names with commas (,).'."\n" - ."\n" - .'> If you do not specify this parameter, the usage data of all accelerated domain names that belong to your Alibaba Cloud account is returned.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'Filter results by domain name.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], ], [ - 'name' => 'StartTime', + 'name' => 'DomainStatus', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> The minimum time granularity at which the data is queried is 5 minutes.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2015-12-10T20:00:00Z', - ], + 'schema' => ['description' => 'Filter results by domain name status. Valid values:'."\n" + ."\n" + .'- **online**: Enabled.'."\n" + ."\n" + .'- **offline**: Disabled.'."\n" + ."\n" + .'- **configuring**: Configuring.'."\n" + ."\n" + .'- **configure\\_failed**: Configuration failed.'."\n" + ."\n" + .'- **checking**: Under review.'."\n" + ."\n" + .'- **check\\_failed**: Review failed.', 'type' => 'string', 'required' => false, 'example' => 'online', 'title' => ''], ], [ - 'name' => 'EndTime', + 'name' => 'DomainSearchType', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time. The maximum time range that can be queried is 31 days.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2015-12-10T22:00:00Z', - ], + 'schema' => ['description' => 'The search method for the domain name. Valid values:'."\n" + ."\n" + .'- **full\\_match** (default): Exact match.'."\n" + ."\n" + .'- **fuzzy\\_match**: Fuzzy match.'."\n" + ."\n" + .'- **pre\\_match**: Prefix match.'."\n" + ."\n" + .'- **suf\\_match**: Suffix match.', 'type' => 'string', 'required' => false, 'example' => 'fuzzy_match', 'title' => ''], ], [ - 'name' => 'Field', + 'name' => 'CheckDomainShow', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of data that you want to query. Valid values:'."\n" - ."\n" - .'* **bps**: bandwidth'."\n" - .'* **traf**: traffic'."\n" - .'* **acc**: requests'."\n" - ."\n" - .'> **acc** does not support the **Area** parameter.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'bps', - ], + 'schema' => ['description' => 'Specifies whether to display domain names that are under review, failed the review, or have failed configurations. Valid values:'."\n" + ."\n" + .'- **true**: Display.'."\n" + ."\n" + .'- **false**: Do not display.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ - 'name' => 'Type', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the requests. Valid values:'."\n" - ."\n" - .'* **static**: static requests'."\n" - .'* **dynamic**: dynamic requests'."\n" - .'* **all**: all requests'."\n" - ."\n" - .'Default value: **all**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'dynamic', - 'default' => 'all', - ], + 'schema' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmyuji4b6r4**', 'title' => ''], ], [ - 'name' => 'DataProtocol', + 'name' => 'FuncId', 'in' => 'query', - 'schema' => [ - 'description' => 'The protocol of the data to query. Valid values:'."\n" - ."\n" - .'* **quic**: Quick UDP Internet Connections (QUIC)'."\n" - .'* **https**: HTTPS'."\n" - .'* **http**: HTTP'."\n" - .'* **all**: all the preceding protocols'."\n" - ."\n" - .'Default value: **all**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'all', - 'default' => 'all', - ], + 'schema' => ['description' => 'The ID of the feature. For example, a value of 7 specifies the path-based expiration feature. For more information about feature IDs, see [Features of DCDN domain names](~~410622~~).', 'type' => 'string', 'required' => false, 'example' => '7', 'title' => ''], ], [ - 'name' => 'Area', + 'name' => 'FuncFilter', 'in' => 'query', - 'schema' => [ - 'description' => 'The billable region. Valid values:'."\n" - ."\n" - .'* **CN**: Chinese mainland'."\n" - .'* **OverSeas**: outside the Chinese mainland'."\n" - .'* **AP1**: Asia Pacific 1'."\n" - .'* **AP2**: Asia Pacific 2'."\n" - .'* **AP3**: Asia Pacific 3'."\n" - .'* **NA**: North America'."\n" - .'* **SA**: South America'."\n" - .'* **EU**: Europe'."\n" - .'* **MEAA**: Middle East and Africa'."\n" - .'* **all**: all the preceding billable regions'."\n" - ."\n" - .'Default value: **CN**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'CN', - 'default' => 'CN', - ], + 'schema' => ['description' => 'The filter for the feature.'."\n" + ."\n" + .'- config: The feature is enabled.'."\n" + ."\n" + .'- unconfig: The feature is not enabled.', 'type' => 'string', 'required' => false, 'example' => 'config', 'title' => ''], ], [ - 'name' => 'Interval', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The time interval between the data entries to return. Unit: seconds.'."\n" - ."\n" - .'The time interval varies with the maximum time range per query. Valid values: 300 (5 minutes), 3600 (1 hour), and 86400 (1 day). For more information, see **Usage notes**.'."\n", - 'type' => 'string', + 'description' => 'The list of tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'The details of the tag.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The key of tag N. N is an integer from 1 to 20. You can call the TagDcdnResources operation to add tags to a domain name.', 'type' => 'string', 'required' => false, 'example' => '1', 'title' => ''], + 'Value' => ['description' => 'The value of tag N. N is an integer from 1 to 20.', 'type' => 'string', 'required' => false, 'example' => '1', 'title' => ''], + ], + 'required' => false, + 'title' => '', + 'example' => '', + ], 'required' => false, - 'example' => '300', + 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'DomainName' => [ - 'description' => 'The accelerated domain name that was queried.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2015-12-10T22:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The beginning of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2015-12-10T20:00:00Z', - ], - 'Type' => [ - 'description' => 'The type of the returned data.'."\n", - 'type' => 'string', - 'example' => 'bps', - ], - 'Area' => [ - 'description' => 'The billable region where the usage data was collected.'."\n", - 'type' => 'string', - 'example' => 'CN', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', - ], - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '/', - ], - 'UsageDataPerInterval' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'AA75AADB-5E25-4970-B480-EAA1F5658483', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the returned page.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''], + 'PageSize' => ['description' => 'The number of domain names returned per page.', 'type' => 'integer', 'format' => 'int64', 'example' => '20', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''], + 'Domains' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DataModule' => [ - 'description' => 'The traffic that was collected at each interval.'."\n", + 'PageData' => [ + 'description' => 'The list of domain names and their status information.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'TimeStamp' => [ - 'description' => 'The timestamp of the returned data.'."\n", - 'type' => 'string', - 'example' => '2015-12-10T21:30:00Z', - ], - 'PeakTime' => [ - 'description' => 'The time of the peak bandwidth value if the **Field** parameter in the request is set to **bps**. Otherwise, this parameter returns the same value as the **TimeStamp** parameter.'."\n", - 'type' => 'string', - 'example' => '2015-12-10T21:30:00Z', - ], - 'Value' => [ - 'description' => 'The usage.'."\n", - 'type' => 'string', - 'example' => '4233041**', - ], - 'SpecialValue' => [ - 'description' => 'The data usage in a specific scenario.'."\n" - ."\n" - .'> This parameter indicates the data usage in a specific scenario. If no special billable item is specified, ignore this parameter.'."\n", - 'type' => 'string', - 'example' => '4233041**', + 'GmtCreated' => ['description' => 'The time when the accelerated domain name was created.', 'type' => 'string', 'example' => '2015-10-28T09:32:51Z', 'title' => ''], + 'Description' => ['description' => 'The reason why the review failed.', 'type' => 'string', 'example' => 'audit failed', 'title' => ''], + 'SSLProtocol' => ['description' => 'Indicates whether HTTPS is enabled.'."\n" + ."\n" + .'- **on**: Enabled.'."\n" + ."\n" + .'- **off**: Disabled.', 'type' => 'string', 'example' => 'on', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'example' => 'abcd1234abcd****', 'title' => ''], + 'Sandbox' => ['description' => 'The sandbox.', 'type' => 'string', 'example' => 'normal', 'title' => ''], + 'DomainStatus' => ['description' => 'The status of the accelerated domain name. Valid values:'."\n" + ."\n" + .'- **online**: Enabled.'."\n" + ."\n" + .'- **offline**: Disabled.'."\n" + ."\n" + .'- **configuring**: Configuring.'."\n" + ."\n" + .'- **configure\\_failed**: Configuration failed.'."\n" + ."\n" + .'- **checking**: Under review.'."\n" + ."\n" + .'- **check\\_failed**: Review failed.', 'type' => 'string', 'example' => 'online', 'title' => ''], + 'Cname' => ['description' => 'The CNAME assigned to the accelerated domain name.', 'type' => 'string', 'example' => 'example.com.*.com', 'title' => ''], + 'GmtModified' => ['description' => 'The time when the accelerated domain name was last modified.', 'type' => 'string', 'example' => '2015-10-28T11:05:52Z', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'Sources' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Source' => [ + 'description' => 'The information about the origin server.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => 'The type of the origin server.', 'type' => 'string', 'example' => 'OSS domain name', 'title' => ''], + 'Weight' => ['description' => 'The weight of the origin server for origin fetch.', 'type' => 'string', 'example' => '20', 'title' => ''], + 'Priority' => ['description' => 'The priority.', 'type' => 'string', 'example' => '20', 'title' => ''], + 'Port' => ['description' => 'The port of the origin server.', 'type' => 'integer', 'format' => 'int32', 'example' => '80', 'title' => ''], + 'Content' => ['description' => 'The address of the origin server.', 'type' => 'string', 'example' => '*.aliyuncs.com', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'The PageNumber parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'InvalidPageSize.ValueNotSupported', 'errorMessage' => 'The specified value of PageSize is invalid.', 'description' => 'The PageSize parameter is set to an invalid. Specify a valid value and try again.'], + ['errorCode' => 'InvalidDomainStatus.ValueNotSupported', 'errorMessage' => 'The specified value of DomainStatus is invalid.', 'description' => 'The DomainStatus parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => 'The specified domain name is invalid.'], + ['errorCode' => 'InvalidDomainSearchType.ValueNotSupported', 'errorMessage' => 'The specified value of DomainSearchType is invalid.', 'description' => 'The DomainSearchType parameter is set to an invalid value. Specify a valid value and try again.'], ], ], - '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' => 'DescribeDcdnDomainUsageData', - 'description' => '* You can call this operation up to 10 times per second per account.'."\n" - .'* Usage data includes traffic (measured in bytes), bandwidth values (measured in bit/s), and the number of requests.'."\n" - ."\n" - .'**Time granularity**'."\n" - ."\n" - .'The time granularity supported by the Interval parameter, the maximum time period within which historical data is available, and the data delay vary with the maximum time range per query, as described in the following table.'."\n" - ."\n" - .'|Time granularity|Maximum time range per query|Historical data available|Data delay|'."\n" - .'|---|---|---|---|'."\n" - .'|5 minutes|3 days|93 days|15 minutes|'."\n" - .'|1 hour|31 days|186 days|4 hours|'."\n" - .'|1 day|366 days|366 days|04:00 on the next day|', + 'staticInfo' => [], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'DescribeDcdnIpaUserDomains', + 'description' => '> The call frequency limit for a single user is 30 calls per second.', + 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnBgpBpsData' => [ - 'summary' => 'Queries bandwidth data for Border Gateway Protocol (BGP) accelerated domain names. Data is collected every 5 minutes.', - '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/*'], + ], + ], + ], ], + 'translator' => 'machine', + ], + 'DescribeDcdnKvAccount' => [ + 'summary' => 'Queries your account and its namespaces.', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -14275,180 +14260,211 @@ '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' => 'The ISPs. If you need to specify multiple ISPs, separate them with commas (,). If you specify multiple ISPs, the data for the ISPs is aggregated. If you do not specify this parameter, the operation returns the data for all the ISPs.'."\n" - ."\n" - .'Valid values:'."\n" - ."\n" - .'* cu: China Unicom'."\n" - .'* cmi: China Mobile'."\n" - .'* ct: China Telecom'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cu', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the account.'."\n" + ."\n" + .'- **online**: The account is active.'."\n" + ."\n" + .'- **offline**: The account is shut down.', 'type' => 'string', 'example' => 'online', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C', 'title' => ''], + 'NamespaceUsed' => ['description' => 'The number of namespaces created for the account.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'NamespaceQuota' => ['description' => 'The maximum number of namespaces that can be created for the account.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'CapacityString' => ['description' => 'The total available capacity of all namespaces in the account.', 'type' => 'string', 'example' => '1 GB', 'title' => ''], + 'CapacityUsedString' => ['description' => 'The total used capacity of all namespaces in the account.', 'type' => 'string', 'example' => '100 MB', 'title' => ''], + 'NamespaceList' => [ + 'description' => 'The list of namespaces in the account.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the namespace. Valid values:'."\n" + ."\n" + .'- **online**: Normal.'."\n" + ."\n" + .'- **delete**: The namespace is pending deletion.'."\n" + ."\n" + .'- **deleting**: The namespace is being deleted.'."\n" + ."\n" + .'- **deleted**: The namespace is deleted.', 'type' => 'string', 'example' => 'online', 'title' => ''], + 'Namespace' => ['description' => 'The name of the namespace.', 'type' => 'string', 'example' => 'ns1', 'title' => ''], + 'NamespaceId' => ['description' => 'The ID of the namespace.', 'type' => 'string', 'example' => '12423131231****', 'title' => ''], + 'Description' => ['description' => 'The description of the namespace.', 'type' => 'string', 'example' => 'the first namespace', 'title' => ''], + 'CapacityString' => ['description' => 'The available capacity of the namespace.', 'type' => 'string', 'example' => '1 GB', 'title' => ''], + 'CapacityUsedString' => ['description' => 'The used capacity of the namespace.', 'type' => 'string', 'example' => '100 MB', 'title' => ''], + 'Capacity' => ['description' => 'The available capacity of the namespace, in bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '1073741824', 'title' => ''], + 'CapacityUsed' => ['description' => 'The used capacity of the namespace, in bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '10048576', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'Capacity' => ['description' => 'The total available capacity of all namespaces in the account, in bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '1073741824', 'title' => ''], + 'CapacityUsed' => ['description' => 'The total used capacity of all namespaces in the account, in bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '10048576', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'The minimum data collection interval is an hour.'."\n" - ."\n" - .'If you do not set this parameter, data collected in the last 24 hours is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-11-29T00:00:00Z', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'The parameter is set to an invalid value.'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => 'The account is invalid. Check whether an account is specified.'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'The namespace is invalid. Check whether a namespace is specified.'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'The key is invalid. Check whether a key is specified.'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'The key cannot exceed 512 bytes in length.'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'The value cannot exceed 2,000,000 bytes in length.'], ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-11-30T00:00:00Z', - ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'The capacity of the namespace has reached the upper limit. Each namespace can be at most 1 GB.'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => 'An authentication parameter is set to an invalid value.'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => 'The authentication time parameter you entered is invalid. Check the parameter value and try again.'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => 'The token you entered is invalid. Please check and enter the correct token and try again.'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => 'The specified resource is invalid.'], ], [ - 'name' => 'Interval', - 'in' => 'query', - 'schema' => [ - 'description' => 'The data collection interval. Unit: seconds. Valid values: 300 and 3600. Default value: 300. The default value of 300 seconds is equal to 5 minutes. The value of this parameter varies based on the time range from the specified start time to the specified end time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account does not exist.', 'description' => 'The specified account does not exist.'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'The specified namespace does not exist.'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => 'The specified key does not exist.'], + ], + 406 => [ + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'The namespace already exists.'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'The number of namespaces has reached the upper limit.'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'The number of keys has reached the upper limit.'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests are submitted.', 'description' => 'Do not send requests at a high frequency.'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'Do not perform the key put/delete operation at a high frequency.'], ], + ], + 'title' => 'DescribeDcdnKvAccount', + 'changeSet' => [ + ['createdAt' => '2024-08-21T05:56:51.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-08-20T08:19:40.000Z', 'description' => 'Response parameters changed, Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnKvAccount'], + ], + ], + 'ramActions' => [ [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the device. If you specify this parameter, the data of the device is returned. Otherwise, the data of all devices is returned.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'devicename', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnKvAccount', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnKvAccountStatus' => [ + 'summary' => 'Queries the status of the key-value (KV) store for an account.', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'DevicePort', - 'in' => 'query', - 'schema' => [ - 'description' => 'The port of the device. If you specify this parameter, the data of the port is returned. Otherwise, the data of all ports is returned. This parameter takes effect only when the **DeviceName** parameter is specified.'."\n", - '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' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2018-11-30T00:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The start of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2018-11-29T00:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'E9D3257A-1B7C-414C-90C1-8D07AC47BCAC', - ], - 'BgpDataInterval' => [ - 'description' => 'The BGP bandwidth data that is collected for each interval.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Out' => [ - 'description' => 'The outbound bandwidth. Unit: bit/s.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '183', - ], - 'In' => [ - 'description' => 'The inbound bandwidth. Unit: bit/s.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '318', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the returned data.'."\n", - 'type' => 'string', - 'example' => '2018-11-29T20:00:00Z', - ], - ], - ], - ], + 'Status' => ['description' => 'The status of the account.'."\n" + ."\n" + .'- **online**: Enabled.'."\n" + .'- **offline**: Disabled.', 'type' => 'string', 'title' => '', 'example' => 'online'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '5C1E43DC-9E51-4771-82C0-7D5ECEB547A1'], ], + 'description' => '', + 'title' => '', ], ], ], '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' => 'The parameter is set to an invalid value.'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => 'The account is invalid. Check whether an account is specified.'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'The namespace is invalid. Check whether a namespace is specified.'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'The key is invalid. Check whether a key is specified.'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'The key cannot exceed 512 bytes in length.'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'The value cannot exceed 2,000,000 bytes in length.'], + ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'The capacity of the namespace has reached the upper limit. Each namespace can be at most 1 GB.'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => 'An authentication parameter is set to an invalid value.'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => 'The authentication time parameter you entered is invalid. Check the parameter value and try again.'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => 'The token you entered is invalid. Please check and enter the correct token and try again.'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => 'The specified resource is invalid.'], + ], + [ + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account does not exist.', 'description' => 'The specified account does not exist.'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'The specified namespace does not exist.'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => 'The specified key does not exist.'], + ], + 406 => [ + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'The namespace already exists.'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'The number of namespaces has reached the upper limit.'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'The number of keys has reached the upper limit.'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests are submitted.', 'description' => 'Do not send requests at a high frequency.'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'Do not perform the key put/delete operation at a high frequency.'], ], ], - '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' => 'DescribeDcdnBgpBpsData', - 'description' => '* If you do not set the StartTime or EndTime parameter, the request returns the data collected in the last 24 hours. If you set both the StartTime and EndTime parameters, the request returns the data collected within the specified time range. You must set both parameters or leave both of them empty.'."\n" - .'* If you specify multiple Internet service providers (ISPs), the data for the ISPs is aggregated.'."\n" - .'* You can query data in the last 90 days.'."\n" - .'* The maximum time range from the start time to the end time is 31 days. The start time is specified by the StartTime parameter and the end time is specified by the EndTime parameter.'."\n" - .'* If the time range from the start time to the end time is 72 hours or shorter, you can specify the interval as 5 minutes. If the time range is longer than 72 hours, you must specify the interval as 1 hour.'."\n" - .'* You can call this operation up to five times per second per account.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnBgpTrafficData' => [ - 'summary' => 'Queries traffic data for BGP accelerated domain names. Data is collected every 5 minutes.', - 'methods' => [ - 'get', - 'post', + 'title' => 'DescribeDcdnKvAccountStatus', + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Status\\": \\"online\\",\\n \\"RequestId\\": \\"5C1E43DC-9E51-4771-82C0-7D5ECEB547A1\\"\\n}","type":"json"}]', + ], + 'DescribeDcdnKvNamespace' => [ + 'summary' => 'Describes a namespace.', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -14459,158 +14475,184 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '121114', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Isp', + 'name' => 'Namespace', 'in' => 'query', + 'schema' => ['description' => 'The namespace name.', 'type' => 'string', 'required' => true, 'maxLength' => 64, 'pattern' => '^[0-9a-zA-Z_-]+$', 'title' => '', 'example' => 'ns1'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The ISP. Separate multiple ISPs with commas (,). If you specify multiple ISPs, the data for the ISPs is aggregated. If you do not specify this parameter, the operation returns the data for all the ISPs.'."\n" - ."\n" - .'Valid values:'."\n" - ."\n" - .'* cu: China Unicom'."\n" - .'* cmi: China Mobile'."\n" - .'* ct: China Telecom'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cu', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the namespace. Valid values:'."\n" + ."\n" + .'- **online**: Normal.'."\n" + ."\n" + .'- **delete**: Pending deletion.'."\n" + ."\n" + .'- **deleting**: Deleting.'."\n" + ."\n" + .'- **deleted**: Deleted.', 'type' => 'string', 'title' => '', 'example' => 'online'], + 'Namespace' => ['description' => 'The namespace name.', 'type' => 'string', 'title' => '', 'example' => 'ns1'], + 'NamespaceId' => ['description' => 'The namespace ID.', 'type' => 'string', 'title' => '', 'example' => '12423131231****'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C'], + 'Description' => ['description' => 'The namespace description.', 'type' => 'string', 'title' => '', 'example' => 'the first namespace'], + 'CapacityString' => ['description' => 'The available capacity of the namespace.', 'type' => 'string', 'title' => '', 'example' => '1 GB'], + 'CapacityUsedString' => ['description' => 'The used capacity of the namespace.', 'type' => 'string', 'title' => '', 'example' => '100 MB'], + 'Mode' => ['description' => 'The mode.'."\n" + ."\n" + .'- Normal mode: The default mode. If a key-value (KV) pair is not found on an edge node, the node queries the central data center for the KV pair to ensure global data consistency.'."\n" + ."\n" + .'- Rapid mode: If a KV pair is not found on an edge node, the node returns a "key not found" message without querying the central data center. This mode improves KV query performance but may reduce the KV query hit rate. To enable this mode, submit a ticket.', 'type' => 'string', 'title' => '', 'example' => 'Normal'], + 'Capacity' => ['type' => 'integer', 'format' => 'int64', 'description' => 'The available capacity of the namespace, in bytes.', 'title' => '', 'example' => '1073741824'], + 'CapacityUsed' => ['type' => 'integer', 'format' => 'int64', 'description' => 'The used capacity of the namespace, in bytes.', 'title' => '', 'example' => '10048576'], + ], + 'description' => '', + 'title' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'The parameter is set to an invalid value.'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => 'The account is invalid. Check whether an account is specified.'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'The namespace is invalid. Check whether a namespace is specified.'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'The key is invalid. Check whether a key is specified.'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'The key cannot exceed 512 bytes in length.'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'The value cannot exceed 2,000,000 bytes in length.'], + ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'The capacity of the namespace has reached the upper limit. Each namespace can be at most 1 GB.'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => 'An authentication parameter is set to an invalid value.'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => 'The authentication time parameter you entered is invalid. Check the parameter value and try again.'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => 'The token you entered is invalid. Please check and enter the correct token and try again.'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => 'The specified resource is invalid.'], + ], [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'The minimum data collection interval is an hour.'."\n" - ."\n" - .'If you do not set this parameter, data collected in the last 24 hours is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-11-29T00:00:00Z', - ], + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account does not exist.', 'description' => 'The specified account does not exist.'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'The specified namespace does not exist.'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => 'The specified key does not exist.'], + ], + 406 => [ + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'The namespace already exists.'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'The number of namespaces has reached the upper limit.'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'The number of keys has reached the upper limit.'], ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests are submitted.', 'description' => 'Do not send requests at a high frequency.'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'Do not perform the key put/delete operation at a high frequency.'], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeDcdnKvNamespace', + 'changeSet' => [ + ['createdAt' => '2025-04-02T06:58:00.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-08-20T09:12:55.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-03-21T09:43:49.000Z', 'description' => 'Response parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnKvNamespace'], + ], + ], + 'ramActions' => [ [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-11-30T00:00:00Z', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnKvNamespace', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => 'The data collection interval. Unit: seconds. Valid values: 300 and 3600. Default value: 300. The default value of 300 seconds is equal to 5 minutes. The value of this parameter varies based on the time range from the specified start time to the specified end time.'."\n", - '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' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2018-11-30T00:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The start of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2018-11-29T00:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'E9D3257A-1B7C-414C-90C1-8D07AC47BCAC', - ], - 'BgpDataInterval' => [ - 'description' => 'The BGP traffic at each time interval.'."\n", + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.', 'type' => 'string', 'example' => 'C370DAF1-C838-4288-A1A0-9A87633D248E'], + 'Vips' => [ + 'description' => 'The CIDR blocks of the POPs.', 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Out' => [ - 'description' => 'The outbound traffic. Unit: bytes.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '183', - ], - 'In' => [ - 'description' => 'The inbound traffic. Unit: bytes.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '318', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the data returned.'."\n", - 'type' => 'string', - 'example' => '2018-11-29T20:00:00Z', - ], - ], - ], + 'items' => ['description' => 'The CIDR blocks of the POP.', 'type' => 'string', 'example' => '111.XXX.XXX.111/25', 'title' => ''], + 'title' => '', + 'example' => '', ], ], + 'example' => '', ], ], ], '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' => 'The user did not configure the required configuration tag information.'], ], ], - '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' => 'DescribeDcdnBgpTrafficData', - 'description' => '* If you do not set the StartTime or EndTime parameter, the request returns the data collected in the last 24 hours. If you set both these parameters, the request returns the data collected within the specified time range. You must set both parameters or leave both parameters empty.'."\n" - .'* If you specify multiple Internet service providers (ISPs), the data for the ISPs is aggregated.'."\n" - .'* You can query data in the last 90 days.'."\n" - .'* The maximum time range that you can specify is 31 days. StartTime specifies the start time and EndTime specifies the end time of the time range.'."\n" - .'* If the time range from the start time to the end time is 72 hours or shorter, you can specify the interval as 5 minutes. If the time range is longer than 72 hours, you must specify the interval as 1 hour.'."\n" - .'* You can call this operation up to five times per second per account.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainMultiUsageData' => [ - 'summary' => 'Queries the billable items of accelerated domain names. The data is collected at least every 5 minutes. The billable items do not include non-request items.', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeDcdnL2Ips', + 'summary' => 'Queries CIDR blocks of Dynamic Content Delivery Network (DCDN) points of presence (POPs).', + 'description' => '> - To use this operation, [submit a ticket](https://workorder-intl.console.aliyun.com/?spm=5176.2020520001.aliyun_topbar.18.dbd44bd3e4f845#/ticket/createIndex).'."\n" + .'>'."\n" + .'> - Each account can call this operation up to 100 times per second.', + 'changeSet' => [ + ['createdAt' => '2024-09-24T06:24:57.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnL2Ips'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnL2Ips', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C370DAF1-C838-4288-A1A0-9A87633D248E\\",\\n \\"Vips\\": [\\n \\"111.XXX.XXX.111/25\\"\\n ]\\n}","type":"json"}]', + ], + 'DescribeDcdnOriginSiteHealthStatus' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -14622,54 +14664,13 @@ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111499', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], - 'autoTest' => true, + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'If this parameter is not set, data of all your accelerated domain names is queried.'."\n" - ."\n" - .'You can specify multiple domain names and separate them with commas (,).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query.'."\n" - ."\n" - .'* Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - .'* The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.'."\n" - .'* The resolution of the queried data is 5 minutes.'."\n" - .'* If you do not set this parameter, data in the last 24 hours is queried.'."\n" - .'* You need to set both the start time and the end time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The end time must be later than the start time.'."\n" - ."\n" - .'* Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - .'* The time follows the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time is displayed in UTC.'."\n" - .'* You need to set both the start time and the end time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], + 'schema' => ['title' => 'A short description of struct', 'description' => 'The accelerated domain name. Only one domain name is supported.', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], ], 'responses' => [ @@ -14677,154 +14678,71 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range that was queried.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The beginning of the time range that was queried.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', - ], - 'RequestPerInterval' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RequestDataModule' => [ - 'description' => 'The information about requests collected every 5 minutes.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => 'The type of the requests. Valid values: StaticHttps, DynamicHttps, DynamicHttp, StaticQuic, and DynamicQuic.'."\n", - 'type' => 'string', - 'example' => 'DynamicHttp', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the data returned.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'Domain' => [ - 'description' => 'The domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'Request' => [ - 'description' => 'The number of requests.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1128', - ], - ], - ], - ], - ], - ], - 'TrafficPerInterval' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'TrafficDataModule' => [ - 'description' => 'The statistics of network traffic collected every 5 minutes.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => 'The type of the network traffic. Valid values: Simple, IPA, and WebSocket.'."\n", - 'type' => 'string', - 'example' => 'Simple', - ], - 'Domain' => [ - 'description' => 'The domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the data returned.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'Area' => [ - 'description' => 'The name of the region.'."\n", - 'type' => 'string', - 'example' => 'CN', - ], - 'Bps' => [ - 'description' => 'The number of bits per second.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '11288111.1', - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], + 'OriginSiteStatus' => [ + 'description' => 'A list of health statuses for the origin servers of the accelerated domain name.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Host' => ['description' => 'The origin domain name that you configured in the DCDN console. This can be an IPv4 address, an IPv6 address, a generic domain name, or an OSS domain name.', 'type' => 'string', 'example' => 'host.com', 'title' => ''], + 'HealthStatus' => ['description' => 'DCDN nodes periodically send probe requests to your origin domain name. A probe is successful if a response is received from the origin server within 5 seconds. The health status of the origin server is calculated based on the success rate of these probes across all nodes. The health statuses are described as follows:'."\n" + ."\n" + .'- unknown: The probe data for the origin server could not be obtained. This happens because the configuration of the origin server was recently changed. Retry later.'."\n" + ."\n" + .'- healthy: The probe success rate is higher than 80%.'."\n" + ."\n" + .'- degraded: The probe success rate is greater than 0% but less than or equal to 80%.'."\n" + ."\n" + .'- critical: All probe requests to the origin server failed.', 'type' => 'string', 'example' => 'healthy', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'The specified domain name does not exist or does not belong to the current account. Check whether the domain name is valid, belongs to the current account, or has expired.'], ], ], - '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' => 'DescribeDcdnDomainMultiUsageData', - 'description' => '* If you do not set the StartTime or EndTime parameter, data within the last 10 minutes is queried. You can set both the StartTime and EndTime parameters to specify a time range.'."\n" - .'* You can specify one or more accelerated domain names. Separate domain names with commas (,).'."\n" - .'* You can query data within the last 90 days.'."\n" - .'* The time range cannot exceed 1 hour.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainPvData' => [ - 'summary' => 'Queries page view (PV) data of an accelerated domain name. Data can be collected at minimum intervals of one hour.', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeDcdnOriginSiteHealthStatus', + 'summary' => 'The DescribeDcdnOriginSiteHealthStatus operation queries the health status of the origin server for a DCDN-accelerated domain name.', + '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' => 'All Resource', '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' => 'You can call the DescribeDcdnRealTimeDeliveryField operation to query all fields for real-time logs.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -14835,40 +14753,19 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeNodes' => ['FEATUREdcdn9K10I1'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. You can specify only one domain name in each request.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The start of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2019-11-28T00:00:00Z', - ], - ], - [ - 'name' => 'EndTime', + 'name' => 'BusinessType', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2019-11-29T00:00:00Z', - ], + 'schema' => ['description' => 'The business type. Valid values:'."\n" + ."\n" + .'- **cdn\\_log\\_access\\_l1** (default): access logs of DCDN L1 nodes.'."\n" + ."\n" + .'- **cdn\\_log\\_origin**: back-to-origin logs.'."\n" + ."\n" + .'- **cdn\\_log\\_er**: EdgeRoutine logs.', 'type' => 'string', 'required' => false, 'default' => 'dcdn_log_access_l1', 'example' => 'cdn_log_access_l1', 'title' => ''], ], ], 'responses' => [ @@ -14876,97 +14773,76 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range that was queried.'."\n", - 'type' => 'string', - 'example' => '2019-11-29T00:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The beginning of the time range that was queried.'."\n", - 'type' => 'string', - 'example' => '2019-11-28T00:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'BCD7D917-76F1-442F-BB75-C810DE34C761', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '3600', - ], - 'PvDataInterval' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4', 'title' => ''], + 'Content' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'UsageData' => [ - 'description' => 'The number of PVs at each interval.'."\n", + 'Fields' => [ + 'description' => 'The response parameters.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Value' => [ - 'description' => 'The number of PVs.'."\n", - 'type' => 'string', - 'example' => '9292', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the data returned.'."\n", - 'type' => 'string', - 'example' => '2015-11-28T03:00:00Z', - ], + 'Description' => ['description' => 'The description of the field.', 'type' => 'string', 'example' => 'Access time', 'title' => ''], + 'FieldName' => ['description' => 'The name of the field. For more information, see [Fields in real-time logs](~~324199~~).', 'type' => 'string', 'example' => 'unixtime', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'Real-time log delivery does not have the required permissions.'], ], ], - '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' => 'DescribeDcdnDomainPvData', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4\\",\\n \\"Content\\": {\\n \\"Fields\\": [\\n {\\n \\"Description\\": \\"Access time\\",\\n \\"FieldName\\": \\"unixtime\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'DescribeDcdnRealTimeDeliveryField', + 'description' => '> The call frequency is limited to 100 calls per second per user.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainTopReferVisit' => [ - 'summary' => 'Queries and sorts frequently requested web pages on a specified day. You can query data collected within the last 90 days.', - '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'translator' => 'manual', + ], + 'DescribeDcdnRefreshQuota' => [ + 'summary' => 'Call DescribeDcdnRefreshQuota to query the daily limits and remaining quotas for URL refreshes, URL prefetches, and folder refreshes.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -14977,152 +14853,71 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], - ], - 'parameters' => [ - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. You can specify only one domain name.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'To query the data on a specified day, use the yyyy-MM-ddT16:00:00Z format.'."\n" - ."\n" - .'If you do not set this parameter, data collected within the last 24 hours is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-10-03T16:00:00Z', - ], - ], - [ - 'name' => 'SortBy', - 'in' => 'query', - 'schema' => [ - 'description' => 'The sorting order. Valid values:'."\n" - ."\n" - .'* **traf**: by network traffic'."\n" - .'* **pv**: by the number of visits'."\n" - ."\n" - .'Default value: **pv**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'pv', - ], - ], + 'abilityTreeCode' => '111537', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'StartTime' => [ - 'description' => 'The start of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2018-10-03T16:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '95994621-8382-464B-8762-C708E73568D1', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'TopReferList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ReferList' => [ - 'description' => 'The list of frequently referenced URLs returned.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Flow' => [ - 'description' => 'The amount of network traffic. (Unit: bytes)'."\n", - 'type' => 'string', - 'example' => '460486880', - ], - 'FlowProportion' => [ - 'description' => 'The proportion of network traffic consumed to access the URL.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - 'VisitData' => [ - 'description' => 'The number of visits.'."\n", - 'type' => 'string', - 'example' => '229567', - ], - 'ReferDetail' => [ - 'description' => 'The complete referenced URL.'."\n", - 'type' => 'string', - 'example' => '192.168.0.1', - ], - 'VisitProportion' => [ - 'description' => 'The proportion of visits to the URL.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - ], - ], - ], - ], - ], + 'BlockQuota' => ['description' => 'The daily quota for blocked URLs.', 'type' => 'string', 'example' => '100', 'title' => ''], + 'RegexRemain' => ['description' => 'The remaining number of refreshes based on regular expressions for the day.', 'type' => 'string', 'example' => '100', 'title' => ''], + 'BlockRemain' => ['description' => 'The remaining number of URLs that can be blocked for the day.', 'type' => 'string', 'example' => '100', 'title' => ''], + 'PreloadRemain' => ['description' => 'The remaining number of URLs that can be prefetched for the day.', 'type' => 'string', 'example' => '500', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '42E0554B-80F4-4921-AED6-ACFB22CAAAD0', 'title' => ''], + 'DirRemain' => ['description' => 'The remaining number of folders that can be refreshed for the day.', 'type' => 'string', 'example' => '100', 'title' => ''], + 'UrlRemain' => ['description' => 'The remaining number of URLs that can be refreshed for the day.', 'type' => 'string', 'example' => '2000', 'title' => ''], + 'DirQuota' => ['description' => 'The daily quota for folder refreshes.', 'type' => 'string', 'example' => '100', 'title' => ''], + 'UrlQuota' => ['description' => 'The daily quota for URL refreshes.', 'type' => 'string', 'example' => '2000', 'title' => ''], + 'PreloadQuota' => ['description' => 'The daily quota for URL prefetches.', 'type' => 'string', 'example' => '500', 'title' => ''], + 'RegexQuota' => ['description' => 'The daily quota for refreshes based on regular expressions.', 'type' => 'string', 'example' => '100', 'title' => ''], + 'IgnoreParamsQuota' => ['description' => 'The daily quota for refreshes that ignore URL parameters.', 'type' => 'string', 'example' => '100', 'title' => ''], + 'IgnoreParamsRemain' => ['description' => 'The remaining number of refreshes that ignore URL parameters for the day.', 'type' => 'string', 'example' => '10', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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' => 'DescribeDcdnDomainTopReferVisit', - 'description' => '* If you do not set the StartTime parameter, the data on the previous day is queried.'."\n" - .'* You can specify only one domain name.'."\n", + 'title' => 'DescribeDcdnRefreshQuota', + 'description' => '> - The refresh and prefetch API operations include **RefreshDcdnObjectCaches** and **PreloadDcdnObjectCaches**.'."\n" + .'>'."\n" + .'> - A single user can make up to 20 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainTopUrlVisit' => [ - 'summary' => 'Queries frequently requested URLs on a day.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2023-03-23T06:40:22.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-10-27T03:07:45.000Z', 'description' => 'Error codes changed'], ], - '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnRefreshTaskById' => [ + 'summary' => 'Queries the status of refresh or preload tasks by task ID to verify their completion across the network.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -15133,51 +14928,21 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnVIK4DM', - ], + 'abilityTreeCode' => '111538', + 'abilityTreeNodes' => ['FEATUREdcdnBCJPGN'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. You can specify only one domain name in each request.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The start of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'To query the data on a specified day, use the format: yyyy-MM-ddT16:00:00Z.'."\n" - ."\n" - .'> If you do not specify this parameter, the data in the last 24 hours is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-10-03T16:00:00Z', - ], - ], - [ - 'name' => 'SortBy', + 'name' => 'TaskId', 'in' => 'query', - 'schema' => [ - 'description' => 'The sorting order. Valid values:'."\n" - ."\n" - .'* **traf**: by network traffic'."\n" - .'* **pv**: by the number of visits'."\n" - ."\n" - .'Default value: **pv**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'pv', - ], + 'schema' => ['description' => 'The ID of the task to query. To get a task ID, call one of the following operations:'."\n" + ."\n" + .'- Call the [RefreshDcdnObjectCaches](~~RefreshDcdnObjectCaches~~) operation to obtain the ID of a refresh task.'."\n" + ."\n" + .'- Call the [PreloadDcdnObjectCaches](~~PreloadDcdnObjectCaches~~) operation to obtain the ID of a preload task.'."\n" + ."\n" + .'> You can specify up to 10 task IDs in a single request. Separate multiple task IDs with commas (,).', 'type' => 'string', 'required' => true, 'example' => '113681**', 'title' => ''], ], ], 'responses' => [ @@ -15185,277 +14950,103 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'StartTime' => [ - 'description' => 'The start of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2018-10-03T16:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '64D28B53-5902-409B-94F6-FD46680144FE', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'AllUrlList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'UrlList' => [ - 'description' => 'A list of frequently requested URLs.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Flow' => [ - 'description' => 'The amount of network traffic. (Unit: bytes)'."\n", - 'type' => 'string', - 'example' => '460486880', - ], - 'UrlDetail' => [ - 'description' => 'The complete URL.'."\n", - 'type' => 'string', - 'example' => 'http://example.com/nn_live/nn_x64/a0.m3u8', - ], - 'FlowProportion' => [ - 'description' => 'The proportion of network traffic consumed to access the URL.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - 'VisitData' => [ - 'description' => 'The number of visits.'."\n", - 'type' => 'string', - 'example' => '161673', - ], - 'VisitProportion' => [ - 'description' => 'The proportion of visits.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - ], - ], - ], - ], - ], - 'Url200List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'UrlList' => [ - 'description' => 'A list of URLs for which 2xx status codes were returned.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Flow' => [ - 'description' => 'The amount of network traffic. (Unit: bytes)'."\n", - 'type' => 'string', - 'example' => '460486880', - ], - 'UrlDetail' => [ - 'description' => 'The complete URL.'."\n", - 'type' => 'string', - 'example' => 'http://example.com/nn_live/nn_x64/a0.m3u8', - ], - 'FlowProportion' => [ - 'description' => 'The proportion of network traffic consumed to access the URL.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - 'VisitData' => [ - 'description' => 'The number of visits.'."\n", - 'type' => 'string', - 'example' => '161673', - ], - 'VisitProportion' => [ - 'description' => 'The proportion of visits.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - ], - ], - ], - ], - ], - 'Url300List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'UrlList' => [ - 'description' => 'A list of URLs for which 3xx status codes were returned.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Flow' => [ - 'description' => 'The amount of network traffic. (Unit: bytes)'."\n", - 'type' => 'string', - 'example' => '460486880', - ], - 'UrlDetail' => [ - 'description' => 'The complete URL.'."\n", - 'type' => 'string', - 'example' => 'http://example.com/nn_live/nn_x64/a0.m3u8', - ], - 'FlowProportion' => [ - 'description' => 'The proportion of network traffic consumed to access the URL.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - 'VisitData' => [ - 'description' => 'The number of visits.'."\n", - 'type' => 'string', - 'example' => '161673', - ], - 'VisitProportion' => [ - 'description' => 'The proportion of visits.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - ], - ], - ], - ], - ], - 'Url400List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'UrlList' => [ - 'description' => 'A list of URLs for which 4xx status codes were returned.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Flow' => [ - 'description' => 'The amount of network traffic. (Unit: bytes)'."\n", - 'type' => 'string', - 'example' => '460486880', - ], - 'UrlDetail' => [ - 'description' => 'The complete URL.'."\n", - 'type' => 'string', - 'example' => 'http://example.com/nn_live/nn_x64/a0.m3u8', - ], - 'FlowProportion' => [ - 'description' => 'The proportion of network traffic consumed to access the URL.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - 'VisitData' => [ - 'description' => 'The number of visits.'."\n", - 'type' => 'string', - 'example' => '161673', - ], - 'VisitProportion' => [ - 'description' => 'The proportion of visits.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - ], - ], - ], - ], - ], - 'Url500List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'UrlList' => [ - 'description' => 'A list of URLs for which 5xx status codes were returned.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Flow' => [ - 'description' => 'The amount of network traffic. (Unit: bytes)'."\n", - 'type' => 'string', - 'example' => '460486880', - ], - 'UrlDetail' => [ - 'description' => 'The complete URL.'."\n", - 'type' => 'string', - 'example' => 'http://example.com/nn_live/nn_x64/a0.m3u8', - ], - 'FlowProportion' => [ - 'description' => 'The proportion of network traffic consumed to access the URL.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - 'VisitData' => [ - 'description' => 'The number of visits.'."\n", - 'type' => 'string', - 'example' => '161673', - ], - 'VisitProportion' => [ - 'description' => 'The proportion of visits.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '0.35', - ], - ], - ], + 'TotalCount' => ['description' => 'The total number of tasks returned.', 'type' => 'integer', 'format' => 'int64', 'example' => '2', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'E0C2EF95-B1EC-4C93-855E-2059A7DA2B7B', 'title' => ''], + 'Tasks' => [ + 'description' => 'A list of the returned tasks.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'The status of the task. Valid values:'."\n" + ."\n" + .'- **Complete**: The task is complete.'."\n" + ."\n" + .'- **Pending**: The task is waiting to be processed.'."\n" + ."\n" + .'- **Refreshing**: The task is in progress.'."\n" + ."\n" + .'- **Timeout**: The task timed out.'."\n" + ."\n" + .'- **Canceled**: The task was canceled.'."\n" + ."\n" + .'- **Failed**: The task failed.', 'type' => 'string', 'example' => 'Complete', 'title' => ''], + 'CreationTime' => ['description' => 'The task creation time in UTC, formatted as `yyyy-MM-ddTHH:mm:ssZ`.', 'type' => 'string', 'example' => '2021-05-10T08:54:23Z', 'title' => ''], + 'ObjectType' => ['description' => 'The type of the refresh or preload task. Valid values:'."\n" + ."\n" + .'- **file**: file refresh.'."\n" + ."\n" + .'- **directory**: directory refresh.'."\n" + ."\n" + .'- **preload**: file preload.', 'type' => 'string', 'example' => 'file', 'title' => ''], + 'Process' => ['description' => 'The progress of the task as a percentage.', 'type' => 'string', 'example' => '100%', 'title' => ''], + 'Description' => ['description' => 'The error description if the task fails. Valid values:'."\n" + ."\n" + .'- **Internal Error**: An internal error occurred.'."\n" + ."\n" + .'- **Origin Timeout**: The origin server timed out.'."\n" + ."\n" + .'- **Origin Return StatusCode 5XX**: The origin server returned a 5xx status code.', 'type' => 'string', 'example' => 'Internal Error', 'title' => ''], + 'ObjectPath' => ['description' => 'The path of the refreshed or preloaded object.', 'type' => 'string', 'example' => 'http://example.com/image_01.png', 'title' => ''], + 'TaskId' => ['description' => 'The task ID.', 'type' => 'string', 'example' => '113681**', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'InvalidTaskId.Malformed', 'errorMessage' => 'The specified TaskId is invalid.', 'description' => 'The value specified for the TaskId parameter is invalid.'], + ['errorCode' => 'InvalidTaskId', 'errorMessage' => 'The maximum number of taskIds is 10.', 'description' => 'The number of task IDs (taskIds) cannot exceed 10.'], + ['errorCode' => 'InvalidTime', 'errorMessage' => 'The query time cannot exceed the last 3 days.', 'description' => 'You can query data up to the last three days.'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'The server is busy. Please try again later.', 'description' => 'The server is unavailable. Try again later.'], ], ], - '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' => 'DescribeDcdnDomainTopUrlVisit', - 'description' => '> You can query data in the last seven days.'."\n", + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'DescribeDcdnRefreshTaskById', + 'description' => '> - You can query data from the past three days.'."\n" + .'>'."\n" + .'> - You can make up to 30 requests per second per user.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainUvData' => [ - 'summary' => 'Queries the number of unique visitors (UVs) to an accelerated domain name. Data is collected every hour. You can query data within the last 90 days.', - '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeDcdnRefreshTasks' => [ + 'summary' => 'Call DescribeDcdnRefreshTasks to query the completion status of refresh and preload tasks submitted within the last 3 days.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -15466,837 +15057,656 @@ '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' => 'The accelerated domain name. You can specify only one domain name in each request.'."\n" - ."\n" - .'If you do not specify a domain name, this operation queries UV data of all accelerated domain names in your account.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The ID of the task. A task ID is returned after you create a refresh or preload task.', 'type' => 'string', 'required' => false, 'example' => '704225667', 'title' => ''], ], [ - 'name' => 'StartTime', + 'name' => 'ObjectPath', + 'in' => 'query', + 'schema' => ['description' => 'The path of the object to query. The path must be a full path.', 'type' => 'string', 'required' => false, 'example' => 'http://example.com/examplefile.txt', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The number of the page to return. Valid values: **1** to **100000**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '42949672', 'default' => '1', 'example' => '2', 'title' => ''], + ], + [ + 'name' => 'ObjectType', 'in' => 'query', 'schema' => [ - 'description' => 'The start of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", + 'description' => 'The type of the task. Valid values:'."\n" + ."\n" + .'- **file**: refreshes URLs.'."\n" + ."\n" + .'- **directory**: refreshes directories.'."\n" + ."\n" + .'- **regex**: refreshes content based on a regular expression.'."\n" + ."\n" + .'- **preload**: preloads URLs.'."\n" + ."\n" + .'This parameter is required if you specify **DomainName** or **Status**.', 'type' => 'string', 'required' => false, - 'example' => '2015-11-29T00:00:00Z', + 'enum' => ['file', 'directory', 'preload', 'IgnoreParams', 'regex'], + 'example' => 'file', + 'title' => '', ], ], [ - 'name' => 'EndTime', + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => 'The accelerated domain name. You can specify only one accelerated domain name. By default, this operation queries tasks for all accelerated domain names.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], + ], + [ + 'name' => 'Status', 'in' => 'query', 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + 'description' => 'The status of the task. Valid values:'."\n" + ."\n" + .'- **Complete**: The task is complete.'."\n" ."\n" - .'The end time must be later than the start time.'."\n", + .'- **Refreshing**: The task is in progress.'."\n" + ."\n" + .'- **Timeout**: The task timed out.'."\n" + ."\n" + .'- **Canceled**: The task is canceled.'."\n" + ."\n" + .'- **Failed**: The task failed.', 'type' => 'string', 'required' => false, - 'example' => '2015-11-30T00:00:00Z', + 'enum' => ['Complete', 'Refreshing', 'Failed'], + 'example' => 'Complete', + 'title' => '', ], ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries to return on each page. Default value: **20**. Maximum value: **50**. Valid values: **1** to **50**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'default' => '20', 'example' => '20', 'title' => ''], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2017-01-01T12:12:20Z', 'title' => ''], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the `yyyy-MM-ddTHH:mm:ssZ` format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2017-01-01T12:13:20Z', 'title' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range that was queried.'."\n", - 'type' => 'string', - 'example' => '2015-11-30T00:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The beginning of the time range that was queried.'."\n", - 'type' => 'string', - 'example' => '2015-11-29T00:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'E9D3257A-1B7C-414C-90C1-8D07AC47BCAC', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '3600', - ], - 'UvDataInterval' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '174F6032-AA26-470D-B90E-36F0EB205BEE', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int64', 'example' => '2', 'title' => ''], + 'PageSize' => ['description' => 'The page size.', 'type' => 'integer', 'format' => 'int64', 'example' => '2', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of tasks.', 'type' => 'integer', 'format' => 'int64', 'example' => '20', 'title' => ''], + 'Tasks' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'UsageData' => [ - 'description' => 'The number of UVs at each interval.'."\n", + 'Task' => [ + 'description' => 'The task list.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Value' => [ - 'description' => 'The number of UVs.'."\n", - 'type' => 'string', - 'example' => '326', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the data returned.'."\n", - 'type' => 'string', - 'example' => '2015-11-29T00:00:00Z', - ], + 'Status' => ['description' => 'The status of the task. Valid values:'."\n" + ."\n" + .'- **Complete**: The task is completed.'."\n" + ."\n" + .'- **Refreshing**: The task is in progress.'."\n" + ."\n" + .'- **Failed**: The task failed.', 'type' => 'string', 'example' => 'Complete', 'title' => ''], + 'CreationTime' => ['description' => 'The time when the task was created. The time is displayed in UTC.', 'type' => 'string', 'example' => '2014-11-27T08:23:22Z', 'title' => ''], + 'ObjectType' => ['description' => 'The type of the task. Valid values:'."\n" + ."\n" + .'- **file**: refreshes the content of a URL.'."\n" + ."\n" + .'- **path**: refreshes the content of a directory.'."\n" + ."\n" + .'- **regex**: refreshes content based on a regular expression.'."\n" + ."\n" + .'- **preload**: prefetches the content of a URL.', 'type' => 'string', 'example' => 'file', 'title' => ''], + 'Process' => ['description' => 'The progress of the task in percentage.', 'type' => 'string', 'example' => '10', 'title' => ''], + 'Description' => ['description' => 'The description of the error returned when a refresh or prefetch task fails.'."\n" + ."\n" + .'- **InternalError**: An internal error occurred.'."\n" + ."\n" + .'- **OriginTimeout**: The origin server timed out.'."\n" + ."\n" + .'- **OriginReturn StatusCode 5XX**: The origin server returned a 5xx status code.', 'type' => 'string', 'example' => 'InternalError', 'title' => ''], + 'ObjectPath' => ['description' => 'The path of the object that is refreshed.', 'type' => 'string', 'example' => 'http://example.com/examplefile.txt', 'title' => ''], + 'TaskId' => ['description' => 'The task ID.', 'type' => 'string', 'example' => '123', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'The value specified for the TaskId parameter is invalid.'], + ['errorCode' => 'MissingParameter.ObjectType', 'errorMessage' => 'The ObjectType parameter is required if DomainName or ObjectType is specified.', 'description' => 'Specify the ObjectType parameter.'], + ['errorCode' => 'MissingTimeParameter', 'errorMessage' => 'The StartTime and EndTime must be both specified.', 'description' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'DomainNameOverLimit', 'errorMessage' => 'A maximum of 500 domains are supported for each request.', 'description' => 'The number of domain names cannot exceed 500.'], + ['errorCode' => 'InvalidTime', 'errorMessage' => 'The query time cannot exceed the last 3 days.', 'description' => 'You can query data up to the last three days.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], + ['errorCode' => 'InvalidObjectType.ValueNotSupported', 'errorMessage' => 'The specified ObjectType is not supported.', 'description' => 'The specified ObjectType parameter is invalid.'], + ['errorCode' => 'InvalidStatus.ValueNotSupported', 'errorMessage' => 'The specified Status is not supported.', 'description' => 'The specified Status parameter is invalid.'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'The server is busy. Please try again later.', 'description' => 'The server is unavailable. Try again later.'], ], ], - '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' => 'DescribeDcdnDomainUvData', - 'description' => '* If you do not set the StartTime or EndTime parameter, the request returns the data collected in the last 24 hours. If you set both these parameters, the request returns the data collected within the specified time range.'."\n" - .'* You can specify only one accelerated domain name or all the accelerated domain names that belong to your Alibaba Cloud account.'."\n", + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'DescribeDcdnRefreshTasks', + 'description' => '- You can query by task ID or URL.'."\n" + ."\n" + .'- You can specify both **TaskId** and **ObjectPath**. If you provide neither parameter, the operation defaults to returning the first 20 entries from the last 3 days.'."\n" + ."\n" + .'- You can only query data from the last 3 days.'."\n" + ."\n" + .'- If you specify **DomainName** or **Status**, you must also specify **ObjectType**.'."\n" + ."\n" + .'- Rate limit: 5 requests per second per user.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnTopDomainsByFlow' => [ - 'summary' => 'Queries domain names ranked by network traffic. You can query data within the last 90 days.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2023-03-28T06:07:50.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-03-23T06:34:56.000Z', 'description' => 'Request parameters changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnRefreshTasks'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnRefreshTasks', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'conditional', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + ], + ], + 'DescribeDcdnRegionAndIsp' => [ + 'summary' => 'Call the DescribeDcdnRegionAndIsp operation to obtain a list of regions and carriers.', + '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' => 'The start of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2016-03-01T04:00:00Z', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2016-03-14T07:34:00Z', - ], - ], - [ - 'name' => 'Limit', - 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum number of domain names to return. Valid values: **1** to **100**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '20', - 'default' => '20', - ], - ], - ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'DomainOnlineCount' => [ - 'description' => 'The total number of accelerated domains that are in the **Enabled** state under your account.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '68', - ], - 'EndTime' => [ - 'description' => 'The end of the reporting period.'."\n", - 'type' => 'string', - 'example' => '2016-03-14T07:34:00Z', - ], - 'StartTime' => [ - 'description' => 'The beginning of the reporting period.'."\n", - 'type' => 'string', - 'example' => '2016-03-14T06:34:00Z', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4E09C5D7-E1CF-4CAA-A45E-8727F4C8FD70', - ], - 'DomainCount' => [ - 'description' => 'The total number of accelerated domains under your account.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '68', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '2387C335-932C-4E1E-862C-1C4363B6DE72'], + 'Regions' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Region' => [ + 'description' => 'A list of regions.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'NameEn' => ['description' => 'The English name of the region.', 'type' => 'string', 'title' => '', 'example' => 'liaoning'], + 'NameZh' => ['description' => 'The Chinese name of the region.', 'type' => 'string', 'title' => '', 'example' => '辽宁省'], + ], + 'description' => '', + 'title' => '', + ], + 'title' => '', + ], + ], + 'description' => '', + 'title' => '', ], - 'TopDomains' => [ + 'Isps' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'TopDomain' => [ - 'description' => 'The top N domain names ranked by network traffic.'."\n", + 'Isp' => [ + 'description' => 'A list of carriers.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'MaxBps' => [ - 'description' => 'The peak bandwidth value.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '22139626', - ], - 'Rank' => [ - 'description' => 'The ranking of the accelerated domain name.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'TotalAccess' => [ - 'description' => 'The number of visits.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '3', - ], - 'TrafficPercent' => [ - 'description' => 'The proportion of network traffic consumed to access the URL.'."\n", - 'type' => 'string', - 'example' => '21.686305274906182', - ], - 'DomainName' => [ - 'description' => 'The domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'TotalTraffic' => [ - 'description' => 'The total amount of network traffic.'."\n", - 'type' => 'string', - 'example' => '123', - ], - 'MaxBpsTime' => [ - 'description' => 'The time follows the ISO 8601 standard in the yyyy-MM-ddThh:mm:ssZ format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2018-11-01T08:10:00Z', - ], + 'NameEn' => ['description' => 'The English name of the carrier.', 'type' => 'string', 'title' => '', 'example' => 'unicom'], + 'NameZh' => ['description' => 'The Chinese name of the carrier.', 'type' => 'string', 'title' => '', 'example' => '联通'], ], + 'description' => '', + 'title' => '', ], + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], ], 'description' => '', + 'title' => '', ], ], ], - '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' => 'DescribeDcdnTopDomainsByFlow', - 'description' => 'If you do not specify the StartTime and EndTime parameters, the data within the current month is queried. If you specify the StartTime and EndTime parameters, the data within the specified time range is queried.'."\n", + 'title' => 'DescribeDcdnRegionAndIsp', + 'description' => '> The call frequency for a single user is 30 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeKvUsageData' => [ - 'summary' => 'Queries the usage data of KV storage.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2022-10-13T02:33:33.000Z', 'description' => 'Error codes changed'], ], - '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnReport' => [ + 'summary' => 'Call DescribeDcdnReport to query the data of a customized report.', + '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' => 'The namespace ID. If the parameter is empty, data about all namespaces is returned.'."\n" - ."\n" - .'You can specify a maximum number of 30 namespace IDs and separate them with commas (,).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '12423131231****', - ], + 'schema' => ['description' => 'The domain names that you want to query. Separate multiple domain names with commas (,).', 'type' => 'string', 'required' => false, 'example' => 'www.example.com,www.example.org', 'title' => ''], ], [ - 'name' => 'StartTime', + 'name' => 'ReportId', 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'The minimum data granularity is 1 hour. If you do not specify this parameter, the data in the last seven days is returned.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2022-08-10T00:00:00Z', - ], + 'schema' => ['description' => 'The ID of the report that you want to query. You can specify only one report ID in each call. You can call the [DescribeDcdnSubList](~~270075~~) operation to query report IDs.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '2', 'title' => ''], ], [ - 'name' => 'EndTime', + 'name' => 'Area', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2022-08-10T23:59:59Z', - ], + 'schema' => ['description' => 'The English name of the region. You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to obtain the English name of a region.'."\n" + ."\n" + .'- If you do not specify this parameter, data in all regions is queried.'."\n" + ."\n" + .'- If you specify a region, data in that region is returned. You can specify multiple regions. Separate them with commas (,).', 'type' => 'string', 'required' => false, 'example' => 'shanghai', 'title' => ''], ], [ - 'name' => 'Field', + 'name' => 'IsOverseas', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => 'The type of the request data. Set the value to **acc**.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'acc', - ], + 'schema' => ['description' => 'Specifies whether the region is outside the Chinese mainland. Valid values:'."\n" + ."\n" + .'- **1**: a region outside the Chinese mainland.'."\n" + ."\n" + .'- **0**: the Chinese mainland.', 'type' => 'string', 'required' => false, 'example' => '0', 'title' => ''], ], [ - 'name' => 'AccessType', + 'name' => 'HttpCode', 'in' => 'query', - 'schema' => [ - 'description' => 'The request method. If the parameter is empty, data about all methods is returned. Valid values:'."\n" - ."\n" - .'* **get**'."\n" - .'* **put**'."\n" - .'* **list**'."\n" - .'* **delete**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'get', - ], + 'schema' => ['description' => 'The HTTP status code. Valid values:'."\n" + ."\n" + .'- **2xx**: 2xx status codes.'."\n" + ."\n" + .'- **3xx**: 3xx status codes.'."\n" + ."\n" + .'- **4xx**: 4xx status codes.'."\n" + ."\n" + .'- **5xx**: 5xx status codes.'."\n" + ."\n" + .'If you do not specify this parameter, all the preceding HTTP status codes are queried by default.', 'type' => 'string', 'required' => false, 'example' => '2xx', 'title' => ''], ], [ - 'name' => 'ResponseType', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the response data. Valid values:'."\n" - ."\n" - .'* **detail**: detailed data'."\n" - .'* **total**: summary data'."\n" - ."\n" - .'Default value: **detail**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'detail', - 'default' => 'detail', - ], + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => true, 'example' => '2021-07-02T00:00:00Z', 'title' => ''], ], [ - 'name' => 'SplitBy', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The key that is used to group data. Valid values: **type** and **namespace**.'."\n" - ."\n" - .'* **type**: Data is grouped by time. The data in the last 5 minutes is returned.'."\n" - .'* **namespace**: Data is grouped by namespace and is not padded with zeros.'."\n" - .'* Default value: **type**.'."\n" - ."\n" - .'If **ResponseType** is set to **total**, data to return is not grouped by **namespace** but by **type**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'type', - 'enum' => [ - 'type', - 'namespace', - ], - ], + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => true, 'example' => '2021-07-02T01:00:00Z', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7', - ], - 'StartTime' => [ - 'description' => 'The beginning of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2022-11-06T16:00:00Z', - ], - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2022-11-18T15:59:59Z', - ], - 'KvUsageData' => [ - 'description' => 'The usage details.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'TimeStamp' => [ - 'description' => 'The timestamp of the data returned.'."\n", - 'type' => 'string', - 'example' => '2022-11-14T15:00:03Z', - ], - 'NamespaceId' => [ - 'description' => 'The namespace ID. This parameter is available only when the **SplitBy** parameter is set to **namespace**.'."\n", - 'type' => 'string', - 'example' => '534167033424646144', - ], - 'AccessType' => [ - 'description' => 'The request method. This parameter is available only when the **SplitBy** parameter is set to **type**.'."\n", - 'type' => 'string', - 'example' => 'get', - ], - 'Acc' => [ - 'description' => 'The number of visits.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1340000', - ], - ], - ], - ], + 'Content' => ['description' => 'The data of the queried report.', '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%"}]}]', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'TimeParseFailed', 'errorMessage' => 'Failed to parse the time parameter.', 'description' => 'Failed to parse the time parameter.'], + ['errorCode' => 'SubscriptionAlreadyExists', 'errorMessage' => 'The subscription already exists.', 'description' => 'The subscription already exists.'], + ['errorCode' => 'SubscriptionNotFound', 'errorMessage' => 'The subscription is not found.', 'description' => 'The subscription is not found.'], + ['errorCode' => 'NameAlreadyExists', 'errorMessage' => 'The name already exists.', 'description' => 'The name already exists.'], + ['errorCode' => 'DeliverExceedLimit', 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', 'description' => 'The number of tracking tasks has reached the upper limit.'], ], ], - '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' => 'DescribeKvUsageData', - 'description' => '**Note*** You can call this operation up to 5 times per second per account.'."\n" - ."\n" - .'* The usage data indicates the number of requests.'."\n" - ."\n" - .'**Time granularity:** This operation supports only the time granularity of 1 hour.'."\n" - ."\n" - .'|Time granularity|Time range to query|Historical data available|Data latency|'."\n" - .'|---|---|---|---|'."\n" - .'|1 hour|31 days|90 days|3 to 4 hours|', - ], - 'CreateDcdnCertificateSigningRequest' => [ - 'summary' => 'Creates a certificate signing request (CSR) file.', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeDcdnReport', + 'description' => '> The throttling limit for a single user is 3 calls per second.', + 'requestParamsDescription' => '**Required request parameters for each report**'."\n" + ."\n" + .'| Report name | Required parameters | Description |'."\n" + .'| ---------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------- |'."\n" + .'| PV and UV | Action, ReportId, DomainName, StartTime, and EndTime. | Other parameters are not supported. |'."\n" + .'| Top client IPs (sorted by traffic) | Action, ReportId, DomainName, Area, StartTime, and EndTime. | Other parameters are not supported. |'."\n" + .'| Top client IPs (sorted by number of requests) | Action, ReportId, DomainName, Area, StartTime, and EndTime. | Other parameters are not supported. |'."\n" + .'| Access region distribution | Action, ReportId, DomainName, IsOverseas, StartTime, and EndTime. | Other parameters are not supported. |'."\n" + .'| Carrier distribution | Action, ReportId, DomainName, IsOverseas, StartTime, and EndTime. | Other parameters are not supported. |'."\n" + .'| Popular Referers (sorted by traffic) | Action, ReportId, DomainName, StartTime, and EndTime. | Other parameters are not supported. |'."\n" + .'| Popular Referers (sorted by number of requests) | Action, ReportId, DomainName, StartTime, and EndTime. | Other parameters are not supported. |'."\n" + .'| Popular URLs (sorted by traffic) | Action, ReportId, DomainName, HttpCode, StartTime, and EndTime. | Other parameters are not supported. |'."\n" + .'| Popular URLs (sorted by number of requests) | Action, ReportId, DomainName, HttpCode, StartTime, and EndTime. | Other parameters are not supported. |'."\n" + .'| Popular back-to-origin URLs (sorted by traffic) | Action, ReportId, DomainName, HttpCode, StartTime, and EndTime. | Other parameters are not supported. |'."\n" + .'| Popular back-to-origin URLs (sorted by number of requests) | Action, ReportId, DomainName, HttpCode, StartTime, and EndTime. | Other parameters are not supported. |'."\n" + .'| Domain name ranking (sorted by traffic) | Action, ReportId, StartTime, and EndTime. | Other parameters are not supported. |', + 'responseParamsDescription' => '**Content data description**'."\n" + ."\n" + .'| Parameter | Type | Description |'."\n" + .'| --------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| deliver | report | The report style. |'."\n" + .'| data | String[] | The data in the report. For example: [{"Table header field 1":"value1","Table header field 2":"value2"}, {"Table header field 1":"value3","Table header field 2":"value4"}]. |'."\n" + ."\n" + .'**report data description**'."\n" + ."\n" + .'| Parameter | Type | Description |'."\n" + .'| --------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| title | String | The report title. |'."\n" + .'| format | String | The report type. Valid values:<br>chart: a chart.<br>table: a table. |'."\n" + .'| shape | String | The chart type. If the value of format is table, ignore this field. Valid values:<br>line: a line chart.<br>pie: a pie chart.<br>bar: a column chart. |'."\n" + .'| header | String[] | The table header fields of the report. |'."\n" + .'| legend | String | The legend field of the graph. |'."\n" + .'| xAxis | String | The x-axis of the graph. This field is empty if the graph has no x-axis. |'."\n" + .'| yAxis | String | The y-axis of the graph. This field is empty if the graph has no y-axis. |', + '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' => '[{"errorExample":"","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]', + ], + 'DescribeDcdnReportList' => [ + 'summary' => 'You can call the DescribeDcdnReportList operation to query a list of all custom reports.', + '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' => 'The Common Name of the certificate.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'testName', - ], - ], - [ - 'name' => 'SANs', - 'in' => 'query', - 'schema' => [ - 'description' => 'The Subject Alternative Name (SAN) extension that allows multiple domain names to be associated with the certificate. Separate multiple domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com,example.org', - ], - ], - [ - 'name' => 'Organization', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the organization. Default value: Alibaba Inc.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Alibaba Inc', - 'default' => 'Alibaba Inc.', - ], - ], - [ - 'name' => 'OrganizationUnit', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the department. Default value: Aliyun CDN.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Aliyun CDN', - 'default' => 'Aliyun CDN', - ], - ], - [ - 'name' => 'Country', - 'in' => 'query', - 'schema' => [ - 'description' => 'The country or region in which the organization is located. Default value: CN.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'CN', - 'default' => 'CN', - ], - ], - [ - 'name' => 'State', - 'in' => 'query', - 'schema' => [ - 'description' => 'The provincial district. Default value: Zhejiang.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Zhejiang', - 'default' => 'Zhejiang', - ], - ], - [ - 'name' => 'City', - 'in' => 'query', - 'schema' => [ - 'description' => 'The city. Default value: Hangzhou.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Hangzhou', - 'default' => 'Hangzhou', - ], - ], - [ - 'name' => 'Email', + 'name' => 'ReportId', 'in' => 'query', - 'schema' => [ - 'description' => 'The email address.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test@aliyundoc.com', - ], + 'schema' => ['description' => 'The ID of the report to query. If you leave this parameter empty, all reports are queried. To query report IDs, call the [DescribeDcdnSubList](~~DescribeDcdnSubList~~) operation.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '2', 'title' => ''], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', - ], - 'PubMd5' => [ - 'description' => 'The MD5 hash value of the certificate public key.'."\n", - 'type' => 'string', - 'example' => '629bf4fd8104eda171135bcb0f77a10b', - ], - 'Csr' => [ - 'description' => 'The content of the CSR file.'."\n", - 'type' => 'string', - 'example' => '-----BEGIN CERTIFICATE REQUEST-----\\nMIIC/zCCAecCAQAwZTELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAlpKMQswCQYDVQQH', - ], - 'CommonName' => [ - 'description' => 'The Common Name of the certificate.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], + 'Content' => ['description' => 'The list of reports.', '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"]}}}', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidValue.Malformed', - 'errorMessage' => 'Country must be 2 characters.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'TimeParseFailed', 'errorMessage' => 'Failed to parse the time parameter.', 'description' => 'Failed to parse the time parameter.'], + ['errorCode' => 'SubscriptionAlreadyExists', 'errorMessage' => 'The subscription already exists.', 'description' => 'The subscription already exists.'], + ['errorCode' => 'SubscriptionNotFound', 'errorMessage' => 'The subscription is not found.', 'description' => 'The subscription is not found.'], + ['errorCode' => 'NameAlreadyExists', 'errorMessage' => 'The name already exists.', 'description' => 'The name already exists.'], + ['errorCode' => 'DeliverExceedLimit', 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', 'description' => 'The number of tracking tasks has reached the upper limit.'], ], - 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' => 'DescribeDcdnReportList', + 'description' => '> - This operation returns the metadata of all custom reports but does not return the statistical data of the reports.'."\n" + .'>'."\n" + .'> - The throttling limit for a single user is 3 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => '**Content parameter description**'."\n" + ."\n" + .'| Parameter | Type | Description |'."\n" + .'| --------- | ------ | --------------------- |'."\n" + .'| reportId | Long | The ID of the report. |'."\n" + .'| deliver | report | The report style. |'."\n" + ."\n" + .'**report parameter description**'."\n" + ."\n" + .'| Parameter | Type | Description |'."\n" + .'| --------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| title | String | The title of the report. |'."\n" + .'| format | String | The report type. Valid values: chart: The report is a chart. table: The report is a table. |'."\n" + .'| shape | String | The chart type. If the value of format is table, ignore this field. Valid values: line: line chart. pie: pie chart. bar: column chart. |'."\n" + .'| header | String[] | The header fields of the report. |'."\n" + .'| legend | String | The legend field of the chart. |'."\n" + .'| xAxis | String | The x-axis of the chart. This field is empty if the chart does not have an x-axis. |'."\n" + .'| yAxis | String | The y-axis of the chart. This field is empty if the chart does not have a y-axis. |', + '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' => 'All Resource', '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' => 'CreateDcdnCertificateSigningRequest', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'SetDcdnDomainCSRCertificate' => [ - 'summary' => 'Configures an SSL certificate for a specified domain name.', - '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' => 'The content of the certificate. The certificate must match the certificate signing request (CSR) created by calling the [CreateDcdnCertificateSigningRequest](~~144478~~) operation. Make sure that the certificate is in PEM format and its content is Base64-encoded and then encoded by encodeURIComponent.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], - ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The domain name that is secured by the certificate. The domain name uses HTTPS acceleration.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], + 'abilityTreeCode' => '140562', + 'abilityTreeNodes' => ['FEATUREdcdn9K10I1'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', 'title' => ''], + 'Content' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Business' => [ + 'description' => 'The returned results.', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Desc' => ['description' => 'The description of the real-time log type.', 'type' => 'string', 'example' => '用户访问日志', 'title' => ''], + 'BusinessType' => ['description' => 'The type of real-time logs. Valid values:'."\n" + ."\n" + .'- **dcdn\\_log\\_access\\_l1**: access logs.'."\n" + ."\n" + .'- **dcdn\\_log\\_er**: EdgeRoutine logs'."\n" + ."\n" + .'- **dcdn\\_log\\_waf**: WAF interception logs', 'type' => 'string', 'example' => 'dcdn_log_access_l1', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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' => 'DescribeDcdnSLSRealTimeLogType', + 'summary' => 'Queries supported types of real-time logs.', + 'changeSet' => [ + ['createdAt' => '2024-12-18T07:22:52.000Z', 'description' => 'Error codes changed'], + ], + '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' => 'All Resource', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","type":"json"}]', - 'title' => 'SetDcdnDomainCSRCertificate', + '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' => 'Queries the certificates of accelerated domain names.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnSLSRealtimeLogDelivery' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -16307,280 +15717,116 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111547', + 'abilityTreeNodes' => ['FEATUREdcdn9K10I1'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain secured by the SSL certificate. HTTPS secure acceleration is enabled for the accelerated domain name.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'www.example.com', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page. Default value: 1.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The maximum number of entries to return on each page. Valid values: **1 to 1000**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '10', - 'default' => '1000', - ], - ], - [ - 'name' => 'SearchKeyword', + 'name' => 'ProjectName', 'in' => 'query', - 'schema' => [ - 'description' => 'The keyword that is used to query the certificate.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'taobao', - ], + 'schema' => ['description' => 'The name of the Simple Log Service (SLS) project.', 'type' => 'string', 'required' => true, 'example' => 'example', 'title' => ''], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-3C82-72F8FD6DA2FE', - ], - 'CertificateListModel' => [ - 'description' => 'The list of certificates.'."\n", + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'F32C57AA-7BF8-49AE-A2CC-9F42390F5A19', 'title' => ''], + 'Content' => [ + 'description' => 'The information about the domain name configuration.', 'type' => 'object', 'properties' => [ - 'Count' => [ - 'description' => 'The number of certificates.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'CertList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Cert' => [ - 'description' => 'Details about each certificate.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Fingerprint' => [ - 'description' => 'The fingerprint of the certificate.'."\n", - 'type' => 'string', - 'example' => '4278e3b81ab5bc678d253e74c17ffb88', - ], - 'Issuer' => [ - 'description' => 'The certificate authority (CA) that issued the certificate.'."\n", - 'type' => 'string', - 'example' => 'yourCertIssuer', - ], - 'CertId' => [ - 'description' => 'The ID of the certificate.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '7428244', - ], - 'CertRegion' => [ - 'description' => 'The region ID of the certificate. Valid values: **cn-hangzhou** and **ap-southeast-1**. Default value: **cn-hangzhou**.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'CertName' => [ - 'description' => 'The name of the certificate.'."\n", - 'type' => 'string', - 'example' => 'yourCertName', - ], - 'LastTime' => [ - 'description' => 'The time when the certificate was last modified. Unit: milliseconds.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1548065550', - ], - 'Common' => [ - 'description' => 'The Common Name (CN) attribute of the certificate. In most cases, the CN is a domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - ], - ], - ], - ], - ], - 'PageNumber' => [ - 'description' => 'The page number. Pages start from page 1. Default value: 1.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'PageSize' => [ - 'description' => 'The number of entries per page. Valid values: an integer from 1 to 1000.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], + 'Status' => ['description' => 'The status of real-time log delivery to SLS.'."\n" + ."\n" + .'- **success**: The delivery is successful.'."\n" + ."\n" + .'- **fail**: The delivery failed.', 'type' => 'string', 'example' => 'success', 'title' => ''], + 'Type' => ['description' => 'The delivery type. Only **SLS\\_POST**, which indicates that logs are delivered to SLS, is supported.', 'type' => 'string', 'example' => 'SLS_POST', 'title' => ''], + 'SLSLogStore' => ['description' => 'The name of the Logstore.', 'type' => 'string', 'example' => 'example-cn', 'title' => ''], + 'DataCenter' => ['description' => 'The data center.', 'type' => 'string', 'example' => 'cn', 'title' => ''], + 'FieldName' => ['description' => 'The name of the field. For a list of all fields, see [Fields in real-time logs](~~324199~~).', 'type' => 'string', 'example' => 'field1,field2', 'title' => ''], + 'ProjectName' => ['description' => 'The name of the project.', 'type' => 'string', 'example' => 'example', 'title' => ''], + 'SamplingRate' => ['description' => 'The sample rate.', 'type' => 'string', 'example' => '1.0', 'title' => ''], + 'SLSProject' => ['description' => 'The name of the SLS project.', 'type' => 'string', 'example' => 'example-cn', 'title' => ''], + 'DomainName' => ['description' => 'The list of domain names. Separate multiple domain names with a comma (,).', 'type' => 'string', 'example' => 'example.com,example.org', 'title' => ''], + 'BusinessType' => ['description' => 'The business type. Valid values:'."\n" + ."\n" + .'- **cdn\\_log\\_access\\_l1** (default): user access logs.'."\n" + ."\n" + .'- **cdn\\_log\\_er**: EdgeRoutine logs.'."\n" + ."\n" + .'- **cdn\\_log\\_waf**: WAF block logs.', 'type' => 'string', 'example' => 'cdn_log_access_l1', 'title' => ''], + 'SLSRegion' => ['description' => 'The name of the region where the logs are stored.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], ], + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'NotFoundCertList', - 'errorMessage' => 'The certList is null.', - ], + ['errorCode' => 'ProjectNotFound', 'errorMessage' => 'The project provided does not belong to you.', 'description' => 'The project does not exist or does not belong to the current user.'], + ], + 500 => [ + ['errorCode' => 'Internal Exception', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'Internal error, please try again later or contact us.'], ], ], - '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' => 'DescribeDcdnSSLCertificateList', - ], - 'SetDcdnDomainSSLCertificate' => [ - 'summary' => 'Enables or disables the SSL certificate for a domain name and updates certificate details.', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeDcdnSLSRealtimeLogDelivery', + 'summary' => 'You can call the DescribeDcdnSLSRealtimeLogDelivery operation to query the configurations of a real-time log delivery project.', + 'description' => '> The call frequency for this operation is 100 calls per second for a single user.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-12-18T07:22:52.000Z', 'description' => 'Error codes changed'], ], - '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + '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' => 'The domain name that is secured by the SSL certificate.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'CertName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the new certificate. You can specify only one certificate name. This parameter is optional and valid only when **CertType** is set to **upload**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'yourCertName', - ], - ], - [ - 'name' => 'CertId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The certificate ID. This parameter is required and valid only when **CertType** is set to **cas**. If you specify this parameter, an existing certificate is used.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '8089870', - ], - ], - [ - 'name' => 'CertType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the certificate. Valid values:'."\n" - ."\n" - .'* **upload**: a user-uploaded SSL certificate.'."\n" - .'* **cas**: a certificate that is acquired through Certificate Management Service.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'upload', - 'enum' => [ - 'cas', - 'upload', - ], - ], - ], - [ - 'name' => 'SSLProtocol', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable the SSL certificate. Valid values:'."\n" - ."\n" - .'* **on**'."\n" - .'* **off**'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'off', - ], - ], - [ - 'name' => 'SSLPub', - 'in' => 'query', - 'schema' => [ - 'description' => 'The content of the SSL certificate. Specify the content of the SSL certificate only if you want to enable the SSL certificate.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'xxx', - ], - ], - [ - 'name' => 'SSLPri', + 'name' => 'CertIdentifier', 'in' => 'query', - 'schema' => [ - 'description' => 'The private key. Specify the private key only if you want to enable the SSL certificate.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'y****', - ], - ], - [ - 'name' => 'CertRegion', - 'in' => 'query', - 'schema' => [ - 'description' => 'The region of the SSL certificate. This parameter takes effect only when **CertType** is set to **cas**. Default value: **cn-hangzhou**. Valid values: **cn-hangzhou** and **ap-southeast-1**.'."\n", - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [ - 'ap-southeast-1' => 'ap-southeast-1', - 'cn-hangzhou' => 'cn-hangzhou', - ], - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'The certificate ID.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '648****-cn-hangzhou'], ], ], 'responses' => [ @@ -16588,163 +15834,56 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'A7C69682-7F88-40DD-A198-10D0309E439D', - ], + 'CertExpireTime' => ['description' => 'The expiration time of the certificate. The time is in GMT.', 'type' => 'string', 'title' => '', 'example' => '2022-08-31T09:42:28Z'], + 'CertIdentifier' => ['description' => 'The certificate ID.', 'type' => 'string', 'title' => '', 'example' => '648****-cn-hangzhou'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'A7C69682-7F88-40DD-A198-10D0309E439D'], + 'CommonName' => ['description' => 'The common name.', 'type' => 'string', 'title' => '', 'example' => 'example.com'], + 'CertName' => ['description' => 'The certificate name.', 'type' => 'string', 'title' => '', 'example' => 'yourCertName'], + 'Sans' => ['description' => 'The additional domain name.', 'type' => 'string', 'title' => '', 'example' => '***.example.com'], + 'SignCertificate' => ['description' => 'The content of the signing certificate.', 'type' => 'string', 'title' => '', 'example' => '--BEGIN CERTIFICATE-----***-----END CERTIFICATE--'], + 'CertOrg' => ['description' => 'The certification authority.', 'type' => 'string', 'title' => '', 'example' => 'DigiCert Inc'], + 'EncryptCertificate' => ['description' => 'The content of the encryption certificate.', 'type' => 'string', 'title' => '', 'example' => '--BEGIN CERTIFICATE-----***-----END CERTIFICATE--'], ], + 'description' => '', + 'title' => '', ], ], ], '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' => 'The CertIdentifier parameter is set to an invalid value.'], ], - 403 => [ - [ - 'errorCode' => 'DomainInProtectedMode', - 'errorMessage' => 'The domain is in protection mode. To request permission, contact Customer Service.', - ], + ], + 'title' => 'DescribeDcdnSMCertificateDetail', + 'summary' => 'You can call the DescribeDcdnSMCertificateDetail operation to query the details of an SM certificate.', + 'description' => '> A single user can make up to 30 calls to this operation per second.', + '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' => 'All Resource', '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' => 'SetDcdnDomainSSLCertificate', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'DescribeDcdnHttpsDomainList' => [ - 'summary' => 'Queries information about all certificates that belong to your account.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnSMCertificateList' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -16755,44 +15894,13 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnX7NWEB', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of returned pages. Valid values: **1 to 100000**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Valid values: **1 to 500**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - 'default' => '20', - ], - ], - [ - 'name' => 'Keyword', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The keyword that is used to search for certificates.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cert', - ], + 'schema' => ['description' => 'The accelerated domain name for which you want to query the list of SM certificates.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], ], ], 'responses' => [ @@ -16800,233 +15908,184 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '16', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'F5E8DF64-7175-4186-9B06-F002C0BBD0C5', - ], - 'CertInfos' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'DC0E34AC-0239-44A7-AB0E-800DE522C8DC'], + 'CertificateListModel' => [ + 'description' => 'The information about the certificate list.', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'CertInfo' => [ - 'description' => 'The information about the certificate.'."\n", + 'Count' => ['description' => 'The number of certificates.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '2'], + 'CertList' => [ + 'description' => 'The list of certificates.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'CertStartTime' => [ - 'description' => 'The time at which the certificate became effective.'."\n", - 'type' => 'string', - 'example' => '2018-11-26 14:45:09', - ], - 'CertExpireTime' => [ - 'description' => 'The time at which the certificate expires.'."\n", - 'type' => 'string', - 'example' => '2018-12-26 14:45:09', - ], - 'CertUpdateTime' => [ - 'description' => 'The time at which the certificate was updated.'."\n", - 'type' => 'string', - 'example' => '2019-01-08 18:33:16', - ], - 'CertType' => [ - 'description' => 'The type of the certificate. Valid values:'."\n" - ."\n" - .'* **cas**: a certificate that is purchased by using Certificate Management Service'."\n" - .'* **upload**: a custom certificate that you upload'."\n", - 'type' => 'string', - 'example' => 'upload', - ], - 'CertName' => [ - 'description' => 'The name of the certificate.'."\n", - 'type' => 'string', - 'example' => 'cert', - ], - 'CertStatus' => [ - 'description' => 'The status of the certificate. Valid values:'."\n" - ."\n" - .'* **ok**: The certificate is working as expected.'."\n" - .'* **mismatch**: The certificate does not match the specified domain name.'."\n" - .'* **expired**: The certificate has expired.'."\n" - .'* **expire_soon**: The certificate is about to expire.'."\n", - 'type' => 'string', - 'example' => 'mismatch', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => '*.com', - ], - 'CertCommonName' => [ - 'description' => 'The returned primary domain name of the certificate.'."\n", - 'type' => 'string', - 'example' => '*.com', - ], + 'CertName' => ['description' => 'The certificate name.', 'type' => 'string', 'title' => '', 'example' => 'yourCertName'], + 'Issuer' => ['description' => 'The certificate issuer.', 'type' => 'string', 'title' => '', 'example' => 'yourCertIssuer'], + 'CertIdentifier' => ['description' => 'The certificate ID.', 'type' => 'string', 'title' => '', 'example' => 'yourCertldentifier'], + 'Common' => ['description' => 'The common name of the certificate.', 'type' => 'string', 'title' => '', 'example' => 'yourCertCommon'], ], 'description' => '', + 'title' => '', ], + 'title' => '', ], ], + 'title' => '', ], ], 'description' => '', + 'title' => '', ], ], ], - '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' => 'DescribeDcdnHttpsDomainList', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", + 'title' => 'DescribeDcdnSMCertificateList', + 'summary' => 'Call the DescribeDcdnSMCertificateList operation to query the list of SM certificates for a specified domain name.', + 'description' => '> Call frequency for a single user: 30 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnCertificateList' => [ - 'summary' => 'Queries the certificates of one or more accelerated domain names.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2022-10-27T03:06:26.000Z', 'description' => 'Error codes changed'], ], - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnSSLCertificateList' => [ + 'summary' => 'Queries a list of SSL certificates for a domain name.', + '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' => 'The accelerated domain name. Separate multiple accelerated domain names with commas (,).'."\n" - ."\n" - .'By default, this operation queries the certificates of all accelerated domain names.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name that is associated with the certificate. The domain name must use HTTPS secure acceleration.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'www.example.com'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number. Default value: 1.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'default' => '1', 'title' => '', 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page. Valid values: 1 to **1000**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'default' => '1000', 'title' => '', 'example' => '10'], + ], + [ + 'name' => 'SearchKeyword', + 'in' => 'query', + 'schema' => ['description' => 'The keyword for a fuzzy query of certificate names.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'taobao'], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'FC0E34AC-0239-44A7-AB0E-800DE522C8DA', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'CB1A380B-09F0-41BB-3C82-72F8FD6DA2FE'], 'CertificateListModel' => [ - 'description' => 'Details about certificates.'."\n", + 'description' => 'The information about the certificate list.', 'type' => 'object', 'properties' => [ - 'Count' => [ - 'description' => 'The number of certificates.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '123', - ], + 'Count' => ['description' => 'The number of certificates.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '2'], 'CertList' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'Cert' => [ - 'description' => 'Details about each certificate.'."\n", + 'description' => 'The information about the certificate list.', 'type' => 'array', 'items' => [ + 'description' => 'The information about the certificate list.', 'type' => 'object', 'properties' => [ - 'Fingerprint' => [ - 'description' => 'The fingerprint of the certificate.'."\n", - 'type' => 'string', - 'example' => '0151xxxx', - ], - 'Issuer' => [ - 'description' => 'The certificate authority (CA) that issued the certificate.'."\n", - 'type' => 'string', - 'example' => 'DigiCert', - ], - 'CertId' => [ - 'description' => 'The ID of the certificate.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '123', - ], - 'CertName' => [ - 'description' => 'The name of the certificate.'."\n", - 'type' => 'string', - 'example' => 'Certificate 2'."\n", - ], - 'LastTime' => [ - 'description' => 'The timestamp.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1548065550', - ], - 'Common' => [ - 'description' => 'The Common Name (CN) attribute of the certificate. In most cases, the CN is a domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], + 'Fingerprint' => ['description' => 'The fingerprint of the certificate.', 'type' => 'string', 'title' => '', 'example' => '4278e3b81ab5bc678d253e74c17ffb88'], + 'Issuer' => ['description' => 'The issuer of the certificate.', 'type' => 'string', 'title' => '', 'example' => 'yourCertIssuer'], + 'CertId' => ['description' => 'The ID of the certificate.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '7428244'], + 'CertRegion' => ['description' => 'The region where the certificate is located. Valid values: **cn-hangzhou** and **ap-southeast-1**. Default value: **cn-hangzhou**.', 'type' => 'string', 'title' => '', 'example' => 'cn-hangzhou'], + 'CertName' => ['description' => 'The name of the certificate.', 'type' => 'string', 'title' => '', 'example' => 'yourCertName'], + 'LastTime' => ['description' => 'The time when the certificate was last modified. This value is a UNIX timestamp. Unit: milliseconds.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '1548065550'], + 'Common' => ['description' => 'The common name of the certificate. This is typically a domain name.', 'type' => 'string', 'title' => '', 'example' => 'example.com'], ], + 'title' => '', ], + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], + 'PageNumber' => ['description' => 'The page number of the returned page. The value starts from 1. Default value: 1.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '2'], + 'PageSize' => ['description' => 'The number of entries per page. Valid values: 1 to 1000.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '20'], ], + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], ], ], - 'staticInfo' => [ - 'substitutions' => [ - 'dcdn::2018-01-15::DescribeDcdnSSLCertificateList', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'NotFoundCertList', 'errorMessage' => 'The certList is null.', 'description' => 'The certificate list is empty.'], ], ], - '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' => 'DescribeDcdnCertificateList', - 'description' => '> You can call this operation up to 30 times per second per account.'."\n", - 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainByCertificate' => [ - 'summary' => 'Queries accelerated domain names by SSL certificate.', - 'methods' => [ - 'get', - 'post', + 'title' => 'DescribeDcdnSSLCertificateList', + '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' => [], @@ -17037,46 +16096,28 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnX7NWEB', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'SSLPub', + 'name' => 'SecFuncType', 'in' => 'query', - 'schema' => [ - 'description' => 'The public key of the certificate.'."\n" - ."\n" - .'You must use Base64 encoding schemes and then the encodeURIComponent method to encode the public key. PEM files are supported.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'xxx', - ], + 'schema' => ['description' => 'The type of the drop-down list. Valid values: RobotRuleName and RobotObject.', 'type' => 'string', 'required' => true, 'example' => 'RobotRuleName', 'title' => ''], ], [ - 'name' => 'SSLStatus', + 'name' => 'Lang', 'in' => 'query', 'schema' => [ - 'description' => 'Specifies whether the domain name list to return contains only domain names with HTTPS enabled or disabled.'."\n" + 'description' => 'The language of the response. Valid values:'."\n" ."\n" - .'* true: The list contains only domain names with HTTPS enabled.'."\n" - .'* false: The list contains only domain names with HTTPS disabled.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], - [ - 'name' => 'Exact', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether the domain name list to return matches the SSL certificate.'."\n" - .'- **true**: The domain name list matches the SSL certificate.'."\n" - .'- **false**: The domain name list does not match the SSL certificate.', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + .'- **en**: English (default)'."\n" + ."\n" + .'- **zh**: Chinese', + 'type' => 'string', + 'required' => true, + 'enum' => ['zh', 'en'], + 'example' => 'en', + 'title' => '', ], ], ], @@ -17085,200 +16126,67 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'ASAF2FDS-12SADSA-DDSAE3D-DSADCD4C-CDADS2D', - ], - 'CertInfos' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'CertInfo' => [ - 'description' => 'The information about the certificate.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'CertStartTime' => [ - 'description' => 'The time at which the certificate became effective.'."\n", - 'type' => 'string', - 'example' => 'Nov 29 23:59:59 2017 GMT', - ], - 'CertExpireTime' => [ - 'description' => 'The time at which the certificate expires.'."\n", - 'type' => 'string', - 'example' => 'Nov 29 00:00:00 2016 GMT', - ], - 'CertCaIsLegacy' => [ - 'description' => 'Indicates whether the SSL certificate is obsolete. Valid values:'."\n" - ."\n" - .'* **yes**: The SSL certificate is obsolete.'."\n" - .'* **no**: The SSL certificate is working as expected.'."\n", - 'type' => 'string', - 'example' => 'yes', - ], - 'CertSubjectCommonName' => [ - 'description' => 'The name of the SSL certificate owner.'."\n", - 'type' => 'string', - 'example' => 'example.aliyundoc.com', - ], - 'CertType' => [ - 'description' => 'The type of the certificate. Valid values: **RSA**, **DSA**, and **ECDSA**.', - 'type' => 'string', - 'example' => 'RSA', - ], - 'DomainNames' => [ - 'description' => 'The domain names (DNS fields) that match the certificate. Multiple domain names are separated with commas (,).'."\n", - 'type' => 'string', - 'example' => '*.example.com,example.org', - ], - 'CertExpired' => [ - 'description' => 'Indicates whether the SSL certificate is expired. Valid values:'."\n" - ."\n" - .'* **yes**: The SSL certificate is expired.'."\n" - .'* **no**: The SSL certificate is not expired.'."\n", - 'type' => 'string', - 'example' => 'yes', - ], - 'Issuer' => [ - 'description' => 'The certificate authority (CA) that issued the certificate.'."\n", - 'type' => 'string', - 'example' => 'C=US, O=Symantec Corporation, OU=Symantec Trust Network, OU=Domain Validated SSL, CN=Symantec Basic DV SSL CA - G1', - ], - 'DomainList' => [ - 'description' => 'The list of domain names that use the certificate.'."\n" - ."\n" - .'If one or more domain names are returned, the domain names are matched with the specified certificate. Multiple domain names are separated with commas (,).'."\n", - 'type' => 'string', - 'example' => 'example.com,example.org', - ], - ], - 'description' => '', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '30A3A25A-86B3-4C1D-BAA8-12B8607A5CFD', 'title' => ''], + 'Description' => ['description' => 'The description of the HTTP response.', 'type' => 'string', 'example' => 'OK', 'title' => ''], + 'RetCode' => ['description' => 'The return code of the HTTP response.'."\n" + ."\n" + .'- 0: The request was successful.'."\n" + ."\n" + .'- Other values: The request failed.', 'type' => 'string', 'example' => '0', 'title' => ''], + 'HttpStatus' => ['description' => 'The HTTP status code of the response.', 'type' => 'string', 'example' => '200', 'title' => ''], + 'Content' => [ + 'description' => 'The parameters of the code.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Label' => ['description' => 'The display text. The value is in the language specified by the Lang parameter.', 'type' => 'string', 'example' => 'ai_defense', 'title' => ''], + 'Value' => ['description' => 'The value of the drop-down list item.', 'type' => 'string', 'example' => 'ai_defense', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', - ], - ], - ], - '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' => 'DescribeDcdnDomainByCertificate', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", - 'requestParamsDescription' => ' ', + 'title' => 'DescribeDcdnSecFuncInfo', + 'summary' => 'Queries the options for the Edge Security drop-down list in the DCDN console.', + 'description' => '> The throttling limit for a single user is 50 calls per second.', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnCertificateDetail' => [ - 'summary' => 'Queries details about a certificate.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnSecFuncInfo'], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnX7NWEB', - ], - ], - 'parameters' => [ + 'ramActions' => [ [ - 'name' => 'CertName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the certificate.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '123', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'CertName' => [ - 'description' => 'The name of the certificate.'."\n", - 'type' => 'string', - 'example' => '123', - ], - 'Key' => [ - 'description' => 'The key of the certificate.'."\n", - 'type' => 'string', - 'example' => 'ak1htyxxxx', - ], - 'Cert' => [ - 'description' => 'The content of the certificate.'."\n", - 'type' => 'string', - 'example' => '-----BEGIN CERTIFICATE-----xxx-----END CERTIFICATE-----', - ], - 'CertId' => [ - 'description' => 'The ID of the certificate.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '123', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'C7C69682-7F88-40DD-A198-10D0309E439B', - ], + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSecFuncInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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":""}]', - 'title' => 'DescribeDcdnCertificateDetail', - 'description' => '> You can call this operation up to 30 times per second per account.'."\n", - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'DescribeDcdnDomainCertificateInfo' => [ - 'summary' => 'Queries the certificate information about an accelerated domain name.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnSecSpecInfo' => [ + 'summary' => 'Queries the versions of Secure DCDN and the supported security rules.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -17289,341 +16197,85 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnX7NWEB', - ], - ], - 'parameters' => [ - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. You can specify only one domain name in each request.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], + 'parameters' => [], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '5C1E43DC-9E51-4771-82C0-7D5ECEB547A1', - ], - 'CertInfos' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'CertInfo' => [ - 'description' => 'The information about the certificate.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of the certificate. Valid values:'."\n" - ."\n" - .'* **success**: The certificate has taken effect.'."\n" - .'* **checking**: The system is checking whether the domain name is using Dynamic Route for CDN (DCDN).'."\n" - .'* **cname_error**: The domain name is not using DCDN.'."\n" - .'* **domain_invalid**: The domain name contains invalid characters.'."\n" - .'* **unsupport_wildcard**: The wildcard domain name is not supported.'."\n" - .'* **applying**: Certificate application is in progress.'."\n" - .'* **get_token_timeout**: The certificate application request has timed out.'."\n" - .'* **check_token_timeout**: The verification has timed out.'."\n" - .'* **get_cert_timeout**: The request to obtain the certificate has timed out.'."\n" - .'* **failed**: The certificate application request failed.'."\n", - 'type' => 'string', - 'example' => 'success', - ], - 'CertLife' => [ - 'description' => 'The validity period of the certificate. Unit: **months** or **years**.'."\n", - 'type' => 'string', - 'example' => '3 months', - ], - 'CertExpireTime' => [ - 'description' => 'The time at which the certificate expires.'."\n", - 'type' => 'string', - 'example' => '2018-06-03T22:03:39Z', - ], - 'SSLPub' => [ - 'description' => 'The public key of the certificate.'."\n", - 'type' => 'string', - 'example' => 'xxxx', - ], - 'SSLProtocol' => [ - 'description' => 'The status of HTTPS. Valid values:'."\n" - ."\n" - .'* **on**'."\n" - .'* **off**'."\n", - 'type' => 'string', - 'example' => 'on', - ], - 'CertType' => [ - 'description' => 'The type of the certificate.'."\n" - ."\n" - .'* **cas**: a certificate that is purchased by using Certificates Management Service'."\n" - .'* **upload**: a custom certificate that you upload'."\n", - 'type' => 'string', - 'example' => 'cas', - ], - 'CertDomainName' => [ - 'description' => 'The domain name that matches the certificate.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'CertName' => [ - 'description' => 'The name of the certificate.'."\n", - 'type' => 'string', - 'example' => 'cert-example.com', - ], - 'CertOrg' => [ - 'description' => 'The certificate authority (CA) that issued the certificate.'."\n", - 'type' => 'string', - 'example' => 'Let\'s Encrypt', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'CertId' => [ - 'description' => 'The ID of the certificate.'."\n", - 'type' => 'string', - 'example' => '9002448', - ], - 'CertRegion' => [ - 'description' => 'The region where the certificate is used.'."\n", - 'type' => 'string', - 'example' => 'cn-hangzhou', + 'Version' => ['description' => 'The version of Secure DCDN.', 'type' => 'string', 'title' => '', 'example' => 'enterprise'], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '32f6cbb7-13e5-403a-9941-4d4e978dd227'], + 'SpecInfos' => [ + 'description' => 'The supported rule codes and their configurations.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RuleCode' => ['description' => 'The code of the security rule.', 'type' => 'string', 'title' => '', 'example' => 'accurate_***'], + 'RuleConfigs' => [ + 'description' => 'The configurations of the rule.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => 'The configuration code.', 'type' => 'string', 'title' => '', 'example' => 'custom_****_number'], + 'Value' => ['description' => 'The value of the configuration expression.', 'type' => 'string', 'title' => '', 'example' => '20'], + 'Expr' => ['description' => 'The configuration expression.', 'type' => 'string', 'title' => '', 'example' => 'equal'], ], + 'description' => '', + 'title' => '', ], + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], + 'title' => '', ], ], - ], - ], - ], - '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' => 'DescribeDcdnDomainCertificateInfo', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'SetDcdnDomainSMCertificate' => [ - 'summary' => 'Enables or disables the ShangMi (SM) certificate for a domain name.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnX7NWEB', - ], - ], - 'parameters' => [ - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name for which the SM certificate is configured.'."\n" - ."\n" - .'> The domain name must have HTTPS secure acceleration enabled.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'CertIdentifier', - 'in' => 'query', - 'schema' => [ - 'description' => 'The identifier of the certificate. The value is Certificate ID-cn-hangzhou. If the ID of the certificate is 123, CertIdentifier is set to 123-cn-hangzhou.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '123-cn-hangzhou', - ], - ], - [ - 'name' => 'SSLProtocol', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to enable the SSL certificate. Valid values:'."\n" - ."\n" - .'* **on**'."\n" - .'* **off**'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'on', - 'enum' => [ - 'on', - 'off', - ], - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C8', - ], - ], + 'description' => '', + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidCertIdentifier.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter CertIdentifier is not valid.', - ], + ['errorCode' => 'InvalidVersion.NotFound', 'errorMessage' => 'The version does not exist.', 'description' => 'The specified version number does not exist.'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], ], ], - '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' => 'SetDcdnDomainSMCertificate', - 'description' => '> You can call this operation up to 30 times per second per account.'."\n", + 'title' => 'DescribeDcdnSecSpecInfo', + 'description' => '> A single user can call this operation up to 50 times per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnSMCertificateDetail' => [ - 'summary' => 'Queries the details about a ShangMi (SM) certificate.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnSecSpecInfo'], ], ], - 'parameters' => [ + 'ramActions' => [ [ - 'name' => 'CertIdentifier', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the certificate.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '648****-cn-hangzhou', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'CertExpireTime' => [ - 'description' => 'The time when the certificate expires. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2022-08-31T09:42:28Z', - ], - 'CertIdentifier' => [ - 'description' => 'The ID of the certificate.'."\n", - 'type' => 'string', - 'example' => '648****-cn-hangzhou', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'A7C69682-7F88-40DD-A198-10D0309E439D', - ], - 'CommonName' => [ - 'description' => 'The top-level domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'CertName' => [ - 'description' => 'The name of the certificate.'."\n", - 'type' => 'string', - 'example' => 'yourCertName', - ], - 'Sans' => [ - 'description' => 'The domain name on the additional certificate.'."\n", - 'type' => 'string', - 'example' => '***.example.com', - ], - 'SignCertificate' => [ - 'description' => 'The content of the signature certificate.'."\n", - 'type' => 'string', - 'example' => '--BEGIN CERTIFICATE-----***-----END CERTIFICATE--', - ], - 'CertOrg' => [ - 'description' => 'The certificate authority (CA) that issued the certificate.'."\n", - 'type' => 'string', - 'example' => 'DigiCert Inc', - ], - 'EncryptCertificate' => [ - 'description' => 'The content of the encryption certificate.'."\n", - 'type' => 'string', - 'example' => '--BEGIN CERTIFICATE-----***-----END CERTIFICATE--', - ], + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSecSpecInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], ], - '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' => 'DescribeDcdnSMCertificateDetail', - 'description' => '> You can call this operation up to 30 times per second per account.'."\n", - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'DescribeDcdnSMCertificateList' => [ - 'summary' => 'Queries the ShangMi (SM) certificates of an accelerated domain name.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnService' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -17634,94 +16286,117 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], - ], - 'parameters' => [ - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name whose SM certificates you want to query.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], + 'abilityTreeCode' => '111546', + 'abilityTreeNodes' => ['FEATUREdcdnZA9EPX'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'DC0E34AC-0239-44A7-AB0E-800DE522C8DC', - ], - 'CertificateListModel' => [ - 'description' => 'The type of the certificate information.'."\n", + 'WebsocketChangingTime' => ['description' => 'The time when the WebSocket configuration change takes effect. This parameter has the same value as \\`ChangingAffectTime\\`. The time is displayed on the frontend only if it is later than the current time.', 'type' => 'string', 'example' => '2018-03-19T11:16:11Z', 'title' => ''], + 'WebsocketChangingType' => ['description' => 'The billing method for WebSocket that will take effect next. Valid values include **websockettraffic** (by traffic) and **websocketbps** (by bandwidth).', 'type' => 'string', 'example' => 'websocketbps', 'title' => ''], + 'ChangingAffectTime' => ['description' => 'The time when the new billing method takes effect. The time is in GMT.', 'type' => 'string', 'example' => '2018-03-31T16:00:00Z', 'title' => ''], + 'ChangingChargeType' => ['description' => 'The billing method that will take effect next.'."\n" + ."\n" + .'- **PayByTraffic**: Pay by traffic.'."\n" + ."\n" + .'- **PayByBandwidth**: Pay by bandwidth.'."\n" + ."\n" + .'- **PayByBandwidth95**: 95th percentile monthly.'."\n" + ."\n" + .'- **PayByBandwidth\\_monthavg**: Monthly average bandwidth.'."\n" + ."\n" + .'- **PayByBandwidth\\_month4th**: Monthly 4th peak bandwidth.'."\n" + ."\n" + .'- **PayByBandwidth\\_monthday95avg**: Monthly average of the daily 95th percentile peak bandwidth.'."\n" + ."\n" + .'- **PayByBandwidth\\_nighthalf95**: 95th percentile monthly with a 50% discount for nighttime usage.', 'type' => 'string', 'example' => 'PayByBandwidth', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'EF2AEBC2-EDBD-41CF-BF64-7E095D42D6EF', 'title' => ''], + 'OpeningTime' => ['description' => 'The time when the DCDN service was activated. The time is in the ISO 8601 format.', 'type' => 'string', 'example' => '2018-03-19T11:16:11Z', 'title' => ''], + 'InternetChargeType' => ['description' => 'The current billing method.'."\n" + ."\n" + .'- **PayByTraffic**: Pay by traffic.'."\n" + ."\n" + .'- **PayByBandwidth**: Pay by bandwidth.'."\n" + ."\n" + .'- **PayByBandwidth95**: 95th percentile monthly.'."\n" + ."\n" + .'- **PayByBandwidth\\_monthavg**: Monthly average bandwidth.'."\n" + ."\n" + .'- **PayByBandwidth\\_month4th**: Monthly 4th peak bandwidth.'."\n" + ."\n" + .'- **PayByBandwidth\\_monthday95avg**: Monthly average of the daily 95th percentile peak bandwidth.'."\n" + ."\n" + .'- **PayByBandwidth\\_nighthalf95**: 95th percentile monthly with a 50% discount for nighttime usage.', 'type' => 'string', 'example' => 'PayByTraffic', 'title' => ''], + 'WebsocketType' => ['description' => 'The current billing method for WebSocket. Valid values include **websockettraffic** (by traffic) and **websocketbps** (by bandwidth).', 'type' => 'string', 'example' => 'websocketbps', 'title' => ''], + 'InstanceId' => ['description' => 'The instance ID.', 'type' => 'string', 'example' => 'FP-mkqgwxxxx', 'title' => ''], + 'OperationLocks' => [ 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'Count' => [ - 'description' => 'The number of certificates that are returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'CertList' => [ - 'description' => 'A list of certificates.'."\n", + 'LockReason' => [ + 'description' => 'The reasons why the service is locked.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'CertName' => [ - 'description' => 'The name of the certificate.'."\n", - 'type' => 'string', - 'example' => 'yourCertName', - ], - 'Issuer' => [ - 'description' => 'The certificate authority (CA) that issued the certificate.'."\n", - 'type' => 'string', - 'example' => 'yourCertIssuer', - ], - 'CertIdentifier' => [ - 'description' => 'The ID of the certificate.'."\n", - 'type' => 'string', - 'example' => 'yourCertldentifier', - ], - 'Common' => [ - 'description' => 'The common name of the certificate.'."\n", - 'type' => 'string', - 'example' => 'yourCertCommon', - ], + 'LockReason' => ['description' => 'The reason why the service is locked. For example, \\`financial\\` indicates an overdue payment.', 'type' => 'string', 'example' => 'financial', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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' => 'DescribeDcdnSMCertificateList', - 'description' => '> You can call this operation up to 30 times per second per account.'."\n", + 'title' => 'DescribeDcdnService', + 'summary' => 'Call the DescribeDcdnService operation to query the status of the DCDN service. The status includes the current billing method, the service activation time, the next billing method that will take effect, and the current service status.', + 'description' => '> The call frequency for each user is 30 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnUserCertificateExpireCount' => [ - 'summary' => 'Queries the number of domain names whose SSL certificates are about to expire or have already expired.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2022-10-27T05:52:26.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnService'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnStagingIp' => [ + 'summary' => 'Call DescribeDcdnStagingIp to obtain the valid virtual IP addresses (VIPs) of nodes in public preview.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -17732,9 +16407,8 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnX7NWEB', - ], + 'abilityTreeCode' => '111550', + 'abilityTreeNodes' => ['FEATUREdcdn33QGRH'], 'tenantRelevance' => 'publicInformation', ], 'parameters' => [], @@ -17743,198 +16417,137 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'ExpireWithin30DaysCount' => [ - 'description' => 'The number of domain names whose SSL certificates are about to expire within 30 days.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'F5E8DF64-7175-4186-9B06-F002C0BBD0C5', - ], - 'ExpiredCount' => [ - 'description' => 'The number of domain names whose SSL certificates have already expired.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '6', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '1B9E0E83-24AC-49F4-9EE0-BF5EB03E8381'], + 'IPV4s' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'IPV4' => [ + 'description' => '', + 'type' => 'array', + 'items' => ['description' => 'An array of IPv4 addresses.', 'type' => 'string', 'title' => '', 'example' => '192.168.xxx.xxx","192.168.xxx.xxx'], + 'title' => '', + ], + ], + 'description' => '', + 'title' => '', ], ], 'description' => '', + 'title' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - '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' => 'DescribeDcdnUserCertificateExpireCount', - 'description' => 'You can call this operation up to 100 times per second per account.', + 'title' => 'DescribeDcdnStagingIp', + 'description' => '> The call frequency for a single user is limited to 30 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'TagDcdnResources' => [ - 'summary' => 'Adds one or more tags to a resource.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2022-12-08T06:46:33.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnStagingIp'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnStagingIp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"1B9E0E83-24AC-49F4-9EE0-BF5EB03E8381\\",\\n \\"IPV4s\\": {\\n \\"IPV4\\": [\\n \\"192.168.xxx.xxx\\\\\\",\\\\\\"192.168.xxx.xxx\\"\\n ]\\n }\\n}","type":"json"}]', + ], + 'DescribeDcdnSubList' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], - ], - 'parameters' => [ - [ - 'name' => 'ResourceType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the resource. Set the value to **DOMAIN**.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'DOMAIN', - 'enum' => [ - 'DOMAIN', - ], - ], - ], - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The ID of the resource. Valid values of N: **1** to **50**.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the resource. Valid values of N: **1** to **50**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], - 'required' => true, - 'example' => 'example.com', - 'maxItems' => 51, - ], - ], - [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The tags.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The description of the tag.'."\n", - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key of the tag. Valid values of N: **1** to **20**.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'env', - ], - 'Value' => [ - 'description' => 'The value of a tag. Valid values of N: **1** to **20**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'value', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 21, - ], - ], + 'abilityTreeCode' => '111551', + 'abilityTreeNodes' => ['FEATUREdcdnVIK4DM', 'FEATUREdcdn2Z4HOI'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '97C68796-EB7F-4D41-9D5B-12B909D76508', - ], + 'Content' => ['description' => 'The customized report task.', 'type' => 'string', 'title' => '', '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' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '3250A51D-C11D-46BA-B6B3-95348EEDE652'], ], + 'description' => '', + 'title' => '', ], ], ], '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.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'TimeParseFailed', 'errorMessage' => 'Failed to parse the time parameter.', 'description' => 'Failed to parse the time parameter.'], + ['errorCode' => 'SubscriptionAlreadyExists', 'errorMessage' => 'The subscription already exists.', 'description' => 'The subscription already exists.'], + ['errorCode' => 'SubscriptionNotFound', 'errorMessage' => 'The subscription is not found.', 'description' => 'The subscription is not found.'], + ['errorCode' => 'NameAlreadyExists', 'errorMessage' => 'The name already exists.', 'description' => 'The name already exists.'], + ['errorCode' => 'DeliverExceedLimit', 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', 'description' => 'The number of tracking tasks has reached the upper limit.'], ], ], - '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' => 'TagDcdnResources', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", + 'title' => 'DescribeDcdnSubList', + 'summary' => 'You can call the DescribeDcdnSubList operation to query customized report tasks.', + 'description' => '> - By default, this operation returns all customized reports. However, only one customized report task is returned in each response.'."\n" + .'> - The call frequency for a single user is limited to 3 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => '#### Content data'."\n" + ."\n" + .'| Parameter | Type | Description |'."\n" + .'| ------------- | --------- | ------------------------------------------------------------------------------------------------------------- |'."\n" + .'| subId | Long | The ID of the subscription task. |'."\n" + .'| reportId | Long\\[] | The list of report IDs. |'."\n" + .'| createTime | String | The time when the report was created. |'."\n" + .'| domains | String\\[] | The list of domain names for the customized report. |'."\n" + .'| effectiveFrom | String | The start time of the customized task. |'."\n" + .'| effectiveEnd | String | The end time of the customized task. |'."\n" + .'| status | String | The status of the customized task. Valid values: enable: The task is enabled. disable: The task is shut down. |', 'extraInfo' => ' ', - ], - 'DescribeDcdnTagResources' => [ - 'summary' => 'Queries the tags of one or more resources.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnSubList'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSubList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnTagResources' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -17945,37 +16558,26 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ 'name' => 'ResourceType', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the resource. Set the value to **DOMAIN**.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'DOMAIN', - ], + 'schema' => ['description' => 'The resource type. Set the value to **DOMAIN**.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'DOMAIN'], ], [ 'name' => 'ResourceId', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The list of resource IDs. You can specify a maximum of 50 resource IDs.'."\n", + 'description' => 'A list of resource IDs. You can specify up to 50 resource IDs.', 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the resource.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'items' => ['description' => 'The resource ID.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'example.com'], 'required' => true, 'example' => 'example.com', 'maxItems' => 50, + 'title' => '', ], ], [ @@ -17983,28 +16585,21 @@ 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The tags. You can specify a maximum of 20 tag values.'."\n", + 'description' => 'A list of tags. You can specify up to 20 tags.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The key of the tag.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'Value' => [ - 'description' => 'The value of the tag.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'product', - ], + 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'env'], + 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'product'], ], 'required' => false, + 'description' => '', + 'title' => '', ], 'required' => false, 'maxItems' => 20, + 'title' => '', ], ], ], @@ -18013,215 +16608,103 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB'], 'TagResources' => [ - 'description' => 'The tag of the instance.'."\n", + 'description' => 'The resource tags.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ResourceId' => [ - 'description' => 'The ID of the resource.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], + 'ResourceId' => ['description' => 'The resource ID.', 'type' => 'string', 'title' => '', 'example' => 'example.com'], 'Tag' => [ - 'description' => 'The tags of the snapshot.'."\n", + 'description' => 'The tags.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The key of the tag.'."\n", - 'type' => 'string', - 'example' => 'env', - ], - 'Value' => [ - 'description' => 'The value of the tag.'."\n", - 'type' => 'string', - 'example' => 'product', - ], + 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'title' => '', 'example' => 'env'], + 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'title' => '', 'example' => 'product'], ], + 'description' => '', + 'title' => '', ], + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], ], ], - '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' => 'DescribeDcdnTagResources', - 'description' => '> You can call this operation up to 10 times per second per account.'."\n", + 'summary' => 'Call DescribeDcdnTagResources to query tags for resources.', + 'description' => '> Each user can call this operation up to 10 times per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnUserTags' => [ - 'summary' => 'Queries user tags.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '111565', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnTagResources'], ], - 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [], - 'responses' => [ - 200 => [ - 'headers' => [], - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB', - ], - 'Tags' => [ - 'description' => 'The tag.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The tag key.'."\n", - 'type' => 'string', - 'example' => 'region', - ], - 'Value' => [ - 'type' => 'array', - 'items' => [ - 'description' => 'The value of a tag.'."\n", - 'type' => 'string', - 'example' => 'hangzhou', - ], - 'description' => 'The value of the tag that you want to query.'."\n", - ], - ], - ], - ], + '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' => 'DescribeDcdnUserTags', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'UntagDcdnResources' => [ - 'summary' => 'Removes one or more tags from a resource.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnTopDomainsByFlow' => [ + 'summary' => 'Call the DescribeDcdnTopDomainsByFlow operation to query your domain names ranked by traffic. You can retrieve data from the last 90 days.', + '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', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the resource. Set the value to **DOMAIN**.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'DOMAIN', - 'enum' => [ - 'DOMAIN', - ], - ], + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2016-03-01T04:00:00Z', 'title' => ''], ], [ - 'name' => 'All', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to delete all tags. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n" - ."\n" - .'Default value: **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2016-03-14T07:34:00Z', 'title' => ''], ], [ - 'name' => 'ResourceId', + 'name' => 'Limit', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The ID of the resource. Valid values of N: **1** to **50**.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The ID of the resource.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example***.com', - ], - 'required' => true, - 'example' => 'example.com', - 'maxItems' => 51, - ], - ], - [ - 'name' => 'TagKey', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'The key of the tag. Valid values of N: **1** to **20**.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The key of the tag.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'env', - ], - 'required' => false, - 'example' => 'env', - 'maxItems' => 21, - ], + 'schema' => ['description' => 'The number of domain names to return. Default value: **20**. Valid values: **1** to **100**.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'default' => '20', 'example' => '20', 'title' => ''], ], ], 'responses' => [ @@ -18229,44 +16712,87 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '97C68796-EB7F-4D41-9D5B-12B909D76508', + 'DomainOnlineCount' => ['description' => 'The total number of domain names that are in the **Running** state under your account.', 'type' => 'integer', 'format' => 'int64', 'example' => '68', 'title' => ''], + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2016-03-14T07:34:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The start of the time range.', 'type' => 'string', 'example' => '2016-03-14T06:34:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '4E09C5D7-E1CF-4CAA-A45E-8727F4C8FD70', 'title' => ''], + 'DomainCount' => ['description' => 'The total number of domain names under your account.', 'type' => 'integer', 'format' => 'int64', 'example' => '68', 'title' => ''], + 'TopDomains' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'TopDomain' => [ + 'description' => 'The list of top domain names.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'MaxBps' => ['description' => 'The peak bandwidth.', 'type' => 'integer', 'format' => 'int64', 'example' => '22139626', 'title' => ''], + 'Rank' => ['description' => 'The rank.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''], + 'TotalAccess' => ['description' => 'The total number of requests.', 'type' => 'integer', 'format' => 'int64', 'example' => '3', 'title' => ''], + 'TrafficPercent' => ['description' => 'The percentage of traffic.', 'type' => 'string', 'example' => '21.686305274906182', 'title' => ''], + 'DomainName' => ['description' => 'The domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'TotalTraffic' => ['description' => 'The total traffic.', 'type' => 'string', 'example' => '123', 'title' => ''], + 'MaxBpsTime' => ['description' => 'The time when the peak bandwidth was reached. The time is in UTC and follows the ISO 8601 standard.', 'type' => 'string', 'example' => '2018-11-01T08:10:00Z', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'UntagDcdnResources', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", + 'title' => 'DescribeDcdnTopDomainsByFlow', + 'description' => 'If you do not specify StartTime and EndTime, data for the current month is returned by default. If you specify StartTime and EndTime, data is returned for the specified time range.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnIpaDomainConfigs' => [ - 'summary' => 'Queries the configurations of an accelerated domain name. You can query the configurations of one or more features in each request.', - '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnUserBillHistory' => [ + 'summary' => 'You can call DescribeDcdnUserBillHistory to query historical bills for a period of up to one month.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -18277,30 +16803,22 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn2JMMUY', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. Separate multiple domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'The minimum data granularity is 5 minutes.', 'type' => 'string', 'required' => true, 'example' => '2018-09-30T16:00:00Z', 'title' => ''], ], [ - 'name' => 'FunctionNames', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the feature. Set the value to protogw, which indicates IP Application Accelerator (IPA).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'protogw', - ], + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'The end time must be later than the start time.', 'type' => 'string', 'required' => true, 'example' => '2018-10-31T16:00:00Z', 'title' => ''], ], ], 'responses' => [ @@ -18308,173 +16826,110 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED', - ], - 'DomainConfigs' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'ED61C6C3-8241-4187-AAA7-5157AE175CEC', 'title' => ''], + 'BillHistoryData' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DomainConfig' => [ - 'description' => 'The configurations of the domain name.'."\n", + 'BillHistoryDataItem' => [ + 'description' => 'The historical billing data.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => 'The configuration status of the feature. Valid values:'."\n" - ."\n" - .'* **success**'."\n" - .'* **testing**'."\n" - .'* **failed**'."\n" - .'* **configuring**'."\n", - 'type' => 'string', - 'example' => 'success', - ], - 'FunctionName' => [ - 'description' => 'The name of the feature.'."\n", - 'type' => 'string', - 'example' => 'protogw', - ], - 'FunctionArgs' => [ + 'Dimension' => ['description' => 'The dimension.', 'type' => 'string', 'example' => 'vas', 'title' => ''], + 'BillType' => ['description' => 'The billing pattern.', 'type' => 'string', 'example' => 'month_4th_day_bandwidth', 'title' => ''], + 'BillTime' => ['description' => 'The start time of the billing cycle.', 'type' => 'string', 'example' => '2018-09-30T17:00:00Z', 'title' => ''], + 'BillingData' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'FunctionArg' => [ - 'description' => 'The list of features.'."\n", + 'BillingDataItem' => [ + 'description' => 'The billing data.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ArgValue' => [ - 'description' => 'The value of the configuration.'."\n", - 'type' => 'string', - 'example' => 'txt', - ], - 'ArgName' => [ - 'description' => 'The name of the configuration.'."\n", - 'type' => 'string', - 'example' => 'file_type', - ], + 'Flow' => ['description' => 'The traffic. Unit: bytes.', 'type' => 'number', 'format' => 'float', 'example' => '2456', 'title' => ''], + 'Bandwidth' => ['description' => 'The bandwidth. Unit: Bps.', 'type' => 'number', 'format' => 'float', 'example' => '4839', 'title' => ''], + 'Count' => ['description' => 'The count.', 'type' => 'number', 'format' => 'float', 'example' => '205624', 'title' => ''], + 'CdnRegion' => ['description' => 'The billing region. Valid values: **CN**, **OverSeas**, **AP1**, **AP2**, **AP3**, **NA**, **SA**, **EU**, and **MEAA**.', 'type' => 'string', 'example' => 'AP1', 'title' => ''], + 'ChargeType' => ['description' => 'The billing type. Valid values: **StaticHttp**, **DynamicHttp**, and **DynamicHttps**.', 'type' => 'string', 'example' => 'DynamicHttp', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], - ], - 'ConfigId' => [ - 'description' => 'The ID of the configuration.'."\n", - 'type' => 'string', - 'example' => '5003576', + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'Invalid%s.ValueNotSupported', - 'errorMessage' => 'FunctionName [%s] is not supported.', - ], + ['errorCode' => 'InvalidParameters', 'errorMessage' => 'The specified parameters are invalid.', 'description' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Configure a valid time span as described in API documentation.'], + ['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified StartTime or EndTime is malformed.', 'description' => 'The format of the specified start time or end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], ], ], - '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' => 'DescribeDcdnIpaDomainConfigs', - 'description' => '> You can call this operation up to 20 times per second per account.'."\n", + 'title' => 'DescribeDcdnUserBillHistory', + 'description' => '> The call frequency for a single user is limited to 100 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'StopDcdnIpaDomain' => [ - 'summary' => 'Disables an accelerated domain name. After an accelerated domain name is disabled, the value of the DomainStatus parameter for the domain name changes to Offline.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2023-07-04T06:44:48.000Z', 'description' => 'Error codes changed'], ], - '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' => 'The name of the accelerated domain that you want to disable. You can specify only one domain name at a time.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '15C66C7B-671A-4297-9187-2C4477247A74', - ], + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserBillHistory', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], ], - 'description' => '', - ], - ], - ], - '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' => 'StopDcdnIpaDomain', - 'description' => '> '."\n" - ."\n" - .'* If you disable an accelerated domain, the configurations of the accelerated domain are still retained. The system automatically forwards all the requests that are destined for this domain to the origin.'."\n" - ."\n" - .'* You can call this operation up to 20 times per second per account.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'DescribeUserDcdnIpaStatus' => [ - 'summary' => 'Whether IPA is enabled and whether you have overdue payments for your IPA are queried.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnUserBillType' => [ + 'summary' => 'You can call the DescribeDcdnUserBillType operation to query the billing method for a user.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -18485,607 +16940,224 @@ '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' => 'Indicates whether you have overdue payments.'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'OnService' => [ - 'description' => 'Indicates whether the IPA service is available. The IPA service is available when no payment is overdue.'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '4F51E9C3-728F-4E35-952D-0ED87A06A8A1', - ], - 'InDebtOverdue' => [ - 'description' => 'Indicates whether the grace period for your overdue payments expired.'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'Enabled' => [ - 'description' => 'Indicates whether the IPA service is activated.'."\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' => 'DescribeUserDcdnIpaStatus', - 'description' => '**'."\n" - ."\n" - .'**The maximum number of times that each user can call this operation per second is 20.'."\n", - 'extraInfo' => ' ', - ], - 'DescribeDcdnIpaService' => [ - 'summary' => 'Queries the status of IPA. The information includes the time when the service was activated, the current service status, the current billing method, and the billing method of the next cycle.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ + 'parameters' => [ [ - 'AK' => [], + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => 'The beginning of the time range to query.'."\n" + ."\n" + .'Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => true, 'example' => '2018-09-30T16:00:00Z', 'title' => ''], ], - ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '111529', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZA9EPX', + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => 'The end of the time range to query.'."\n" + ."\n" + .'The end time must be later than the start time. Specify the time in the ISO 8601 standard in the YYYY-MM-DDThh:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => true, 'example' => '2018-10-31T16:00:00Z', 'title' => ''], ], - 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'ChangingAffectTime' => [ - 'description' => 'The time when the change of the billing method starts to take effect. The time is in GMT. This time appears on the frontend only when it is later than the current time.'."\n", - 'type' => 'string', - 'example' => '2018-03-31T16:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'EF2AEBC2-EDBD-41CF-BF64-7E095D42D6EF', - ], - 'ChangingChargeType' => [ - 'description' => 'The new billing method to take effect. Valid values:'."\n" - ."\n" - .'* **PayByTraffic**: pay-by-data-transfer'."\n" - .'* **PayByBandwidth**: pay-by-bandwidth'."\n" - .'* **PayByBandwidth95**: pay-by-95th percentile bandwidth'."\n" - .'* **PayByBandwidth_monthavg**: pay-by-monthly average bandwidth'."\n" - .'* **PayByBandwidth_month4th**: pay-by-fourth peak bandwidth per month'."\n" - .'* **PayByBandwidth_monthday95avg**: pay-by-monthly average 95th percentile bandwidth'."\n" - .'* **PayByBandwidth_nighthalf95**: pay-by-95th percentile bandwidth (50% off during nighttime)'."\n", - 'type' => 'string', - 'example' => 'PayByBandwidth', - ], - 'OpeningTime' => [ - 'description' => 'The time when the DCDN service was activated. The time follows the ISO 8601 standard.'."\n", - 'type' => 'string', - 'example' => '2018-03-19T11:16:11Z', - ], - 'InternetChargeType' => [ - 'description' => 'The billing method of the instance. Valid values:'."\n" - ."\n" - .'* **PayByTraffic**: pay-by-data-transfer'."\n" - .'* **PayByBandwidth**: pay-by-bandwidth'."\n" - .'* **PayByBandwidth95**: pay-by-95th percentile bandwidth'."\n" - .'* **PayByBandwidth_monthavg**: pay-by-monthly average bandwidth'."\n" - .'* **PayByBandwidth_month4th**: pay-by-fourth peak bandwidth per month'."\n" - .'* **PayByBandwidth_monthday95avg**: pay-by-monthly average 95th percentile bandwidth'."\n" - .'* **PayByBandwidth_nighthalf95**: pay-by-95th percentile bandwidth (50% off during nighttime)'."\n", - 'type' => 'string', - 'example' => 'PayByBandwidth', - ], - 'InstanceId' => [ - 'description' => 'The ID of the instance.'."\n", - 'type' => 'string', - 'example' => '1883927335936173', - ], - 'OperationLocks' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'C370DAF1-C838-4288-A1A0-9A87633D248E', 'title' => ''], + 'BillTypeData' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'LockReason' => [ - 'description' => 'The lock status of secure DCDN.'."\n", + 'BillTypeDataItem' => [ + 'description' => 'The list of billing data for the user.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'LockReason' => [ - 'description' => 'The reason why the instance is locked. For example, a value of **financial** indicates that an overdue payment exists.'."\n", - 'type' => 'string', - 'example' => 'financial', - ], + 'EndTime' => ['description' => 'The end time of the billing method.', 'type' => 'string', 'example' => '2018-10-31T16:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The start time of the billing method.', 'type' => 'string', 'example' => '2018-10-30T16:00:00Z', 'title' => ''], + 'BillingCycle' => ['description' => 'The billing cycle.', 'type' => 'string', 'example' => 'month', 'title' => ''], + 'Product' => ['description' => 'The product.', 'type' => 'string', 'example' => 'dcdn', 'title' => ''], + 'BillType' => ['description' => 'The billing method. Valid values:'."\n" + ."\n" + .'- **hour\\_flow**: pay-by-hourly-traffic.'."\n" + ."\n" + .'- **day\\_bandwidth**: pay-by-daily-bandwidth.'."\n" + ."\n" + .'- **month\\_95**: pay-by-monthly-95th-percentile-bandwidth.'."\n" + ."\n" + .'- **month\\_avg\\_day\\_bandwidth**: pay-by-monthly-average-of-daily-peak-bandwidth.'."\n" + ."\n" + .'- **month\\_4th\\_day\\_bandwidth**: pay-by-monthly-4th-peak-bandwidth.'."\n" + ."\n" + .'- **month\\_avg\\_day\\_95**: pay-by-monthly-average-of-daily-95th-percentile-bandwidth.'."\n" + ."\n" + .'- **month\\_95\\_night\\_half**: pay-by-monthly-95th-percentile-bandwidth-with-50%-off-for-night-usage.'."\n" + ."\n" + .'- **hour\\_vas**: pay-by-hourly-value-added-service.'."\n" + ."\n" + .'- **quic\\_hour\\_count**: pay-by-hourly-QUIC-requests.'."\n" + ."\n" + .'- **hour\\_count**: pay-by-hourly-requests.'."\n" + ."\n" + .'- **rtlog\\_count\\_day**: pay-by-daily-real-time-logs.', 'type' => 'string', 'example' => 'month_avg_day_bandwidth_overseas', 'title' => ''], + 'Dimension' => ['description' => 'The dimension. Valid values:'."\n" + ."\n" + .'- **flow**: bandwidth.'."\n" + ."\n" + .'- **vas**: value-added service, such as HTTPS and dynamic requests.'."\n" + ."\n" + .'- **websocket**: WebSocket.'."\n" + ."\n" + .'- **quic**: QUIC requests.'."\n" + ."\n" + .'- **rtlog2sls**: real-time log delivery to Simple Log Service (SLS).', 'type' => 'string', 'example' => 'flow', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 403 => [ - [ - 'errorCode' => 'DcdnIpaServiceNotFound', - 'errorMessage' => 'The DCDN IPA service has not been activated.', - ], + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'InvalidParameterProduct', 'errorMessage' => 'The specified Product is invalid.', 'description' => 'The Product parameter is set to an invalid value.'], + ['errorCode' => 'InvalidParameterAliuid', 'errorMessage' => 'The specified Aliuid is invalid.', 'description' => 'The Aliuid parameter is set to an invalid value.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], ], ], - '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' => 'DescribeDcdnIpaService', - 'description' => '**'."\n" - ."\n" - .'**The maximum number of times that each user can call this operation per second is 20.'."\n", + 'title' => 'DescribeDcdnUserBillType', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateDcdnIpaDomain' => [ - 'summary' => 'Modifies a domain name that is accelerated by IP Application Accelerator (IPA). ', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserBillType'], ], ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '111620', - 'abilityTreeNodes' => [ - 'FEATUREdcdn2E10XY', - ], - ], - 'parameters' => [ - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name that you want to modify. You can specify only one domain name in each request.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'Sources', - 'in' => 'query', - 'schema' => [ - 'description' => 'The information about the addresses of the origin server.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '[{"content":"10.10.10.10","type":"ipaddr","priority":"20","port":80,"weight":"15"}]', - ], - ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The resource group ID.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmyuji4b6r4**', - ], - ], + 'ramActions' => [ [ - 'name' => 'TopLevelDomain', - 'in' => 'query', - 'schema' => [ - 'description' => 'The top-level domain name.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.edu', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '15C66C7B-671A-4297-9187-2C4477247A74', - ], + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserBillType', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => 'UpdateDcdnIpaDomain', - 'description' => '> You can call this operation up to 20 times per second per account.'."\n", - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'DeleteDcdnIpaDomain' => [ - 'summary' => 'Deletes an accelerated domain name from IP Application Accelerator (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' => 'The accelerated domain name that you want to delete. You can specify only one accelerated domain name in each request.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], + 'abilityTreeNodes' => ['FEATUREdcdnX7NWEB'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '94E3559F-7B6A-4A5E-AFFD-44E2A208A249', - ], + 'ExpireWithin30DaysCount' => ['description' => 'The number of domain names whose certificates will expire within 30 days.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'F5E8DF64-7175-4186-9B06-F002C0BBD0C5', 'title' => ''], + 'ExpiredCount' => ['description' => 'The number of domain names with expired certificates.', 'type' => 'integer', 'format' => 'int32', 'example' => '6', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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' => 'DeleteDcdnIpaDomain', - 'description' => '> '."\n" - ."\n" - .'* Before you delete your domain name, we recommend that you request the Domain Name System (DNS) provider to restore the A record of the domain name. Otherwise, the domain name may become inaccessible after you delete it.'."\n" - ."\n" - .'* This operation deletes all records of the specified accelerated domain name. If you want to temporarily disable an accelerated domain name, call the **StopDcdnIpaDomain** operation.****'."\n" - ."\n" - .'* You can call this operation up to 10 times per second per account.'."\n", + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeDcdnUserCertificateExpireCount', + 'summary' => 'Call DescribeDcdnUserCertificateExpireCount to query the number of domain names with expired DCDN certificates.', + 'description' => '> The maximum number of calls that a single user can make to this operation is 100 per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'StartDcdnIpaDomain' => [ - 'summary' => 'Enables one or more accelerated domain names. After the accelerated domain names are enabled, the value of the DomainStatus parameter for the domain names changes to 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' => 'The name of the accelerated domain to be enabled. You can specify only one accelerated domain name at a time.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', - ], + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserCertificateExpireCount', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => 'StartDcdnIpaDomain', - 'description' => '* If an accelerated domain name is in invalid state or your account has an overdue payment, the accelerated domain name cannot be enabled.'."\n" - .'* You can call this operation up to 20 times per second per account.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"ExpireWithin30DaysCount\\": 0,\\n \\"RequestId\\": \\"F5E8DF64-7175-4186-9B06-F002C0BBD0C5\\",\\n \\"ExpiredCount\\": 6\\n}","type":"json"}]', ], - 'AddDcdnIpaDomain' => [ - 'summary' => 'Adds a domain name to IPA. You can specify only one domain name in each request.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnUserConfigs' => [ + 'summary' => 'You can call the DescribeDcdnUserConfigs operation to query configurations related to security features.', + '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' => 'The domain name to be added to IPA.'."\n" - ."\n" - .'A wildcard domain that starts with a period (.) is supported, such as .example.com.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group. If you do not specify a value for this parameter, the system automatically assigns the ID of the default resource group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg', - ], - ], - [ - 'name' => 'Sources', - 'in' => 'query', - 'schema' => [ - 'description' => 'The information about the addresses of origin servers.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '[{"content":"10.10.10.10","type":"ipaddr","priority":"20","port":80,"weight":"15"}]', - ], - ], - [ - 'name' => 'CheckUrl', - 'in' => 'query', - 'schema' => [ - 'description' => 'The URL that is used for health checks.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com/image_01.png', - ], - ], - [ - 'name' => 'Scope', - 'in' => 'query', - 'schema' => [ - 'description' => 'The acceleration region. Default value: domestic. Valid values:'."\n" - ."\n" - .'* **domestic**: Chinese mainland'."\n" - .'* **overseas**: outside the Chinese mainland'."\n" - .'* **global**: global'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'domestic', - ], - ], - [ - 'name' => 'TopLevelDomain', - 'in' => 'query', - 'schema' => [ - 'description' => 'The top-level domain.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '*.com', - ], - ], - [ - 'name' => 'Protocol', + 'name' => 'FunctionName', 'in' => 'query', - 'schema' => [ - 'description' => 'The protocol. Valid values:'."\n" - ."\n" - .'* **udp**'."\n" - .'* **tcp**'."\n" - ."\n" - .'**'."\n" - ."\n" - .'**Description** For example: `{"protocol":"udp"}`.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'udp', - ], + 'schema' => ['description' => 'The configuration to query. You can query the following configurations:'."\n" + ."\n" + .'- domain\\_business\\_control: User configurations.'."\n" + ."\n" + .'- bot\\_basic: Bot Traffic Management Basic Edition (legitimate web crawlers and threat intelligence).'."\n" + ."\n" + .'- bot\\_Advance: Bot Traffic Management Pro (legitimate web crawlers, threat intelligence, and AI-powered protection).', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'domain_business_control'], ], ], 'responses' => [ @@ -19093,273 +17165,76 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '06D29681-B7CD-4034-A8CC-28AFFA213539'], + 'Configs' => [ + 'description' => 'The user configurations.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ArgValue' => ['description' => 'The value of the configuration. Valid values:'."\n" + ."\n" + .'- cc\\_rule: CC attack protection rules.'."\n" + ."\n" + .'- ddos\\_dispatch: DDoS scheduling with filter interaction.'."\n" + ."\n" + .'- edge\\_safe: Edge application security.'."\n" + ."\n" + .'- blocked\\_regions: Location blacklist.'."\n" + ."\n" + .'- http\\_acl\\_policy: Accurate Access Control.'."\n" + ."\n" + .'- bot\\_manager: Bot Traffic Management.'."\n" + ."\n" + .'- ip\\_reputation: IP reputation library.', 'type' => 'string', 'title' => '', 'example' => '{"dcdn_allow":["cc_rule","ddos_dispatch"]}'], + 'ArgName' => ['description' => 'The name of the configuration.'."\n" + ."\n" + .'This parameter is related to configurations for enterprise users.', 'type' => 'string', 'title' => '', 'example' => 'allow_function'], + 'FunctionName' => ['description' => 'The name of the feature.', 'type' => 'string', 'title' => '', 'example' => 'domain_business_control'], + ], + 'description' => '', + 'title' => '', + ], + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], ], ], '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' => 'The value specified for the ArgValue parameter is invalid.'], + ['errorCode' => 'InvalidArgName.ValueNotSupported', 'errorMessage' => '%s', 'description' => 'The name of the %s parameter is invalid.'], ], ], - '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' => 'AddDcdnIpaDomain', - 'description' => '> '."\n" - ."\n" - .'* Make sure that the IPA service is activated before you add a domain name to accelerate.'."\n" - ."\n" - .'* Make sure that the Internet content provider (ICP) filling is complete for the domain name to accelerate.'."\n" - .'* If the content on the origin server is not stored on Alibaba Cloud, the content must be reviewed. The review is complete by the end of the next business day after you submit the request.'."\n" - .'* You can call this operation up to 10 times per second per user.'."\n", - 'requestParamsDescription' => 'Fields in Sources'."\n" - ."\n" - .'|Field|Type|Required|Description|'."\n" - .'|---|---|---|---|'."\n" - .'|type|String|Yes|The type of the origin server. Valid values: ipaddr and domain. A value of ipaddr specifies the IP address of the origin server. A value of domain specifies the domain name of the origin server. A value of oss is not supported.|'."\n" - .'|content|String|Yes|The address of the origin server. You can specify an IP address or a domain name.|'."\n" - .'|port|Integer|Yes|The custom port number. Valid values: 0 to 65535.|'."\n" - .'|priority|String|No|The priority of the origin server if multiple origin servers are specified. Valid values: 20 and 30. Default value: 20. A value of 20 specifies that the origin is a primary origin. A value of 30 specifies that the origin is a secondary origin.|'."\n" - .'|weight|String|No|The weight of the origin server if multiple origin servers are specified. You must specify a value that is less than 100. Default value: 10.|', - 'extraInfo' => ' ', - ], - 'BatchSetDcdnIpaDomainConfigs' => [ - 'summary' => 'Configures multiple domain names to be accelerated by IP Application Accelerator (IPA).', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn2JMMUY', + 'title' => 'DescribeDcdnUserConfigs', + 'description' => '> Each user is limited to 30 calls per second.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserConfigs'], ], ], - 'parameters' => [ + 'ramActions' => [ [ - 'name' => 'DomainNames', - 'in' => 'query', - 'schema' => [ - 'description' => 'The domain names accelerated by IPA. Separate multiple domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'Functions', - 'in' => 'query', - 'schema' => [ - 'description' => 'The list of features. `[{"functionArgs":[{"argName":"parameter name","argValue":"parameter value"}],"functionName":"feature name"}]`'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '[{"functionArgs":[{"argName":"domain_name","argValue":"api.*com"}],"functionName":"protogw"}]', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', - ], + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserConfigs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => 'BatchSetDcdnIpaDomainConfigs', - 'description' => '> You can call this operation up to 20 times per second per account.'."\n", - 'requestParamsDescription' => '**Description**'."\n" - ."\n" - .'|Feature|Parameters|'."\n" - .'|---|---|'."\n" - .'|protogw: configures IP Application Accelerator (IPA).|realip: configures IP passthrough for passing client IP addresses to origin servers. This parameter is required. Valid values: off: disables IP passthrough. toa: carries the real IP address of the client. The origin server needs to have the TCP Option Address (TOA) kernel module installed. You do not need to adjust your services. pp: carries the real IP address of the client. This method is supported by the open source version of NGINX. Make sure that other pieces of software of the origin server also support this method.port: specifies the service port. This parameter is required.|', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'DescribeDcdnIpaUserDomains' => [ - 'summary' => 'Queries information about all domain names that are accelerated by IP Application Accelerator (IPA) in your account. Fuzzy search and filtering by domain status are supported.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnUserDomains' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -19367,343 +17242,281 @@ ], 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeCode' => '111558', + 'abilityTreeNodes' => ['FEATUREdcdnWQK30N'], ], 'parameters' => [ [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of domain names per page. Default value: **20**.**** Valid values: **1** to **500**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'example' => '5', - 'default' => '20', - ], + 'schema' => ['description' => 'The number of entries to return on each page. Default value: **20**. Valid values: **1** to **500**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'default' => '20', 'example' => '20', 'title' => ''], ], [ 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Valid values: **1** to **100000**. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The page number. Valid values: **1** to **100000**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''], ], [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The domain name that is used as a keyword to filter domain names. Fuzzy match is supported.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name. If you do not specify this parameter, all accelerated domain names under your account are returned.', 'type' => 'string', 'required' => false, 'maxLength' => 6800, 'example' => 'example.com', 'title' => ''], ], [ 'name' => 'DomainStatus', 'in' => 'query', - 'schema' => [ - 'description' => 'The status of the domain name. Valid values:'."\n" - ."\n" - .'* **online**: enabled'."\n" - .'* **offline**: disabled'."\n" - .'* **configuring**: configuring'."\n" - .'* **configure_failed**: configuration failed'."\n" - .'* **checking**: reviewing'."\n" - .'* **check_failed:** review failed'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'online', - ], + 'schema' => ['description' => 'The status of the domain name. Valid values:'."\n" + ."\n" + .'- **online**: The domain name is enabled.'."\n" + ."\n" + .'- **offline**: The domain name is disabled.'."\n" + ."\n" + .'- **configuring**: The domain name is being configured.'."\n" + ."\n" + .'- **configure\\_failed**: The domain name failed to be configured.'."\n" + ."\n" + .'- **checking**: The domain name is under review.'."\n" + ."\n" + .'- **check\\_failed**: The domain name failed the review.', 'type' => 'string', 'required' => false, 'example' => 'online', 'title' => ''], ], [ 'name' => 'DomainSearchType', 'in' => 'query', - 'schema' => [ - 'description' => 'The search method. Default value: full_match. Valid values:'."\n" - ."\n" - .'* **fuzzy_match**: fuzzy match'."\n" - .'* **pre_match**: prefix match'."\n" - .'* **suf_match**: suffix match'."\n" - .'* **full_match**: exact match'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'fuzzy_match', - ], + 'schema' => ['description' => 'The search method for the domain name. Valid values:'."\n" + ."\n" + .'- **fuzzy\\_match**: fuzzy match.'."\n" + ."\n" + .'- **pre\\_match**: prefix match.'."\n" + ."\n" + .'- **suf\\_match**: suffix match.'."\n" + ."\n" + .'- **full\\_match** (default): exact match.'."\n" + ."\n" + .'> If you specify a domain name but do not set this parameter, the system performs an exact match by default.', 'type' => 'string', 'required' => false, 'example' => 'fuzzy_match', 'title' => ''], ], [ 'name' => 'CheckDomainShow', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to display domain names that are under review, failed the review, or failed to be configured. Valid values:'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'Specifies whether to display domain names that are under review, failed the review, or failed to be configured. Valid values:'."\n" + ."\n" + .'- true: displays the domain names.'."\n" + ."\n" + .'- false: does not display the domain names.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], [ 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'abcd1234abcd****', - ], + 'schema' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmv6jutt**', 'title' => ''], ], [ - 'name' => 'FuncId', + 'name' => 'ChangeStartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the feature. For example, a value of 7 specifies the feature of configuring an expiration rule for a specific directory. For more information about feature IDs, see [Parameters for configuring features for domain names](~~410622~~).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '7', - ], + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2018-05-10T12:00:00Z', 'title' => ''], ], [ - 'name' => 'FuncFilter', + 'name' => 'ChangeEndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The status of the feature.'."\n" - ."\n" - .'* config: The feature is enabled.'."\n" - .'* unconfig: The feature is not enabled.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'config', - ], + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2018-05-10T14:00:00Z', 'title' => ''], + ], + [ + 'name' => 'Coverage', + 'in' => 'query', + 'schema' => ['description' => 'The acceleration region. Default value: all. Valid values:'."\n" + ."\n" + .'- **domestic**: the Chinese mainland.'."\n" + ."\n" + .'- **overseas**: global (excluding the Chinese mainland).'."\n" + ."\n" + .'- **global**: global.', 'type' => 'string', 'required' => false, 'example' => 'domestic', 'title' => ''], ], [ 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => 'The tags of the command.'."\n", + 'description' => 'The list of tags.', 'type' => 'array', 'items' => [ - 'description' => 'Description of the tags.'."\n", + 'description' => 'The tag.', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => 'The tag key. Valid values of N: 1 to 20. You can call the TagDcdnResources operation to set a tag for a domain name.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], - 'Value' => [ - 'description' => 'The tag value. Valid values of N: 1 to 20.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], + 'Key' => ['description' => 'The key of tag N. Valid values of N: **1** to **20**. You can call the TagDcdnResources operation to tag a domain name.', 'type' => 'string', 'required' => false, 'example' => '1', 'title' => ''], + 'Value' => ['description' => 'The value of tag N. Valid values of N: **1** to **20**.', 'type' => 'string', 'required' => false, 'example' => '1', 'title' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, 'maxItems' => 20, + 'title' => '', + 'example' => '', ], ], + [ + 'name' => 'WebSiteType', + 'in' => 'query', + 'schema' => ['description' => 'The business type. You can specify multiple types and separate them with commas (,). The default value is **dynamic**, which returns standard DCDN domain names. To query domain names for the computing service, set this parameter to **computing\\_routine** or **computing\\_image**.', 'type' => 'string', 'default' => 'dynamic', 'required' => false, 'example' => 'computing_routine', 'title' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'AA75AADB-5E25-4970-B480-EAA1F5658483', - ], - 'PageNumber' => [ - 'description' => 'The page number of the returned page.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => 'The number of domain names returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - 'TotalCount' => [ - 'description' => 'The total number of domain names returned.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'AA75AADB-5E25-4970-B480-EAA1F5658483', 'title' => ''], + 'PageNumber' => ['description' => 'The page number of the returned page.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries returned per page.', 'type' => 'integer', 'format' => 'int64', 'example' => '12', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int64', 'example' => '12', 'title' => ''], 'Domains' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'PageData' => [ - 'description' => 'The array that consists of multiple PageData parameters. The details about each accelerated domain name are included in a separate PageData parameter.'."\n", + 'description' => 'An array of objects. Each object contains information about an accelerated domain name.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'GmtCreated' => [ - 'description' => 'The time when the accelerated domain name was added to Alibaba Cloud CDN.'."\n", - 'type' => 'string', - 'example' => '2015-10-28T09:32:51Z', - ], - 'Description' => [ - 'description' => 'The reason why the accelerated domain name failed the review.'."\n", - 'type' => 'string', - 'example' => 'audit failed', - ], - 'SSLProtocol' => [ - 'description' => 'The status of HTTPS.'."\n" - ."\n" - .'* **on**'."\n" - .'* **off**'."\n", - 'type' => 'string', - 'example' => 'on', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'example' => 'abcd1234abcd****', - ], - 'Sandbox' => [ - 'description' => 'Indicates whether the accelerated domain name was in a sandbox.'."\n", - 'type' => 'string', - 'example' => 'normal', - ], - 'DomainStatus' => [ - 'description' => 'The status of the accelerated domain name. Valid values:'."\n" - ."\n" - .'* **online**: enabled'."\n" - .'* **offline**: disabled'."\n" - .'* **configuring**: configuring'."\n" - .'* **configure_failed**: configuration failed'."\n" - .'* **checking**: reviewing'."\n" - .'* **check_failed:** review failed'."\n", - 'type' => 'string', - 'example' => 'online', - ], - 'Cname' => [ - 'description' => 'The CNAME assigned to the accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com.*.com', - ], - 'GmtModified' => [ - 'description' => 'The time when the accelerated domain name was modified.'."\n", - 'type' => 'string', - 'example' => '2015-10-28T11:05:52Z', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], + 'GmtCreated' => ['description' => 'The time when the accelerated domain name was created.', 'type' => 'string', 'example' => '2015-10-28T11:05:50Z', 'title' => ''], + 'Description' => ['description' => 'The description of the domain name.', 'type' => 'string', 'example' => 'audit failed', 'title' => ''], + 'SSLProtocol' => ['description' => 'Indicates whether the HTTPS protocol is enabled. Valid values:'."\n" + ."\n" + .'- **on**: enabled.'."\n" + ."\n" + .'- **off**: disabled.', 'type' => 'string', 'example' => 'on', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'example' => 'rg-acfmv6jutt**', 'title' => ''], + 'Sandbox' => ['description' => 'Indicates whether the domain name is in a sandbox environment.', 'type' => 'string', 'example' => 'normal', 'title' => ''], + 'DomainStatus' => ['description' => 'The status of the accelerated domain name. Valid values:'."\n" + ."\n" + .'- **online**: The domain name is enabled.'."\n" + ."\n" + .'- **offline**: The domain name is disabled.'."\n" + ."\n" + .'- **configuring**: The domain name is being configured.'."\n" + ."\n" + .'- **configure\\_failed**: The domain name failed to be configured.'."\n" + ."\n" + .'- **checking**: The domain name is under review.'."\n" + ."\n" + .'- **check\\_failed**: The domain name failed the review.', 'type' => 'string', 'example' => 'online', 'title' => ''], + 'Cname' => ['description' => 'The canonical name (CNAME) assigned to the accelerated domain name.', 'type' => 'string', 'example' => 'test.aliyun.com.w.alikunlun.com', 'title' => ''], + 'GmtModified' => ['description' => 'The time when the accelerated domain name was last modified.', 'type' => 'string', 'example' => '2015-10-28T09:31:59Z', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'www.example.com', 'title' => ''], + 'DomainId' => ['description' => 'The ID of the accelerated domain name.', 'type' => 'integer', 'format' => 'int64', 'example' => '11223344', 'title' => ''], 'Sources' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'Source' => [ - 'description' => 'The information about the origin server.'."\n", + 'description' => 'The information about the origin server.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Type' => [ - 'description' => 'The type of the origin server.'."\n", - 'type' => 'string', - 'example' => 'OSS Domain'."\n", - ], - 'Weight' => [ - 'description' => 'The weight of the origin server if multiple origin servers have been specified.'."\n", - 'type' => 'string', - 'example' => '20', - ], - 'Priority' => [ - 'description' => 'The priority.'."\n", - 'type' => 'string', - 'example' => '20', - ], - 'Port' => [ - 'description' => 'The port of the origin server.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'Content' => [ - 'description' => 'The address of the origin server.'."\n", - 'type' => 'string', - 'example' => '*.aliyuncs.com', - ], + 'Type' => ['description' => 'The type of the origin server.', 'type' => 'string', 'example' => 'oss', 'title' => ''], + 'Weight' => ['description' => 'The weight of the origin server. This parameter is used for load balancing.', 'type' => 'string', 'example' => '20', 'title' => ''], + 'Priority' => ['description' => 'The priority of the origin server.', 'type' => 'string', 'example' => '20', 'title' => ''], + 'Port' => ['description' => 'The port of the origin server.', 'type' => 'integer', 'format' => 'int32', 'example' => '80', 'title' => ''], + 'Content' => ['description' => 'The address of the origin server.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], - ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'Scene' => ['description' => 'The acceleration scenario. Valid values:'."\n" + ."\n" + .'- **apiscene**: API acceleration.'."\n" + ."\n" + .'- **webservicescene**: website acceleration.'."\n" + ."\n" + .'- **staticscene**: acceleration for video, image, and text content.'."\n" + ."\n" + .'- **(empty)**: No scenario is specified.', 'type' => 'string', 'example' => 'apiscene', 'title' => ''], + 'FunctionType' => ['description' => 'The type of the computing service. Valid values:'."\n" + ."\n" + .'- **routine**: program.'."\n" + ."\n" + .'- **image**: image.'."\n" + ."\n" + .'- **cloudFunction**: function.', 'type' => 'string', 'example' => 'routine', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'The PageNumber parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'InvalidPageSize.ValueNotSupported', 'errorMessage' => 'The specified value of PageSize is invalid.', 'description' => 'The PageSize parameter is set to an invalid. Specify a valid value and try again.'], + ['errorCode' => 'InvalidDomainStatus.ValueNotSupported', 'errorMessage' => 'The specified value of DomainStatus is invalid.', 'description' => 'The DomainStatus parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => 'The specified domain name is invalid.'], + ['errorCode' => 'InvalidDomainSearchType.ValueNotSupported', 'errorMessage' => 'The specified value of DomainSearchType is invalid.', 'description' => 'The DomainSearchType parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'InvalidChangeStartTime.Malformed', 'errorMessage' => 'The specified ChangeStartTime is invalid.', 'description' => 'The update start time is invalid.'], + ['errorCode' => 'InvalidChangeEndTime.Malformed', 'errorMessage' => 'The specified ChangeEndTime is invalid.', 'description' => 'The update end time is invalid.'], ], ], - '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' => 'DescribeDcdnIpaUserDomains', - 'description' => '> You can call this operation up to 30 times per second per account.'."\n", + 'title' => 'DescribeDcdnUserDomains', + 'summary' => 'Call DescribeDcdnUserDomains to query all DCDN domain names under your account. This operation supports filtering by fuzzy match and domain status.', + 'description' => '> A single user can call this operation up to 80 times per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnIpaDomainDetail' => [ - 'summary' => 'Queries the basic configuration information about an accelerated domain name.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2024-05-11T03:00:16.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-08-29T08:43:00.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2023-08-02T02:24:51.000Z', 'description' => 'Response parameters changed'], ], - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnUserDomainsByFunc' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -19714,19 +17527,57 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ + 'name' => 'FuncId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the feature. To find the ID, search for the feature by name in the [Feature parameters for domain name configurations](~~410622~~) document. For example, the ID of the back-to-origin HOST configuration feature (set\\_req\\_host\\_header) is 18.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '7', 'title' => ''], + ], + [ + 'name' => 'FuncFilter', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether the feature specified by FuncId is enabled.'."\n" + ."\n" + .'- **config**: enabled.'."\n" + ."\n" + .'- **unconfig**: not enabled.', 'type' => 'string', 'required' => false, 'example' => 'config', 'title' => ''], + ], + [ 'name' => 'DomainName', 'in' => 'query', + 'schema' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The number of the page to return. The default value is 1. Valid values: **1** to **100000**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100000', 'minimum' => '1', 'default' => '1', 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of domain names to return on each page. The default value is 20. Valid values: **1** to **500**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'minimum' => '1', 'default' => '20', 'example' => '20', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmyuji4b6r4**', 'title' => ''], + ], + [ + 'name' => 'MatchType', + 'in' => 'query', 'schema' => [ - 'description' => 'The accelerated domain names for which you want to query basic information. You can specify only one domain name in each request.'."\n", + 'description' => 'The query type. The default value is exact\\_match. Valid values:'."\n" + ."\n" + .'- fuzzy\\_match: fuzzy query.'."\n" + ."\n" + .'- exact\\_match: exact match.', 'type' => 'string', - 'required' => true, - 'example' => 'example.com', + 'enum' => ['fuzzy_match', 'exact_match'], + 'required' => false, + 'example' => 'exact_match', + 'title' => '', ], ], ], @@ -19735,316 +17586,315 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '09ABE829-6CD3-4FE0-AFEE-556113E29727', - ], - 'DomainDetail' => [ - 'description' => 'The details about the accelerated domain name.'."\n", + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'AA75AADB-5E25-4970-B480-EAA1F5658483', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int64', 'example' => '1', 'title' => ''], + 'PageSize' => ['description' => 'The number of domain names returned on the current page.', 'type' => 'integer', 'format' => 'int64', 'example' => '5', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of domain names.', 'type' => 'integer', 'format' => 'int64', 'example' => '16', 'title' => ''], + 'Domains' => [ 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'GmtCreated' => [ - 'description' => 'The creation time.'."\n", - 'type' => 'string', - 'example' => '2017-11-27T06:51:26Z', - ], - 'SSLPub' => [ - 'description' => 'The public key of the certificate if HTTPS is enabled.'."\n", - 'type' => 'string', - 'example' => 'SSLPub', - ], - 'Description' => [ - 'description' => 'The description.'."\n", - 'type' => 'string', - 'example' => 'audit failed', - ], - 'SSLProtocol' => [ - 'description' => 'Indicates whether the Security Socket Layer (SSL) certificate is enabled. Valid values:'."\n" - ."\n" - .'* **on**'."\n" - .'* **off**.'."\n", - 'type' => 'string', - 'example' => 'on', - ], - 'ResourceGroupId' => [ - 'description' => 'The ID of the resource group.'."\n", - 'type' => 'string', - 'example' => 'rg-acfmyuji4b6xxxx', - ], - 'CertName' => [ - 'description' => 'Indicates the name of the certificate if the HTTPS protocol is enabled.'."\n", - 'type' => 'string', - 'example' => 'yourCertName', - ], - 'Scope' => [ - 'description' => 'The acceleration region. Valid values:'."\n" - ."\n" - .'* domestic: Chinese mainland'."\n" - .'* overseas: outside the Chinese mainland'."\n" - .'* global: global'."\n", - 'type' => 'string', - 'example' => 'overseas', - ], - 'Cname' => [ - 'description' => 'The CNAME assigned to the domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'DomainStatus' => [ - 'description' => 'The status of the accelerated domain name. Valid values:'."\n" - ."\n" - .'* **online**: enabled'."\n" - .'* **offline**: disabled'."\n" - .'* **configuring**: configuring'."\n" - .'* **configure_failed**: configuration failed'."\n" - .'* **checking**: reviewing'."\n" - .'* **check_failed:** review failed'."\n", - 'type' => 'string', - 'example' => 'online', - ], - 'GmtModified' => [ - 'description' => 'The time when the domain name was last modified.'."\n", - 'type' => 'string', - 'example' => '2017-11-27T06:51:26Z', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain names.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'Sources' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Source' => [ - 'description' => 'The information about the origin server.'."\n", - 'type' => 'array', - 'items' => [ + 'PageData' => [ + 'description' => 'An array of PageData objects that contain the status information of the accelerated domain names.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'GmtCreated' => ['description' => 'The time when the accelerated domain name was created.', 'type' => 'string', 'example' => '2015-10-28T09:32:51Z', 'title' => ''], + 'SslProtocol' => ['description' => 'Indicates whether HTTPS is enabled. Valid values:'."\n" + ."\n" + .'- **on**: enabled.'."\n" + ."\n" + .'- **off**: disabled.', 'type' => 'string', 'example' => 'on', 'title' => ''], + 'Description' => ['description' => 'The reason why the review failed.', 'type' => 'string', 'example' => 'audit failed', 'title' => ''], + 'ResourceGroupId' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'example' => 'rg-acfmyuji4b6r4**', 'title' => ''], + 'Sandbox' => ['description' => 'The sandbox.', 'type' => 'string', 'example' => 'normal', 'title' => ''], + 'DomainStatus' => ['description' => 'The status of the accelerated domain name. Valid values:'."\n" + ."\n" + .'- **online**: enabled.'."\n" + ."\n" + .'- **offline**: disabled.'."\n" + ."\n" + .'- **configuring**: configuring.'."\n" + ."\n" + .'- **configure\\_failed**: configuration failed.'."\n" + ."\n" + .'- **checking**: under review.'."\n" + ."\n" + .'- **check\\_failed**: review failed.', 'type' => 'string', 'example' => 'configure_failed', 'title' => ''], + 'Cname' => ['description' => 'The CNAME that is assigned to the accelerated domain name.', 'type' => 'string', 'example' => 'example.com.w.alikunlun.net', 'title' => ''], + 'GmtModified' => ['description' => 'The time when the accelerated domain name was last modified.', 'type' => 'string', 'example' => '2015-10-28T11:05:50Z', 'title' => ''], + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'Sources' => [ 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'Type' => [ - 'description' => 'The type of the origin server. Valid values:'."\n" - ."\n" - .'* **ipaddr**: an origin IP address'."\n" - .'* **domain**: a domain name.'."\n" - .'* **oss**: Object Storage Service (OSS) buckets are not supported.'."\n", - 'type' => 'string', - 'example' => 'oss', - ], - 'Weight' => [ - 'description' => 'The weight of the origin server if multiple origin servers have been specified.'."\n", - 'type' => 'string', - 'example' => '10', - ], - 'Enabled' => [ - 'description' => 'The status.'."\n", - 'type' => 'string', - 'example' => 'online', - ], - 'Priority' => [ - 'description' => 'The priority.'."\n", - 'type' => 'string', - 'example' => '50', - ], - 'Port' => [ - 'description' => 'The custom port. Valid values: **0** to **65535**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'Content' => [ - 'description' => 'The address of the origin server.'."\n", - 'type' => 'string', - 'example' => 'xxx.oss-cn-hangzhou.aliyuncs.com', + 'Source' => [ + 'description' => 'The information about the origin server.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => 'The type of the origin server.', 'type' => 'string', 'example' => 'oss', 'title' => ''], + 'Weight' => ['description' => 'The weight of the origin server for back-to-origin routing.', 'type' => 'string', 'example' => '20', 'title' => ''], + 'Priority' => ['description' => 'The priority.', 'type' => 'string', 'example' => '20', 'title' => ''], + 'Port' => ['description' => 'The port of the origin server.', 'type' => 'integer', 'format' => 'int32', 'example' => '80', 'title' => ''], + 'Content' => ['description' => 'The address of the origin server.', 'type' => 'string', 'example' => 'image.developer.aliyundoc.com', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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' => 'DescribeDcdnIpaDomainDetail', - 'description' => '> You can call this operation up to 30 times per second per account.'."\n", + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidPageNumber.ValueNotSupported', 'errorMessage' => 'The specified value of PageNumber is not supported.', 'description' => 'The PageNumber parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'InvalidPageSize.ValueNotSupported', 'errorMessage' => 'The specified value of PageSize is invalid.', 'description' => 'The PageSize parameter is set to an invalid. Specify a valid value and try again.'], + ['errorCode' => 'InvalidDomainStatus.ValueNotSupported', 'errorMessage' => 'The specified value of DomainStatus is invalid.', 'description' => 'The DomainStatus parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => 'The specified domain name is invalid.'], + ['errorCode' => 'InvalidDomainSearchType.ValueNotSupported', 'errorMessage' => 'The specified value of DomainSearchType is invalid.', 'description' => 'The DomainSearchType parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'InvalidChangeStartTime.Malformed', 'errorMessage' => 'The specified ChangeStartTime is invalid.', 'description' => 'The update start time is invalid.'], + ['errorCode' => 'InvalidChangeEndTime.Malformed', 'errorMessage' => 'The specified ChangeEndTime is invalid.', 'description' => 'The update end time is invalid.'], + ], + ], + 'title' => 'DescribeDcdnUserDomainsByFunc', + 'summary' => 'Call the DescribeDcdnUserDomainsByFunc operation to query all DCDN domain names that are associated with your account and have a specific feature configured. The feature is specified by FuncId.', + 'description' => '> The call frequency for a single user is 100 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteDcdnIpaSpecificConfig' => [ - 'summary' => 'Deletes specific configurations of an accelerated domain name from IP Application Accelerator (IPA).', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2023-10-16T07:45:07.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ['createdAt' => '2023-03-02T02:57:33.000Z', 'description' => 'Response parameters changed'], + ], + '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnUserQuota' => [ + 'summary' => 'Call DescribeDcdnUserQuota to query resource quotas and usage.', + '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' => 'The accelerated domain name. You can specify only one domain name in each request.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'ConfigId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the configuration. You can call the [DescribeDcdnDomainConfigs](~~130625~~) operation to query configuration IDs.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '50035**', - ], - ], + 'abilityTreeCode' => '111560', + 'abilityTreeNodes' => ['FEATUREdcdnZA9EPX'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], + 'BlockQuota' => ['description' => 'The quota for blocked URLs.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '20'], + 'RefreshUrlRemain' => ['description' => 'The remaining number of URLs that can be refreshed.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '100'], + 'DomainQuota' => ['description' => 'The quota for accelerated domain names.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '50'], + 'BlockRemain' => ['description' => 'The remaining number of URLs that can be blocked.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '500'], + 'PreloadRemain' => ['description' => 'The remaining number of URLs that can be prefetched.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '300'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'BFFCDFAD-DACC-484E-9BE6-0AF3B3A0DD23'], + 'RefreshUrlQuota' => ['description' => 'The quota for refreshing URLs.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '100'], + 'PreloadQuota' => ['description' => 'The quota for prefetching URLs.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '500'], + 'RefreshDirQuota' => ['description' => 'The quota for refreshing directories.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '100'], + 'RefreshDirRemain' => ['description' => 'The remaining number of directories that can be refreshed.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '100'], + 'IgnoreParamsQuota' => ['description' => 'The quota for refreshing URLs with parameters ignored.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '100'], + 'IgnoreParamsRemain' => ['description' => 'The remaining number of URLs that can be refreshed with parameters ignored.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '10'], ], + 'description' => '', + 'title' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Invalid%s.ValueNotSupported', - 'errorMessage' => 'FunctionName [%s] is not supported.', - ], + 'title' => 'DescribeDcdnUserQuota', + 'description' => '> The call frequency limit for a single user is 30 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-10-13T02:30:44.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserQuota'], ], - 403 => [ - [ - 'errorCode' => 'DcdnIpaServiceNotFound', - 'errorMessage' => 'The DCDN IPA service has not been activated.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserQuota', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], - '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' => 'DeleteDcdnIpaSpecificConfig', - 'description' => '> You can call this operation up to 10 times per second per account.'."\n", - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'DescribeDcdnDomainProperty' => [ - 'summary' => 'Queries the protocol type of IP Application Accelerator (IPA).', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnUserRealTimeDeliveryField' => [ + 'summary' => 'Queries the fields that are selected.', + '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' => 'The accelerated domain name that you want to query. You can specify only one domain name in each call.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The type of the collected logs. Default value: cdn\\_log\\_access\\_l1. Valid values:'."\n" + ."\n" + .'- **cdn\\_log\\_access\\_l1**: access logs of L1 Dynamic Content Delivery Network (DCDN) points of presence (POPs)'."\n" + ."\n" + .'- **cdn\\_log\\_origin**: back-to-origin logs'."\n" + ."\n" + .'- **cdn\\_log\\_er**: EdgeRoutine logs', 'type' => 'string', 'required' => false, 'default' => 'dcdn_log_access_l1', 'example' => 'cdn_log_access_l1', 'title' => ''], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'Protocol' => [ - 'description' => 'The protocol. Valid values:'."\n" - ."\n" - .'* **udp**'."\n" - .'* **tcp**'."\n", - 'type' => 'string', - 'example' => 'udp', + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4', 'title' => ''], + 'Content' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Fields' => [ + 'description' => 'The data returned.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Description' => ['description' => 'The description of the field.', 'type' => 'string', 'example' => 'Access time', 'title' => ''], + 'Selected' => ['description' => 'Indicates whether the field was selected.'."\n" + ."\n" + .'- **true**'."\n" + ."\n" + .'- **false**', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'FieldName' => ['description' => 'The name of the field.', 'type' => 'string', 'example' => 'unixtime', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'An inner exception was triggered. Please try again later.'], ], ], - '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' => 'DescribeDcdnDomainProperty', - 'description' => '> You can call this operation up to 10 times per second per account.'."\n", + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'DescribeDcdnUserRealTimeDeliveryField', + 'description' => '> Each account can call this operation up to 100 times per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainIpaBpsData' => [ - 'summary' => 'Queries bandwidth of accelerated domain names for which Layer 4 acceleration is enabled. You can query the data that is collected over the last 90 days.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2024-12-18T07:22:52.000Z', 'description' => 'Error codes changed'], ], - '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'translator' => 'manual', + ], + 'DescribeDcdnUserResourcePackage' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -20055,213 +17905,137 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111562', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name.'."\n" - ."\n" - .'Separate multiple domain names with commas (,). If you leave this parameter empty, all accelerated domain names are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], - ], - [ - 'name' => 'TimeMerge', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to automatically set the interval. If you set **TimeMerge** to **1**, the value of the **Interval** parameter is automatically assigned based on the **startTime** and **endTime** parameters. You can specify either this parameter or the **Interval** parameter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'Interval', - 'in' => 'query', - 'schema' => [ - 'description' => 'The time granularity of data entries. Unit: seconds.'."\n" - ."\n" - .'The time granularity varies with the time range specified by **StartTime** and **EndTime**.'."\n" - ."\n" - .'* If the time range between StartTime and EndTime is less than 3 days, the valid values are **300**, **3600**, and **86400**. If you leave this parameter empty, **300** is used.'."\n" - .'* If the time range between StartTime and EndTime is greater than or equal to 3 days and less than 31 days, the valid values are **3600** and **86400**. Default value: **3600**.'."\n" - .'* If the time range between StartTime and EndTime is 31 days or longer, the valid value is **86400**. Default value: **86400**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], - ], - [ - 'name' => 'FixTimeGap', + 'name' => 'Status', 'in' => 'query', 'schema' => [ - 'description' => 'Specifies whether to implement padding with zeros. Valid values:'."\n" + 'description' => 'The status of the resource plan. The default value is valid. Valid values:'."\n" ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'IspNameEn', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the Internet service provider (ISP).'."\n" + .'- **valid**: The resource plan is valid.'."\n" ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query ISPs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Unicom', - ], - ], - [ - 'name' => 'LocationNameEn', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the region.'."\n" + .'- **closed**: The resource plan is closed.'."\n" ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query regions.'."\n", + .'- **exhaust**: The resource plan is exhausted.', 'type' => 'string', 'required' => false, - 'example' => 'beijing', + 'default' => 'valid', + 'enumValueTitles' => ['valid' => 'valid', 'exhaust' => 'exhaust', 'closed' => 'closed'], + 'title' => '', + 'example' => 'valid', ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The request ID.', 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The beginning of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => 'The time interval at which data was collected. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '300', - ], - 'BpsDataPerInterval' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '96ED3127-EC7A-57C5-AFA6-A689B24B2530'], + 'ResourcePackageInfos' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DataModule' => [ - 'description' => 'The bandwidth data returned at each interval.'."\n", + 'ResourcePackageInfo' => [ + 'description' => 'The list of resource plans.', 'type' => 'array', 'items' => [ + 'description' => 'An array of ResourcePackageInfo objects.', 'type' => 'object', 'properties' => [ - 'IpaBps' => [ - 'description' => 'The bandwidth value. Unit: bit/s.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '11288111', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the data returned.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], + 'EndTime' => ['description' => 'The expiration time. The time is in the \\`yyyy-MM-ddTHH:mm:ssZ\\` format. The time is displayed in UTC and complies with the ISO 8601 standard.', 'type' => 'string', 'title' => '', 'example' => '2022-08-24T16:00:00Z'], + 'Status' => ['description' => 'The status of the resource plan. Valid values:'."\n" + ."\n" + .'- **valid**: The resource plan is valid.'."\n" + ."\n" + .'- **closed**: The resource plan is closed.'."\n" + ."\n" + .'- **exhaust**: The resource plan is exhausted.', 'type' => 'string', 'title' => '', 'example' => 'valid'], + 'DisplayName' => ['description' => 'The name of the resource plan.', 'type' => 'string', 'title' => '', 'example' => 'Downstream Data Package (Australia Sydney)'], + 'StartTime' => ['description' => 'The effective time. The time is in the \\`yyyy-MM-ddTHH:mm:ssZ\\` format. The time is displayed in UTC and complies with the ISO 8601 standard.', 'type' => 'string', 'title' => '', 'example' => '2021-08-24T04:09:22Z'], + 'CommodityCode' => ['description' => 'The commodity code of the resource plan.', 'type' => 'string', 'title' => '', 'example' => 'dcdnpaybag'], + 'InstanceId' => ['description' => 'The ID of the resource plan.', 'type' => 'string', 'title' => '', 'example' => 'CDNFLOWBAG-cn-7pp2bihrb01ii0'], + 'TemplateName' => ['description' => 'The name of the template.', 'type' => 'string', 'title' => '', 'example' => 'FPT_dcdnpaybag_deadlineAcc_1541151058'], + 'CurrCapacity' => ['description' => 'The remaining amount of the resource plan.'."\n" + ."\n" + .'- The unit for data transfer plans is byte.'."\n" + ."\n" + .'- The unit for request plans is count.', 'type' => 'string', 'title' => '', 'example' => '10000000'], + 'InitCapacity' => ['description' => 'The total amount of the resource plan.'."\n" + ."\n" + .'- The unit for data transfer plans is byte.'."\n" + ."\n" + .'- The unit for request plans is count.', 'type' => 'string', 'title' => '', 'example' => '10000000'], + 'Region' => ['type' => 'string', 'description' => 'The region.', 'title' => '', 'example' => 'CN'], + 'CurrCapacityShowValue' => ['type' => 'string', 'description' => 'The display value of the remaining capacity of the instance.', 'title' => '', 'example' => '49.975789'."\n"], + 'CurrCapacityShowUnit' => ['type' => 'string', 'description' => 'The display unit of the remaining capacity of the instance.', 'title' => '', 'example' => 'GB'."\n"], + 'CurrCapacityBaseUnit' => ['type' => 'string', 'description' => 'The base unit of the remaining capacity of the instance.', 'title' => '', 'example' => 'Byte'], + 'InitCapacityShowValue' => ['type' => 'string', 'description' => 'The display value of the total capacity of the resource plan.', 'title' => '', 'example' => '100.000000'."\n"], + 'InitCapacityShowUnit' => ['type' => 'string', 'description' => 'The display unit of the total capacity of the resource plan.', 'title' => '', 'example' => 'GB'."\n"], + 'InitCapacityBaseUnit' => ['type' => 'string', 'description' => 'The base unit of the total capacity of the resource plan.', 'title' => '', 'example' => 'Byte'], ], + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], '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 is not activated. Activate DCDN and try again.'], ], ], - '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' => 'DescribeDcdnDomainIpaBpsData', - 'description' => '> '."\n" - ."\n" - .'* The bandwidth is measured in bit/s.'."\n" - ."\n" - .'* If you do not set the **StartTime** or **EndTime** parameter, the request returns the data collected in the last 24 hours. If you set both the **StartTime** and **EndTime** parameters, the request returns the data collected within the specified time range.'."\n" - .'* You can call this operation up to 100 times per second per account.'."\n", + 'title' => 'DescribeDcdnUserResourcePackage', + 'summary' => 'You can call the DescribeDcdnUserResourcePackage operation to query information about all your resource plans, such as the total amount, remaining amount, effective time, expiration time, and status.', + 'description' => '> The call frequency for a single user is limited to 30 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainIpaTrafficData' => [ - 'summary' => 'Queries traffic of one or more accelerated domain names for which Layer 4 acceleration is enabled. You can query the data that is collected over the last 90 days.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2025-05-08T06:54:43.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2025-04-25T02:22:39.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2025-04-25T02:05:02.000Z', 'description' => 'Response parameters changed'], ], - '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnUserSecDrop' => [ + 'summary' => 'Queries the number of requests that are blocked by a security feature of DCDN.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -20272,110 +18046,52 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'DomainName', + 'name' => 'Data', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name.'."\n" - ."\n" - .'Separate multiple domain names with commas (,). If you do not specify a value for this parameter, data for all accelerated domain names is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The date or month of the query.'."\n" + ."\n" + .'- If the time granularity is 1 day, use the \\`yyyymmdd\\` format. Example: \\`20201203\\`.'."\n" + ."\n" + .'- If the time granularity is 1 month, use the \\`yyyymm\\` format. Example: \\`202012\\`.', 'type' => 'string', 'required' => true, 'example' => '20201203', 'title' => ''], ], [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T20:00:00Z', - ], - ], - [ - 'name' => 'EndTime', + 'name' => 'SecFunc', 'in' => 'query', 'schema' => [ - 'description' => 'The end of the time range to query.'."\n" + 'description' => 'The security feature. Valid values:'."\n" ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + .'- \\`waf\\`: WAF'."\n" ."\n" - .'> The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2017-12-10T21:00:00Z', - ], - ], - [ - 'name' => 'TimeMerge', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to automatically calculate the value of the **interval**. If the **timeMerge** parameter is set to **1**, the value of **inteval** is calculated based on **StartTime** and **EndTime**. You can set either this parameter or the **interval** parameter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'Interval', - 'in' => 'query', - 'schema' => [ - 'description' => 'The time granularity of data entries. Unit: seconds.'."\n" + .'- \\`tmd\\`: IP rate limiting'."\n" ."\n" - .'The time granularity varies with the time range specified by **StartTime** and **EndTime**.'."\n" - ."\n" - .'* If the time range between StartTime and EndTime is less than 3 days, the valid values are **300**, **3600**, and **86400**. If you do not specify a value for this parameter, **300** is used.'."\n" - .'* If the time range between StartTime and EndTime is greater than or equal to 3 days and less than 31 days, the valid values are **3600** and **86400**. Default value: **3600**.'."\n" - .'* If the time range between StartTime and EndTime is 31 days or longer, the valid value is **86400**. Default value: **86400**.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], - ], - [ - 'name' => 'FixTimeGap', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specify whether to implement padding with zeros. Valid values:'."\n" + .'- \\`robot\\`: bot traffic detection'."\n" ."\n" - .'* **true**'."\n" - .'* **false**'."\n", + .'- \\`l4\\_dm\\_drop\\`: Layer 4 domain name blocking', 'type' => 'string', - 'required' => false, - 'example' => 'false', + 'required' => true, + 'enum' => ['waf', 'tmd', 'robot', 'l4_dm_drop'], + 'example' => 'waf', + 'title' => '', ], ], [ - 'name' => 'IspNameEn', + 'name' => 'Metric', 'in' => 'query', 'schema' => [ - 'description' => 'The name of the Internet service provider (ISP).'."\n" + 'description' => 'The time granularity of the query. Valid values:'."\n" ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query ISPs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'unicom', - ], - ], - [ - 'name' => 'LocationNameEn', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the region.'."\n" + .'- \\`1day\\`: queries data by day.'."\n" ."\n" - .'You can call the [DescribeDcdnRegionAndIsp](~~207199~~) operation to query regions.'."\n", + .'- \\`1month\\`: queries data by month.', 'type' => 'string', - 'required' => false, - 'example' => 'beijing', + 'required' => true, + 'enum' => ['1day', '1month'], + 'example' => '1day', + 'title' => '', ], ], ], @@ -20384,105 +18100,51 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T21:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The start of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'B955107D-E658-4E77-B913-E0AC3D31693E', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'DataInterval' => [ - 'description' => 'The time interval between the data entries returned. Unit: seconds.'."\n", - 'type' => 'string', - 'example' => '300', - ], - 'TrafficDataPerInterval' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'DataModule' => [ - 'description' => 'The network traffic that was collected at each interval.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'IpaTraffic' => [ - 'description' => 'The total amount of network traffic.'."\n", - 'type' => 'number', - 'format' => 'float', - 'example' => '423304182', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the returned data.'."\n", - 'type' => 'string', - 'example' => '2017-12-10T20:00:00Z', - ], - ], - ], - ], - ], - ], + 'Msg' => ['description' => 'Indicates whether the information was found.'."\n" + ."\n" + .'- \\`Found\\`: The information was found.'."\n" + ."\n" + .'- \\`Not Found\\`: The information was not found.', 'type' => 'string', 'example' => 'Found', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '4A1295C0-7A5C-4F27-8D70-C3A648E7037F', 'title' => ''], + 'Drops' => ['description' => 'The number of blocked requests.', 'type' => 'integer', 'format' => 'int32', 'example' => '233023208', 'title' => ''], + 'UuidStr' => ['description' => 'A string generated from the request parameters. Use this string to identify why no data is returned.', 'type' => 'string', 'example' => '1day10811******6429wafDCDN', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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.', + 'title' => 'DescribeDcdnUserSecDrop', + 'description' => '> The call frequency for a single user is limited to 50 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnUserSecDrop'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserSecDrop', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], - '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' => 'DescribeDcdnDomainIpaTrafficData', - 'description' => '> '."\n" - ."\n" - .'* If you do not set the **StartTime** or **EndTime** parameter, the request returns the data collected in the last 24 hours. If you set both the **StartTime** and **EndTime** parameters, the request returns the data collected within the specified time range.'."\n" - ."\n" - .'* Unit: bytes.'."\n" - .'* You can call this operation up to 100 times per second per account.'."\n", - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Msg\\": \\"Found\\",\\n \\"RequestId\\": \\"4A1295C0-7A5C-4F27-8D70-C3A648E7037F\\",\\n \\"Drops\\": 233023208,\\n \\"UuidStr\\": \\"1day10811******6429wafDCDN\\"\\n}","type":"json"}]', ], - 'DescribeDcdnDomainIpaConnData' => [ - 'summary' => 'Queries the number of IPA user connections.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnUserSecDropByMinute' => [ + 'summary' => 'Call DescribeDcdnUserSecDropByMinute to query the total number of blocked security messages at the application layer of edge nodes within a specific time period.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -20493,286 +18155,253 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ + 'name' => 'SecFunc', + 'in' => 'query', + 'schema' => ['description' => 'The name of the security feature.', 'type' => 'string', 'required' => true, 'example' => 'robot', 'title' => ''], + ], + [ + 'name' => 'RuleName', + 'in' => 'query', + 'schema' => ['description' => 'The triggered rule.', 'type' => 'string', 'required' => false, 'example' => 'robot_ai', 'title' => ''], + ], + [ + 'name' => 'Object', + 'in' => 'query', + 'schema' => ['description' => 'The triggered object.', 'type' => 'string', 'required' => false, 'example' => 'robot_fingerprint_ai', 'title' => ''], + ], + [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The domain names accelerated by IPA. Separate multiple domain names with commas (,).'."\n" - ."\n" - .'> If you do not specify this parameter, the merged data of all accelerated domain names is returned.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example1.com', - ], + 'schema' => ['description' => 'The domain name.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The start of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2015-02-21T07:00:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC. For example, "2006-01-02T15:04:04Z".', 'type' => 'string', 'required' => false, 'example' => '2006-01-02T15:04:04Z', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query.'."\n" - ."\n" - .'Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2015-02-22T7:00:00Z', - ], + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC. For example, "2006-01-02T15:05:04Z".'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2006-01-02T15:05:04Z', 'title' => ''], ], [ - 'name' => 'SplitBy', + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page. Maximum value: 100.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'maximum' => '100', 'default' => '20', 'example' => '2', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number. Pages start from 1.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'default' => '1', 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'Lang', 'in' => 'query', 'schema' => [ - 'description' => 'Specifies how query results are grouped. By default, this parameter is empty. Valid values:'."\n" - ."\n" - .'* domain: Query results are grouped by accelerated domain name.'."\n" - .'* An empty string: Query results are not grouped.'."\n", + 'description' => 'The language. Valid values: en and zh. Default value: en.', 'type' => 'string', - 'required' => false, - 'example' => 'domain', + 'required' => true, + 'enum' => ['zh', 'en'], + 'example' => 'zh', + 'title' => '', ], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2015-02-22T15:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The beginning of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2015-02-21T15:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'A2A1EEF8-043E-43A1-807C-BEAC18EA1807', - ], - 'ConnectionDataPerInterval' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'DataModule' => [ - 'description' => 'The number of user connections at each time interval.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'TimeStamp' => [ - 'description' => 'The timestamp of the data returned.'."\n", - 'type' => 'string', - 'example' => '2022-02-21T15:00:00+08:00', - ], - 'Domain' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example1.com', - ], - 'Connections' => [ - 'description' => 'The number of IPA user connections.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '189095', - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '8143fA8A-B2B2-4915-538D-546B538D25FA', 'title' => ''], + 'Description' => ['description' => 'The description of the HTTP response.', 'type' => 'string', 'example' => 'OK', 'title' => ''], + 'Len' => ['description' => 'The number of entries returned on the current page.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int32', 'example' => '5738', 'title' => ''], + 'Rows' => [ + 'description' => 'The data array.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Domain' => ['description' => 'The domain name.', 'type' => 'string', 'example' => 'example.aliyundoc.com', 'title' => ''], + 'TmStr' => ['description' => 'The start time of the statistics. The time is in the yyyy-MM-ddTHH:mm:ssZ format and is displayed in UTC.', 'type' => 'string', 'example' => '2021-01-31T15:04:04Z', 'title' => ''], + 'Drops' => ['description' => 'The total number of blocked requests in a 5-minute interval.', 'type' => 'integer', 'format' => 'int32', 'example' => '264', 'title' => ''], + 'Object' => ['description' => 'The triggered object.', 'type' => 'string', 'example' => 'Normal mode rule', 'title' => ''], + 'SecFunc' => ['description' => 'The security feature or security type.', 'type' => 'string', 'example' => 'robot', 'title' => ''], + 'RuleName' => ['description' => 'The triggered rule.', 'type' => 'string', 'example' => 'normal_mode_rule', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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' => 'DescribeDcdnDomainIpaConnData', - 'description' => '* You can call this operation up to 10 times per second per user.'."\n" - .'* If you do not set the **StartTime** or **EndTime** parameter, the request returns the data collected in the last 24 hours. If you set both the **StartTime** and **EndTime** parameters, the request returns the data collected within the specified time range.'."\n" - .'* The minimum time granularity at which the data is queried is 5 minutes. The maximum time range for a single query is 31 days. The period within which historical data is available is 366 days. The data latency is no more than 10 minutes.'."\n", + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'DescribeDcdnUserSecDropByMinute', + 'description' => '> The maximum call frequency for a single user is 50 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnIpaDomainCidr' => [ - 'summary' => 'Queries the back-to-origin CIDR blocks of IPA-accelerated domain names. If you want to call this API operation, you must submit a ticket to apply for the required permissions.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2022-12-07T03:31:11.000Z', 'description' => 'Error codes changed'], ], - '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}'], + ], + ], + ], + ], + 'translator' => 'manual', + ], + 'DescribeDcdnUserTags' => [ + 'summary' => 'Call DescribeDcdnUserTags to query user tags.', + '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' => 'The accelerated domain name. You can specify only one domain name in each request.'."\n", - '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'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], - 'Cidr' => [ - 'description' => 'The back-to-origin IPv4 and IPv6 CIDR blocks.'."\n", + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB'], + 'Tags' => [ + 'description' => 'The tags.', 'type' => 'array', 'items' => [ - 'description' => '具体IP段信息。', - 'type' => 'string', - 'example' => '1.1.1.0/24', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'title' => '', 'example' => 'region'], + 'Value' => [ + 'type' => 'array', + 'items' => ['description' => 'The tag value.', 'type' => 'string', 'title' => '', 'example' => 'hangzhou'], + 'description' => 'A list of tag values.', + 'title' => '', + ], + ], + 'description' => '', + 'title' => '', ], - 'example' => '["1.1.1.0/24","2.2.2.0/24","1111:2222:3333:4444:5555:0:0:0/80"]', + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], ], ], - 'errorCodes' => [ - 404 => [ - [ - 'errorCode' => 'InvalidDomain.NotFound', - 'errorMessage' => 'The domain does not exist, or it does not belong to you.', - ], + 'title' => 'DescribeDcdnUserTags', + 'description' => '> The throttling limit for a single user is 100 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-03-02T08:35:57.000Z', 'description' => 'Response parameters changed'], + ], + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\",\\n \\"Cidr\\": [\\n \\"1.1.1.0/24\\"\\n ]\\n}","type":"json"}]', - 'title' => 'DescribeDcdnIpaDomainCidr', - 'description' => '> This operation can be called globally up to 50 times per second. This operation can be called up to 10 times per second per account.'."\n", + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\",\\n \\"Tags\\": [\\n {\\n \\"Key\\": \\"region\\",\\n \\"Value\\": [\\n \\"hangzhou\\"\\n ]\\n }\\n ]\\n}","type":"json"}]', ], - 'CreateRoutine' => [ - 'summary' => 'Creates a 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' => 'The name of the routine. The name must be unique among the routines that belong to the same Alibaba Cloud account.'."\n", + 'description' => 'The domain name. Only a single domain name is supported.', + 'enumValueTitles' => ['example.com' => 'example.com'], 'type' => 'string', 'required' => true, - 'example' => 'test', + 'example' => 'example.com'."\n", + 'title' => '', ], ], [ - 'name' => 'Description', - 'in' => 'formData', + 'name' => 'Available', + 'in' => 'query', 'schema' => [ - 'description' => 'The description of the routine.'."\n", + 'description' => 'Specifies whether to query healthy VIPs. Valid values:'."\n" + ."\n" + .'- **on**: healthy VIPs.'."\n" + ."\n" + .'- **off**: all VIPs.', 'type' => 'string', 'required' => false, - 'example' => 'the description of this routine', - ], - ], - [ - 'name' => 'EnvConf', - 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => 'The configurations of the specified environment.'."\n", - 'type' => 'object', - 'required' => false, - 'example' => '{"staging":{"SpecName":"50ms"},"production":{"SpecName":"50ms"}}', + 'enum' => ['on', 'off'], + 'example' => 'on', + 'title' => '', ], ], ], @@ -20781,82 +18410,84 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => 'The message returned, such as ""Status": "OK"".'."\n", + 'DomainName' => ['description' => 'The domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '820E7900-5CA9-4AEF-B0DD-20ED5F64BE55', 'title' => ''], + 'Vips' => [ 'type' => 'object', - 'example' => '"Status": "OK"', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'itemNode' => true, + 'properties' => [ + 'Vip' => [ + 'description' => 'The list of VIP addresses.', + 'type' => 'array', + 'items' => ['description' => 'The VIP list.', 'type' => 'string', 'example' => '122.72.xxx.xxx', 'title' => ''], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'CreateRoutine', - 'description' => '> * The parameters must comply with the rules of EnvConf. The description of a routine cannot exceed 50 characters in length.'."\n" - .'>* You can only specify the production and staging environments when you call this operation.'."\n" - .'>* You can call this operation up to 100 times per second per account.', - 'requestParamsDescription' => '### Formats of EnvConf parameters'."\n" - ."\n" - .' "EnvConf": { // The configuration of each environment. '."\n" - .' "staging": { // The configuration of a staging environment. '."\n" - .' "SpecName": "50ms"// The name of the specification. You can call the DescribeRoutineSpec operation to query available specifications, such as 5 ms, 50 ms, and 100 ms. '."\n" - .' }'."\n" - .' "production": { // The configuration of a production environment. '."\n" - .' "SpecName": "50ms"'."\n" - .' }'."\n" - .' }'."\n", - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteRoutine' => [ - 'summary' => 'Deletes a routine.', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query L1 node IP list', + 'summary' => 'Queries the IP address list of a domain name by calling DescribeDcdnUserVipsByDomain.', + 'description' => '> The call frequency limit for a single user is 30 calls per second.', + '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' => 'Call DescribeDcdnVerifyContent to get the ownership verification content for a domain name.', + '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' => 'The name of the routine. The name must be unique among the routines that belong to the same Alibaba Cloud account.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => 'The domain name whose ownership you want to verify. You can specify only one domain name.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '**example**.com'], ], ], 'responses' => [ @@ -20864,158 +18495,120 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => 'The message returned, such as ""Status": "OK"".'."\n", - 'type' => 'object', - 'example' => '"Status": "OK"', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], + 'Content' => ['description' => 'The verification content.', 'type' => 'string', 'title' => '', 'example' => 'verify_dffeb6610035dcb78b413a59c31cd9**'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB'], ], + 'description' => '', + 'title' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', + 'title' => 'DescribeDcdnVerifyContent', + 'description' => '> The maximum call frequency for a single user is 100 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-12-14T02:23:19.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnVerifyContent'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnVerifyContent', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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":""}]', - 'title' => 'DeleteRoutine', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": \\"verify_dffeb6610035dcb78b413a59c31cd9**\\",\\n \\"RequestId\\": \\"34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\"\\n}","type":"json"}]', ], - 'DeleteRoutineCodeRevision' => [ - 'summary' => 'Deletes the code of the specified version from a routine.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + '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' => 'The name of the routine. The name must be unique among the routines that belong to the same Alibaba Cloud account.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], - ], - [ - 'name' => 'SelectCodeRevision', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The number of the version that you want to delete.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '123456', - ], - ], + 'abilityTreeCode' => '152891', + 'abilityTreeNodes' => ['FEATUREdcdnV3YEJ8'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => 'The message returned, such as ""Status": "OK"".'."\n", - 'type' => 'object', - 'example' => '"Status": "OK"', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'F2542B96-B535-5BF9-8EEE-1CF11B20CCA8'], + 'AppKey' => ['description' => 'The SDK authentication key that corresponds to the Alibaba Cloud account.', 'type' => 'string', 'title' => '', 'example' => 'examp1eapp_key_xxxiuMWTX4Gw'], ], + 'description' => '', + 'title' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', + 'title' => 'DescribeDcdnWafBotAppKey', + 'summary' => 'Call the DescribeDcdnWafBotAppKey operation to query the SDK authentication key for your Alibaba Cloud account. This key is required for SDK initialization and must be included in your integration code.', + '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' => 'All Resource', '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' => 'DeleteRoutineCodeRevision', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F2542B96-B535-5BF9-8EEE-1CF11B20CCA8\\",\\n \\"AppKey\\": \\"examp1eapp_key_xxxiuMWTX4Gw\\"\\n}","type":"json"}]', ], - 'DeleteRoutineConfEnvs' => [ - 'summary' => 'Deletes canary release environments from a routine.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnWafDefaultRules' => [ + 'summary' => 'Calls the DescribeDcdnWafDefaultRules operation to query the default configurations of WAF rules.', + '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' => 'The name of the routine. The name must be unique among the routines that belong to the same Alibaba Cloud account.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], - ], - [ - 'name' => 'Envs', - 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => 'The custom canary release environments that you want to delete.'."\n", - 'type' => 'object', - 'required' => true, - 'example' => '["presetCanaryZheJiang"]', - ], + 'name' => 'QueryArgs', + 'in' => 'query', + 'schema' => ['description' => 'The query conditions, which are a JSON-serialized string.'."\n" + .'Format: `QueryArgs={"DefenseScene":"anti_scan"}`', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '{"DefenseScene":"anti_scan"}'], ], ], 'responses' => [ @@ -21023,49 +18616,92 @@ 'schema' => [ 'type' => 'object', 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '15C66C7B-671A-4297-9187-2C4477247A123425345'], 'Content' => [ - 'description' => 'The message returned, such as ""Status": "OK"".'."\n", - 'type' => 'object', - 'example' => '"Status": "OK"', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'description' => 'The rule struct.', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'DefenseScene' => ['description' => 'The protection scenario. Valid values:'."\n" + ."\n" + .'- **waf\\_group**: basic web protection.'."\n" + ."\n" + .'- **anti\\_scan**: scan protection.', 'type' => 'string', 'title' => '', 'example' => 'anti_scan'], + 'Rules' => [ + 'description' => 'The rule struct.', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => 'The rule type. Valid values:'."\n" + ."\n" + .'- **waf\\_group**: basic web protection.'."\n" + ."\n" + .'- **high\\_frequency**: blocks high-frequency scans.'."\n" + ."\n" + .'- **directory\\_traversal**: blocks directory traversal attacks.'."\n" + ."\n" + .'- **scan\\_tools**: blocks scanning tools.', 'type' => 'string', 'title' => '', 'example' => 'waf_group'], + 'Name' => ['description' => 'The default name of the rule.', 'type' => 'string', 'title' => '', 'example' => 'Default_WafGroup_Rule'], + 'Status' => ['description' => 'The default status of the rule. Valid values:'."\n" + ."\n" + .'- **on**: The rule is enabled.'."\n" + ."\n" + .'- **off**: The rule is disabled.', 'type' => 'string', 'title' => '', 'example' => 'on'], + 'Config' => ['description' => 'The default configurations of the rule.', 'type' => 'string', 'title' => '', 'example' => '{"wafGroupIds":"1012"}'], + 'Action' => ['description' => 'The default action of the rule. Valid values:'."\n" + ."\n" + .'- **monitor**: Monitor.'."\n" + ."\n" + .'- **deny**: Deny.'."\n" + ."\n" + .'- **block**: Block.', 'type' => 'string', 'title' => '', 'example' => 'block'], + ], + 'title' => '', + ], + 'title' => '', + ], + ], + 'title' => '', + ], + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeDcdnWafDefaultRules', + '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' => 'All Resource', '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' => 'DeleteRoutineConfEnvs', - 'description' => '> '."\n" - ."\n" - .'* This operation deletes only custom preset canary release environments. You cannot delete production or staging environments.'."\n" - ."\n" - .'* You can call this operation up to 100 times per second per account.'."\n", - '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' => 'Queries the metadata of a specified routine. The metadata includes the routine configuration in each environment, configuration version, and code version.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnWafDomain' => [ + 'summary' => 'Call DescribeDcdnWafDomain to query all accelerated domain names protected by WAF and retrieve their details, such as ACL status, CC protection status, creation status, and WAF status.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -21076,80 +18712,123 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Name', - 'in' => 'formData', + 'name' => 'RegionId', + 'in' => 'query', 'schema' => [ - 'description' => 'The name of the routine. The name must be unique among the routines that belong to the same Alibaba Cloud account.'."\n", + 'description' => 'The ID of the region where the WAF instance is deployed. You can set this to `cn-hangzhou` (the default). At present, you can only set this to `cn-hangzhou`.', 'type' => 'string', 'required' => true, - 'example' => 'test', + 'enum' => ['cn-hangzhou', 'ap-southeast-1'], + 'example' => 'cn-hangzhou', + 'title' => '', ], ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => 'The accelerated domain name to query. If you omit this parameter, the operation returns information about all accelerated domain names.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the resource group. If you do not specify this parameter, the system queries the default resource group.', 'type' => 'string', 'required' => false, 'example' => '/', 'title' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => 'The metadata of the routine. The following table describes the fields.'."\n", - 'type' => 'object', + 'TotalCount' => ['description' => 'The total number of accelerated domain names returned.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'CB1A380B-09F0-41BB-802B-72F8FD6DA2FE', 'title' => ''], + 'OutPutDomains' => [ + 'description' => 'Details about the accelerated domain names.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AclStatus' => ['description' => 'The ACL status.'."\n" + ."\n" + .'- 0: Disabled.'."\n" + ."\n" + .'- 1: Enabled.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'Status' => ['description' => 'The creation status of the domain name:'."\n" + ."\n" + .'- 1: Active.'."\n" + ."\n" + .'- 10: Creating.'."\n" + ."\n" + .'- 11: Creation failed.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'Domain' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'CcStatus' => ['description' => 'The CC protection status.'."\n" + ."\n" + .'- 0: Disabled.'."\n" + ."\n" + .'- 1: Enabled.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'WafStatus' => ['description' => 'The WAF status.'."\n" + ."\n" + .'- 0: Disabled.'."\n" + ."\n" + .'- 1: Enabled.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', 'example' => '', ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '4DBA68F5-04A9-406B-B1E4-F2CB635E103F', - ], ], + 'description' => 'The response parameters.', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'InvalidDomainName', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => 'The DomainName parameter is set to an invalid value. Specify a valid value and try again.'], + ], + 404 => [ + ['errorCode' => 'InvalidDomain.NotFound', 'errorMessage' => 'The specified domain does not exist.', 'description' => 'The specified domain name does not exist.'], ], ], - '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' => 'DescribeRoutine', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", + 'title' => 'DescribeDcdnWafDomain', + 'description' => 'This API applies to the legacy WAF protection.'."\n" + ."\n" + .'> Rate limit: 150 requests/second per user.', 'requestParamsDescription' => ' ', - 'responseParamsDescription' => '### Fields of the Content parameter'."\n" - ."\n" - .'|Field|Type|Example|Description|'."\n" - .'|---|---|---|---|'."\n" - .'|CreationTime|String|2021-05-31T13:20:14Z|The time when the routine was created.|'."\n" - .'|Description|String|InRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIHJvdXRpbmUi|The description of the routine, which is encoded in Base64.|'."\n" - .'|Envs|JSON|production|A collection of all canary release environments for the routine.|'."\n" - .'|EnvConf|JSON||Information about all canary release environments of the routine, including the CPU specification (SpecName), code version (CodeRev), and allowed Alibaba Cloud DCDN domain names (AllowedHosts) of each canary release environment.|'."\n" - .'|ㄴSpecName|String|100ms|The specification of the CPU time slice.|'."\n" - .'|ㄴCodeRev|String|1622467214654495147|The version number of the code.|'."\n" - .'|ㄴAllowedHosts|String|test-e.alicdn.com|Allowed DCDN domain names.|'."\n" - .'|CodeRevs|JSON||Information about all code versions of the routine, including the description (CodeDescription), creation time (CreationTime), and version number (CodeRevision) of each version.|'."\n" - .'|ㄴCreationTime|String|2021-05-31T13:20:14Z|The time when the code was created.|'."\n" - .'|ㄴCodeDescription|String|IkhlbGxvIFdvcmxkIg==|The description of the code version, which is encoded in Base64.|'."\n" - .'|ㄴCodeRevision|String|1622467236337778954|The version number of the code.|', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeRoutineCanaryEnvs' => [ - 'summary' => 'Queries the canary release environments that are supported by ER.', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnWafDomainDetail' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -21160,55 +18839,89 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], + ], + 'parameters' => [ + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => 'The accelerated domain name. Exact match is required. Only a single domain name can be queried.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], ], ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => 'The canary release environments that are supported.'."\n", + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'BEA5625F-8FCF-48F4-851B-CA63946DA630'], + 'Domain' => [ + 'description' => 'The accelerated domain name.', 'type' => 'object', - 'example' => 'presetCanaryShanghai', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CDCD94C0-F7FE-412F-B8F8-7E3C610C78E5', + 'properties' => [ + 'DomainName' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'title' => '', 'example' => 'example.com'], + 'DefenseScenes' => [ + 'description' => 'The type of the mitigation setting.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DefenseScene' => ['description' => 'The type of the mitigation setting. The following scenarios are supported:'."\n" + ."\n" + .'- waf\\_group: Basic web protection.'."\n" + ."\n" + .'- custom\\_acl: Custom mitigation policies.'."\n" + ."\n" + .'- whitelist: Whitelist.', 'type' => 'string', 'title' => '', 'example' => 'waf_group'], + 'PolicyId' => ['description' => 'The ID of the mitigation policy. If multiple IDs exist, only one is displayed.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '10000002'], + 'PolicyIds' => ['description' => 'The IDs of the mitigation policies. Multiple IDs are separated by commas (,).', 'type' => 'string', 'title' => '', 'example' => '10000001,10000004'], + ], + 'description' => '', + 'title' => '', + ], + 'title' => '', + ], + ], + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], ], ], - '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' => 'DescribeRoutineCanaryEnvs', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeRoutineCodeRevision' => [ - 'summary' => 'Queries the JavaScript code version of a routine.', - 'methods' => [ - 'get', - 'post', + 'title' => 'DescribeDcdnWafDomainDetail', + 'summary' => 'You can call DescribeDcdnWafDomainDetail to query the mitigation policies for a specified domain name.', + 'description' => '> The call frequency for a single user is 20 calls per second.', + '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnWafDomains' => [ + 'summary' => 'Queries the accelerated domain names that are protected by WAF. This operation supports fuzzy search.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -21219,30 +18932,26 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '133321', + 'abilityTreeNodes' => ['FEATUREdcdnSU2QP6'], ], 'parameters' => [ [ - 'name' => 'Name', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The name of the routine. The name must be unique among the routines that belong to the same Alibaba Cloud account.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], + 'name' => 'QueryArgs', + 'in' => 'query', + 'schema' => ['description' => 'The query conditions for a fuzzy search of accelerated domain names. The value must be a JSON string. For example: {"DomainNameLike":"example.com"}', 'type' => 'string', 'required' => false, 'example' => '{"DomainNameLike":"example.com"}', 'title' => ''], ], [ - 'name' => 'SelectCodeRevision', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The version of the JavaScript code that you want to query.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '1611151912787121550', - ], + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number. Valid values: **1** to **100000**.'."\n" + ."\n" + .'Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of accelerated domain names per page. Valid values: **1** to **500**. Default value: **20**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'default' => '20', 'example' => '20', 'title' => ''], ], ], 'responses' => [ @@ -21250,43 +18959,71 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => 'The information about the JavaScript code version.'."\n", - 'type' => 'object', + 'PageSize' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '153ca2cd-3c01-44be-b408-64dbc6c88630', 'title' => ''], + 'PageNumber' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total count of protected domains.', 'type' => 'integer', 'format' => 'int32', 'example' => '15', 'title' => ''], + 'Domains' => [ + 'description' => 'A list of protected domains.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'PolicyCount' => ['description' => 'The number of protection policies for the domain.', 'type' => 'integer', 'format' => 'int32', 'example' => '3', 'title' => ''], + 'ClientIpTag' => ['description' => 'The header field used to retrieve the client IP address.', 'type' => 'string', 'example' => 'X-Forwarded-For', 'title' => ''], + 'DomainName' => ['description' => 'The protected domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', 'example' => '', ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'D24F0C48-1B27-4C58-8B84-1A0C001A514E', - ], ], + 'description' => 'The data returned.', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], ], ], - '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' => 'DescribeRoutineCodeRevision', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", - 'extraInfo' => ' ', - ], - 'DescribeRoutineSpec' => [ - 'summary' => 'Queries the supported specifications for routines. The private preview supports the following CPU time slice specifications: 5 ms, 50 ms, and 100 ms.', - 'methods' => [ - 'get', - 'post', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'DescribeDcdnWafDomains', + 'description' => 'This API applies to the new version of WAF.'."\n" + ."\n" + .'> The QPS limit for a single user is 20 queries per second.', + 'changeSet' => [ + ['createdAt' => '2024-11-28T01:42:50.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-14T06:38:35.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafDomains'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafDomains', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + ], + 'DescribeDcdnWafFilterInfo' => [ + 'summary' => 'Call DescribeDcdnWafFilterInfo to query the match fields, logical operators, and match content available for custom mitigation policies.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -21297,55 +19034,158 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + ], + 'parameters' => [ + [ + 'name' => 'DefenseScenes', + 'in' => 'query', + 'schema' => ['description' => 'The types of mitigation settings. Separate multiple types with commas (,). The following scenarios are supported:'."\n" + ."\n" + .'- waf\\_group: basic web protection'."\n" + ."\n" + .'- custom\\_acl: custom mitigation policies'."\n" + ."\n" + .'- whitelist: whitelist'."\n" + ."\n" + .'> If you do not specify this parameter, information for all types is returned.', 'type' => 'string', 'required' => false, 'example' => 'custom_acl', 'title' => ''], + ], + [ + 'name' => 'Language', + 'in' => 'query', + 'schema' => ['description' => 'The language of the response. Valid values:'."\n" + ."\n" + .'- en (default): English'."\n" + ."\n" + .'- cn: Simplified Chinese', 'type' => 'string', 'required' => true, 'example' => 'cn', 'title' => ''], ], ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '153ca2cd-3c01-44be-204c-64dbc6c88630', 'title' => ''], 'Content' => [ - 'description' => 'The specification of the CPU time slice. Valid values: 5 ms, 50 ms, and 100 ms.'."\n", - 'type' => 'object', - 'example' => '5ms, 50ms, 100ms', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'AE4E1B80-D5F3-47DB-824A-DA98A21854C8', + 'description' => 'The queried information.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DefenseScene' => ['description' => 'The type of the mitigation setting. This is the same as the DefenseScene request parameter.', 'type' => 'string', 'example' => 'custom_acl', 'title' => ''], + 'Fields' => [ + 'description' => 'Information about the match conditions.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ExtendField' => ['description' => 'An extended tip for the match field. If this parameter is empty or not returned, no extended field is available.', 'type' => 'string', 'example' => 'Custom header', 'title' => ''], + 'MatchField' => ['description' => 'The match field.', 'type' => 'string', 'example' => 'Header', 'title' => ''], + 'LogicalSymbol' => [ + 'description' => 'The logical operator.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => 'The number of match content entries that you can specify. Valid values:'."\n" + ."\n" + .'- multi: You can specify multiple match content entries.'."\n" + ."\n" + .'- single: You can specify only one match content entry.'."\n" + ."\n" + .'- none: You cannot specify any match content.', 'type' => 'string', 'example' => 'multi', 'title' => ''], + 'Symbol' => ['description' => 'The logical operator that is passed to the backend.', 'type' => 'string', 'example' => 'match-one', 'title' => ''], + 'Tip' => ['description' => 'The tip that is displayed for the match content.', 'type' => 'string', 'example' => 'You can enter multiple values, up to 50. Press Enter to confirm.', 'title' => ''], + 'Attributes' => ['description' => 'The configurable properties. This is a bit field variable. For more information, see the following table.<br>Example: 1 (binary 00000001) indicates that you can enable case sensitivity but not stream matching. 3 (binary 00000011) indicates that you can enable both case sensitivity and stream matching.<br><br>'."\n" + ."\n" + .'- Bit (from low to high) - Description'."\n" + ."\n" + .'- 1 - Case sensitivity'."\n" + ."\n" + .'- 2 - Stream matching', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'MaxLength' => ['description' => 'The maximum number of match content entries that you can specify. The value of this parameter varies based on the value of Type:'."\n" + ."\n" + .'- If Type is set to **multi**, this parameter indicates the maximum number of entries.'."\n" + ."\n" + .'- If Type is set to **single**, the value of this parameter is 1.'."\n" + ."\n" + .'- If Type is set to **none**, the value of this parameter is 0.', 'type' => 'integer', 'format' => 'int32', 'example' => '50', 'title' => ''], + 'Description' => ['description' => 'The logical operator displayed in the console.', 'type' => 'string', 'example' => 'Equal to one of multiple values.', 'title' => ''], + 'Regexp' => [ + 'description' => 'The regular expression.', + 'type' => 'object', + 'properties' => [ + 'Pattern' => ['description' => 'The regular expression.', 'type' => 'string', 'example' => '^\\S+$', 'title' => ''], + 'ErrMsg' => ['description' => 'The error message returned if the content does not match the regular expression.', 'type' => 'string', 'example' => 'Specify this field.', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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' => 'DescribeRoutineSpec', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'DescribeDcdnWafFilterInfo', + 'description' => '> The maximum number of calls that can be made by a single user is 20 per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeRoutineUserInfo' => [ - 'summary' => 'Queries the subdomains and routines that belong to your Alibaba Cloud account.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2023-11-21T02:12:38.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-12-08T02:04:58.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafFilterInfo'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafFilterInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + 'translator' => 'machine', + ], + 'DescribeDcdnWafGeoInfo' => [ + 'summary' => 'Call the DescribeDcdnWafGeoInfo operation to query the countries and regions supported by the Web Application Firewall (WAF) Location Blacklist feature.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -21356,469 +19196,641 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + ], + 'parameters' => [ + [ + 'name' => 'Language', + 'in' => 'query', + 'schema' => ['description' => 'The language of the information to return. Valid values:'."\n" + ."\n" + .'- cn: Chinese'."\n" + ."\n" + .'- en: English', 'type' => 'string', 'required' => true, 'example' => 'cn', 'title' => ''], ], ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE', 'title' => ''], 'Content' => [ - 'description' => 'The content returned by calling the operation.'."\n", - 'type' => 'object', + 'description' => 'The classification of information about countries and regions.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => 'The type of the region. Valid values:'."\n" + ."\n" + .'- CN: Mainland China.'."\n" + ."\n" + .'- Other: Regions outside Mainland China.', 'type' => 'string', 'example' => 'CN', 'title' => ''], + 'Continents' => [ + 'description' => 'The information about the countries and regions.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Name' => ['description' => 'The name of the area.', 'type' => 'string', 'example' => 'China', 'title' => ''], + 'Regions' => [ + 'description' => 'The information about the regions.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Name' => ['description' => 'The name of the country or region.', 'type' => 'string', 'example' => 'Beijing', 'title' => ''], + 'Value' => ['description' => 'The code of the country or region.', 'type' => 'string', 'example' => '110000', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', 'example' => '', ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '691DEEE5-4BDB-47F3-930E-F57176427717', - ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', - ], - ], - 403 => [ - [ - 'errorCode' => '%sServiceNotFound', - 'errorMessage' => 'The [%s] service is not activated.', - ], - ], - ], - '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' => 'DescribeRoutineUserInfo', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + 'title' => 'DescribeDcdnWafGeoInfo', + 'description' => '> The call frequency for a single user is 20 calls per second.', 'requestParamsDescription' => ' ', - 'responseParamsDescription' => '### Fields in Content'."\n" - ."\n" - .'|Parameter|Type|Example|Description|'."\n" - .'|---|---|---|---|'."\n" - .'|Routines|Array||The basic information about each routine.|'."\n" - .'|ㄴRoutineName|String|test|The name of the routine.|'."\n" - .'|ㄴDescription|String|the description of this routine|The description of the routine.|'."\n" - .'|ㄴCreationTime|String|2021/5/20 16:00|The time when the routine was created.|'."\n" - .'|Subdomains|Array|subdomain-slc2|The subdomain of the current user.|', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeUserErStatus' => [ - 'summary' => 'Queries whether EdgeRoutine (ER) is activated or has an overdue payment.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [ + ['createdAt' => '2022-12-08T05:55:29.000Z', 'description' => 'Error codes changed'], ], - 'security' => [ - [ - 'AK' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafGeoInfo'], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], - ], - 'parameters' => [], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'InDebt' => [ - 'description' => 'Indicates whether ER has an overdue payment.'."\n" - ."\n" - .'* true'."\n" - .'* false'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'OnService' => [ - 'description' => 'Indicates whether ER is available.'."\n" - ."\n" - .'* true'."\n" - .'* false'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '4F51E9C3-728F-4E35-952D-0ED87A06A8A1', - ], - 'InDebtOverdue' => [ - 'description' => 'Indicates whether an overdue payment of ER has passed the grace period.'."\n" - ."\n" - .'* true'."\n" - .'* false'."\n", - 'type' => 'boolean', - 'example' => 'false', - ], - 'Enabled' => [ - 'description' => 'Indicates whether ER is activated.'."\n" - ."\n" - .'* true'."\n" - .'* false'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafGeoInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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":"<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' => 'DescribeUserErStatus', - 'description' => '> You can call this operation up to 30 times per second per account.'."\n", - 'extraInfo' => ' ', + 'translator' => 'machine', ], - 'EditRoutineConf' => [ - 'summary' => 'Modifies the configurations of a routine.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnWafGroup' => [ + 'summary' => 'Queries a custom Web Application Firewall (WAF) rule group. The results are paginated.', + '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' => 'The name of the routine. The name must be unique among the routines that belong to the same Alibaba Cloud account.'."\n", + 'description' => 'The language of the response. Valid values:'."\n" + ."\n" + .'- **en**: English.'."\n" + ."\n" + .'- **zh**: Chinese.', 'type' => 'string', 'required' => true, - 'example' => 'test-slc', + 'enum' => ['zh', 'en'], + 'example' => 'zh', + 'title' => '', ], ], [ - 'name' => 'Description', - 'in' => 'formData', + 'name' => 'Id', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the WAF rule group. You can call [DescribeDcdnWafGroups](~~DescribeDcdnWafGroups~~) to query the ID.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1012', 'title' => ''], + ], + [ + 'name' => 'Scope', + 'in' => 'query', 'schema' => [ - 'description' => 'The description of the routine.'."\n", + 'description' => 'The scope of the rule group to query.'."\n" + ."\n" + .'- **in**: returns the rules in the rule group.'."\n" + ."\n" + .'- **out**: returns the rules that are in the complete rule set but not in the specified rule group.', 'type' => 'string', - 'required' => false, - 'example' => 'the description of this routine', + 'required' => true, + 'enum' => ['in', 'out'], + 'example' => 'in', + 'title' => '', ], ], [ - 'name' => 'EnvConf', - 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => 'The configurations of the specified environment.'."\n", - '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' => 'The query conditions, as a JSON-serialized string. The format is as follows:'."\n" + ."\n" + .'`QueryArgs={"PolicyIds":"<IDs of mitigation policies>","RuleIds":"<IDs of rules>","RuleNameLike":"<Rule name>","DomainNames":"<Protected domain names>","DefenseScenes":"waf_group","RuleStatus":"on","OrderBy":"GmtModified","Desc":"false"}`'."\n" + ."\n" + .'> If you do not specify this parameter, all rules are returned.', 'type' => 'string', 'required' => false, 'example' => '{"RiskLevel":"","ProtectionType":"","ApplicationType":"","RuleIdLike":""}', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number. The default value is **1**.', 'type' => 'integer', 'format' => 'int32', 'default' => '1', 'required' => false, 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries to return on each page. The default value is **20**.', 'type' => 'integer', 'format' => 'int32', 'default' => '20', 'required' => false, 'example' => '20', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The request ID.', 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => 'The description of the execution errors and the version number of the latest environment configurations.'."\n", - 'type' => 'object', + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], + 'Id' => ['description' => 'The ID of the custom WAF rule group.', 'type' => 'integer', 'format' => 'int64', 'example' => '1012', 'title' => ''], + 'Name' => ['description' => 'The name of the WAF rule group.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'TemplateId' => ['description' => 'The template ID.', 'type' => 'integer', 'format' => 'int64', 'example' => '1012', 'title' => ''], + 'Subscribe' => ['description' => 'Indicates whether the subscription is enabled. Valid values:'."\n" + ."\n" + .'- **on**: enabled.'."\n" + ."\n" + .'- **off**: disabled.', 'type' => 'string', 'example' => 'on', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of filtered rules.', 'type' => 'integer', 'format' => 'int32', 'example' => '16', 'title' => ''], + 'Rules' => [ + 'description' => 'The rule details.', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'GmtModified' => ['description' => 'The time when the rule was last modified.', 'type' => 'string', 'example' => '2021-12-29T17:08:45Z', 'title' => ''], + 'Id' => ['description' => 'The ID of the custom WAF rule.', 'type' => 'integer', 'format' => 'int64', 'example' => '100001', 'title' => ''], + 'Name' => ['description' => 'The name of the WAF rule.', 'type' => 'string', 'example' => 'test', 'title' => ''], + 'Description' => ['description' => 'The description of the WAF rule.', 'type' => 'string', 'example' => 'OK', 'title' => ''], + 'RiskLevel' => ['description' => 'The risk level of the rule. Valid values:'."\n" + ."\n" + .'- **0**: high.'."\n" + ."\n" + .'- **1**: medium.'."\n" + ."\n" + .'- **2**: low.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], + 'ProtectionType' => ['description' => 'The protection type. Valid values:'."\n" + ."\n" + .'- **11**: SQL injection'."\n" + ."\n" + .'- **12**: cross-site scripting (XSS)'."\n" + ."\n" + .'- **13**: code execution'."\n" + ."\n" + .'- **14**: CRLF'."\n" + ."\n" + .'- **15**: local file inclusion'."\n" + ."\n" + .'- **16**: remote file inclusion'."\n" + ."\n" + .'- **17**: webshell'."\n" + ."\n" + .'- **19**: cross-site request forgery'."\n" + ."\n" + .'- **20**: other'."\n" + ."\n" + .'- **21**: SEMA', 'type' => 'integer', 'format' => 'int32', 'example' => '11', 'title' => ''], + 'ApplicationType' => ['description' => 'The application type. Valid values:'."\n" + ."\n" + .'- **0**: Common'."\n" + ."\n" + .'- **1**: Wordpress'."\n" + ."\n" + .'- **2**: Dedecms'."\n" + ."\n" + .'- **3**: Discuz'."\n" + ."\n" + .'- **4**: Phpcms'."\n" + ."\n" + .'- **5**: Ecshop'."\n" + ."\n" + .'- **6**: Shopex'."\n" + ."\n" + .'- **8**: Drupal'."\n" + ."\n" + .'- **8**: Joomla'."\n" + ."\n" + .'- **9**: Metinfo'."\n" + ."\n" + .'- **10**: Struts2'."\n" + ."\n" + .'- **11**: Spring Boot'."\n" + ."\n" + .'- **12**: Jboss'."\n" + ."\n" + .'- **13**: Weblogic'."\n" + ."\n" + .'- **14**: Websphere'."\n" + ."\n" + .'- **15**: Tomcat'."\n" + ."\n" + .'- **16**: Elastic Search'."\n" + ."\n" + .'- **18**: Thinkphp'."\n" + ."\n" + .'- **19**: Fastjson'."\n" + ."\n" + .'- **20**: ImageMagick'."\n" + ."\n" + .'- **21**: PHPwind'."\n" + ."\n" + .'- **22**: phpMyAdmin'."\n" + ."\n" + .'- **23**: Resin'."\n" + ."\n" + .'- **24**: IIS'."\n" + ."\n" + .'- **99**: Others', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'CveId' => ['description' => 'The CVE ID.', 'type' => 'string', 'example' => 'CVE-2021-22945', 'title' => ''], + 'CveUrl' => ['description' => 'The CVE URL.', 'type' => 'string', 'example' => 'https://nxx.nxxx.gov/vuln/detail/CVE-2022-XXXX', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', 'example' => '', ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'BAECB354-6D42-42C1-87DA-C9992EF1E7C8', - ], + 'PageNumber' => ['description' => 'The page number.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries to return on each page. The default value is **20**.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''], ], + 'example' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeDcdnWafGroup', + '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' => 'All Resource', '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' => 'EditRoutineConf', - 'description' => '> '."\n" - ."\n" - .'* This operation modifies only the specified configurations. Other configurations remain unchanged.'."\n" - ."\n" - .'* If you want to delete a setting, delete the parameter value.'."\n" - ."\n" - .'* This operation can add canary release environments. Make sure that the environment names comply with the naming rules. Otherwise, you will fail to add the environments.'."\n" - ."\n" - .'* Dynamic Route for CDN (DCDN) provides 35 canary release environments. Among these environments, 34 are deployed in China and 1 is deployed outside China. The canary release environments are:'."\n" - ."\n" - .' * Outside China: presetCanaryOverseas.'."\n" - .' * In China: The 34 canary release environments are named in the format of presetCanaryXX. For example, presetCanaryBeijing represents the canary release environment in Beijing. A canary release environment is in each of the following regions: Anhui, Beijing, Chongqing, Fujian, Gansu, Guangdong, Guangxi, Guizhou, Hainan, Hebei, Heilongjiang, Henan, Hong Kong, Hubei, Hunan, Jiangsu, Jiangxi, Jilin, Liaoning, Macao, Neimenggu, Ningxia, Qinghai, Shaanxi, Shandong, Shanghai, Shanxi, Sichuan, Taiwan, Tianjin, Xinjiang, Xizang, Yunan, and Zhejiang.'."\n" - ."\n" - .'* You can call this operation up to 100 times per second per account.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => '### Fields of the Content parameter'."\n" - ."\n" - .'|Field|Type|Example|Description|'."\n" - .'|---|---|---|---|'."\n" - .'|Description|String|Validate (Env: presetCanaryNotExist, Error: not valid canary name )|The description of the routine.|'."\n" - .'|EnvConfRev|JSON|1622033526212272495|The configuration version number of each environment.|', - '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' => 'Configures a subdomain for a routine.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnWafGroups' => [ + 'summary' => 'You can call DescribeDcdnWafGroups to query a list of custom Web Application Firewall (WAF) rule groups.', + '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' => 'The parameters of the subdomain.'."\n" - ."\n" - .'The parameters are in the following format:'."\n" - ."\n" - .' Subdomains: ['."\n" - .' "subdomain-test"'."\n" - .' ]'."\n", - 'type' => 'object', - 'required' => true, - 'example' => '["subdomain-test"]', - ], + 'name' => 'Language', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => ['description' => 'The language of the response. Valid values:'."\n" + ."\n" + .'- **en**: English. This is the default value.'."\n" + ."\n" + .'- **zh**: Chinese.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'zh'], + ], + [ + 'name' => 'QueryArgs', + 'in' => 'query', + 'schema' => ['description' => 'The query conditions in a JSON-serialized string. The format is as follows:'."\n" + .'`QueryArgs={"PolicyIds":"Range of mitigation policy IDs","RuleIds":"Range of rule IDs","RuleNameLike":"Rule name","DomainNames":"Protected domain names","DefenseScenes":"waf_group","RuleStatus":"on","OrderBy":"GmtModified","Desc":"false"}`'."\n" + ."\n" + .'> If you do not set this parameter, all mitigation rules are queried.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '{"RuleIds":"100001,200002"}'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number. The default value is **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'title' => '', 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries per page. The default value is **20**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '20', 'title' => '', 'example' => '20'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The ID of the request.', 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => 'The message returned, such as ""Status": "OK"".'."\n", - 'type' => 'object', - 'example' => ' "Status": "OK"', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], + 'TotalCount' => ['description' => 'The total number of WAF rule groups.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '16'], + 'WafGroups' => [ + 'description' => 'The list of WAF rule groups.', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'GmtModified' => ['description' => 'The time when the rule group was last modified.', 'type' => 'string', 'title' => '', 'example' => '2020-04-12 22:25:11'], + 'Id' => ['description' => 'The ID of the custom WAF rule group.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '30000156'], + 'Name' => ['description' => 'The name of the WAF rule group.', 'type' => 'string', 'title' => '', 'example' => 'DCDN-test-operation-reports-1'], + 'RuleCount' => ['description' => 'The number of rules in the group.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '452'], + 'TemplateId' => ['description' => 'The template ID.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '1012'], + 'Subscribe' => ['description' => 'Indicates whether subscription is enabled. Valid values:'."\n" + ."\n" + .'- **on**: Subscription is enabled.'."\n" + ."\n" + .'- **off**: Subscription is disabled.', 'type' => 'string', 'title' => '', 'example' => 'on'], + 'Policies' => [ + 'description' => 'The policies to which the WAF rule group is attached.', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Id' => ['description' => 'The policy ID.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '30000165'], + 'Name' => ['description' => 'The policy name.', 'type' => 'string', 'title' => '', 'example' => 'wasm-testmaster'], + 'Type' => ['description' => 'The type of the policy. Valid values:'."\n" + ."\n" + .'- **custom**: a custom policy.'."\n" + ."\n" + .'- **default**: a default policy.', 'type' => 'string', 'title' => '', 'example' => 'default'], + ], + 'title' => '', + ], + 'title' => '', + ], + ], + 'title' => '', + ], + 'title' => '', ], + 'PageNumber' => ['description' => 'The page number. The default value is 1.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1'], + 'PageSize' => ['description' => 'The number of entries per page. The default value is **20**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '20'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeDcdnWafGroups', + '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' => 'All Resource', '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' => 'SetRoutineSubdomain', - 'description' => '> '."\n" - ."\n" - .'* Each subdomain is globally unique. Resource Access Management (RAM) users cannot create duplicate subdomains.'."\n" - ."\n" - .'* You can call this operation up to 100 times per second per account.'."\n", - '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' => 'Uploads code to EdgeRoutine (ER).', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnWafLogs' => [ + 'summary' => 'Queries the download URLs of offline block logs generated by Web Application Firewall (WAF) for a domain name.', + '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' => 'The name of the routine. The name must be unique among the routines that belong to the same Alibaba Cloud account.'."\n", + 'description' => 'The domain name. You can query only one domain name at a time.', + 'enumValueTitles' => [], 'type' => 'string', 'required' => true, - 'example' => 'test', + 'example' => 'example.com', + 'title' => '', ], ], [ - 'name' => 'CodeDescription', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The description of the code version.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'Hello World', - ], + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'The date format follows the ISO 8601 notation and uses UTC+0 time, in the format yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'required' => false, 'example' => '2017-12-21T08:00:00Z', 'title' => ''], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'The date format follows the ISO 8601 notation, uses UTC, and is formatted as yyyy-MM-ddTHH:mm:ssZ.', 'type' => 'string', 'required' => false, 'example' => '2017-12-22T08:00:00Z', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries to return on each page. Default value: 300. Valid values: **1** to **1000**.', 'type' => 'integer', 'format' => 'int64', 'default' => '300', 'required' => false, 'example' => '300', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number to return. Valid values: any integer greater than 0.', 'type' => 'integer', 'format' => 'int64', 'default' => '1', 'required' => false, 'example' => '1', 'title' => ''], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => 'The content returned, such as the code version number and information about the code upload.'."\n", - 'type' => 'object', + 'DomainLogDetails' => [ + 'description' => 'The list of domain name log details.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DomainName' => ['description' => 'The WAF domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'LogCount' => ['description' => 'The total number of entries returned on the current page.', 'type' => 'integer', 'format' => 'int64', 'example' => '10', 'title' => ''], + 'LogInfos' => [ + 'description' => 'The list of log information.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'EndTime' => ['description' => 'The end time.', 'type' => 'string', 'example' => '2015-05-23T14:00:00Z', 'title' => ''], + 'LogName' => ['description' => 'The log name.', 'type' => 'string', 'example' => 'demo.aliyundoc.com_2015_05_23_2100_2200.xxxxxx.gz', 'title' => ''], + 'LogPath' => ['description' => 'The log path.', 'type' => 'string', 'example' => 'guide.aliyundoc.com-hangzhou.xxx', 'title' => ''], + 'LogSize' => ['description' => 'The size of the log file, in bytes.', 'type' => 'integer', 'format' => 'int64', 'example' => '258', 'title' => ''], + 'StartTime' => ['description' => 'The start time.', 'type' => 'string', 'example' => '2015-05-23T13:00:00Z', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'PageInfos' => [ + 'description' => 'The paging information.', + 'type' => 'object', + 'properties' => [ + 'PageIndex' => ['description' => 'The page number of the returned data.', 'type' => 'integer', 'format' => 'int64', 'default' => '1', 'example' => '1', 'title' => ''], + 'PageSize' => ['description' => 'The number of entries per page.', 'type' => 'integer', 'format' => 'int64', 'default' => '1000', 'example' => '20', 'title' => ''], + 'Total' => ['description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int64', 'example' => '20', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', 'example' => '', ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'DFA2027F-86C0-4421-9593-581A7993696C', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0985A362-C81E-5A56-891D-90226BEECA7C', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'UploadRoutineCode', - 'description' => '> '."\n" - ."\n" - .'* Each time you submit code, a version of the code is generated. You can manage and publish code by version.'."\n" - ."\n" - .'* Each routine can retain at most 10 versions. If the upper limit is reached, you must call the DeleteRoutineCodeRevision operation to manually delete versions that are no longer needed before new versions can be saved.'."\n" - ."\n" - .'* You can call this operation up to 100 times per second per account.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => '### Fields in Content'."\n" - ."\n" - .'|Field|Type|Example|Description|'."\n" - .'|---|---|---|---|'."\n" - .'|CodeRevision|String|1622034169188190000|The version number of the code.|'."\n" - .'|OssPostConfig|Json||The request content required for uploading the JavaScript code.|'."\n" - .'|ㄴOSSAccessKeyId|String|KiTr\\*\\*\\*\\*|The AccessKey ID that is used for the object upload.|'."\n" - .'|ㄴSignature|String|+VaGBmeMjdKTD1E=|The signature information that is calculated based on the AccessKey secret and the policy field. OSS checks the signature information to verify the validity of the PostObject request.|'."\n" - .'|ㄴcallback|String|eyJjYWxsYmFja1VybCI6Imh0dHA6Ly9lci\\*\\*\\*\\*|The Base64-encoded JSON string that contains multiple fields. To construct a callback parameter, you must specify the URL (callbackUrl) of the server to which the callback request is sent and the content (callbackBody) of the callback request.|'."\n" - .'|ㄴx:codeDescription|String|IkhlbGxvIFdvcmxkIg==|The description of the current code version.|'."\n" - .'|ㄴUrl|String|http://\\*\\*\\*\\*.oss-cn-hangzhou.aliyuncs.com|The domain name of the bucket to which the object was uploaded.|'."\n" - .'|ㄴkey|String|test.123.69188190343.js|The name of the object.|'."\n" - .'|ㄴpolicy|String|eyJleHBpcmF0aW9uIjoiMjAyMS0wNS0yNlQxMz\\*\\*\\*\\*|The JSON string encoded in UTF-8 and Base64 that is used to verify the validity of the request. This parameter indicates the conditions that a PostObject request must meet.|', - 'extraInfo' => ' ', - ], - 'UploadStagingRoutineCode' => [ - 'summary' => 'Uploads code to a routine for testing.', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeDcdnWafLogs', + 'description' => '> - If \\`StartTime\\` and \\`EndTime\\` are not specified, data from the last 24 hours is queried by default. If both parameters are specified, data in the specified time range is queried.'."\n" + .'>'."\n" + .'> - The time granularity of the data is one hour.'."\n" + .'>'."\n" + .'> - The throttling limit for a single user is 100 calls per second.', + 'changeSet' => [ + ['createdAt' => '2023-01-03T08:47:25.000Z', 'description' => 'Response parameters changed'], ], - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + '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' => 'The name of the routine. The name needs to be unique among the routines that belong to the same Alibaba Cloud account.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], + 'name' => 'QueryArgs', + 'in' => 'query', + 'schema' => ['description' => 'The conditional query, which is a JSON-serialized string. The format is as follows: `QueryArgs={"PolicyIds":"mitigation policy ID","RuleIds":"mitigation rule ID range","PolicyNameLike":"mitigation policy name","DomainNames":"protected domain name","PolicyType":"default","DefenseScenes":"waf_group","PolicyStatus":"on","OrderBy":"GmtModified","Desc":"false"}`'."\n" + ."\n" + .'> If this parameter is not specified, all mitigation policies are queried.', 'type' => 'string', 'required' => false, 'example' => '{"PolicyNameLIike":"test_policy"}', 'title' => ''], ], [ - 'name' => 'CodeDescription', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The description of the version.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'desc', - ], + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number. Default value: **1**. Valid values: **1** to **100000**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of mitigation policies to return on each page. Default value: **20**. Valid values: an integer from **1** to **500**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'default' => '20', 'example' => '20', 'title' => ''], ], ], 'responses' => [ @@ -21826,101 +19838,98 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => 'The parameters required by the code.'."\n", - 'type' => 'object', + 'PageSize' => ['description' => 'The number of mitigation policies displayed on each page. Default value: **20**. Valid values: an integer from **1** to **500**.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '153ca2cd-3c01-44be-2e83-64dbc6c88630', 'title' => ''], + 'PageNumber' => ['description' => 'The page number. Valid values: **1** to **100000**. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of mitigation policies.', 'type' => 'integer', 'format' => 'int32', 'example' => '15', 'title' => ''], + 'Policies' => [ + 'description' => 'The list of mitigation policies.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'PolicyStatus' => ['description' => 'The status of the mitigation policy. The value is the same as the \\`PolicyStatus\\` field in the \\`QueryArgs\\` request parameter.', 'type' => 'string', 'example' => 'on', 'title' => ''], + 'DefenseScene' => ['description' => 'The mitigation scenario. The value is the same as the \\`DefenseScenes\\` field in the \\`QueryArgs\\` request parameter.', 'type' => 'string', 'example' => 'custom_acl', 'title' => ''], + 'DomainCount' => ['description' => 'The number of domain names that use the mitigation policy.', 'type' => 'integer', 'format' => 'int32', 'example' => '22', 'title' => ''], + 'PolicyName' => ['description' => 'The name of the mitigation policy.', 'type' => 'string', 'example' => 'policy_test', 'title' => ''], + 'PolicyId' => ['description' => 'The ID of the mitigation policy.', 'type' => 'integer', 'format' => 'int64', 'example' => '100001', 'title' => ''], + 'RuleCount' => ['description' => 'The number of rules in the mitigation policy.', 'type' => 'integer', 'format' => 'int64', 'example' => '9', 'title' => ''], + 'GmtModified' => ['description' => 'The time when the policy was last modified. The time is in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'example' => '2021-12-29T17:08:45Z', 'title' => ''], + 'PolicyType' => ['description' => 'Indicates whether the policy is a default mitigation policy. The value is the same as the \\`PolicyType\\` field in the \\`QueryArgs\\` request parameter.', 'type' => 'string', 'example' => 'default', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', 'example' => '', ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'DFA2027F-86C0-4421-9593-581A7993696C', - ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', + 'title' => 'DescribeDcdnWafPolicies', + 'summary' => 'Queries configured Web Application Firewall (WAF) mitigation policies.', + 'description' => '> A single user can make up to 20 calls per second.', + 'requestParamsDescription' => '**QueryArgs parameters**'."\n" + ."\n" + .'| Name | Type | Required | Example | Description |'."\n" + .'| -------------- | ------- | -------- | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| PolicyIds | string | No | 10000001,10000002 | The list of mitigation policy IDs. This is a term query. Separate multiple IDs with a comma (,). |'."\n" + .'| RuleIds | string | No | 20000001,20000055 | The list of rule IDs. This is a term query. Separate multiple IDs with a comma (,). |'."\n" + .'| PolicyNameLike | string | No | policy_test | The name of the mitigation policy. This is a fuzzy query. The name can contain Chinese characters, letters (case-sensitive), digits (0 to 9), and underscores (_). |'."\n" + .'| DomainNames | string | No | example.com | The list of protected domain names. This is a term query. You can specify up to 50 domain names. Separate multiple domain names with a comma (,). |'."\n" + .'| PolicyType | string | No | default | Specifies whether the policy is a default mitigation policy. Valid values: `default`: a default mitigation policy. `custom`: a custom mitigation policy. |'."\n" + .'| DefenseScenes | string | No | custom_acl | The mitigation scenario. This is a term query. Separate multiple scenarios with a comma (,). The following scenarios are supported: `waf_group`: basic web protection. `custom_acl`: custom mitigation policies. `whitelist`: whitelist. |'."\n" + .'| PolicyStatus | string | No | on | The status of the policy. Valid values: `on`: enabled. `off`: disabled. |'."\n" + .'| OrderBy | string | No | GmtModified | The field by which to sort the results. Valid values: `GmtModified`, `PolicyId`, `PolicyName`, and `PolicyStatus`. |'."\n" + .'| Desc | Boolean | No | false | The sorting order. Valid values: `true`: descending. `false` (default): ascending. |', + 'changeSet' => [ + ['createdAt' => '2022-12-13T07:16:57.000Z', 'description' => 'Error codes changed'], + ], + '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' => 'All Resource', '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' => 'UploadStagingRoutineCode', - 'description' => '> '."\n" - ."\n" - .'* Each time you upload code to a routine, a version is generated. The number of versions is counted by CodeRev. The uploaded code is used only for testing.'."\n" - ."\n" - .'* The code is automatically published to a staging environment.'."\n" - .'* Each routine can retain at most 10 versions. If the upper limit is reached, you need to call the DeleteRoutineCodeRevision operation to manually delete versions that are no longer needed before new versions can be saved.'."\n" - .'* You can call this operation up to 100 times per second per account.'."\n", - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'PublishRoutineCodeRevision' => [ - 'summary' => 'Publishes a specified version of routine code to an environment.', - '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' => 'The name of the routine. The name must be unique among the routines that belong to the same Alibaba Cloud account.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], - ], - [ - 'name' => 'SelectCodeRevision', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The version of the routine code that you want to publish.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '1620876959997924701', - ], - ], - [ - 'name' => 'Envs', - 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => 'The environment to which you want to publish the code.'."\n" - ."\n" - .'> '."\n" - ."\n" - .'* production: the name of the environment, including the environment name (SpecName) and the domain name whitelist (AllowedHosts).'."\n" - ."\n" - .'* presetCanary: You can add canary release environments based on your business requirements. This parameter is optional.'."\n", - 'type' => 'object', - 'required' => true, - 'example' => '["production","presetCanaryZhejiang"]', - ], + 'name' => 'PolicyId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the mitigation policy. You can specify only one ID.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'title' => '', 'example' => '1000001'], ], ], 'responses' => [ @@ -21928,83 +19937,103 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => 'The version of the routine code that is published to the specified environment.'."\n", + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE'], + 'Policy' => [ + 'description' => 'The information about the mitigation policy.', 'type' => 'object', - 'example' => '"CodeRevision": "1620876959997924701"', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'A513734D-D17B-411E-864D-XXXX', + 'properties' => [ + 'PolicyStatus' => ['description' => 'The status of the mitigation policy. Valid values:'."\n" + ."\n" + .'- on: The policy is enabled.'."\n" + ."\n" + .'- off: The policy is disabled.', 'type' => 'string', 'title' => '', 'example' => 'on'], + 'DefenseScene' => ['description' => 'The type of the mitigation policy. The following scenarios are supported:'."\n" + ."\n" + .'- waf\\_group: basic web protection.'."\n" + ."\n" + .'- custom\\_acl: custom mitigation policies.'."\n" + ."\n" + .'- whitelist: whitelist.', 'type' => 'string', 'title' => '', 'example' => 'waf_group'], + 'DomainCount' => ['description' => 'The number of domain names that use the mitigation policy.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '22'], + 'RuleConfigs' => ['description' => 'The configurations of the rules that are included in the mitigation policy. This parameter is supported only for bot management. For more information, see [BatchCreateDcdnWafRules](~~BatchCreateDcdnWafRules~~).', 'type' => 'string', 'title' => '', 'example' => '{"type":"target_type", "status":"on","config":{"target":"app"},"action":""}'], + 'PolicyName' => ['description' => 'The name of the mitigation policy.', 'type' => 'string', 'title' => '', 'example' => 'policy_test'], + 'PolicyId' => ['description' => 'The ID of the mitigation policy.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '100001'], + 'RuleCount' => ['description' => 'The number of rules in the mitigation policy.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '9'], + 'GmtModified' => ['description' => 'The time when the policy was last modified. The time is in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'title' => '', 'example' => '2021-12-29T17:08:45Z'], + 'PolicyType' => ['description' => 'Indicates whether the policy is the default policy. Valid values:'."\n" + ."\n" + .'- default: the default policy.'."\n" + ."\n" + .'- custom: a non-default policy.', 'type' => 'string', 'title' => '', 'example' => 'default'], + ], + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ], + ], + 'title' => 'DescribeDcdnWafPolicy', + 'summary' => 'You can call the DescribeDcdnWafPolicy operation to retrieve the details of a specific mitigation policy.', + 'description' => '> The maximum call frequency for a single user is 20 calls per second.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnWafPolicy'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], - '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' => 'PublishRoutineCodeRevision', - 'description' => '> You can call this operation up to 100 times per second per account.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'CommitStagingRoutineCode' => [ - 'summary' => 'Generates an official code version from unstable JavaScript code that is in the staging'."\n" - .' environment. The version can be used in the canary release or production environment.'."\n" - .' '."\n" - .' ', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnWafPolicyDomains' => [ + 'summary' => 'Call the DescribeDcdnWafPolicyDomains operation to query the accelerated domain names that are protected by a specific Web Application Firewall (WAF) policy.', + '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' => 'The name of the routine. The name must be unique among the routines that belong to the same Alibaba Cloud account.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], + 'name' => 'PolicyId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the mitigation policy. You can specify only one ID.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'title' => '', 'example' => '100001'], ], [ - 'name' => 'CodeDescription', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The description of the code version.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'Hello World', - ], + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number. Default value: **1**. Valid values: **1** to **100000**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'title' => '', 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of domain names to display on each page. Default value: **20**. Valid values: an integer from **1** to **500**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'default' => '20', 'title' => '', 'example' => '20'], ], ], 'responses' => [ @@ -22012,45 +20041,60 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => 'The version number of the code.'."\n", - 'type' => 'object', - 'example' => '1620876959997924701', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '5CC228B4-7A67-4016-9C9F-4A4133494A91', + 'PageSize' => ['description' => 'The number of domain names displayed on each page. This is the same as the PageSize request parameter.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '20'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '153ca2cd-3c01-44be-b480-64dbc6c88630'], + 'PageNumber' => ['description' => 'The page number. This is the same as the PageNumber request parameter.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1'], + 'TotalCount' => ['description' => 'The total number of domain names found.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '2'], + 'Domains' => [ + 'description' => 'The accelerated domain names.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DomainName' => ['description' => 'The accelerated domain name that is added to the specified mitigation policy.', 'type' => 'string', 'title' => '', 'example' => 'example.com'], + ], + 'description' => '', + 'title' => '', + ], + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], ], ], - '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' => 'CommitStagingRoutineCode', - 'description' => '> The call frequency of the API is no more than 100 queries per second.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnErUsageData' => [ - 'summary' => 'Queries the number of times that a routine is executed within a specified period of time.', - 'methods' => [ - 'get', - 'post', + 'title' => 'DescribeDcdnWafPolicyDomains', + 'description' => '> The call frequency is limited to 20 calls per second per user.', + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnWafPolicyValidDomains' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -22061,245 +20105,247 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn75UYDO', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'RoutineID', + 'name' => 'DefenseScene', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the routine.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'routine1.test', - ], + 'schema' => ['description' => 'The type of the WAF mitigation policy. The following scenarios are supported:'."\n" + ."\n" + .'- waf\\_group: Basic web protection'."\n" + ."\n" + .'- custom\\_acl: Custom mitigation policies'."\n" + ."\n" + .'- whitelist: Whitelist'."\n" + ."\n" + .'- ip\\_blacklist: IP blacklist'."\n" + ."\n" + .'- region\\_block: Geo-blocking'."\n" + ."\n" + .'- bot: Bot management', 'type' => 'string', 'required' => true, 'example' => 'custom_acl', 'title' => ''], ], [ - 'name' => 'Spec', + 'name' => 'DomainNameLike', 'in' => 'query', - 'schema' => [ - 'description' => 'The specification of the routine. Valid values:'."\n" - ."\n" - .'* 5ms'."\n" - .'* 50ms'."\n" - .'* 100ms'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '50ms', - ], + 'schema' => ['description' => 'The protected DCDN domain name. Fuzzy queries are supported.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], ], [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-10-30T16:00:00Z', - ], - ], - [ - 'name' => 'EndTime', + 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-10-31T16:00:00Z', - ], + 'schema' => ['description' => 'The page number. Valid values: **1** to **100000**. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], ], [ - 'name' => 'SplitBy', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies how the results are grouped. If you set this parameter to routine, the returned results are grouped based on the routine ID. If you set this parameter to spec, the returned results are grouped based on the routine specification.'."\n" - ."\n" - .'> If you leave this parameter empty, the returned results are not grouped.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'routine', - ], + 'schema' => ['description' => 'The number of domain names to display on each page. Default value: **20**. Valid values: an integer from **1** to **500**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'default' => '20', 'example' => '20', 'title' => ''], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2018-10-31T16:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The start of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2018-10-30T16:00:00Z', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'C370DAF1-C838-4288-A1A0-9A87633D248E', - ], - 'ErAccData' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ErAccItem' => [ - 'description' => 'The list of the data returned.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ErAcc' => [ - 'description' => 'The number of requests.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '125', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the returned data.'."\n", - 'type' => 'string', - 'example' => '2018-10-30T13:00:00Z', - ], - 'Spec' => [ - 'description' => 'The specification of the routine. This parameter is returned only when SplitBy is set to spec.'."\n", - 'type' => 'string', - 'example' => '50ms', - ], - 'Routine' => [ - 'description' => 'The ID of the routine. This parameter is returned only when SplitBy is set to routine.'."\n", - 'type' => 'string', - 'example' => 'routine1.test', + 'PageSize' => ['description' => 'The number of domain names displayed on each page. This is the same as the PageSize in the request.', 'type' => 'integer', 'format' => 'int32', 'example' => '20', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92C630', 'title' => ''], + 'PageNumber' => ['description' => 'The page number. This is the same as the PageNumber in the request.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of domain names found.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], + 'Domains' => [ + 'description' => 'The list of protected domain names.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'PolicyName' => ['description' => 'The name of the mitigation policy.', 'type' => 'string', 'example' => 'test1', 'title' => ''], + 'PolicyId' => ['description' => 'The ID of the mitigation policy.', 'type' => 'integer', 'format' => 'int64', 'example' => '1000001', 'title' => ''], + 'DomainName' => ['description' => 'The protected domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'PolicyType' => ['description' => 'Indicates whether this is the default mitigation policy. Valid values:'."\n" + ."\n" + .'- default: The default policy.'."\n" + ."\n" + .'- custom: The custom policy.', 'type' => 'string', 'example' => 'default', 'title' => ''], + 'Policies' => [ + 'description' => 'The policies attached to the domain name.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Id' => ['description' => 'The policy ID.', 'type' => 'integer', 'format' => 'int64', 'example' => '10000002', 'title' => ''], + 'Name' => ['description' => 'The policy name.', 'type' => 'string', 'example' => 'test2', 'title' => ''], + 'Type' => ['description' => 'The policy type.', 'type' => 'string', 'example' => 'custom', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'required' => false, + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'A parameter is set to an invalid value.'], ], ], - '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' => 'DescribeDcdnErUsageData', - 'description' => '* You can call this operation up to 10 times per second per account.'."\n" - .'* The minimum time granularity for a query is 1 hour. The maximum time span for a query is 24 hours. The time period within which historical data is available for a query is 366 days.'."\n", - ], - 'DescribeEncryptRoutineUid' => [ - 'summary' => 'Queries the encrypted RoutineUid of a routine.', - 'methods' => [ - 'get', - 'post', + 'title' => 'DescribeDcdnWafPolicyValidDomains', + 'summary' => 'Call DescribeDcdnWafPolicyValidDomains to query the domain names that can be attached to custom mitigation policies.', + 'description' => '> A user can make up to 20 calls per second.', + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + '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' => 'The ID of the protection rule. Only one rule ID is supported.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'title' => '', 'example' => '1000001'], ], ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '4DBA68F5-04A9-406B-B1E4-F2CB635E103F', - ], - 'Content' => [ - 'description' => 'The returned ciphertext, which contains the Alibaba Cloud account ID, timestamp, and time to live (TTL).'."\n", - 'type' => 'string', - 'example' => 'XXXXXj20p4UB/xgdOH5LtXXXXXX', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE'], + 'Rule' => [ + 'description' => 'The information about the protection rule.', + 'type' => 'object', + 'properties' => [ + 'RuleStatus' => ['description' => 'The status of the protection rule. Valid values:'."\n" + ."\n" + .'- on: enabled'."\n" + ."\n" + .'- off: disabled', 'type' => 'string', 'title' => '', 'example' => 'on'], + 'DefenseScene' => ['description' => 'The type of the mitigation policy. The following scenarios are supported:'."\n" + ."\n" + .'- waf\\_group: basic web protection'."\n" + ."\n" + .'- custom\\_acl: custom mitigation policies'."\n" + ."\n" + .'- whitelist: whitelist', 'type' => 'string', 'title' => '', 'example' => 'custom_acl'], + 'PolicyId' => ['description' => 'The ID of the mitigation policy.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '200001'], + 'GmtModified' => ['description' => 'The time when the rule was last modified. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'title' => '', 'example' => '2021-12-29T17:08:45Z'], + 'RuleId' => ['description' => 'The ID of the protection rule.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '100001'], + 'RuleName' => ['description' => 'The name of the protection rule.', 'type' => 'string', 'title' => '', 'example' => 'rule_1'], + 'RuleConfig' => ['description' => 'The configuration of the protection rule.', 'type' => 'string', 'title' => '', '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}}'], + ], + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4DBA68F5-04A9-406B-B1E4-F2CB635E103F\\",\\n \\"Content\\": \\"XXXXXj20p4UB/xgdOH5LtXXXXXX\\"\\n}","type":"json"}]', - 'title' => 'DescribeEncryptRoutineUid', - ], - 'DescribeRoutineRelatedDomains' => [ - 'summary' => 'Queries the list of domain names that are associated with a routine.', - 'methods' => [ - 'get', - 'post', + 'title' => 'DescribeDcdnWafRule', + 'summary' => 'Call the DescribeDcdnWafRule operation to retrieve the details of a specified protection rule.', + 'description' => '> A single user can call this operation up to 20 times per second.', + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + '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' => 'The name of the routine. The name is unique in the same account.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'routine_test', - ], + 'name' => 'QueryArgs', + 'in' => 'query', + 'schema' => ['description' => 'The query conditions. This parameter is a JSON string.'."\n" + ."\n" + .'> If you do not specify this parameter, all protection rules are queried.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '{"RuleIds":"100001,200002"}'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number. The default value is **1**. Valid values: **1** to **100000**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'title' => '', 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of protection rules to return on each page. The default value is **20**. Valid values: an integer from **1** to **500**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'default' => '20', 'title' => '', 'example' => '20'], ], ], 'responses' => [ @@ -22307,351 +20353,239 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Content' => [ - 'description' => 'The domain names associated with a routine.'."\n", - 'type' => 'object', - 'example' => ' "Domains": ['."\n" - .' "xxx.com",'."\n" - .' "yyy.com",'."\n" - .' ...'."\n" - .' ]', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'FC0E34AC-0239-44A7-AB0E-800DE522C8DA', + 'PageSize' => ['description' => 'The number of entries returned on each page. This value is the same as the \\`PageSize\\` request parameter.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '20'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE'], + 'PageNumber' => ['description' => 'The page number of the returned page. This value is the same as the \\`PageNumber\\` request parameter.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1'], + 'TotalCount' => ['description' => 'The total number of protection rules.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '121'], + 'Rules' => [ + 'description' => 'The details of the protection rules.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RuleStatus' => ['description' => 'The status of the protection rule. This value is the same as the \\`RuleStatus\\` field in the \\`QueryArgs\\` request parameter.', 'type' => 'string', 'title' => '', 'example' => 'on'], + 'DefenseScene' => ['description' => 'The type of the mitigation setting. This value is the same as the \\`DefenseScene\\` field in the \\`QueryArgs\\` request parameter.', 'type' => 'string', 'title' => '', 'example' => 'custom_acl'], + 'PolicyId' => ['description' => 'The ID of the mitigation policy.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '200001'], + 'GmtModified' => ['description' => 'The time when the rule was last modified. The time is in the \\`yyyy-MM-ddTHH:mm:ssZ\\` format and is displayed in UTC.', 'type' => 'string', 'title' => '', 'example' => '2021-12-29T17:08:45Z'], + 'RuleId' => ['description' => 'The ID of the protection rule.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '100001'], + 'RuleName' => ['description' => 'The name of the protection rule.', 'type' => 'string', 'title' => '', 'example' => 'rule_1'], + 'RuleConfig' => ['description' => 'The configuration details of the protection rule.', 'type' => 'string', 'title' => '', '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"], + ], + 'description' => '', + 'title' => '', + ], + 'title' => '', ], ], 'description' => '', + 'title' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'EdgeRoutine.GeneralError', - 'errorMessage' => 'A server error occurred: %s', - ], + 'title' => 'DescribeDcdnWafRules', + 'summary' => 'You can call DescribeDcdnWafRules to query the details of configured protection rules.', + 'description' => '> The call frequency for a single user is limited to 20 calls per second.', + 'requestParamsDescription' => '**QueryArgs** details'."\n" + ."\n" + .'| Name | Type | Required | Example | Description |'."\n" + .'| ------------- | ------- | -------- | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| PolicyIds | string | No | 10000001,10000100 | The IDs of the mitigation policies. This is a term query. Separate multiple IDs with a comma (,). |'."\n" + .'| RuleIds | string | No | 100001,200002 | The IDs of the protection rules. This is a term query. Separate multiple IDs with a comma (,). |'."\n" + .'| RuleNameLike | string | No | rule_1 | The name of the protection rule. This is a fuzzy query. The name can contain letters, digits, and underscores (_). The name can be up to 64 characters long. |'."\n" + .'| DomainNames | string | No | example.com | The protected domain names. This is a term query. You can specify up to 50 domain names. Separate multiple domain names with a comma (,). |'."\n" + .'| DefenseScenes | string | No | custom_acl | The type of the mitigation policy. This is a term query. Separate multiple types with a comma (,). The following scenarios are supported: `waf_group` (basic web protection), `custom_acl` (custom mitigation policy), and `whitelist` (whitelist). |'."\n" + .'| RuleStatus | string | No | on | The status of the policy. Valid values: `on` (enabled) and `off` (disabled). |'."\n" + .'| OrderBy | string | No | GmtModified | The field to use for sorting. Valid values: `GmtModified`, `RuleName`, `RuleStatus`, `RuleId`, and `PolicyId`. |'."\n" + .'| Desc | Boolean | No | false | The sort order. Valid values: `true` (descending) and `false` (ascending). The default value is `false`. |', + 'changeSet' => [ + ['createdAt' => '2022-12-08T03:46:21.000Z', 'description' => 'Error codes changed'], + ], + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"FC0E34AC-0239-44A7-AB0E-800DE522C8DA\\"\\n}","type":"json"}]', - 'title' => 'DescribeRoutineRelatedDomains', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'RefreshErObjectCaches' => [ - 'summary' => 'Refreshes the cache that is written by calling the cache operation of EdgeRoutine. You can refresh multiple URLs in each request.', - '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' => 'The URL that you want to refresh.'."\n" - ."\n" - .'> * Separate URLs with line feeds (\\n or \\r\\n). Each object path can be up to 1,024 characters in length.'."\n" - .'>* The URLs in a request must belong to the same domain name.'."\n" - .'>* You can refresh up to 1,000 URLs in each request.', - 'type' => 'string', - 'required' => true, - 'example' => 'http://example.com/examplefile.txt', - ], - ], - [ - 'name' => 'ObjectType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The refresh type. Valid values:'."\n" - ."\n" - .'* **File** (default): refreshes content based on URLs.'."\n" - .'* **Directory**: refreshes content based on directories.'."\n" - .'* **Regex**: refreshes content based on regular expressions.'."\n" - .'* **IgnoreParams**: removes the question mark (`?`) and parameters after the question mark (`?`) in a request URL and refreshes content. After you call this operation with the request URL submitted, the system compares the submitted URL with the URL of the cached resource without specific parameters. If the URLs match, the points of presence (POPs) refresh the cached resource.'."\n" - ."\n" - .'> If you refresh the files in one or more directories, the resources in the directory that you want to refresh are marked as expired. You cannot delete the directory. If clients request resources on POPs that are marked as expired, Dynamic Content Delivery Network (DCDN) checks whether the resources on your origin server are updated. If resources are updated, DCDN retrieves the latest version of the resources and returns the resources to the clients. Otherwise, the origin server returns the 304 status code.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'File', - ], - ], - [ - 'name' => 'MergeDomainName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The domain names that are merged for refreshing. POPs that provide services for the domain names are refreshed.'."\n" - ."\n" - .'> Separate multiple domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'a.test.com,b.test.com', - ], - ], - [ - 'name' => 'RoutineId', + 'name' => 'DefenseScenes', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the routine, which is in the format of "Name.Subdomain" and is the unique identifier of a custom routine.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => ' test.mysubdomain', - ], - ], - [ - 'name' => 'Force', - 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to refresh resources in a directory if the resources requested are different from the resources on the origin server. Default value: false.'."\n" - ."\n" - .'* **true**: refreshes all resources in the directory.'."\n" - .'* **false**: refreshes the changed resources in the directory.'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => 'The types of mitigation settings to query. Separate multiple types with commas (,). The following scenarios are supported:'."\n" + ."\n" + .'- waf\\_group: Basic web protection.'."\n" + ."\n" + .'- custom\\_acl: Custom mitigation policies.'."\n" + ."\n" + .'- whitelist: Whitelist.'."\n" + ."\n" + .'- ip\\_blacklist: IP blacklist.'."\n" + ."\n" + .'- region\\_block: Location Blacklist.'."\n" + ."\n" + .'- bot: Bot management.'."\n" + ."\n" + .'> If you do not specify this parameter, all scenarios are queried.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'waf_group,custom_acl,whitelist'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', - ], - 'RefreshTaskId' => [ - 'description' => 'The ID of the refresh task. Separate multiple IDs with commas (,).'."\n", - 'type' => 'string', - 'example' => '95248880', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '3D7BB13C-DD84-5654-A835-B8E1385DE274'], + 'DefenseScenes' => [ + 'description' => 'The types of mitigation settings.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'PolicyCount' => ['description' => 'The total number of policies that are configured for this type of mitigation setting.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '10'], + 'RuleCount' => ['description' => 'The total number of mitigation rules that are configured for this type of mitigation setting.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '12'], + 'DefenseScene' => ['description' => 'The type of the mitigation setting. The value is the same as the value of the request parameter DefenseScenes.', 'type' => 'string', 'title' => '', 'example' => 'waf_group'], + ], + 'description' => '', + 'title' => '', + ], + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], ], ], - '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' => 'DescribeDcdnWafScenes', + 'summary' => 'You can call the DescribeDcdnWafScenes operation to query the supported protection scenarios.', + 'description' => '> A single user can make up to 20 calls per second.', + 'changeSet' => [ + ['createdAt' => '2022-12-08T06:03:12.000Z', 'description' => 'Error codes changed'], + ], + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F\\",\\n \\"RefreshTaskId\\": \\"95248880\\"\\n}","type":"json"}]', - 'title' => 'RefreshErObjectCaches', - 'description' => '> * Dynamic Content Delivery Network (DCDN) supports POST requests in which parameters are sent as a form.'."\n" - .'> * Related operation: [RefreshDcdnObjectCaches](~~130620~~).'."\n" - .'> * By default, each Alibaba Cloud account can purge content from a maxim> um of 10,000 URLs and 100 directories including subdirectories per day.'."\n" - .'> * You can specify up to 1,000 URLs or 100 directories that you want to purge in each request.'."\n" - .'> * You can specify up to 1,000 URLs that you want to purge per minute for each domain name.'."\n" - .'> * You can call this operation up to 30 times per second per account.', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"3D7BB13C-DD84-5654-A835-B8E1385DE274\\",\\n \\"DefenseScenes\\": [\\n {\\n \\"PolicyCount\\": 10,\\n \\"RuleCount\\": 12,\\n \\"DefenseScene\\": \\"waf_group\\"\\n }\\n ]\\n}","type":"json"}]', ], - 'SetDcdnDomainStagingConfig' => [ - 'summary' => 'Sets or modifies the domain name configuration in the canary release environment.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnWafService' => [ + 'summary' => 'Call DescribeDcdnWafService to query the status of the DCDN Web Application Firewall (WAF) service, including the service activation time, edition, current status, and billing methods for requests and rules.', + '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' => 'The accelerated domain name. Separate multiple accelerated domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'Functions', - 'in' => 'query', - 'schema' => [ - 'description' => 'The list of features. Format: `[{"functionArgs":[{"argName":"parameter key","argValue":"parameter value"},{"argName":"xx","argValue":"xx"}],"functionName": feature name"}]`'."\n" - ."\n" - .'> Separate multiple parameters with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '[{\\"functionArgs\\":[{\\"argName\\":\\"enable\\",\\"argValue\\":\\"on\\",\\"argName\\":\\"pri\\",\\"argValue\\":\\"1\\",\\"argName\\":\\"rule\\",\\"argValue\\":\\"xxx\\"}],\\"functionName\\":\\"edge_function\\"}]', - ], - ], + 'abilityTreeCode' => '133730', + 'abilityTreeNodes' => ['FEATUREdcdnZA9EPX'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], + 'Status' => ['description' => 'The service status. Valid values:'."\n" + ."\n" + .'- Normal: Normal'."\n" + ."\n" + .'- WaitForExpire: The service is about to expire.'."\n" + ."\n" + .'- Expired: The service has expired.'."\n" + ."\n" + .'- Released: The service is released.', 'type' => 'string', 'title' => '', 'example' => 'Normal'], + 'RequestBillingType' => ['description' => 'The billing method for requests.', 'type' => 'string', 'title' => '', 'example' => 'dcdn_waf_req'], + 'Edition' => ['description' => 'The WAF edition.', 'type' => 'string', 'title' => '', 'example' => 'dcdnwaf_afterpay'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '4A95CA90-E0F2-1BF6-99E0-8C1510CAF649'], + 'OpeningTime' => ['description' => 'The time when the service was activated.', 'type' => 'string', 'title' => '', 'example' => '2021-09-26T16:00:00Z'], + 'Enabled' => ['description' => 'The activation status of the service.'."\n" + ."\n" + .'- on: The service is activated.'."\n" + ."\n" + .'- off: The service is not activated.', 'type' => 'string', 'title' => '', 'example' => 'on'], + 'RuleBillingType' => ['description' => 'The billing method for rules. You are charged based on the number of security capacity units (SCUs).', 'type' => 'string', 'title' => '', 'example' => 'dcdn_waf_rule'], ], 'description' => '', + 'title' => '', ], ], ], - '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' => 'DescribeDcdnWafService', + 'description' => '> A single user can make up to 20 calls per second.', + 'changeSet' => [ + ['createdAt' => '2022-10-27T06:16:01.000Z', 'description' => 'Error codes changed'], + ], + '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' => 'All Resource', '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' => 'SetDcdnDomainStagingConfig', - 'description' => '> You can call this operation up to 30 times per second per account.'."\n", - 'requestParamsDescription' => 'You can set multiple items for some features, such as the edge\\_function feature. To update an item, you can set the ConfigId field to specify the configuration items that you want to modify. The ConfigId field is of the long type. Format:'."\n" - ."\n" - .'```'."\n" - .'[{"functionArgs":[{"argName":"enable","argValue":"on"},{"argName":"pri","argValue":"1"},{"argName":"rule","argValue":"yyy"}],"ConfigId":123456,"functionName":"edge_function"}]'."\n" - .'```'."\n" - ."\n" - .'**Description of edge\\_function** All field values are of the string type.'."\n" - ."\n" - .'|Parameter|Field|'."\n" - .'|---|---|'."\n" - .'|edge\\_function|Required fields:rule: The domain-specific language (DSL) script.pri: the priority of the script.enable: specifies whether to enable the script. Valid values: on and off.Optional fields:name: the name of the script.pos: the position from which to execute the script. For the accelerated domain names of Dynamic Content Delivery Network (DCDN), only head is supported. foot is not supported.brk: After the current script is matched, the scripts after the specified position are skipped.option: option control.grammar: grammar control. Valid values: es2 and js. You can also leave this field empty.jsmode: control of the JavaScript domain name whitelist. Valid values: redirect and bypass.|', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'DescribeDcdnDomainStagingConfig' => [ - 'summary' => 'Queries the environment configuration in the canary release environment.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDcdnWafSpecInfo' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -22662,160 +20596,136 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn2JMMUY', - ], - ], - 'parameters' => [ - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'FunctionNames', - 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => 'The names of the features to query. You can separate multiple features with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'aliauth', - ], - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], + 'parameters' => [], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'C80705BF-0F76-41FA-BAD1-5B59296A4E59', - ], - 'DomainConfigs' => [ - 'description' => 'The configurations of accelerated domain names returned.'."\n", + 'Edition' => ['description' => 'The edition of DCDN WAF.', 'type' => 'string', 'title' => '', 'example' => 'dcdnwaf_afterpay'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '7281593a-f414-42c1-b7ba-2ce65e21cc00'], + 'SpecInfos' => [ + 'description' => 'The supported types of mitigation settings and the configurations of mitigation rules.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => 'The status. Valid values:'."\n" - ."\n" - .'* success: The configuration is successful.'."\n" - .'* testing: The configuration is under testing.'."\n" - .'* failed: The task failed.'."\n" - .'* configuring: The feature is being configured.'."\n", - 'type' => 'string', - 'example' => 'success', - ], - 'ConfigId' => [ - 'description' => 'The ID of the configuration.'."\n", - 'type' => 'string', - 'example' => '6295', - ], - 'FunctionName' => [ - 'description' => 'The name of the feature.'."\n", - 'type' => 'string', - 'example' => 'aliauth', - ], - 'FunctionArgs' => [ - 'description' => 'The following table describes the features.'."\n", + 'DefenseScene' => ['description' => 'The type of the mitigation setting. The following types are supported:'."\n" + ."\n" + .'- waf\\_group: basic web protection.'."\n" + ."\n" + .'- custom\\_acl: custom mitigation policies.'."\n" + ."\n" + .'- whitelist: whitelists.'."\n" + ."\n" + .'- ip\\_blacklist: IP blacklists.'."\n" + ."\n" + .'- region\\_block: Region blacklist.'."\n" + ."\n" + .'- bot: Bot management.', 'type' => 'string', 'title' => '', 'example' => 'custom_acl'], + 'Configs' => [ + 'description' => 'The configurations of the mitigation rule.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ArgName' => [ - 'description' => 'The name of the configuration.'."\n", - 'type' => 'string', - 'example' => 'auth_type', - ], - 'ArgValue' => [ - 'description' => 'The value of the configuration.'."\n", - 'type' => 'string', - 'example' => 'req_auth', - ], + 'Value' => ['description' => 'The value of the configuration expression for the mitigation rule.', 'type' => 'string', 'title' => '', 'example' => 'on'], + 'Config' => ['description' => 'The configuration code for the mitigation rule.', 'type' => 'string', 'title' => '', 'example' => 'enable'], + 'Expr' => ['description' => 'The configuration expression for the mitigation rule.', 'type' => 'string', 'title' => '', 'example' => 'equal'], ], 'description' => '', + 'title' => '', ], + 'title' => '', ], ], 'description' => '', + 'title' => '', ], + 'title' => '', ], ], 'description' => '', + 'title' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Invalid%s.ValueNotSupported', - 'errorMessage' => 'FunctionName [%s] is not supported.', + 'title' => 'DescribeDcdnWafSpecInfo', + 'summary' => 'You can call the DescribeDcdnWafSpecInfo operation to query information about the edition of DCDN WAF that is in use.', + 'description' => '> The call frequency is limited to 20 calls per second per user.', + 'changeSet' => [ + ['createdAt' => '2022-12-08T06:42:23.000Z', 'description' => 'Error codes changed'], + ], + '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' => 'All Resource', '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' => 'DescribeDcdnDomainStagingConfig', - 'description' => '> You can call this operation up to 30 times per second per account.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'DeleteDcdnSpecificStagingConfig' => [ - 'summary' => 'Deletes the configurations of an accelerated domain name in the canary release environment.', - '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' => 'The accelerated domain name. You can specify only one domain name in each call.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The accelerated domain name. If you do not specify this parameter, data for all accelerated domain names is returned.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], ], [ - 'name' => 'ConfigId', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the configuration to be deleted. You can specify multiple configuration IDs and separate them with commas (,).'."\n" - ."\n" - .'You can call the DescribeDcdnDomainStagingConfig operation to query the environment configuration.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2317', - ], + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'example' => '2018-09-30T16:00:00Z', 'title' => ''], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'> The end time must be later than the start time.', 'type' => 'string', 'required' => false, 'example' => '2018-10-01T16:00:00Z', 'title' => ''], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => ['description' => 'The time granularity of the data, in seconds.'."\n" + ."\n" + .'The value depends on the time span of the query. Valid values: 300 (5 minutes), 3600 (1 hour), and 86400 (1 day).', 'type' => 'string', 'required' => false, 'example' => '300', 'title' => ''], + ], + [ + 'name' => 'SplitBy', + 'in' => 'query', + 'schema' => ['description' => 'The method used to group data. Valid values:'."\n" + ."\n" + .'- domain: groups data by accelerated domain name.'."\n" + ."\n" + .'- If you do not specify this parameter, the data is not grouped.', 'type' => 'string', 'required' => false, 'example' => 'domain', 'title' => ''], ], ], 'responses' => [ @@ -22823,396 +20733,506 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'EndTime' => ['description' => 'The end of the time range.', 'type' => 'string', 'example' => '2018-10-01T16:00:00Z', 'title' => ''], + 'StartTime' => ['description' => 'The start of the time range.', 'type' => 'string', 'example' => '2018-09-30T16:00:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'CB1A380B-09F0-41BB-802B-72F8FD6DA2FE', 'title' => ''], + 'WafUsageData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'WafUsageDataItem' => [ + 'description' => 'The WAF usage data for the accelerated domain names.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ObserveCnt' => ['description' => 'The number of requests that were monitored.', 'type' => 'integer', 'format' => 'int64', 'example' => '300', 'title' => ''], + 'Domain' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'BlockCnt' => ['description' => 'The number of requests that were blocked.', 'type' => 'integer', 'format' => 'int64', 'example' => '300', 'title' => ''], + 'AccessCnt' => ['description' => 'The number of normal requests.', 'type' => 'integer', 'format' => 'int64', 'example' => '600', 'title' => ''], + 'TimeStamp' => ['description' => 'The start of the time slice.', 'type' => 'string', 'example' => '2018-09-30T16:00:00Z', 'title' => ''], + 'SecCu' => ['description' => 'The number of security compute units (SeCUs) generated.', 'type' => 'integer', 'format' => 'int64', 'example' => '50', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'You must set both the start time and the end time.'], + ['errorCode' => 'InvalidStartTime.Malformed', 'errorMessage' => 'The specified StartTime parameter is invalid.', 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidTime.Malformed', 'errorMessage' => 'Specified StartTime or EndTime is malformed.', 'description' => 'The format of the specified start time or end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Configure a valid time span as described in API documentation.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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' => 'DeleteDcdnSpecificStagingConfig', - 'description' => '> You can call this operation up to 20 times per second per account.'."\n", - 'extraInfo' => ' ', - ], - 'PublishDcdnStagingConfigToProduction' => [ - 'summary' => 'Publishes the configurations of an accelerated domain name from the staging environment to the production environment.', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => [], + 'title' => 'DescribeDcdnWafUsageData', + 'summary' => 'Queries usage data for Web Application Firewall (WAF).', + 'description' => '> - The call frequency for a single user is limited to 10 calls per second.'."\n" + .'>'."\n" + .'> - The minimum time granularity is 5 minutes. The maximum time span for a single query is 31 days. You can query data from the last 90 days.', + 'changeSet' => [ + ['createdAt' => '2022-12-13T07:06:27.000Z', 'description' => 'Error codes changed'], ], - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'DescribeDcdnsecService' => [ + 'summary' => 'Call DescribeDcdnsecService to query the status of your Secure DCDN service, such as its activation time, expiration time, and current service status.', + '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' => 'The accelerated domain name. You can specify only one domain name in each request.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'FunctionName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the feature.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'aliauth', - ], - ], + 'abilityTreeCode' => '111544', + 'abilityTreeNodes' => ['FEATUREdcdnZA9EPX'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'EndTime' => ['description' => 'The time when the service expires.', 'type' => 'string', 'title' => '', 'example' => '2021-09-26T16:00:00Z'], + 'StartTime' => ['description' => 'The time when the service was activated.', 'type' => 'string', 'title' => '', 'example' => '2021-08-26T02:52:08Z'], + 'ChangingAffectTime' => ['description' => 'The time when the next change takes effect. The time is in GMT.', 'type' => 'string', 'title' => '', 'example' => '2021-09-30T16:00:00Z'], + 'DomainNum' => ['description' => 'The number of accelerated domain names that are associated with Secure DCDN.', 'type' => 'string', 'title' => '', 'example' => '130'], + 'ChangingChargeType' => ['description' => 'The billing method for the next billing cycle.'."\n" + ."\n" + .'- **PayByTraffic**: Pay-by-traffic.'."\n" + .'- **PayByBandwidth**: Pay-by-bandwidth.'."\n" + .'- **PayByBandwidth95**: 95th percentile bandwidth.'."\n" + .'- **PayByBandwidth\\_monthavg**: Monthly average bandwidth.'."\n" + .'- **PayByBandwidth\\_month4th**: Monthly 4th peak bandwidth.'."\n" + .'- **PayByBandwidth\\_monthday95avg**: Monthly average of daily 95th percentile bandwidth.'."\n" + .'- **PayByBandwidth\\_nighthalf95**: 95th percentile bandwidth with a 50% discount for nighttime traffic.', 'type' => 'string', 'title' => '', 'example' => 'PayByBandwidth'], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => 'E20B46E1-9BCD-10E5-AAEF-6D7B737467A1'], + 'Version' => ['description' => 'The edition of the service.', 'type' => 'string', 'title' => '', 'example' => 'enterprise'], + 'RequestType' => ['description' => 'The billing method for requests.', 'type' => 'string', 'title' => '', 'example' => 'PayBySecRequest'], + 'FlowType' => ['description' => 'The billing method for traffic.', 'type' => 'string', 'title' => '', 'example' => 'PayBySecTraffic'], + 'InternetChargeType' => ['description' => 'The current billing method.'."\n" + ."\n" + .'- **PayByTraffic**: Pay-by-traffic.'."\n" + .'- **PayByBandwidth**: Pay-by-bandwidth.'."\n" + .'- **PayByBandwidth95**: 95th percentile bandwidth.'."\n" + .'- **PayByBandwidth\\_monthavg**: Monthly average bandwidth.'."\n" + .'- **PayByBandwidth\\_month4th**: Monthly 4th peak bandwidth.'."\n" + .'- **PayByBandwidth\\_monthday95avg**: Monthly average of daily 95th percentile bandwidth.'."\n" + .'- **PayByBandwidth\\_nighthalf95**: 95th percentile bandwidth with a 50% discount for nighttime traffic.', 'type' => 'string', 'title' => '', 'example' => 'PayByTraffic'], + 'InstanceId' => ['description' => 'The ID of the instance.', 'type' => 'string', 'title' => '', 'example' => 'dcdn_dcdnsec_public_cn-123***'], + 'OperationLocks' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'LockReason' => [ + 'description' => 'The reasons why the service is locked.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'LockReason' => ['description' => 'The reason why the service is locked.', 'type' => 'string', 'title' => '', 'example' => ' financial'], + ], + 'description' => '', + 'title' => '', + ], + 'title' => '', + ], + ], + 'description' => '', + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'StagingConfig.Failed', - 'errorMessage' => 'The rules for the staging environment are being configured. Try again later.', - ], + 'title' => 'DescribeDcdnsecService', + 'description' => '> The call frequency is limited to 20 calls per second per user.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-10-13T02:27:10.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DescribeDcdnsecService'], ], - 404 => [ - [ - 'errorCode' => 'StagingConfig.NotFound', - 'errorMessage' => 'The staging configuration does not exist.', + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnsecService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], - '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' => 'PublishDcdnStagingConfigToProduction', - 'description' => '> You can call this operation up to 30 times per second per account.'."\n", - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'RollbackDcdnStagingConfig' => [ - 'summary' => 'Rolls back the configurations of an accelerated domain name from the staging environment to the production environment.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeDdosAllEventList' => [ + 'summary' => 'Queries a list of attack events.', + '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' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => true, 'example' => '2023-03-27T16:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + .'The end time must be later than the start time. The maximum time range that can be queried is 31 days.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '2023-04-25T15:59:59Z'], + ], + [ + 'name' => 'EventType', + 'in' => 'query', + 'allowEmptyValue' => true, 'schema' => [ - 'description' => 'The accelerated domain name. You can specify only one domain name in each call.'."\n", + 'description' => 'The type of DDoS attack events to query. Valid values:'."\n" + ."\n" + .'- - **web-cc**: web resource exhaustion attacks.'."\n" + ."\n" + .'- - **cc**: connection flood attacks.'."\n" + ."\n" + .'- - **traffic**: volumetric attacks.'."\n" + ."\n" + .'If you do not set this parameter, all types of attack events are queried.', 'type' => 'string', - 'required' => true, - 'example' => 'example.com', + 'required' => false, + 'enum' => ['web-cc', 'cc', 'traffic'], + 'title' => '', + 'example' => 'web-cc', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number. Default value: 1. Valid values: 1 to 100000.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'title' => '', 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **10**. Valid values: 5, 10, and 20.', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'default' => '10', + 'enum' => ['5', '10', '20'], + 'title' => '', + 'example' => '10', ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'D73A4243-CFBD-5110-876F-09237E77ECBD'], + 'Total' => ['description' => 'The total number of entries returned.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '20'], + 'PageNumber' => ['description' => 'The page number. Default value: **1**.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1'], + 'PageSize' => ['description' => 'The number of entries per page. Default value: **10**. Valid values: 5, 10, and 20.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '10'], + 'DataList' => [ + 'description' => 'The list of events.', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Target' => ['description' => 'The attack target.', 'type' => 'string', 'title' => '', 'example' => 'example.com'], + 'StartTime' => ['description' => 'The beginning of the time range. The time is in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'title' => '', 'example' => '2022-10-09T10:03:31Z'], + 'EndTime' => ['description' => 'The end of the time range.'."\n" + .'The time is in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'title' => '', 'example' => '2022-11-26T15:59:00Z'], + 'EventType' => ['description' => 'The type of the DDoS attack event. Valid values:'."\n" + ."\n" + .'- **web-cc**: a web resource exhaustion attack.'."\n" + ."\n" + .'- **cc**: a connection flood attack.'."\n" + ."\n" + .'- **traffic**: a volumetric attack.'."\n" + ."\n" + .'- If this parameter is not set, all types of attack events are returned.', 'type' => 'string', 'title' => '', 'example' => 'web-cc'], + 'Bps' => ['description' => 'The peak BPS of the volumetric attack.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '800'], + 'Pps' => ['description' => 'The peak PPS of the volumetric attack.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '12000'], + 'Cps' => ['description' => 'The peak CPS of the connection flood attack.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '50'], + 'Qps' => ['description' => 'The peak queries per second (QPS) of the web resource exhaustion attack.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '7692'], + 'EventId' => ['description' => 'The event ID.', 'type' => 'string', 'title' => '', 'example' => '28069'], + ], + 'title' => '', + ], + 'title' => '', ], ], ], ], ], 'errorCodes' => [ - 404 => [ - [ - 'errorCode' => 'StagingConfig.NotFound', - 'errorMessage' => 'The staging configuration does not exist.', - ], + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => 'An internal error occurred. Try again later. If the error persists, submit a ticket.'], ], ], - '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' => 'RollbackDcdnStagingConfig', - 'description' => '> You can call this operation up to 30 times per second per account.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnStagingIp' => [ - 'summary' => 'Queries valid virtual IP addresses (VIPs) in the staging environment.', - 'methods' => [ - 'get', - 'post', + 'title' => 'DescribeDdosAllEventList', + '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' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '1B9E0E83-24AC-49F4-9EE0-BF5EB03E8381', - ], - 'IPV4s' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'IPV4' => [ - 'description' => '', - 'type' => 'array', - 'items' => [ - 'description' => 'The data format that consists of IPv4 addresses.'."\n", - 'type' => 'string', - 'example' => '192.168.xx.xx","192.168.xx.xx', - ], - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '4DBA68F5-04A9-406B-B1E4-F2CB635E103F'], + 'Content' => ['description' => 'The returned ciphertext. It contains the Alibaba Cloud account ID, the timestamp, and the TTL.', 'type' => 'string', 'example' => 'XXXXXj20p4UB/xgdOH5LtXXXXXX', 'title' => ''], ], - 'description' => '', + 'example' => '', ], ], ], - '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' => 'DescribeDcdnStagingIp', - 'description' => '> You can call this operation up to 30 times per second per account.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'BatchDeleteDcdnKvWithHighCapacity' => [ - 'summary' => 'Deletes multiple key-value pairs from a namespace at a time based on specified keys. The request body can be up to 100 MB.', - 'methods' => [ - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => 'A server error occurred. Try again later. If the error persists, submit a ticket.'], + ], ], - 'schemes' => [ - 'https', + 'title' => 'DescribeEncryptRoutineUid', + 'summary' => 'Queries an Edge Routine (ER), such as its encrypted RoutineUid.', + 'changeSet' => [ + ['createdAt' => '2022-09-09T06:05:51.000Z', 'description' => 'OpenAPI offline'], ], + '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' => 'All Resource', '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' => '', - 'type' => 'string', - 'required' => true, - 'example' => 'test_namespace'."\n", - ], + 'schema' => ['description' => 'The beginning of the time range to query. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '2023-02-19T16:00:00Z'], ], [ - 'name' => 'Url', + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => 'The end of the time range to query. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '2023-04-10T02:43:34Z'], + ], + [ + 'name' => 'TraceId', + 'in' => 'query', + 'schema' => ['description' => 'The trace ID of the log.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '800e749616838513398137319e'], + ], + [ + 'name' => 'Lang', 'in' => 'query', 'schema' => [ - 'description' => '', + 'description' => 'The language of the response. Valid values:'."\n" + ."\n" + .'- **en\\_US** (default): English'."\n" + .'- **zh\\_CN**: Chinese', 'type' => 'string', 'required' => true, - 'example' => 'https://xxxobject.oss-cn-reginon.aliyuncs.com/9d91_xxxxxxxxxxx_158bb6e0f97c477791209bb46bd599f7', - 'isFileTransferUrl' => true, + 'enum' => ['zh_CN', 'en_US'], + 'title' => '', + 'example' => 'en_US', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '', - 'type' => 'string', - 'example' => 'EEEBE525-F576-1196-8DAF-2D70CA3F4D2F', - ], - 'FailKeys' => [ - 'description' => '', - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'string', - 'example' => 'test_key1', - ], - ], - 'SuccessKeys' => [ - 'description' => '', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], + 'DataModule' => [ + 'description' => 'The data model of the highlighted data.', 'type' => 'array', 'items' => [ - 'description' => '', - 'type' => 'string', - 'example' => 'test_key1', + 'description' => 'The data model of the highlighted data.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The type of the highlighted content.', 'type' => 'string', 'title' => '', 'example' => 'URL'], + 'Hit' => ['description' => 'The highlighted data.', 'type' => 'string', 'title' => '', 'example' => '["data:image/php;base64"]'], + 'Raw' => ['description' => 'The complete data.', 'type' => 'string', 'title' => '', 'example' => 'data:image/php;base64,PD9waHAXXXXXXanVzdHR0dHXXXXXB0ZXN0Ijs/Pg=='], + ], + 'title' => '', ], + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], ], ], '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' => 'A parameter is set to an invalid value.'], ], - 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' => 'An internal error occurred. Try again later. If the error persists, submit a ticket.'], ], + ], + 'title' => 'DescribeHighlightInfo', + 'summary' => 'You can call the DescribeHighlightInfo operation to query highlighted data for attack details. Use the TraceId from the log of a request that was blocked by Basic Web Protection to find the specific reason for the block. The highlighted data is the content that was blocked by the Basic Web Protection module.', + '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' => 'All Resource', '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' => 'BatchDeleteDcdnKvWithHighCapacity', + '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', - ], + 'summary' => 'Queries the real-time queries per second (QPS) data of a key-value (KV) store.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -23225,51 +21245,44 @@ 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeCode' => '172111', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], 'autoTest' => true, ], 'parameters' => [ [ 'name' => 'NamespaceId', 'in' => 'query', - 'schema' => [ - 'description' => '', - 'type' => 'string', - 'required' => false, - 'example' => '534167033424646***', - ], + 'schema' => ['description' => 'The ID of the namespace. If you leave this parameter empty, the aggregate data of all namespaces is returned.'."\n" + ."\n" + .'You can specify multiple namespace IDs separated by commas (,). You can query a maximum of 30 namespaces.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'namespaceName'], ], [ 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '', - 'type' => 'string', - 'required' => false, - 'example' => '2022-08-10T16:00:00Z', - ], + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'The minimum time granularity is 5 minutes. If you do not specify this parameter, data in the last 24 hours is queried by default.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '2022-08-10T16:00:00Z'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '', - 'type' => 'string', - 'required' => false, - 'example' => '2022-08-10T15:59:59Z', - ], + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '2022-08-10T15:59:59Z'], ], [ 'name' => 'AccessType', 'in' => 'query', 'schema' => [ - 'description' => '', + 'description' => 'The access type. If you leave this parameter empty, the aggregate data of all access types is returned. You can set this parameter to one of the following values:'."\n" + ."\n" + .'- **get**: GET requests.'."\n" + .'- **put**: PUT requests.'."\n" + .'- **list**: LIST requests.'."\n" + .'- **delete**: DELETE requests.', 'type' => 'string', 'required' => false, - 'example' => 'get', 'enum' => [], + 'title' => '', + 'example' => 'get', ], ], [ @@ -23277,28 +21290,33 @@ 'in' => 'query', 'allowEmptyValue' => true, 'schema' => [ - 'description' => '', + 'description' => 'The key to group data by. You can set this parameter to **type** or **namespace**.'."\n" + ."\n" + .'- **type**: If you set this parameter to type, data is grouped by time and returned at a 5-minute granularity.'."\n" + .'- **namespace**: If you set this parameter to namespace, data is grouped by namespace. Data points with a value of 0 are not returned.'."\n" + .'- If you leave this parameter empty, all data that meets the filter conditions is aggregated. Data points with a value of 0 are returned regardless of the time granularity.', 'type' => 'string', 'required' => false, + 'enum' => ['type', 'namespace'], + 'title' => '', 'example' => 'type', - 'enum' => [ - 'type', - 'namespace', - ], ], ], [ 'name' => 'Interval', 'in' => 'query', 'schema' => [ - 'description' => '', + 'description' => 'The time granularity. Valid values:'."\n" + ."\n" + .'- **60**: 1-minute granularity'."\n" + .'- **300**: 5-minute granularity'."\n" + ."\n" + .'The default value is 60.', 'type' => 'string', 'required' => false, + 'enum' => ['60', '300'], + 'title' => '', 'example' => '60', - 'enum' => [ - '60', - '300', - ], ], ], ], @@ -23306,99 +21324,45 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'description' => 'The response schema.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '', - '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' => 'The request ID.', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92C***'], + 'StartTime' => ['description' => 'The start time.', 'type' => 'string', 'title' => '', 'example' => '2023-01-10T16:00:00Z'], + 'EndTime' => ['description' => 'The end time.', 'type' => 'string', 'title' => '', 'example' => '2023-01-18T15:59:59Z'], 'KvQpsData' => [ - 'description' => '', + 'description' => 'The detailed QPS data.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'TimeStamp' => [ - 'description' => '', - 'type' => 'string', - 'example' => '2023-01-10T16:00:00Z', - ], - 'NamespaceId' => [ - 'description' => '', - 'type' => 'string', - 'example' => '534167033424646***', - ], - 'AccessType' => [ - 'description' => '', - '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' => 'The beginning of the time slice.', 'type' => 'string', 'title' => '', 'example' => '2023-01-10T16:00:00Z'], + 'NamespaceId' => ['description' => 'The namespace ID. This field is returned only when you set **SplitBy** to **namespace**.', 'type' => 'string', 'title' => '', 'example' => '534167033424646***'], + 'AccessType' => ['description' => 'The request type. This field is returned only when you set **SplitBy** to **type**.', 'type' => 'string', 'title' => '', 'example' => 'get'], + 'Qps' => ['description' => 'The average number of requests per second.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '5236'], + 'KeyQps' => ['description' => 'The average number of operations on key-value pairs per second.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '1234'], + 'KeySuccQps' => ['description' => 'The average number of successful operations on key-value pairs per second.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '1233'], ], + 'description' => '', + 'title' => '', ], + 'title' => '', ], 'AggregateData' => [ - 'description' => '', + 'description' => 'The aggregate data.', 'type' => 'array', 'items' => [ - 'description' => '', + 'description' => 'The aggregate data.', 'type' => 'object', 'properties' => [ - 'AccessType' => [ - 'description' => '', - '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' => 'The request type. This field is returned only when you set **SplitBy** to **type**.', 'type' => 'string', 'title' => '', 'example' => 'get'], + 'Acc' => ['description' => 'The number of requests.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '123'], + 'KeyAcc' => ['description' => 'The number of operations on key-value pairs.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '1234'], + 'KeySuccAcc' => ['description' => 'The number of successful operations on key-value pairs.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '1233'], ], + 'title' => '', ], + 'title' => '', ], ], ], @@ -23406,511 +21370,397 @@ ], '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' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Configure a valid time span as described in API documentation.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], ], ], - '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":""}]', - ], - 'PutDcdnKvWithHighCapacity' => [ - 'summary' => '设置Namespace的key-value对,支持最大25M的请求体', - 'methods' => [ - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DescribeKvRealTimeQpsData', + 'description' => '> The call frequency for a single user is limited to 10 calls per second.'."\n" + ."\n" + .'**Supported time granularities for queries**:'."\n" + ."\n" + .'The Interval parameter supports different time granularities. The selected time granularity determines the maximum time span for a single query and the time range of historical data that you can query.'."\n" + ."\n" + .'| Time granularity | Maximum time span for a single query | Queryable historical data time range |'."\n" + .'| ---------------- | ------------------------------------ | ------------------------------------ |'."\n" + .'| 1 minute | 1 day | 60 days |'."\n" + .'| 5 minutes | 3 days | 60 days |', + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + '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' => '', - 'type' => 'string', - 'required' => true, - 'example' => 'test_namesapce', - ], + 'schema' => ['description' => 'The ID of the namespace. If you leave this parameter empty, aggregated data for all namespaces is returned.'."\n" + ."\n" + .'To query multiple namespaces, separate the IDs with commas (,). You can specify up to 30 namespace IDs.', 'type' => 'string', 'title' => '', 'example' => '12423131231****', 'required' => false], ], [ - 'name' => 'Key', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '', - 'type' => 'string', - 'required' => true, - 'example' => 'test_key', - ], + 'schema' => ['description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" + ."\n" + .'The minimum time granularity is 1 hour. If you do not specify this parameter, data from the last 7 days is queried by default.', 'type' => 'string', 'example' => '2022-08-10T00:00:00Z', 'required' => false, 'title' => ''], ], [ - 'name' => 'Url', + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'example' => '2022-08-10T23:59:59Z', 'required' => false, 'title' => ''], + ], + [ + 'name' => 'Field', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['description' => 'The type of data to request. Set the value to **acc**.', 'type' => 'string', 'required' => true, 'example' => 'acc', 'title' => ''], + ], + [ + 'name' => 'AccessType', + 'in' => 'query', + 'schema' => ['description' => 'The access type. If you leave this parameter empty, aggregated results for all types are returned. Valid values:'."\n" + ."\n" + .'- **get**: GET request.'."\n" + ."\n" + .'- **put**: PUT request.'."\n" + ."\n" + .'- **list**: LIST request.'."\n" + ."\n" + .'- **delete**: DELETE request.', 'type' => 'string', 'example' => 'get', 'required' => false, 'title' => ''], + ], + [ + 'name' => 'ResponseType', + 'in' => 'query', + 'schema' => ['description' => 'The type of data to return in the response. Valid values:'."\n" + ."\n" + .'- **detail**: detailed data'."\n" + ."\n" + .'- **total**: summary data'."\n" + ."\n" + .'The default value is **detail**.', 'type' => 'string', 'example' => 'detail', 'default' => 'detail', 'required' => false, 'title' => ''], + ], + [ + 'name' => 'SplitBy', 'in' => 'query', 'schema' => [ - 'description' => '', + 'description' => 'The key to group data by. Valid values:'."\n" + ."\n" + .'- **type**: Data is grouped by time and returned at a 5-minute granularity.'."\n" + ."\n" + .'- **namespace**: Data is grouped by namespace. Data points with a value of 0 are not returned.'."\n" + ."\n" + .'- If empty, the default is **type**.'."\n" + ."\n" + .'If you leave this parameter empty, the default value is **type**.', 'type' => 'string', - 'required' => true, - 'example' => 'https://xxxobject.oss-cn-reginon.aliyuncs.com/9d91_xxxxxxxxxxx_158bb6e0f97c477791209bb46bd599f7', + 'example' => 'type', + 'enum' => ['type', 'namespace'], + 'required' => false, + 'title' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => '', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'Length' => [ - 'description' => '', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '4', - ], - 'Value' => [ - 'description' => '', - 'type' => 'string', - 'example' => 'test', - ], - 'RequestId' => [ - 'description' => '', - 'type' => 'string', - 'example' => 'EEEBE525-F576-1196-8DAF-2D70CA3F4D2F', + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '9732E117-8A37-49FD-A36F-ABBB87556CA7'], + 'StartTime' => ['description' => 'The start time.', 'type' => 'string', 'example' => '2022-11-06T16:00:00Z', 'title' => ''], + 'EndTime' => ['description' => 'The end time.', 'type' => 'string', 'example' => '2022-11-18T15:59:59Z', 'title' => ''], + 'KvUsageData' => [ + 'description' => 'The usage details.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TimeStamp' => ['description' => 'The timestamp of the data point.', 'type' => 'string', 'example' => '2022-11-14T15:00:03Z', 'title' => ''], + 'NamespaceId' => ['description' => 'The namespace ID. This parameter is returned only when **SplitBy** is set to **namespace**.', 'type' => 'string', 'example' => '534167033424646144', 'title' => ''], + 'AccessType' => ['description' => 'The request type. This parameter is returned only when **SplitBy** is set to **type**.', 'type' => 'string', 'example' => 'get', 'title' => ''], + 'Acc' => ['description' => 'The number of requests.', 'type' => 'integer', 'format' => 'int64', 'example' => '1340000', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], + 'example' => '', ], ], ], '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' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Malformed', 'errorMessage' => 'The specified EndTime is invalid.', 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['errorCode' => 'InvalidEndTime.Mismatch', 'errorMessage' => 'The specified EndTime is earlier than the StartTime.', 'description' => 'The end time is earlier than the start time.'], + ['errorCode' => 'InvalidTimeSpan', 'errorMessage' => 'The time span exceeds the limit.', 'description' => 'The time span exceeds the limit. Configure a valid time span as described in API documentation.'], + ['errorCode' => 'InvalidStartTime.ValueNotSupported', 'errorMessage' => 'The specified StartTime is invalid.', 'description' => 'The specified start time is invalid.'], + ['errorCode' => 'InvalidParameterField', 'errorMessage' => 'The specified Field is invalid.', 'description' => 'The Field parameter is set to an invalid value.'], ], - 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' => 'DescribeKvUsageData', + 'summary' => 'Queries the usage data for KV Store.', + 'description' => '> - The maximum call frequency for a single user is 5 calls per second.'."\n" + .'>'."\n" + .'> - The usage data is measured by the number of requests.'."\n" + ."\n" + .'**Supported time granularity**: This operation supports queries at a 1-hour time granularity.'."\n" + ."\n" + .'| Time granularity | Maximum time span per query | Queryable time range for historical data | Data latency |'."\n" + .'| ---------------- | --------------------------- | ---------------------------------------- | ---------------------- |'."\n" + .'| 1 hour | 31 days | 90 days | Typically 3 to 4 hours |', + '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' => 'All Resource', 'arn' => '*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Length\\": 4,\\n \\"Value\\": \\"test\\",\\n \\"RequestId\\": \\"EEEBE525-F576-1196-8DAF-2D70CA3F4D2F\\"\\n}","type":"json"}]', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'BatchDeleteDcdnKv' => [ - 'summary' => 'Deletes key-value pairs from a namespace at a time based on key names.', - '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' => '', - 'type' => 'string', - 'required' => true, - 'example' => 'test_namespace', - ], + 'schema' => ['title' => 'A short description of struct', 'description' => 'The accelerated domain name.', 'type' => 'string', 'required' => true, 'example' => 'example.com'], ], [ - 'name' => 'Keys', - 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => '', - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'string', - 'required' => false, - 'example' => 'test_key1', - ], - 'required' => true, - ], + 'name' => 'FunctionName', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['title' => '', 'description' => 'The name of the feature. If you do not specify this parameter, the configurations of the source\\_group feature are queried.', 'type' => 'string', 'required' => false, 'default' => 'source_group', 'example' => 'source_group'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'description' => 'The response schema.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '', - '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' => 'The request ID.', 'type' => 'string', 'example' => 'C80705BF-0F76-41FA-BAD1-5B59296A4E59'], + 'DomainConfigs' => [ + 'description' => 'The domain name configurations.', 'type' => 'array', 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ConfigId' => ['description' => 'The configuration ID.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => '6295'], + 'Status' => ['description' => 'The status. Valid values:'."\n" + ."\n" + .'- **success**: The configuration is applied.'."\n" + ."\n" + .'- **testing**: The configuration is being tested.'."\n" + ."\n" + .'- **failed**: The configuration failed to be applied.'."\n" + ."\n" + .'- **configuring**: The configuration is being applied.', 'type' => 'string', 'title' => '', 'example' => 'success'], + 'FunctionArgs' => [ + 'description' => 'The feature configurations.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ArgName' => ['description' => 'The name of the configuration.', 'type' => 'string', 'title' => '', 'example' => 'source_group_name'], + 'ArgValue' => ['description' => 'The value of the configuration.', 'type' => 'string', 'title' => '', 'example' => '123'], + ], + 'description' => '', + 'title' => '', + ], + 'title' => '', + ], + 'FunctionName' => ['description' => 'The name of the feature.', 'type' => 'string', 'title' => '', 'example' => 'set_req_host_header'], + 'ParentId' => ['description' => 'The ID of the advanced condition configuration.', 'type' => 'string', 'title' => '', 'example' => '1234567'], + ], 'description' => '', - 'type' => 'string', - 'example' => 'test_key2', + 'title' => '', ], + 'title' => '', ], ], ], ], ], - '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' => 'DescribeRDDomainConfig', + 'summary' => 'You can call the DescribeRDDomainConfig operation to query the feature configurations of your domain names.', + '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' => 'All Resource', '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' => 'BatchDeleteDcdnKv', + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', ], - 'BatchPutDcdnKvWithHighCapacity' => [ - 'summary' => 'Configures key-value pairs for a namespace at a time based on specified keys. The request body can be up to 100 MB.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'DescribeRoutine' => [ + 'summary' => 'Call DescribeRoutine to retrieve the metadata of an Edge Routine (ER), including its configuration, configuration version, and code version for each environment.', + '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' => '', - 'type' => 'string', - 'required' => true, - 'example' => 'test_namespace', - ], - ], - [ - 'name' => 'Url', - 'in' => 'query', - 'schema' => [ - 'description' => '', - 'type' => 'string', - 'required' => true, - 'example' => 'https://xxxobject.oss-cn-reginon.aliyuncs.com/9d91_xxxxxxxxxxx_158bb6e0f97c477791209bb46bd599f7', - 'isFileTransferUrl' => true, - ], + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the Edge Routine. The name must be unique within an Alibaba Cloud account.', 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => '', - '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' => 'Contains information about the Edge Routine. For more information about the fields, see the following table.', 'type' => 'object', 'example' => 'CodeRevs, EnvConf, Description, Envs, and CreationTime', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '4DBA68F5-04A9-406B-B1E4-F2CB635E103F', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'A server error occurred. Try again later. If the error persists, submit a ticket.'], ], - 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' => '[{"errorExample":"","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"4DBA68F5-04A9-406B-B1E4-F2CB635E103F\\"\\n}","type":"json"}]', + 'title' => 'DescribeRoutine', + 'description' => '> The frequency of this API call is limited to 100 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => '### Parameters of the Content field'."\n" + ."\n" + .'| Name | Type | Example | Description |'."\n" + .'| --------------- | ------ | -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| CreationTime | String | 2021-05-31T13:20:14Z | The time when the Edge Routine was created. |'."\n" + .'| Description | String | InRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIHJvdXRpbmUi | The description of the Edge Routine. The value is Base64-encoded. |'."\n" + .'| Envs | JSON | production | A collection of all canary release environments for the Edge Routine. |'."\n" + .'| EnvConf | JSON | | Information about all canary release environments for the Edge Routine. This includes the CPU specification (SpecName), code version number (CodeRev), and allowed DCDN domain names (AllowedHosts) for each canary release environment. |'."\n" + .'| SpecName | String | 100ms | The CPU time slice specification. |'."\n" + .'| CodeRev | String | 1622467214654495147 | The code version number. |'."\n" + .'| AllowedHosts | String | test-e.alicdn.com | The DCDN domain names that can be associated. |'."\n" + .'| CodeRevs | JSON | | All code versions of the Edge Routine. This includes the description (CodeDescription), creation time (CreationTime), and version number (CodeRevision) for each version. |'."\n" + .'| CreationTime | String | 2021-05-31T13:20:14Z | The time when the code was created. |'."\n" + .'| CodeDescription | String | IkhlbGxvIFdvcmxkIg== | The description of the code version. The value is Base64-encoded. |'."\n" + .'| CodeRevision | String | 1622467236337778954 | The code version number. |', + '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' => 'All Resource', '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' => 'BatchPutDcdnKvWithHighCapacity', + 'translator' => 'manual', ], - 'GetDcdnKvDetail' => [ - 'summary' => 'Queries the value and time to live (TTL) of a key.', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'https', - ], + 'DescribeRoutineCanaryEnvs' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -23921,368 +21771,151 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '247787', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], - ], - 'parameters' => [ - [ - 'name' => 'Namespace', - 'in' => 'query', - 'schema' => [ - 'description' => '', - 'type' => 'string', - 'required' => true, - 'example' => 'test_namespace', - ], - ], - [ - 'name' => 'Key', - 'in' => 'query', - 'schema' => [ - 'description' => '', - 'type' => 'string', - 'required' => true, - 'example' => 'key1', - ], - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Value' => [ - 'description' => '', - 'type' => 'string', - 'example' => 'test', - ], - 'RequestId' => [ - 'description' => '', - 'type' => 'string', - 'example' => 'EDBD3EB3-97DA-5465-AEF5-8DCA5DC5E395'."\n", - ], - 'ExpirationTtl' => [ - 'description' => '', - 'type' => 'string', - 'example' => '3600', - ], + 'Content' => ['description' => 'A list of supported canary environments.', 'type' => 'object', 'example' => 'presetCanaryShanghai', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'CDCD94C0-F7FE-412F-B8F8-7E3C610C78E5', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'A server error occurred. Try again later. If the error persists, submit a ticket.'], ], - 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' => 'DescribeRoutineCanaryEnvs', + 'summary' => 'Retrieves a list of canary environments supported by Edge Routine (ER).', + 'description' => '> The API call frequency is limited to 100 calls per second.', + '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' => 'All Resource', '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' => 'GetDcdnKvDetail', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"CDCD94C0-F7FE-412F-B8F8-7E3C610C78E5\\"\\n}","type":"json"}]', ], - 'BatchPutDcdnKv' => [ - 'summary' => 'Configures multiple key-value (KV) pairs for a namespace.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'DescribeRoutineCodeRevision' => [ + 'summary' => 'You can call DescribeRoutineCodeRevision to retrieve the JavaScript code for a specific version of an Edge Routine (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' => '189479', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Namespace', - 'in' => 'query', - 'schema' => [ - 'title' => '', - 'description' => 'The name of the namespace.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ns1', - ], + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the Edge Routine. The name must be unique within an Alibaba Cloud account.', 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''], ], [ - 'name' => 'KvList', + 'name' => 'SelectCodeRevision', 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => 'The key-value pairs. The key-value pairs can be up to 2 MB in size.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The key. The key can be up to 512 characters in length and cannot contain spaces.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'testkey', - ], - 'Value' => [ - 'description' => 'The value.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'testValue', - ], - 'Expiration' => [ - 'description' => 'The expiration time. The value is a timestamp in seconds. The expiration time cannot be earlier than the current time. If you specify Expiration and ExpirationTtl, only ExpirationTtl takes effect.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1690081381', - ], - 'ExpirationTtl' => [ - 'description' => 'The relative expiration time. Unit: seconds. If you specify Expiration and ExpirationTtl, only ExpirationTtl takes effect.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '3600', - ], - ], - 'required' => true, - ], - 'required' => true, - 'maxItems' => 5000, - ], + 'schema' => ['description' => 'The version number of the JavaScript code that you want to view.', 'type' => 'string', 'required' => true, 'example' => '1611151912787121550', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '156A6B-677B1A-4297B7-9187B7-2B44792', - ], - 'FailKeys' => [ - 'description' => 'The keys that failed to be written.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The key that failed to be written.'."\n", - 'type' => 'string', - 'example' => 'testKey1', - ], - ], - 'SuccessKeys' => [ - 'description' => 'The keys that were written.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The key that was written.'."\n", - 'type' => 'string', - 'example' => 'testKey2', - ], - ], + 'Content' => ['description' => 'The JavaScript code of the Edge Routine.', 'type' => 'object', 'example' => 'CreationTime and ErrCode', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'D24F0C48-1B27-4C58-8B84-1A0C001A514E', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'A server error occurred. Try again later. If the error persists, submit a ticket.'], ], - 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' => '[{"errorExample":"","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"D24F0C48-1B27-4C58-8B84-1A0C001A514E\\"\\n}","type":"json"}]', + 'title' => 'DescribeRoutineCodeRevision', + 'description' => '> The frequency of API calls is limited to 100 calls per second.', + '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' => 'All Resource', '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' => 'BatchPutDcdnKv', + 'translator' => 'manual', ], - 'DescribeDcdnKvNamespace' => [ - 'summary' => 'Queries the information about a namespace.', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeRoutineRelatedDomains' => [ + 'summary' => 'Queries the domain names that are associated with an Edge Routine.', + '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' => 'The name of the namespace.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ns1', - 'maxLength' => 64, - 'pattern' => '^[0-9a-zA-Z_-]+$', - ], + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the Edge Routine. The name must be unique within an Alibaba Cloud account.', 'type' => 'string', 'required' => true, 'example' => 'routine_test', 'title' => ''], ], ], 'responses' => [ @@ -24290,497 +21923,187 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => 'The status of the namespace. Valid values:'."\n" - ."\n" - .'* **online**: normal'."\n" - .'* **delete**: pending delete'."\n" - .'* **deleting**: being deleted'."\n" - .'* **deleted**: deleted'."\n", - 'type' => 'string', - 'example' => 'online', - ], - 'Namespace' => [ - 'description' => 'The name of the namespace.'."\n", - 'type' => 'string', - 'example' => 'ns1', - ], - 'NamespaceId' => [ - 'description' => 'The ID of the namespace.'."\n", - 'type' => 'string', - 'example' => '12423131231****', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C', - ], - 'Description' => [ - 'description' => 'The description of the namespace.'."\n", - 'type' => 'string', - 'example' => 'the first namespace', - ], - 'CapacityString' => [ - 'description' => 'The available capacity of all namespaces in your account.'."\n", - 'type' => 'string', - 'example' => '1 GB', - ], - 'CapacityUsedString' => [ - 'description' => 'The used capacity of all namespaces in your account.'."\n", - 'type' => 'string', - 'example' => '100 MB', - ], - 'Mode' => [ - 'description' => 'The system behavior when a key-value pair fails to be obtained at the edge. Valid values:'."\n" - ."\n" - .'* Normal (default): If a key-value pair fails to be obtained at the edge, DCDN attempts to query the key-value pair from the origin server to ensure global data consistency.'."\n" - .'* Rapid: If a key-value pair fails to be obtained at the edge, an error message indicating that the key does not exist is returned. This feature enhances key-value query performance but may decrease the hit rate of queries. To enable this feature, submit a ticket.'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'Capacity' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'CapacityUsed' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'Content' => ['description' => 'The list of domain names associated with the Edge Routine.', 'type' => 'object', 'example' => ' {"Domains": ['."\n" + .' "xxx.com",'."\n" + .' "yyy.com",'."\n" + .' ...'."\n" + .' ]}', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'FC0E34AC-0239-44A7-AB0E-800DE522C8DA', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'A server error occurred. Try again later. If the error persists, submit a ticket.'], ], - 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' => 'DescribeRoutineRelatedDomains', + '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' => 'All Resource', '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' => 'DescribeDcdnKvNamespace', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"FC0E34AC-0239-44A7-AB0E-800DE522C8DA\\"\\n}","type":"json"}]', ], - 'PutDcdnKvNamespace' => [ - 'summary' => 'Adds namespaces to your account.', - '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' => 'The description of the namespace.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'the first namespace', - 'maxLength' => 1024, - ], - ], - [ - 'name' => 'Namespace', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The name of the namespace. The name can contain letters, digits, hyphens (-), and underscores (\\_).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ns1', - 'maxLength' => 64, - 'pattern' => '^[0-9a-zA-Z_-]+$', - ], - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => 'The status of the namespace. Valid values:'."\n" - ."\n" - .'* **online**: normal'."\n" - .'* **delete**: pending delete'."\n" - .'* **deleting**: being deleted'."\n" - .'* **deleted**: deleted'."\n", - 'type' => 'string', - 'example' => 'online', - ], - 'Namespace' => [ - 'description' => 'The name of the namespace.'."\n", - 'type' => 'string', - 'example' => 'ns1', - ], - 'NamespaceId' => [ - 'description' => 'The ID of the namespace.'."\n", - 'type' => 'string', - 'example' => '12423131231****', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C', - ], - 'Description' => [ - 'description' => 'The description of the namespace.'."\n", - 'type' => 'string', - 'example' => 'the first namespace', - 'maxLength' => 1024, - ], + 'Content' => ['description' => 'The time slice specifications. Valid values: 5 ms, 50 ms, and 100 ms.', 'type' => 'object', 'example' => '5ms、50ms、100ms', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'AE4E1B80-D5F3-47DB-824A-DA98A21854C8', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'A server error occurred. Try again later. If the error persists, submit a ticket.'], ], - 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' => 'DescribeRoutineSpec', + 'summary' => 'Call DescribeRoutineSpec to obtain the available specifications for Edge Routines. During the internal test phase, three CPU time slice specifications are available: 5 ms, 50 ms, and 100 ms.', + 'description' => '> The API call frequency is limited to 100 calls per second.', + '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' => 'All Resource', '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' => 'PutDcdnKvNamespace', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"AE4E1B80-D5F3-47DB-824A-DA98A21854C8\\"\\n}","type":"json"}]', ], - 'DeleteDcdnKvNamespace' => [ - 'summary' => 'Deletes a namespace that belongs to your account.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeRoutineUserInfo' => [ + 'summary' => 'Call DescribeRoutineUserInfo to query information about your Alibaba Cloud account, including the attached subdomain and the list of created routines.', + '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' => 'The name of the namespace. You can call the [PutDcdnKvNamespace](~~PutDcdnKvNamespace~~) operation to query the name of a namespace.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ns1', - 'maxLength' => 64, - 'pattern' => '^[0-9a-zA-Z_-]+$', - ], - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C', - ], + 'Content' => ['description' => 'The content of the response.', 'type' => 'object', 'example' => 'Bindable Subdomain and Routine list', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '691DEEE5-4BDB-47F3-930E-F57176427717', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'A server error occurred. Try again later. If the error persists, submit a ticket.'], ], 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' => '%sServiceNotFound', 'errorMessage' => 'The [%s] service is not activated.', 'description' => 'The service is not activated.'], ], - [ - [ - '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.', - ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"691DEEE5-4BDB-47F3-930E-F57176427717\\"\\n}","type":"json"}]', + 'title' => 'DescribeRoutineUserInfo', + 'description' => '> API call frequency: 100 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => '### Content parameters'."\n" + ."\n" + .'| Name | Type | Example | Description |'."\n" + .'| ------------ | ------ | ------------------------------- | -------------------------------------- |'."\n" + .'| Routines | Array | | Basic information about each routine. |'."\n" + .'| RoutineName | String | test | The routine name. |'."\n" + .'| Description | String | the description of this routine | The routine description. |'."\n" + .'| CreationTime | String | 2021/5/20 16:00 | The time when the routine was created. |'."\n" + .'| Subdomains | Array | subdomain-slc2 | The subdomain for the user. |', + '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' => 'All Resource', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C。\\"\\n}","type":"json"}]', - 'title' => 'DeleteDcdnKvNamespace', + 'translator' => 'manual', ], - 'DescribeDcdnKvAccount' => [ - 'summary' => 'Queries the information about the key-value pairs that belong to your account.', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeUserDcdnIpaStatus' => [ + 'summary' => 'You can call the DescribeUserDcdnIpaStatus operation to query whether IP Application Accelerator (IPA) is activated and whether your account has an overdue payment.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -24791,10 +22114,9 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '121116', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111577', + 'abilityTreeNodes' => ['FEATUREdcdnTP4C37'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [], 'responses' => [ @@ -24802,205 +22124,48 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => 'The status of the account.'."\n" - ."\n" - .'* **online**: enabled'."\n" - .'* **offline**: disabled'."\n", - 'type' => 'string', - 'example' => 'online,offline', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C', - ], - 'NamespaceUsed' => [ - 'description' => 'The number of namespaces that you applied for by using your account.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'NamespaceQuota' => [ - 'description' => 'The maximum number of namespaces that you can apply for by using your account.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'CapacityString' => [ - 'description' => 'The available capacity of all namespaces.', - 'type' => 'string', - 'example' => '2GB', - ], - 'CapacityUsedString' => [ - 'description' => 'All namespaces have used capacity.', - 'type' => 'string', - 'example' => '200 MB', - ], - 'NamespaceList' => [ - 'description' => 'Details about the namespaces.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of the namespace. Valid values:'."\n" - ."\n" - .'* **online**: normal'."\n" - .'* **delete**: pending delete'."\n" - .'* **deleting**: being deleted'."\n" - .'* **deleted**: deleted'."\n", - 'type' => 'string', - 'example' => 'online', - ], - 'Namespace' => [ - 'description' => 'The name of the namespace.'."\n", - 'type' => 'string', - 'example' => 'ns1', - ], - 'NamespaceId' => [ - 'description' => 'The ID of the namespace.'."\n", - 'type' => 'string', - 'example' => '12423131231****', - ], - 'Description' => [ - 'description' => 'The description of the namespace.'."\n", - 'type' => 'string', - 'example' => 'the first namespace', - ], - 'CapacityString' => [ - 'description' => 'The available capacity of the namespace.', - 'type' => 'string', - 'example' => '1 GB', - ], - 'CapacityUsedString' => [ - 'description' => 'The namespace has used capacity.', - 'type' => 'string', - 'example' => '100 MB', - ], - 'Capacity' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'CapacityUsed' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - ], - ], - ], - 'Capacity' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'CapacityUsed' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'InDebt' => ['description' => 'Indicates whether your account has an overdue payment.', 'type' => 'boolean', 'title' => '', 'example' => 'false'], + 'OnService' => ['description' => 'Indicates whether the service is available. The service is considered available if your account does not have an overdue payment.', 'type' => 'boolean', 'title' => '', 'example' => 'true'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '4F51E9C3-728F-4E35-952D-0ED87A06A8A1'], + 'InDebtOverdue' => ['description' => 'Indicates whether the grace period for an overdue payment has ended.', 'type' => 'boolean', 'title' => '', 'example' => 'false'], + 'Enabled' => ['description' => 'Indicates whether the IPA service is activated.', 'type' => 'boolean', 'title' => '', 'example' => 'true'], ], + 'description' => '', + 'title' => '', ], ], ], - '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' => 'DescribeUserDcdnIpaStatus', + 'description' => '> The call frequency for a single user is 20 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-10-27T03:00:49.000Z', 'description' => 'Error codes changed'], + ], + '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' => 'All Resource', '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' => 'DescribeDcdnKvAccount', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"InDebt\\": false,\\n \\"OnService\\": true,\\n \\"RequestId\\": \\"4F51E9C3-728F-4E35-952D-0ED87A06A8A1\\",\\n \\"InDebtOverdue\\": false,\\n \\"Enabled\\": true\\n}","type":"json"}]', ], - 'DescribeDcdnKvAccountStatus' => [ - 'summary' => 'Queries the KV status of an account.', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeUserDcdnStatus' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -25011,10 +22176,9 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '138504', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111578', + 'abilityTreeNodes' => ['FEATUREdcdnTP4C37'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [], 'responses' => [ @@ -25022,123 +22186,50 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => 'The status of the account.'."\n" - ."\n" - .'* **online**'."\n" - .'* **offline**'."\n", - 'type' => 'string', - 'example' => 'online', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '5C1E43DC-9E51-4771-82C0-7D5ECEB547A1', - ], + 'InDebt' => ['description' => 'Indicates whether you have an overdue payment.', 'type' => 'boolean', 'title' => '', 'example' => 'false'], + 'OnService' => ['description' => 'Indicates whether the service is active.', 'type' => 'boolean', 'title' => '', 'example' => 'true'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '4F51E9C3-728F-4E35-952D-0ED87A06A8A1'], + 'InDebtOverdue' => ['description' => 'Indicates whether the grace period for an overdue payment has expired.', 'type' => 'boolean', 'title' => '', 'example' => 'false'], + 'Enabled' => ['description' => 'Indicates whether the DCDN service is activated.', 'type' => 'boolean', 'title' => '', 'example' => 'true'], ], + 'description' => '', + 'title' => '', ], ], ], - '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' => 'DescribeUserDcdnStatus', + 'summary' => 'Call DescribeUserDcdnStatus to query whether your Dynamic Route for CDN (DCDN) service has overdue payments and is active.', + 'description' => '> The throttling limit for a single user is 30 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-10-27T03:17:51.000Z', 'description' => 'Error codes changed'], + ], + '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' => 'All Resource', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Status\\": \\"online\\",\\n \\"RequestId\\": \\"5C1E43DC-9E51-4771-82C0-7D5ECEB547A1\\"\\n}","type":"json"}]', - 'title' => 'DescribeDcdnKvAccountStatus', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"InDebt\\": false,\\n \\"OnService\\": true,\\n \\"RequestId\\": \\"4F51E9C3-728F-4E35-952D-0ED87A06A8A1\\",\\n \\"InDebtOverdue\\": false,\\n \\"Enabled\\": true\\n}","type":"json"}]', ], - 'GetDcdnKv' => [ - 'summary' => 'Queries the value of a key in a key-value pair.', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeUserErStatus' => [ + 'summary' => 'Call DescribeUserErStatus to check whether Edge Routine (ER) is enabled or has an overdue payment.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -25149,152 +22240,69 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '121109', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], - ], - 'parameters' => [ - [ - 'name' => 'Namespace', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the namespace.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ns1', - ], - ], - [ - 'name' => 'Key', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the key that you want to query.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'key1', - ], - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Value' => [ - 'description' => 'The value of the key.'."\n", - 'type' => 'string', - 'example' => 'value1', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C', - ], + 'InDebt' => ['description' => 'Indicates whether the Edge Routine (ER) service has an overdue payment.'."\n" + ."\n" + .'- true: An overdue payment exists.'."\n" + .'- false: No overdue payment exists.', 'type' => 'boolean', 'title' => '', 'example' => 'false'], + 'OnService' => ['description' => 'Indicates whether Edge Routine (ER) is active.'."\n" + ."\n" + .'- true: The service is active.'."\n" + .'- false: The service is not active.', 'type' => 'boolean', 'title' => '', 'example' => 'true'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '4F51E9C3-728F-4E35-952D-0ED87A06A8A1'], + 'InDebtOverdue' => ['description' => 'Indicates whether the grace period for an overdue payment has expired.'."\n" + ."\n" + .'- true: The grace period has expired.'."\n" + .'- false: The grace period has not expired.', 'type' => 'boolean', 'title' => '', 'example' => 'false'], + 'Enabled' => ['description' => 'Indicates whether Edge Routine (ER) is enabled.'."\n" + ."\n" + .'- true: The service is enabled.'."\n" + .'- false: The service is not enabled.', 'type' => 'boolean', 'title' => '', 'example' => 'true'], ], + 'description' => '', + 'title' => '', ], ], ], - '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' => 'DescribeUserErStatus', + 'description' => '> The maximum call frequency for a single user is 30 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-10-27T02:28:06.000Z', 'description' => 'Error codes changed'], + ], + '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' => 'All Resource', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Value\\": \\"value1\\",\\n \\"RequestId\\": \\"D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C\\"\\n}","type":"json"}]', - 'title' => 'GetDcdnKv', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"InDebt\\": false,\\n \\"OnService\\": true,\\n \\"RequestId\\": \\"4F51E9C3-728F-4E35-952D-0ED87A06A8A1\\",\\n \\"InDebtOverdue\\": false,\\n \\"Enabled\\": true\\n}","type":"json"}]', ], - 'ListDcdnKv' => [ - 'summary' => 'Traverses the values of keys in a namespace.', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DescribeUserLogserviceStatus' => [ + 'summary' => 'Call the DescribeUserLogserviceStatus operation to check whether Log Service is activated or has overdue payments.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -25305,212 +22313,71 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '121112', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], - ], - 'parameters' => [ - [ - 'name' => 'Namespace', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the namespace.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ns1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Default value: 50. Maximum value: 100.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '50', - 'default' => '50', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. The product of PageNumber and PageSize cannot exceed 50,000.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '10', - 'default' => '1', - ], - ], - [ - 'name' => 'Prefix', - 'in' => 'query', - 'schema' => [ - 'description' => 'The prefix to query.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'prefix-', - ], - ], + 'abilityTreeCode' => '111580', + 'abilityTreeNodes' => ['FEATUREdcdnZA9EPX'], + 'tenantRelevance' => 'publicInformation', ], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C', - ], - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'PageNumber' => [ - 'description' => 'The total number of pages returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'TotalCount' => [ - 'description' => 'The total number of returned entries.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1024', - ], - 'Keys' => [ - 'description' => 'The keys obtained in this traversal.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Name' => [ - 'description' => 'The value of the key obtained in this traversal.'."\n", - 'type' => 'string', - 'example' => 'Key1', - ], - 'UpdateTime' => [ - 'description' => 'The time when the key was updated.'."\n", - 'type' => 'string', - 'example' => '2021-12-13T07:46:03Z', - ], - ], - ], - ], + 'InDebt' => ['description' => 'Indicates whether your Log Service has an overdue payment.'."\n" + ."\n" + .'- true: Your Log Service has an overdue payment.'."\n" + .'- false: Your Log Service does not have an overdue payment.', 'type' => 'boolean', 'title' => '', 'example' => 'false'], + 'OnService' => ['description' => 'Indicates whether Log Service is active.'."\n" + ."\n" + .'- true: Log Service is active.'."\n" + .'- false: Log Service is inactive.', 'type' => 'boolean', 'title' => '', 'example' => 'true'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '4F51E9C3-728F-4E35-952D-0ED87A06A8A1'], + 'InDebtOverdue' => ['description' => 'Indicates whether the overdue payment for Log Service has timed out.'."\n" + ."\n" + .'- true: The overdue payment has timed out.'."\n" + .'- false: The overdue payment has not timed out.', 'type' => 'boolean', 'title' => '', 'example' => 'false'], + 'Enabled' => ['description' => 'Indicates whether Log Service is activated.'."\n" + ."\n" + .'- true: Log Service is activated.'."\n" + .'- false: Log Service is not activated.', 'type' => 'boolean', 'title' => '', 'example' => 'true'], ], 'description' => '', + 'title' => '', ], ], ], - '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' => 'DescribeUserLogserviceStatus', + 'description' => '> The call frequency is 20 calls per second per user.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-10-27T02:16:05.000Z', 'description' => 'Error codes changed'], + ], + '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' => 'All Resource', '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' => 'ListDcdnKv', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"InDebt\\": false,\\n \\"OnService\\": true,\\n \\"RequestId\\": \\"4F51E9C3-728F-4E35-952D-0ED87A06A8A1\\",\\n \\"InDebtOverdue\\": false,\\n \\"Enabled\\": true\\n}","type":"json"}]', ], - 'PutDcdnKv' => [ - 'summary' => 'Sets key-value pairs in a namespace.', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'EditRoutineConf' => [ + 'summary' => 'This operation modifies the configuration of an Edge Routine (ER).', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -25521,63 +22388,25 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '121110', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111585', + 'abilityTreeNodes' => ['FEATUREdcdn75UYDO'], ], 'parameters' => [ [ - 'name' => 'Namespace', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the namespace.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ns1', - ], - ], - [ - 'name' => 'Key', - 'in' => 'query', - 'schema' => [ - 'description' => 'The key. The key can be up to 512 characters in length, and cannot contain spaces.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'key1', - ], - ], - [ - 'name' => 'Value', + 'name' => 'Name', 'in' => 'formData', - 'schema' => [ - 'description' => 'The value of the key. The maximum size is 2 MB (2 x 1000 x 1000 bytes).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'value1', - ], + 'schema' => ['description' => 'The name of the Edge Routine. The name must be unique within the same account.', 'type' => 'string', 'required' => true, 'example' => 'test-slc', 'title' => ''], ], [ - 'name' => 'Expiration', - 'in' => 'query', - 'schema' => [ - 'description' => 'The time when the key expires.Example: "1690081381".', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1690081381', - ], + 'name' => 'Description', + 'in' => 'formData', + 'schema' => ['description' => 'The description of the Edge Routine.', 'type' => 'string', 'required' => false, 'example' => 'the description of this routine', 'title' => ''], ], [ - 'name' => 'ExpirationTtl', - 'in' => 'query', - 'schema' => [ - 'description' => 'The time when the key expires.Example: "3600".', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '3600', - ], + 'name' => 'EnvConf', + 'in' => 'formData', + 'style' => 'json', + 'schema' => ['description' => 'The environment configuration.', '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"]}}', 'title' => ''], ], ], 'responses' => [ @@ -25585,164 +22414,96 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Length' => [ - 'description' => 'The length of the key.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'Value' => [ - 'description' => 'The value of the key. If the value exceeds 256 characters in length, the first 100 characters and the last 100 characters are retained and other characters are not displayed.'."\n", - 'type' => 'string', - 'example' => 'value1', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '96ED3127-EC7A-57C5-AFA6-A689B24B2530', - ], + 'Content' => ['description' => 'A description of the execution error and the latest configuration version number for each environment.', 'type' => 'object', 'example' => 'Description and EnvConfRev', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'BAECB354-6D42-42C1-87DA-C9992EF1E7C8', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'A server error occurred. Try again later. If the error persists, submit a ticket.'], ], - 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' => '[{"errorExample":"","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"BAECB354-6D42-42C1-87DA-C9992EF1E7C8\\"\\n}","type":"json"}]', + 'title' => 'EditRoutineConf', + 'description' => '- You only need to specify the configurations that you want to change. All other configurations will remain unchanged.'."\n" + ."\n" + .'- To delete a configuration, set the value of the corresponding parameter to empty.'."\n" + ."\n" + .'- You can use this API to add a canary environment. The environment name must adhere to the specified naming conventions. Otherwise, the configuration will fail.'."\n" + ."\n" + .'- The preset canary regions include one region outside China and 34 regions in China:'."\n" + ."\n" + .' - Region outside China: presetCanaryOverseas.'."\n" + ."\n" + .' - The 34 regions in China are specified in the format presetCanaryXX. For example, the Beijing region is presetCanaryBeijing. The available regions are: 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, and Zhejiang.'."\n" + ."\n" + .'- The API call frequency is limited to 100 calls per second.', + 'requestParamsDescription' => '### EnvConf fields'."\n" + ."\n" + .'| Name | Type | Description |'."\n" + .'| ------------ | ------ | ------------------------------- |'."\n" + .'| SpecName | String | The CPU time slice. |'."\n" + .'| CodeRev | String | The version number of the code. |'."\n" + .'| AllowedHosts | String | The allowed CDN domain names. |', + 'responseParamsDescription' => '### Fields in Content'."\n" + ."\n" + .'| Name | Type | Example | Description |'."\n" + .'| ----------- | ------ | ------------------------------------------------------------------- | ------------------------------------------------------ |'."\n" + .'| Description | String | Validate (Env: presetCanaryNotExist, Error: not valid canary name ) | The description of the routine. |'."\n" + .'| EnvConfRev | JSON | 1622033526212272495 | The configuration version number for each environment. |', + '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' => 'All Resource', 'arn' => '*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Length\\": 5,\\n \\"Value\\": \\"value1\\",\\n \\"RequestId\\": \\"96ED3127-EC7A-57C5-AFA6-A689B24B2530\\"\\n}","type":"json"}]', - 'title' => 'PutDcdnKv', + 'translator' => 'manual', ], - 'DeleteDcdnKv' => [ - 'summary' => 'Deletes the key-value pairs in a namespace that you specify when you call the PutDcdnKvNamespace operation. EdgeKV provides a global key-value database for Dynamic Route for CDN (DCDN) points of presence (POPs).', - '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' => 'The namespace that you specify when you call the PutDcdnKvNamespace operation.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ns1', - ], + 'schema' => ['description' => 'The name of the namespace.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'ns1'], ], [ 'name' => 'Key', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the key that you want to delete.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'test_key_1', - ], + 'schema' => ['description' => 'The name of the key to query.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'key1'], ], ], 'responses' => [ @@ -25750,152 +22511,95 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C', - ], + 'Value' => ['description' => 'The value of the key.', 'type' => 'string', 'title' => '', 'example' => 'value1'], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C'], ], 'description' => '', + 'title' => '', ], ], ], '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' => 'The parameter is set to an invalid value.'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => 'The account is invalid. Check whether an account is specified.'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'The namespace is invalid. Check whether a namespace is specified.'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'The key is invalid. Check whether a key is specified.'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'The key cannot exceed 512 bytes in length.'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'The value cannot exceed 2,000,000 bytes in length.'], ], 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' => 'The capacity of the namespace has reached the upper limit. Each namespace can be at most 1 GB.'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => 'An authentication parameter is set to an invalid value.'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => 'The authentication time parameter you entered is invalid. Check the parameter value and try again.'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => 'The token you entered is invalid. Please check and enter the correct token and try again.'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => 'The specified resource is invalid.'], ], [ - [ - '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' => 'The specified account does not exist.'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'The specified namespace does not exist.'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => '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.', - ], + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'The namespace already exists.'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'The number of namespaces has reached the upper limit.'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'The number of keys has reached the upper limit.'], ], 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' => 'Do not send requests at a high frequency.'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'Do not perform the key put/delete operation at a high frequency.'], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C\\"\\n}","type":"json"}]', - 'title' => 'DeleteDcdnKv', - ], - 'GetDcdnKvStatus' => [ - 'summary' => 'Queries the KV status by key value.', - 'methods' => [ - 'get', - 'post', + 'title' => 'GetDcdnKv', + 'summary' => 'Queries the value of a 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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Value\\": \\"value1\\",\\n \\"RequestId\\": \\"D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C\\"\\n}","type":"json"}]', + ], + 'GetDcdnKvDetail' => [ + 'summary' => 'Queries the value and TTL of a key-value pair.', + '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' => 'The name of the namespace.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'ns1', - ], + 'schema' => ['description' => 'The name of the KV store namespace.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'test_namespace'], ], [ 'name' => 'Key', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the key that you want to query.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'key1', - ], + 'schema' => ['description' => 'The name of the key to query.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'key1'], ], ], 'responses' => [ @@ -25903,198 +22607,101 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Complete' => [ - 'description' => 'Specifies whether the configured key has taken effect on all points of presence (POPs).'."\n" - ."\n" - .'* **true**'."\n" - .'* **false**'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], - 'Expire' => [ - 'description' => 'The timeout period of the configured key. The value is an absolute timestamp, such as 2023-09-11T15:39:44+08:00. This parameter is not returned if the key is permanently stored.'."\n", - 'type' => 'string', - 'example' => '2023-09-11T15:39:44+08:00', - ], + 'Value' => ['description' => 'The value of the key.', 'type' => 'string', 'title' => '', 'example' => 'test'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'EDBD3EB3-97DA-5465-AEF5-8DCA5DC5E395'."\n"], + 'ExpirationTtl' => ['description' => 'The relative expiration time in seconds. If both Expiration and ExpirationTtl are set, ExpirationTtl is used.', 'type' => 'string', 'title' => '', 'example' => '3600'], ], 'description' => '', + 'title' => '', ], ], ], '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' => 'The parameter is set to an invalid value.'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => 'The account is invalid. Check whether an account is specified.'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'The namespace is invalid. Check whether a namespace is specified.'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'The key is invalid. Check whether a key is specified.'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'The key cannot exceed 512 bytes in length.'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'The value cannot exceed 2,000,000 bytes in length.'], ], 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' => 'The capacity of the namespace has reached the upper limit. Each namespace can be at most 1 GB.'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => 'An authentication parameter is set to an invalid value.'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => 'The authentication time parameter you entered is invalid. Check the parameter value and try again.'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => 'The token you entered is invalid. Please check and enter the correct token and try again.'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => 'The specified resource is invalid.'], ], [ - [ - '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' => 'The specified account does not exist.'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'The specified namespace does not exist.'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => '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.', - ], + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'The namespace already exists.'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'The number of namespaces has reached the upper limit.'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'The number of keys has reached the upper limit.'], ], 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' => 'Do not send requests at a high frequency.'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'Do not perform the key put/delete operation at a high frequency.'], ], ], - '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' => 'GetDcdnKvStatus', - ], - 'DescribeDcdnUserSecDrop' => [ - 'summary' => 'Queries the number of packets blocked by a specified security feature.', - 'methods' => [ - 'get', - 'post', + 'title' => 'GetDcdnKvDetail', + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Value\\": \\"test\\",\\n \\"RequestId\\": \\"EDBD3EB3-97DA-5465-AEF5-8DCA5DC5E395\\\\n\\",\\n \\"ExpirationTtl\\": \\"3600\\"\\n}","type":"json"}]', + ], + 'GetDcdnKvStatus' => [ + 'summary' => 'Queries the status of a key-value (KV) pair by key.', + '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' => 'The date or month that you want to query.'."\n" - ."\n" - .'* If data is collected every day, set Data in the format of yyyymmdd, such as 20201203.'."\n" - .'* If data is collected every month, set Data in the format of yyyymm, such as 202012.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '20201203', - ], + 'schema' => ['description' => 'The name of the namespace.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'ns1'], ], [ - 'name' => 'SecFunc', - 'in' => 'query', - 'schema' => [ - 'description' => 'The security feature. Valid values:'."\n" - ."\n" - .'* waf: WAF'."\n" - .'* tmd: rate limiting'."\n" - .'* robot: bot traffic recognition'."\n" - .'* l4\\_dm_drop: domain name blocking at Layer 4'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'waf', - 'enum' => [ - 'waf', - 'tmd', - 'robot', - 'l4_dm_drop', - ], - ], - ], - [ - 'name' => 'Metric', + 'name' => 'Key', 'in' => 'query', - 'schema' => [ - 'description' => 'The time interval at which data is collected.'."\n" - ."\n" - .'* If data is collected every day, the number of blocked packets on the specified day is calculated.'."\n" - .'* If data is collected every month, the number of blocked packets in the specified month is calculated.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '1day', - 'enum' => [ - '1day', - '1month', - ], - ], + 'schema' => ['description' => 'The name of the key to query.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'key1'], ], ], 'responses' => [ @@ -26102,158 +22709,76 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Msg' => [ - 'description' => 'Indicates whether the information is found.'."\n" - ."\n" - .'* Found'."\n" - .'* Not Found'."\n", - 'type' => 'string', - 'example' => 'Found', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '4A1295C0-7A5C-4F27-8D70-C3A648E7037F', - ], - 'Drops' => [ - 'description' => 'The number of packets that are blocked.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '233023208', - ], - 'UuidStr' => [ - 'description' => 'The character string that is concatenated based on the request parameters and is used to locate causes when data is not found.'."\n", - 'type' => 'string', - 'example' => '1day10811******6429wafDCDN', - ], + 'Complete' => ['description' => 'Indicates whether the key configuration has taken effect globally.'."\n" + ."\n" + .'- **true**: The configuration has taken effect globally.'."\n" + .'- **false**: The configuration has not taken effect globally.', 'type' => 'boolean', 'title' => '', 'example' => 'true'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], + 'Expire' => ['description' => 'The expiration time of the key, specified as an absolute timestamp. Example: 2023-09-11T15:39:44+08:00. This parameter is not returned if the key is stored permanently.', 'type' => 'string', 'title' => '', 'example' => '2023-09-11T15:39:44+08:00'], ], + 'description' => '', + 'title' => '', ], ], ], - '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' => 'DescribeDcdnUserSecDrop', - 'description' => '> You can call this operation up to 50 times per second per account.'."\n", - 'extraInfo' => ' ', - ], - 'DescribeDcdnSecFuncInfo' => [ - 'summary' => 'Creates an edge security drop-down list in the DCDN console.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'The parameter is set to an invalid value.'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => 'The account is invalid. Check whether an account is specified.'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'The namespace is invalid. Check whether a namespace is specified.'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'The key is invalid. Check whether a key is specified.'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'The key cannot exceed 512 bytes in length.'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'The value cannot exceed 2,000,000 bytes in length.'], ], - ], - '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' => 'The capacity of the namespace has reached the upper limit. Each namespace can be at most 1 GB.'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => 'An authentication parameter is set to an invalid value.'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => 'The authentication time parameter you entered is invalid. Check the parameter value and try again.'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => 'The token you entered is invalid. Please check and enter the correct token and try again.'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => 'The specified resource is invalid.'], ], - ], - 'parameters' => [ [ - 'name' => 'SecFuncType', - 'in' => 'query', - 'schema' => [ - 'description' => 'The type of the drop-down list. Valid values: RobotRuleName and RobotObject.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'RobotRuleName', - ], + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account does not exist.', 'description' => 'The specified account does not exist.'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'The specified namespace does not exist.'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => 'The specified key does not exist.'], ], - [ - 'name' => 'Lang', - 'in' => 'query', - 'schema' => [ - 'description' => 'The language. Valid values: en and zh. Default value: en.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'en', - 'enum' => [ - 'zh', - 'en', - ], - ], + 406 => [ + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'The namespace already exists.'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'The number of namespaces has reached the upper limit.'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'The number of keys has reached the upper limit.'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests are submitted.', 'description' => 'Do not send requests at a high frequency.'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'Do not perform the key put/delete operation at a high frequency.'], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '30A3A25A-86B3-4C1D-BAA8-12B8607A5CFD', - ], - 'Description' => [ - 'description' => 'The description of HTTP responses.'."\n", - 'type' => 'string', - 'example' => 'OK', - ], - 'RetCode' => [ - 'description' => 'The return value for HTTP requests. Valid values:'."\n" - ."\n" - .'* 0: OK.'."\n" - .'* Values other than 0: an error.'."\n", - 'type' => 'string', - 'example' => '0', - ], - 'HttpStatus' => [ - 'description' => 'The HTTP status code.'."\n", - 'type' => 'string', - 'example' => '200', - ], - 'Content' => [ - 'description' => 'The parameters required by the code.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Label' => [ - 'description' => 'The language (Chinese or English).'."\n", - 'type' => 'string', - 'example' => 'ai_defense', - ], - 'Value' => [ - 'description' => 'The options in the drop-down list.'."\n", - 'type' => 'string', - 'example' => 'ai_defense', - ], - ], - 'description' => '', - ], - ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'GetDcdnKvStatus', + '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' => 'All Resource', 'arn' => '*'], ], - 'description' => '', ], ], ], - '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' => 'DescribeDcdnSecFuncInfo', - 'description' => '> You can call this operation up to 50 times per second per account.'."\n", - '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' => 'Queries the number of packets that are blocked by security features at the application layer within a specific time range.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListDcdnKv' => [ + 'summary' => 'You can call ListDcdnKv to traverse the key-value pairs in a specified namespace.', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -26264,213 +22789,117 @@ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '121112', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'SecFunc', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the security feature.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'robot', - ], - ], - [ - 'name' => 'RuleName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The rule that was triggered.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'robot_ai', - ], - ], - [ - 'name' => 'Object', - 'in' => 'query', - 'schema' => [ - 'description' => 'The object that triggered rate limiting.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'robot_fingerprint_ai', - ], - ], - [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The domain name.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC. Example: 2006-01-02T15:04:04Z.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2006-01-02T15:04:04Z', - ], - ], - [ - 'name' => 'EndTime', + 'name' => 'Namespace', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC. Example: 2006-01-02T15:05:04Z.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2006-01-02T15:05:04Z', - ], + 'schema' => ['description' => 'The name of the namespace.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'ns1'], ], [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Maximum value: 100.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '100', - 'example' => '2', - 'default' => '20', - ], + 'schema' => ['description' => 'The number of entries to return on each page. The default value is 50. The maximum value is 100.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'default' => '50', 'title' => '', 'example' => '50'], ], [ 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Pages start from page 1.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '10', - 'default' => '1', - ], + 'schema' => ['description' => 'The page number. The value of PageNumber × PageSize cannot exceed 50,000.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'default' => '1', 'title' => '', 'example' => '10'], ], [ - 'name' => 'Lang', + 'name' => 'Prefix', 'in' => 'query', - 'schema' => [ - 'description' => 'The language. Valid values: en and zh. Default value: en'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'zh', - 'enum' => [ - 'zh', - 'en', - ], - ], + 'schema' => ['description' => 'The search prefix.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'prefix-'], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '8143fA8A-B2B2-4915-538D-546B538D25FA', - ], - 'Description' => [ - 'description' => 'The description of HTTP responses.'."\n", - 'type' => 'string', - 'example' => 'OK', - ], - 'Len' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'PageNumber' => [ - 'description' => 'The number of the returned page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'TotalCount' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5738', - ], - 'Rows' => [ - 'description' => 'An array.'."\n", + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C'], + 'PageSize' => ['description' => 'The number of entries returned.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '50'], + 'PageNumber' => ['description' => 'The total number of pages.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '100'], + 'TotalCount' => ['description' => 'The total number of entries.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1024'], + 'Keys' => [ + 'description' => 'The keys obtained in the traversal.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Domain' => [ - 'description' => 'The domain name.'."\n", - 'type' => 'string', - 'example' => 'example.aliyundoc.com', - ], - 'TmStr' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'example' => '2021-01-31T15:04:04Z', - ], - 'Drops' => [ - 'description' => 'The number of packets blocked within 5 minutes.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '264', - ], - 'Object' => [ - 'description' => 'The object that triggered rate limiting.'."\n", - 'type' => 'string', - 'example' => 'Normal Mode'."\n", - ], - 'SecFunc' => [ - 'description' => 'The security feature that blocked the packets.'."\n", - 'type' => 'string', - 'example' => 'robot', - ], - 'RuleName' => [ - 'description' => 'The rule that was triggered.'."\n", - 'type' => 'string', - 'example' => 'Normal Mode'."\n", - ], + 'Name' => ['description' => 'The traversed key.', 'type' => 'string', 'title' => '', 'example' => 'Key1'], + 'UpdateTime' => ['description' => 'The time when the key was last updated.', 'type' => 'string', 'title' => '', 'example' => '2021-12-13T07:46:03Z'], ], + 'description' => '', + 'title' => '', ], + 'title' => '', ], ], + 'description' => '', + 'title' => '', ], ], ], - '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' => 'DescribeDcdnUserSecDropByMinute', - 'description' => '> You can call this operation up to 50 times per second per account.'."\n", - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnBlockedRegions' => [ - 'summary' => 'Queries countries and regions that can be added to the blacklist.', - 'methods' => [ - 'get', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'The parameter is set to an invalid value.'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => 'The account is invalid. Check whether an account is specified.'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'The namespace is invalid. Check whether a namespace is specified.'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'The key is invalid. Check whether a key is specified.'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'The key cannot exceed 512 bytes in length.'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'The value cannot exceed 2,000,000 bytes in length.'], + ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'The capacity of the namespace has reached the upper limit. Each namespace can be at most 1 GB.'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => 'An authentication parameter is set to an invalid value.'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => 'The authentication time parameter you entered is invalid. Check the parameter value and try again.'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => 'The token you entered is invalid. Please check and enter the correct token and try again.'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => 'The specified resource is invalid.'], + ], + [ + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account does not exist.', 'description' => 'The specified account does not exist.'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'The specified namespace does not exist.'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => 'The specified key does not exist.'], + ], + 406 => [ + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'The namespace already exists.'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'The number of namespaces has reached the upper limit.'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'The number of keys has reached the upper limit.'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests are submitted.', 'description' => 'Do not send requests at a high frequency.'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'Do not perform the key put/delete operation at a high frequency.'], + ], + ], + 'title' => 'ListDcdnKv', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListDcdnKv'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:ListDcdnKv', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'ListDcdnRealTimeDeliveryProject' => [ + 'summary' => 'Queries a real-time log delivery project.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -26478,28 +22907,40 @@ ], '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' => 'The language. Valid values: zh, en, and jp.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'zh', - 'enum' => [ - 'zh', - 'en', - 'jp', - ], - ], + 'schema' => ['description' => 'The type of the collected logs. Default value: cdn\\_log\\_access\\_l1. Valid values:'."\n" + ."\n" + .'- **cdn\\_log\\_access\\_l1**: access logs of Dynamic Content Delivery Network (DCDN) points of presence (POPs)'."\n" + ."\n" + .'- **cdn\\_log\\_origin**: back-to-origin logs'."\n" + ."\n" + .'- **cdn\\_log\\_er**: EdgeRoutine logs'."\n" + ."\n" + .'- By default, this parameter is left empty, and all logs are returned.', 'type' => 'string', 'required' => false, 'example' => 'cdn_log_access_l1', 'title' => ''], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => 'The domain name. You can specify only one domain name in each request. If this parameter is not specified, all domain names are queried.', 'type' => 'string', 'required' => false, 'example' => 'example.com', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The number of the page to return. Valid values: **1** to **100000**. Default value: 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1', 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of entries to return on each page. The default value is 20.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '20', 'example' => '20', 'title' => ''], ], ], 'responses' => [ @@ -26507,569 +22948,454 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'BFFCDFAD-DACC-484E-9BE6-0AF3B3A0DD23', - ], - 'InfoList' => [ + 'TotalCount' => ['description' => 'The total number of returned entries.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4', 'title' => ''], + 'Content' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'InfoItem' => [ - 'description' => 'The information about the country or region.'."\n", + 'Projects' => [ + 'description' => 'The configuration results of the domain name.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'CountriesAndRegions' => [ - 'description' => 'The abbreviation of the name of the country or region.'."\n", - 'type' => 'string', - 'example' => 'AE', - ], - 'Continent' => [ - 'description' => 'The larger region to which the country or region belongs.'."\n", - 'type' => 'string', - 'example' => 'Middle East'."\n", - ], - 'CountriesAndRegionsName' => [ - 'description' => 'The name of the country or region.'."\n", - 'type' => 'string', - 'example' => 'United Arab Emirates'."\n", - ], + 'Type' => ['description' => 'The type of log delivery. Only **SLS\\_POST** is supported.', 'type' => 'string', 'example' => 'SLS_POST', 'title' => ''], + 'SLSLogStore' => ['description' => 'The name of the Logstore.', 'type' => 'string', 'example' => 'example-cn', 'title' => ''], + 'DataCenter' => ['description' => 'The region from which logs were collected.', 'type' => 'string', 'example' => 'cn', 'title' => ''], + 'FieldName' => ['description' => 'The name of the field. For more information about fields in real-time log entries, see [Fields in a real-time log](~~324199~~).', 'type' => 'string', 'example' => 'field1,field2', 'title' => ''], + 'ProjectName' => ['description' => 'The name of the project.', 'type' => 'string', 'example' => 'example', 'title' => ''], + 'SamplingRate' => ['description' => 'The sampling rate.', 'type' => 'number', 'format' => 'float', 'example' => '1', 'title' => ''], + 'SLSProject' => ['description' => 'The name of the log file.', 'type' => 'string', 'example' => 'example-cn', 'title' => ''], + 'DomainName' => ['description' => 'The domain names from which logs were collected. You can specify one or more domain names. Separate multiple domain names with commas (,).', 'type' => 'string', 'example' => 'example.com,example.org', 'title' => ''], + 'BusinessType' => ['description' => 'The type of the collected logs. Default value: cdn\\_log\\_access\\_l1. Valid values:'."\n" + ."\n" + .'- **cdn\\_log\\_access\\_l1**: access logs of DCDN POPs'."\n" + ."\n" + .'- **cdn\\_log\\_origin**: back-to-origin logs'."\n" + ."\n" + .'- **cdn\\_log\\_er**: EdgeRoutine logs', 'type' => 'string', 'example' => 'cdn_log_access_l1', 'title' => ''], + 'SLSRegion' => ['description' => 'The region to which logs were delivered.', 'type' => 'string', 'example' => 'cn-hangzhou', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'Internal error, please try again later or contact us.'], ], ], - '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' => 'DescribeDcdnBlockedRegions', - 'description' => '> You can call this operation up to 50 times per second per account.'."\n", + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ListDcdnRealTimeDeliveryProject', + 'description' => '> Each account can call this operation up to 100 times per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnsecService' => [ - 'summary' => 'Queries the information about Dynamic Content Delivery Network (DCDN), such as the service activation time, the expiration time, and the current status.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2024-12-18T07:22:51.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-08T06:50:41.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '99', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListDcdnRealTimeDeliveryProject'], + ], ], + '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'ModifyDCdnDomainSchdmByProperty' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111544', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZA9EPX', + 'abilityTreeCode' => '111594', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], + ], + 'parameters' => [ + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => 'The domain name whose acceleration region you want to modify. You can specify only one domain name.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], + ], + [ + 'name' => 'Property', + 'in' => 'query', + 'schema' => ['description' => 'The properties of the acceleration region, such as {"coverage":"overseas"}. The coverage parameter can be set to one of the following values:'."\n" + ."\n" + .'- **domestic**: the Chinese mainland only.'."\n" + .'- **overseas**: global (excluding the Chinese mainland).'."\n" + .'- **global**: global.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '{"coverage":"overseas"}'], ], - 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The service expiration time.'."\n", - 'type' => 'string', - 'example' => '2021-09-26T16:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The service activation time.'."\n", - 'type' => 'string', - 'example' => '2021-08-26T02:52:08Z', - ], - 'ChangingAffectTime' => [ - 'description' => 'The time when the renewed service takes effect. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2021-09-30T16:00:00Z', - ], - 'DomainNum' => [ - 'description' => 'The number of accelerated domain names that use DCDN.'."\n", - 'type' => 'string', - 'example' => '130', - ], - 'ChangingChargeType' => [ - 'description' => 'The new metering method for the renewed DCDN. Valid values:'."\n" - ."\n" - .'* **PayByTraffic**: pay by data transfer'."\n" - .'* **PayByBandwidth**: pay by bandwidth'."\n" - .'* **PayByBandwidth95**: pay by 95th percentile bandwidth'."\n" - .'* **PayByBandwidth_monthavg**: pay by monthly average bandwidth'."\n" - .'* **PayByBandwidth_month4th**: pay by fourth peak bandwidth per month'."\n" - .'* **PayByBandwidth_monthday95avg**: pay by monthly average 95th percentile bandwidth'."\n" - .'* **PayByBandwidth_nighthalf95**: pay by 95th percentile bandwidth (50% off during nighttime)'."\n", - 'type' => 'string', - 'example' => 'PayByBandwidth', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'E20B46E1-9BCD-10E5-AAEF-6D7B737467A1', - ], - 'Version' => [ - 'description' => 'The version number.'."\n", - 'type' => 'string', - 'example' => 'enterprise', - ], - 'RequestType' => [ - 'description' => 'The metering method for requests.'."\n", - 'type' => 'string', - 'example' => 'PayBySecRequest', - ], - 'FlowType' => [ - 'description' => 'The metering method for traffic.'."\n", - 'type' => 'string', - 'example' => 'PayBySecTraffic', - ], - 'InternetChargeType' => [ - 'description' => 'The current metering method. Valid values:'."\n" - ."\n" - .'* **PayByTraffic**: pay by data transfer'."\n" - .'* **PayByBandwidth**: pay by bandwidth'."\n" - .'* **PayByBandwidth95**: pay by 95th percentile bandwidth'."\n" - .'* **PayByBandwidth_monthavg**: pay by monthly average bandwidth'."\n" - .'* **PayByBandwidth_month4th**: pay by fourth peak bandwidth per month'."\n" - .'* **PayByBandwidth_monthday95avg**: pay by monthly average 95th percentile bandwidth'."\n" - .'* **PayByBandwidth_nighthalf95**: pay by 95th percentile bandwidth (50% off during nighttime)'."\n", - 'type' => 'string', - 'example' => 'PayByTraffic', - ], - 'InstanceId' => [ - 'description' => 'The ID of the instance.'."\n", - 'type' => 'string', - 'example' => 'dcdn_dcdnsec_public_cn-123***', - ], - 'OperationLocks' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LockReason' => [ - 'description' => 'The lock status of DCDN.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'LockReason' => [ - 'description' => 'The reason why the instance was locked.'."\n", - 'type' => 'string', - 'example' => ' financial', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '15C66C7B-671A-4297-9187-2C4477247A74'], ], + 'description' => '', + 'title' => '', ], ], ], - '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' => 'DescribeDcdnsecService', - 'description' => '> You can call this operation up to 20 times per second per account.'."\n", + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Schedule.NotFound', 'errorMessage' => 'This domain does not have any available CDN resources in the accelerated area.', 'description' => 'No scheduling domain resources are available for the domain name.'], + ['errorCode' => 'DomainTraffic.ExceedThreshold', 'errorMessage' => 'You are not allowed to perform this operation because the traffic peak of the last day exceeds the threshold.', 'description' => 'You cannot change the domain name because the peak bandwidth of the domain name yesterday exceeded the upper limit.'], + ['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' => 'The ICP number of the domain name is invalid.'], + ['errorCode' => 'Schedule.ChangeFail', 'errorMessage' => 'Failed to change the accelerated area for the domain.', 'description' => 'Failed to switch to another scheduling domain for the domain name.'], + ], + ], + 'title' => 'ModifyDCdnDomainSchdmByProperty', + 'summary' => 'Modifies the acceleration region for a domain name by specifying a property.', + 'description' => '> The call frequency for a single user is 100 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnUserConfigs' => [ - 'summary' => 'Queries the configurations of security features.', - 'methods' => [ - 'get', - 'post', + '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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A74\\"\\n}","type":"json"}]', + ], + 'ModifyDcdnWafGroup' => [ + 'summary' => 'You can call the ModifyDcdnWafGroup operation to modify a custom WAF rule group.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '111557', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeCode' => '162579', + 'abilityTreeNodes' => ['FEATUREdcdnL8HX1L'], ], 'parameters' => [ [ - 'name' => 'FunctionName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The configuration that you want to query. Valid values:'."\n" - ."\n" - .'* domain_business_control: user configurations'."\n" - .'* bot_basic: the basic edition of bot traffic management, which supports authorized crawlers and provides threat intelligence'."\n" - .'* bot_Advance: the advanced edition of bot traffic management, which supports authorized crawlers and AI intelligent protection and provides threat intelligence'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'domain_business_control', - ], + 'name' => 'Id', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the custom WAF rule group.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'title' => '', 'example' => '30000110'], + ], + [ + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the custom WAF rule group.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'test'], + ], + [ + 'name' => 'Rules', + 'in' => 'formData', + 'schema' => ['description' => 'The incremental changes to the rules in the custom WAF rule group. The value must be a JSON-serialized string.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '{"All":false,"Op":"del","List":"900109"}'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The request ID.', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '06D29681-B7CD-4034-A8CC-28AFFA213539', - ], - 'Configs' => [ - 'description' => 'The user configurations.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ArgValue' => [ - 'description' => 'The value of the configuration. Valid values:'."\n" - ."\n" - .'* cc_rule: HTTP flood protection'."\n" - .'* ddos_dispatch: DDoS mitigation'."\n" - .'* edge_safe: application security on points of presence (POPs)'."\n" - .'* blocked_regions: region blacklist'."\n" - .'* http_acl_policy: precise access control'."\n" - .'* bot_manager: bot traffic management'."\n" - .'* ip_reputation: IP reputation library'."\n", - 'type' => 'string', - 'example' => '{\\"dcdn_allow\\":[\\"cc_rule\\",\\"ddos_dispatch\\"]}', - ], - 'ArgName' => [ - 'description' => 'The name of the configuration.'."\n" - ."\n" - .'The configuration is specified by enterprise users and public service sectors.'."\n", - 'type' => 'string', - 'example' => 'allow_function', - ], - 'FunctionName' => [ - 'description' => 'The name of the feature.'."\n", - 'type' => 'string', - 'example' => 'domain_business_control', - ], - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '79B78B62-9006-5D6A-9DAB-303E134CD7AA'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidArgValue.Malformed', - 'errorMessage' => 'The specified ArgValue is invalid.', - ], - [ - 'errorCode' => 'InvalidArgName.ValueNotSupported', - 'errorMessage' => '%s', - ], + ['errorCode' => 'WafGroup.Name.Malformed', 'errorMessage' => 'The specified parameter Name is invalid.', 'description' => 'The format of the Name parameter is invalid.'], + ['errorCode' => 'WafGroup.NotExist', 'errorMessage' => 'The specified WAF group does not exist.', 'description' => 'The specified WAF rule group does not exist.'], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ], + 403 => [ + ['errorCode' => '%s.NotSupport', 'errorMessage' => 'The specified resource type %s is not supported.', 'description' => 'The specified resource type is not supported. To use this type of resource, contact us.'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => 'The number of resources exceeds the quota. If you want to apply for more resources, contact us.'], + ], + 500 => [ + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => 'An internal error occurred. Try again later. If the error persists, submit a ticket.'], ], ], - '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' => 'DescribeDcdnUserConfigs', - 'description' => 'You can call this operation up to 30 times per second per account.'."\n", - ], - 'DescribeDcdnFullDomainsBlockIPConfig' => [ - 'summary' => 'Queries the configurations of blocked IP addresses.', - 'methods' => [ - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'ModifyDcdnWafGroup', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:14.000Z', 'description' => 'Error codes changed'], + ], + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"79B78B62-9006-5D6A-9DAB-303E134CD7AA\\"\\n}","type":"json"}]', + ], + 'ModifyDcdnWafPolicy' => [ + 'summary' => 'Modifies the name or status of a specified mitigation policy.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn2JMMUY', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'IPList', - 'in' => 'query', - 'schema' => [ - 'description' => 'The IP address or CIDR block to query. Separate multiple values with commas (,). You can specify up to 50 IP addresses or CIDR blocks.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '10.XX.XX.10/24', - ], + 'name' => 'PolicyId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the mitigation policy that you want to modify. You can specify only one ID.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'title' => '', 'example' => '1000001'], + ], + [ + 'name' => 'PolicyName', + 'in' => 'formData', + 'schema' => ['description' => 'The new name of the mitigation policy.'."\n" + ."\n" + .'> You must specify this parameter or PolicyStatus.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'policy_test'], + ], + [ + 'name' => 'PolicyStatus', + 'in' => 'formData', + 'schema' => ['description' => 'The new status of the mitigation policy. Valid values:'."\n" + ."\n" + .'- **on**: Enabled.'."\n" + .'- **off**: Disabled.'."\n" + ."\n" + .'> You must specify this parameter or PolicyName.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'on'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '0C58632F-BA12-1A1E-986D-09285752B42C', - ], - 'Message' => [ - 'description' => 'The returned results. If the operation is successful, URLs of OSS objects are returned. If the operation fails, an error message is returned.'."\n", - 'type' => 'string', - 'example' => 'http://xxxx-api.oss-cn-hangzhou.aliyuncs.com/blocklist%2Fxxxxxxxxxxxx.txt?Expires=1682663947&OSSAccessKeyId=xxxxxxxxxx&Signature=xxxxxx', - ], - 'Code' => [ - 'description' => 'The response code.'."\n" - ."\n" - .'The value of Code is not 0 in the following scenarios:'."\n" - ."\n" - .'* The format of the IP address is invalid.'."\n" - .'* The number of IP addresses exceeds the limit.'."\n" - .'* Other abnormal scenarios'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'CB1A380B-09F0-41BB-C730-72F8FD6DA2FE'], ], + 'description' => '', + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'Policy.NotExist', 'errorMessage' => 'The specified policy does not exist.', 'description' => 'The specified protection policy does not exist.'], + ['errorCode' => 'PolicyName.AlreadyExists', 'errorMessage' => 'The specified policy name already exists.', 'description' => 'The specified policy name is already used by another policy.'], ], - 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' => 'The specified resource type is not supported. To use this type of resource, contact us.'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => 'The number of resources exceeds the quota. If you want to apply for more resources, contact us.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => 'An internal error occurred. Try again later. If the error persists, submit a ticket.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => 'ModifyDcdnWafPolicy', + 'description' => '> - The call frequency is limited to 20 calls per second for each user.'."\n" + .'> - This operation supports POST requests.', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:14.000Z', 'description' => 'Error codes changed'], ], - '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' => 'DescribeDcdnFullDomainsBlockIPConfig', - 'description' => '> * If you specify IP addresses or CIDR blocks, IP addresses that are effective and the corresponding expiration time are returned. If you do not specify IP addresses or CIDR blocks, all effective IP addresses and the corresponding expiration time are returned.'."\n" - .'> * The results are written to OSS and returned as OSS URLs. The content in OSS objects is in the format of `IP address-Corresponding expiration time`. The expiration time is in the YYYY-MM-DD hh:mm:ss format.'."\n" - .'> * You can share OSS URLs with others. The shared URLs are valid for three days.', - ], - 'DescribeDcdnFullDomainsBlockIPHistory' => [ - 'summary' => 'Queries the blocking history.', - '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-C730-72F8FD6DA2FE\\"\\n}","type":"json"}]', + ], + 'ModifyDcdnWafPolicyDomains' => [ + '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' => 'The IP address or CIDR block to query.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '10.XX.XX.10/24', - ], + 'schema' => ['description' => 'The ID of the mitigation policy. You can specify only one ID.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'title' => '', 'example' => '1000001'], ], [ - 'name' => 'StartTime', + 'name' => 'Method', 'in' => 'formData', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2023-04-24T17:00:00Z', - ], + 'schema' => ['description' => 'The binding method. Valid values:'."\n" + ."\n" + .'- 0: Replace'."\n" + .'- 1: Add'."\n" + .'- If you do not specify this parameter, the existing domain names are replaced.'."\n" + ."\n" + .'> * This parameter takes effect only when you specify **BindDomains**. If a domain name in **BindDomains** is already bound to the default policy, the `Policy.DefaultAndCustom.BindToSameDomain` error is returned.'."\n" + .'> * This parameter does not take effect if the specified policy is the default policy. In this case, only the replace method is used.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'title' => '', 'example' => '0'], ], [ - 'name' => 'EndTime', + 'name' => 'BindDomains', 'in' => 'formData', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2023-04-24T19:00:00Z', - ], + 'schema' => ['description' => 'The domain names to bind to the mitigation policy. You can specify up to 50 domain names. Separate multiple domain names with a comma (,).'."\n" + ."\n" + .'> You must specify either **BindDomains** or **UnbindDomains**.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'example.com,example2.com'], + ], + [ + 'name' => 'UnbindDomains', + 'in' => 'formData', + 'schema' => ['description' => 'The domain names to unbind from the mitigation policy. You can specify up to 50 domain names. Separate multiple domain names with a comma (,).'."\n" + ."\n" + .'> You must specify either **BindDomains** or **UnbindDomains**.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'example3.com'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '13A2B792-9212-1CC9-8525-59EBEF3FFE01', - ], - 'IPBlockInfo' => [ - 'description' => 'The result of the operation.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'BlockIP' => [ - 'description' => 'The blocked IP address or CIDR block.'."\n", - 'type' => 'string', - 'example' => '1.XXX.XXX.0~1.XXX.XXX.255', - ], - 'DeliverTime' => [ - 'description' => 'The delivery time.'."\n", - 'type' => 'string', - 'example' => '2023-04-24 18:49:37', - ], - 'Status' => [ - 'description' => 'The delivery status.'."\n" - ."\n" - .'* Success'."\n" - .'* Failed'."\n", - 'type' => 'string', - 'example' => 'Success', - ], - 'OperationType' => [ - 'type' => 'string', - ], - 'BlockInterval' => [ - 'type' => 'string', - ], - 'UpdateType' => [ - 'type' => 'string', - ], - ], - ], - ], - 'Code' => [ - 'description' => 'The response code.'."\n" - ."\n" - .'The value of Code is not 0 in the following scenarios:'."\n" - ."\n" - .'* The format of the IP address is invalid.'."\n" - .'* The format of the time is invalid.'."\n" - .'* Other abnormal scenarios'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Description' => [ - 'description' => 'The description of the status returned.'."\n", - 'type' => 'string', - 'example' => 'OK', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'CB1A380B-09F0-41BB-2B35-72F8FD6DA2FE'], ], + 'description' => '', + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'Policy.NotExist', 'errorMessage' => 'The specified policy does not exist.', 'description' => 'The specified protection policy does not exist.'], + ['errorCode' => 'DomainBindAndUnbind.Overlapped', 'errorMessage' => 'The specified bind and unbind domain names overlap.', 'description' => 'The domain name that you want to associate with and dissociate from are the same.'], + ['errorCode' => 'Domain.Bound.DefaultAndCustom', 'errorMessage' => 'The specified domain name is bound to both default and custom policies.', 'description' => 'The specified domain name is associated with both the default policy and a custom policy.'], + ['errorCode' => 'DefenseScene.MultiPolicies.NotSupport', 'errorMessage' => 'The specified defense scene does not support multiple policies bound to the same domain name.', 'description' => 'A domain name cannot be bound to multiple policies in the specified protection scenario.'], ], - 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' => 'The specified resource type is not supported. To use this type of resource, contact us.'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => 'The number of resources exceeds the quota. If you want to apply for more resources, contact us.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', - ], + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal error occurred; please try again later.', 'description' => 'An internal error occurred. Try again later. If the error persists, submit a ticket.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => 'ModifyDcdnWafPolicyDomains', + 'summary' => 'You can call the ModifyDcdnWafPolicyDomains operation to modify the domain names that are attached to a specific mitigation policy.', + 'description' => '> - The throttling limit for this operation is 20 calls per second per user.'."\n" + .'> - This operation supports POST requests.', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:14.000Z', 'description' => 'Error codes changed'], ], - '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' => 'DescribeDcdnFullDomainsBlockIPHistory', - 'description' => '* For a specified IP addresses and time range, the time when the IP address was delivered to the edge and the corresponding result are returned.'."\n" - .'* If a specified IP address or CIDR block has multiple blocking records in a specified time range, the records are sorted by delivery time in descending order.'."\n" - .'* The maximum time range to query is 90 days.'."\n" - .'* If no blocking record exists or delivery fails for the given IP address and time range, the delivery time is empty.'."\n", - ], - 'SetDcdnFullDomainsBlockIP' => [ - 'summary' => 'Blocks or unblocks IP addresses or CIDR blocks.', - 'methods' => [ - 'get', - 'post', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyDcdnWafPolicyDomains'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:ModifyDcdnWafPolicyDomains', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-2B35-72F8FD6DA2FE\\"\\n}","type":"json"}]', + ], + 'ModifyDcdnWafRule' => [ + 'summary' => 'Modifies the name, status, or configuration of a protection rule.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -27080,62 +23406,34 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'IPList', + 'name' => 'RuleId', 'in' => 'formData', - 'schema' => [ - 'description' => 'The IP addresses that you want to block or unblock. Separate multiple IP addresses with commas (,). You can specify up to 1,000 IP addresses.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '1.XXX.XXX.1,2.XXX.XXX.2', - ], + 'schema' => ['description' => 'The ID of the protection rule. You can specify only one rule ID.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'title' => '', 'example' => '200001'], ], [ - 'name' => 'OperationType', + 'name' => 'RuleStatus', 'in' => 'formData', - 'schema' => [ - 'description' => 'The action that you want to perform. Valid values:'."\n" - ."\n" - .'* **block**'."\n" - .'* **unblock**'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'block', - 'enum' => [ - 'block', - 'unblock', - ], - ], + 'schema' => ['description' => 'The new status of the protection rule. Valid values:'."\n" + ."\n" + .'- **on**: Enables the rule.'."\n" + ."\n" + .'- **off**: Disables the rule.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'off'], ], [ - 'name' => 'BlockInterval', + 'name' => 'RuleName', 'in' => 'formData', - 'schema' => [ - 'description' => 'The duration for which IP addresses or CIDR blocks are blocked. Unit: seconds. The value **0** specifies that IP addresses or CIDR blocks are permanently blocked. This parameter is available only if you set **OperationType** to **block**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '3000', - ], + 'schema' => ['description' => 'The new name of the protection rule.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'test'], ], [ - 'name' => 'UpdateType', + 'name' => 'RuleConfig', 'in' => 'formData', - 'schema' => [ - 'description' => 'The type of the blocking duration. This parameter is available only if you set **OperationType** to **block**. Valid values:'."\n" - ."\n" - .'* **cover**: the blocking duration that is specified in the request takes effect.'."\n" - .'* **uncover**: the longer one of the blocking duration that is specified in the request and the remaining blocking duration takes effect.'."\n" - .'* Default value: cover.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'cover', - ], + 'schema' => ['description' => 'The new configuration of the protection rule.'."\n" + ."\n" + .'> When you upload a new rule configuration, it overwrites the previous configuration.', 'type' => 'string', 'required' => false, 'title' => '', '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' => [ @@ -27143,93 +23441,99 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => 'The response code.'."\n" - ."\n" - .'If the value of Code is not 0, specific required parameters are missing or the parameter format is invalid.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Message' => [ - 'description' => 'The response message.'."\n", - 'type' => 'string', - 'example' => 'OK', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-802B-72F8FD6DA2FE', - ], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => 'CB1A380B-09F0-41BB-3C2B-72F8FD6DA2FE'], ], 'description' => '', + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvaildParameter', - 'errorMessage' => 'The specified parameters are invalid.', - ], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'Rule.NotExist', 'errorMessage' => 'The specified rule does not exist.', 'description' => 'The specified rule does not exist in the current context or system configuration. Please verify the existence of the rule identifier and ensure it has been correctly defined or implemented.'], + ['errorCode' => 'RuleConfigs.Malformed', 'errorMessage' => 'The specified RuleConfigs format is invalid.', 'description' => 'The RuleConfigs parameter is in an invalid format.'], + ['errorCode' => 'RuleName.AlreadyExists', 'errorMessage' => 'Rule name already exists in specified policy.', 'description' => 'The specified rule name is already used by another rule.'], + ['errorCode' => 'Rule.Name.CantBeModified', 'errorMessage' => 'The specified rule name can not be modified.', 'description' => 'The name of the specified rule cannot be modified.'], ], 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' => 'The specified resource type is not supported. To use this type of resource, contact us.'], + ['errorCode' => '%s.OverQuota', 'errorMessage' => 'The quantity of %s exceeds the quota.', 'description' => 'The number of resources exceeds the quota. If you want to apply for more resources, contact us.'], ], - 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' => 'An internal error occurred. Try again later. If the error persists, submit a ticket.'], ], ], - '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' => 'SetDcdnFullDomainsBlockIP', - 'description' => '> You can call this operation to block or unblock a large number of IP addresses or CIDR blocks. You can block or unblock up to 1,000 IP addresses or CIDR blocks in a request.'."\n", - ], - 'DescribeDcdnAclFields' => [ - 'summary' => 'Queries precise access control rules.', - 'methods' => [ - 'get', - 'post', + 'title' => 'ModifyDcdnWafRule', + 'description' => '> - The rate limit for a single user is 20 calls per second.'."\n" + .'>'."\n" + .'> - This operation supports only POST requests.'."\n" + .'>'."\n" + .'> - You must specify at least one of the following parameters: **RuleStatus**, **RuleName**, and **RuleConfig**.', + 'changeSet' => [ + ['createdAt' => '2023-08-29T10:08:15.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-03-10T01:53:02.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyDcdnWafRule'], + ], ], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'dcdn:ModifyDcdnWafRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-3C2B-72F8FD6DA2FE\\"\\n}","type":"json"}]', + ], + 'OpenDcdnService' => [ + 'summary' => 'You can call the OpenDcdnService operation to activate DCDN.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdn33QGRH', - ], + 'abilityTreeCode' => '111596', + 'abilityTreeNodes' => ['FEATUREdcdnZA9EPX'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'Lang', + 'name' => 'BillType', + 'in' => 'query', + 'schema' => ['description' => 'The billing method for the service. Valid values:'."\n" + ."\n" + .'- **PayByTraffic**: pay-by-data-transfer'."\n" + .'- **PayByBandwidth**: pay-by-peak-bandwidth', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'PayByTraffic'], + ], + [ + 'name' => 'WebsocketBillType', 'in' => 'query', 'schema' => [ - 'description' => 'The access language. Default value: en. Valid values:'."\n" + 'description' => 'The billing method for the WebSocket service. Valid values:'."\n" ."\n" - .'* **en**: English'."\n" - .'* **zh**: Chinese'."\n", + .'- **websockettraffic**: pay-by-data-transfer'."\n" + .'- **websocketbps**: pay-by-peak-bandwidth', 'type' => 'string', 'required' => true, - 'example' => 'en', - 'enum' => [ - 'zh', - 'en', - ], + 'enum' => ['websockettraffic', 'websocketbps'], + 'title' => '', + 'example' => 'websockettraffic', ], ], ], @@ -27238,455 +23542,304 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '30A3A25A-86B3-4C1D-BAA8-12B8607A5CFD', - ], - 'Content' => [ - 'description' => 'The details about the rules.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Fields' => [ - 'description' => 'The rules and policies that were configured. The JSON string is decoded.'."\n", - '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\\"}]', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '97C68796-EB7F-4D41-9D5B-12B909D76503'], ], 'description' => '', + 'title' => '', ], ], ], - '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' => 'DescribeDcdnAclFields', - 'description' => '> You can call this operation up to three times per second per account.'."\n", + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'DcdnService.HasOpened', 'errorMessage' => 'Your DCDN service has been activated.', 'description' => 'DCDN is activated.'], + ['errorCode' => 'InvalidComponent', 'errorMessage' => 'The specified value of parameter BillType is not valid.', 'description' => 'The specified metering method is invalid. Specify another metering method and try again.'], + ['errorCode' => 'NoRealNameAuthentication', 'errorMessage' => 'Real name authentication is needed.', 'description' => 'Your account has not passed real-time verification.'], + ['errorCode' => 'IncompleteInformation', 'errorMessage' => 'Your information is incomplete. Complete your information before the operation.', 'description' => 'You must provide all the required information.'], + ], + ], + 'title' => 'OpenDcdnService', + 'description' => '> - You can activate DCDN only once per Alibaba Cloud account. Your account must have completed real-name authentication.'."\n" + .'> - The call frequency is limited to 5 calls per second per user.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnDomainCcActivityLog' => [ - 'summary' => 'Queries logs of rate limiting.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'OpenDcdnService'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:OpenDcdnService', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"97C68796-EB7F-4D41-9D5B-12B909D76503\\"\\n}","type":"json"}]', + ], + 'PreloadDcdnObjectCaches' => [ + 'summary' => 'Prefetches content from the origin server to L2 Cache nodes so that users can directly hit the cache on their first visit, which reduces the load on the origin server.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111597', + 'abilityTreeNodes' => ['FEATUREdcdn4TTNAL'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. You can specify one or more domain names. Separate multiple domain names with commas (,).'."\n" - ."\n" - .'If you leave this parameter empty, the data of all domain names is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'The resolution of the queried data is 5 minutes.'."\n" - ."\n" - .'If you leave this parameter empty, the data collected over the last 24 hours is queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T20:00:00Z', - ], - ], - [ - 'name' => 'EndTime', + 'name' => 'ObjectPath', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2015-12-10T21:05:00Z', - ], + 'schema' => ['description' => 'The URLs to prefetch. The format is **accelerated domain name/file to prefetch**.'."\n" + .'>Separate multiple URLs with line breaks. Each URL can be up to 1,024 characters in length.', 'type' => 'string', 'required' => true, 'example' => 'http://example.com/examplefile.txt'."\n" + .'http://example.com/examplefile2.txt', 'title' => ''], ], [ - 'name' => 'TriggerObject', + 'name' => 'Area', 'in' => 'query', 'schema' => [ - 'description' => 'The trigger of rate limiting by which you want to query data.'."\n" + 'description' => 'The prefetch region. Valid values:'."\n" + .'- **domestic**: the Chinese mainland only.'."\n" + .'- **overseas**: global (excluding the Chinese mainland).'."\n" ."\n" - .'If you leave this parameter empty, all events that triggered rate limiting are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'IP', - ], - ], - [ - 'name' => 'Value', - 'in' => 'query', - 'schema' => [ - 'description' => 'The value of the object that triggered rate limiting.'."\n" + .'If you do not specify this parameter, the prefetch region defaults to the DCDN acceleration region configured for your domain name:'."\n" ."\n" - .'If you leave this parameter empty, events that triggered rate limiting based on all rules are queried.'."\n", + .'- If the acceleration region of the domain name is **Chinese Mainland Only**, the prefetch region is the Chinese mainland only.'."\n" + .'- If the acceleration region of the domain name is **Global**, the prefetch region is global.'."\n" + .'- If the acceleration region of the domain name is **Global (Excluding the Chinese Mainland)**, the prefetch region is global (excluding the Chinese mainland).', 'type' => 'string', 'required' => false, - 'example' => '10.10.10.10', + 'enum' => ['domestic', 'overseas'], + 'example' => 'domestic', + 'title' => '', ], ], [ - 'name' => 'RuleName', + 'name' => 'L2Preload', 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the defense rule.'."\n" - ."\n" - .'* default_normal in normal mode'."\n" - .'* default_attack in emergency mode'."\n" - .'* A custom rule name in custom mode. Example: test2.'."\n" - ."\n" - .'If you leave this parameter empty, events that triggered rate limiting based on all rules are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test2', - ], + 'schema' => ['description' => 'Specifies whether to prefetch content directly to L2 nodes. Valid values:'."\n" + ."\n" + .'- **true**: The prefetch node hierarchy must include L2 nodes.'."\n" + ."\n" + .'- **false** (default): Only origin-layer nodes are prefetched. Origin-layer nodes can be L2 nodes or L3 nodes.', 'type' => 'boolean', 'required' => false, 'default' => 'false', 'example' => 'true', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'WithHeader', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Default value: **30**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'maximum' => '100', - 'example' => '30', - 'default' => '30', - ], + 'schema' => ['description' => 'The custom prefetch headers. Specify the value in JSON format.', 'type' => 'string', 'required' => false, 'example' => '{'."\n" + .' "Accept-Encoding": ['."\n" + .' "gzip"'."\n" + .' ]'."\n" + .'}', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'QueryHashkey', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number of the page returned. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'This parameter is used when certain rules (such as URL rewrite or parameter filtering) are configured. It specifies whether to enable hashkey query mode when executing prefetch tasks. Valid values:'."\n" + .'- false: default mode. This mode is used when this parameter is not specified. The submitted URL is directly used as the hashkey of the prefetched file.'."\n" + .'- true: queries the actual hashkey used by the prefetch URL based on the domain name configuration.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'PageIndex' => [ - 'description' => 'The page number of the returned page.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F', - ], - 'PageSize' => [ - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '30', - ], - 'Total' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - 'ActivityLog' => [ - 'description' => 'The log data of the event that triggered rate limiting.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Value' => [ - 'description' => 'The value of the trigger for rate limiting.'."\n", - 'type' => 'string', - 'example' => '10.10.10.10', - ], - 'Ttl' => [ - 'description' => 'The period of time during which rate limiting remains effective.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '300', - ], - 'Action' => [ - 'description' => 'The action that was triggered.'."\n", - 'type' => 'string', - 'example' => 'deny', - ], - 'TriggerObject' => [ - 'description' => 'The object that triggered the blocking event.'."\n", - 'type' => 'string', - 'example' => 'IP', - ], - 'TimeStamp' => [ - 'description' => 'The timestamp of the data returned.'."\n", - 'type' => 'string', - 'example' => '2015-12-10T20:00:00Z', - ], - 'DomainName' => [ - 'description' => 'The accelerated domain name whose ICP filing status you want to update.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'RuleName' => [ - 'description' => 'The name of the rule that was triggered.'."\n", - 'type' => 'string', - 'example' => 'test2', - ], - ], - ], - ], + 'PreloadTaskId' => ['description' => 'The IDs of the prefetch tasks. Multiple task IDs are separated by commas (,). The returned task IDs are merged based on the following rules:'."\n" + ."\n" + .'- Prefetch tasks (at URL granularity) submitted for the same domain name within the same second are merged into a single RushTaskId.'."\n" + .'- If more than 500 prefetch tasks (at URL granularity) are submitted for the same domain name within the same second, the tasks are merged into RushTaskIds in batches of 500.', 'type' => 'string', 'example' => '95248880', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'E5BD4B50-7A02-493A-AE0B-97B9024B4135', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => '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' => 'The maximum number of refresh and prefetch requests on the current day has been reached.'], + ['errorCode' => 'InvalidObjectPath.Malformed', 'errorMessage' => 'The specified ObjectPath is invalid.', 'description' => 'The ObjectPath parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'InvalidExtensiveDomain.ValueNotSupported', 'errorMessage' => 'The specified ExtensiveDomain is not supported.', 'description' => 'Wildcard domain names are not supported.'], + ['errorCode' => 'PreloadQueueFull', 'errorMessage' => 'The warming queue is full; please try again later.', 'description' => 'The maximum number of URLs of the objects that are being prefetched has been reached. Try again later.'], + ['errorCode' => 'InvalidObjectPath.ExceedsMaximum', 'errorMessage' => 'The maximum number of urls is exceeded.', 'description' => 'The number of submitted URLs exceeds the maximum limit.'."\n"], ], ], - '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' => 'DescribeDcdnDomainCcActivityLog', - 'description' => '> '."\n" + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"PreloadTaskId\\": \\"95248880\\",\\n \\"RequestId\\": \\"E5BD4B50-7A02-493A-AE0B-97B9024B4135\\"\\n}","type":"json"}]', + 'title' => 'Prefetch uRLs', + 'description' => '- Related operations: The refresh and prefetch operations include the [RefreshDcdnObjectCaches](~~130620~~) refresh operation and the [PreloadDcdnObjectCaches](~~130636~~) prefetch operation.'."\n" + ."\n" + .'- Request method: POST requests are supported. Parameters are displayed in a form.'."\n" ."\n" - .'* If you do not configure the StartTime or EndTime parameter, data collected over the last 24 hours is queried. If you configure both the StartTime and EndTime parameters, data collected within the specified time range is queried.'."\n" + .'- Daily URL prefetch quota: By default, each account can submit up to 1,000 URL prefetch tasks per day. If the daily peak bandwidth of your account exceeds 200 Mbit/s, you can request a higher daily quota by <props="china">[Quota Management](~~375348~~)</props><props="intl">[submitting a ticket](https://account.alibabacloud.com/login/login.htm?oauth_callback=https%3A//ticket-intl.console.aliyun.com/%23/ticket/createIndex)</props>. Alibaba Cloud evaluates and configures the quota based on your actual business requirements.'."\n" ."\n" - .'* You can query data collected over the last 30 days.'."\n" + .'- You can submit up to 100 URL prefetch tasks at a time.'."\n" ."\n" - .'* You can call the RefreshObjectCaches operation up to 50 times per second per account.'."\n", + .'- Prefetch queue rules: The prefetch queue for each account can contain up to 100,000 URLs. DCDN processes prefetch tasks in the order in which URLs are submitted. When the number of pending tasks in the prefetch queue reaches 100,000, DCDN uses a queuing mechanism. This means that the next URL prefetch task can be submitted only after the earliest URL prefetch task in the queue is completed.'."\n" + ."\n" + .'- Maximum invocation frequency per user: 15 times per second.'."\n" + ."\n" + .'#### Before you begin'."\n" + ."\n" + .'- After a prefetch task is submitted and successfully executed, points of presence immediately fetch the required resources from the origin server through back-to-origin requests. Submitting a large number of prefetch tasks at a time generates many concurrent download tasks, which causes a surge in back-to-origin bandwidth and requests and increases the load on the origin server.'."\n" + .'- The time required to complete a prefetch task after submission depends on the size of the prefetched file. It takes approximately 5 to 30 minutes. The smaller the average file size, the faster the prefetch.'."\n" + .'- To use a Resource Access Management (RAM) user to perform refresh and prefetch operations, obtain the required authorization first. For more information, see [Grant permissions to a RAM user for refresh and prefetch](~~445051~~).', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnSecSpecInfo' => [ - 'summary' => 'Queries the version of secure Dynamic Route for CDN (DCDN) and the security rules.', - 'methods' => [ - 'get', - 'post', + 'changeSet' => [ + ['createdAt' => '2024-11-21T01:58:47.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-11-03T02:47:56.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-07-25T12:31:26.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-01-11T07:50:59.000Z', 'description' => 'Request parameters changed, Response parameters changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PreloadDcdnObjectCaches'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:PreloadDcdnObjectCaches', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], + ], + ], + 'PublishDcdnStagingConfigToProduction' => [ + 'summary' => 'Publishes the DCDN configuration from the staging environment to the production environment.', + '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' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => 'The accelerated domain name. Only a single domain name is supported.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], + ], + [ + 'name' => 'FunctionName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the feature.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'aliauth'], ], ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Version' => [ - 'description' => 'The version of secure DCDN.'."\n", - 'type' => 'string', - 'example' => 'enterprise', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '32f6cbb7-13e5-403a-9941-4d4e978dd227', - ], - 'SpecInfos' => [ - 'description' => 'The code and configurations of the security rules.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'RuleCode' => [ - 'description' => 'The code of the security rule.'."\n", - 'type' => 'string', - 'example' => 'accurate_***', - ], - 'RuleConfigs' => [ - 'description' => 'The configurations of the security rule.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => 'The configuration code of the security rule.'."\n", - 'type' => 'string', - 'example' => 'custom_****_number', - ], - 'Value' => [ - 'description' => 'The value of the configuration expression of the security rule.'."\n", - 'type' => 'string', - 'example' => '20', - ], - 'Expr' => [ - 'description' => 'The configuration expression of the security rule.'."\n", - 'type' => 'string', - 'example' => 'equal', - ], - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], 'description' => '', + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidVersion.NotFound', - 'errorMessage' => 'The version does not exist.', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'StagingConfig.Failed', 'errorMessage' => 'The rules for the staging environment are being configured. Try again later.', 'description' => 'The staging environment is updating data. Try again later.'], + ], + 404 => [ + ['errorCode' => 'StagingConfig.NotFound', 'errorMessage' => 'The staging configuration does not exist.', 'description' => 'The configuration cannot be found in the staging environment.'], ], ], - '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' => 'DescribeDcdnSecSpecInfo', - 'description' => '> You can call this operation up to 50 times per second per account.'."\n", + 'title' => 'PublishDcdnStagingConfigToProduction', + 'description' => '> A single user can make up to 30 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeHighlightInfo' => [ - 'summary' => 'Queries the highlighted data of attack details. You can query the reasons for which requests are blocked based on TraceIDs in logs of requests that are blocked by Basic Web Protection. The highlighted data matches the content blocked by the basic web protection module.', - '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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]', + ], + 'PublishRoutineCodeRevision' => [ + 'summary' => 'Publishes a specific version of Edge Routine (ER) code to an environment.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111599', + 'abilityTreeNodes' => ['FEATUREdcdn75UYDO'], ], 'parameters' => [ [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2023-02-19T16:00:00Z', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2023-04-10T02:43:34Z', - ], + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the Edge Routine. The name must be unique within an Alibaba Cloud account.', 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''], ], [ - 'name' => 'TraceId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the trace.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '800e749616838513398137319e', - ], + 'name' => 'SelectCodeRevision', + 'in' => 'formData', + 'schema' => ['description' => 'The version of the Edge Routine (ER) code to publish.', 'type' => 'string', 'required' => true, 'example' => '1620876959997924701', 'title' => ''], ], [ - 'name' => 'Lang', - 'in' => 'query', - 'schema' => [ - 'description' => 'The access language. Valid values:'."\n" - ."\n" - .'* **en-US** (default): English.'."\n" - .'* **zh-CN**: Chinese.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'en_US', - 'enum' => [ - 'zh_CN', - 'en_US', - ], - ], + 'name' => 'Envs', + 'in' => 'formData', + 'style' => 'json', + 'schema' => ['description' => 'The environment to which you want to publish the code.'."\n" + ."\n" + .'> - production: The name of the production environment. It includes SpecName (environment name) and AllowedHosts (domain name whitelist).'."\n" + .'>'."\n" + .'> - presetCanary: Optional. The grayscale environment that you can add as needed.', 'type' => 'object', 'required' => true, 'example' => '["production","presetCanaryZhejiang"]', 'title' => ''], ], ], 'responses' => [ @@ -27694,786 +23847,510 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], - 'DataModule' => [ - 'description' => 'The data model of the highlighted data.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => 'The type of the highlighted data.'."\n", - 'type' => 'string', - 'example' => 'URL', - ], - 'Hit' => [ - 'description' => 'The highlighted data.'."\n", - 'type' => 'string', - 'example' => '[\\"data:image/php;base64\\"]', - ], - 'Raw' => [ - 'description' => 'The complete data.'."\n", - 'type' => 'string', - 'example' => 'data:image/php;base64,PD9waHAXXXXXXanVzdHR0dHXXXXXB0ZXN0Ijs/Pg==', - ], - ], - ], - ], + 'Content' => ['description' => 'The version number of the published code.', 'type' => 'object', 'example' => '{"CodeRevision": "1620876959997924701"}', 'title' => ''], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'A513734D-D17B-411E-864D-XXXX', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => 'A server error occurred. Try again later. If the error persists, submit a ticket.'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', - ], - ], - ], - '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' => 'DescribeHighlightInfo', - ], - 'DescribeDcdnWafBotAppKey' => [ - 'summary' => 'Queries the SDK authentication key for the Alibaba Cloud account. You can also use the SDK authentication key to send SDK initialization requests. The key must be included in the integration code.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '152891', - 'abilityTreeNodes' => [ - 'FEATUREdcdnV3YEJ8', + 'title' => 'PublishRoutineCodeRevision', + 'description' => '> The API call frequency is 100 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PublishRoutineCodeRevision'], ], - 'tenantRelevance' => 'publicInformation', ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'F2542B96-B535-5BF9-8EEE-1CF11B20CCA8', - ], - 'AppKey' => [ - 'description' => 'The SDK authentication key for the Alibaba Cloud account.'."\n", - 'type' => 'string', - 'example' => 'examp1eapp_key_xxxiuMWTX4Gw', - ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:PublishRoutineCodeRevision', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], ], - 'description' => '', ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F2542B96-B535-5BF9-8EEE-1CF11B20CCA8\\",\\n \\"AppKey\\": \\"examp1eapp_key_xxxiuMWTX4Gw\\"\\n}","type":"json"}]', - 'title' => 'DescribeDcdnWafBotAppKey', - 'parameters' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": {\\n \\"CodeRevision\\": \\"1620876959997924701\\"\\n },\\n \\"RequestId\\": \\"A513734D-D17B-411E-864D-XXXX\\"\\n}","type":"json"}]', ], - 'DescribeDdosAllEventList' => [ - 'summary' => 'Queries attack events.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'PutDcdnKv' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '121110', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'StartTime', + 'name' => 'Namespace', 'in' => 'query', - 'schema' => [ - 'title' => 'A short description of struct', - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2023-03-27T16:00:00Z', - ], + 'schema' => ['description' => 'The name of the namespace.', 'type' => 'string', 'required' => true, 'example' => 'ns1', 'title' => ''], ], [ - 'name' => 'EndTime', + 'name' => 'Key', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC. The end time must be later than the start time. The maximum time range is 31 days.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2023-04-25T15:59:59Z', - ], + 'schema' => ['description' => 'The name of the key that you want to set. The key can be up to 512 characters in length and cannot contain spaces or backslashes (/).', 'type' => 'string', 'required' => true, 'example' => 'key1', 'title' => ''], ], [ - 'name' => 'EventType', - 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => 'The type of the DDoS attack event to be queried. Valid values:'."\n" - ."\n" - .' * **web-cc**: resource exhaustion attacks'."\n" - .' * **cc**: connection flood attacks'."\n" - .' * **traffic**: volumetric attacks'."\n" - ."\n" - .'If you do not configure this parameter, DDoS attack events of all types are queried.', - 'type' => 'string', - 'required' => false, - 'example' => 'web-cc', - 'enum' => [ - 'web-cc', - 'cc', - 'traffic', - ], - ], + 'name' => 'Value', + 'in' => 'formData', + 'schema' => ['description' => 'The content of the key. The maximum size is 2 MB (2 × 1,000 × 1,000 bytes).', 'type' => 'string', 'required' => true, 'example' => 'value1', 'title' => ''], ], [ - 'name' => 'PageNumber', + 'name' => 'Expiration', 'in' => 'query', - 'schema' => [ - 'description' => 'The page number. Default value: 1. Value range: 1 to 10,000.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['description' => 'The expiration time. This is a UNIX timestamp in seconds and cannot be earlier than the current time. If you set both Expiration and ExpirationTtl, ExpirationTtl takes precedence.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1690081381', 'title' => ''], ], [ - 'name' => 'PageSize', + 'name' => 'ExpirationTtl', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Default value: **10**. Valid values: 5, 10, and 20.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', - 'enum' => [ - '5', - '10', - '20', - ], - ], + 'schema' => ['description' => 'The expiration time. This is a relative time in seconds. If you set both Expiration and ExpirationTtl, ExpirationTtl takes precedence.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '3600', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'D73A4243-CFBD-5110-876F-09237E77ECBD', - ], - 'Total' => [ - 'description' => 'The total number of entries returned.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - 'PageNumber' => [ - 'description' => 'The number of the page to return. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => 'The number of entries returned on each page. Default value: **10**. Valid values: 5, 10, and 20.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'DataList' => [ - 'description' => 'The list of events.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Target' => [ - 'description' => 'The attack target.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'StartTime' => [ - 'description' => 'The beginning of the time range during which data was queried. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2022-10-09T10:03:31Z', - ], - 'EndTime' => [ - 'description' => 'The end of the time range during which data was queried. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2022-11-26T15:59:00Z', - ], - 'EventType' => [ - 'description' => 'The type of the DDoS attack event that was queried. Valid values:'."\n" - ."\n" - .'* **web-cc**: web resource exhaustion attacks'."\n" - .'* **cc**: connection flood attacks'."\n" - .'* **traffic**: volumetric attacks'."\n" - .'* If you do not configure this parameter, DDoS attack events of all types are queried.'."\n", - 'type' => 'string', - 'example' => 'web-cc', - ], - 'Bps' => [ - 'description' => 'The peak attack traffic of volumetric attacks. Unit: bit/s.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '800', - ], - 'Pps' => [ - 'description' => 'The peak attack traffic of volumetric attacks. Unit: packets per second (PPS).'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '12000', - ], - 'Cps' => [ - 'description' => 'The peak of connection flood attacks. Unit: connections per seconds (CPS).'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '50', - ], - 'Qps' => [ - 'description' => 'The peak of web resource exhaustion attacks. Unit: queries per second (QPS).'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '7692', - ], - 'EventId' => [ - 'description' => 'The event ID.'."\n", - 'type' => 'string', - 'example' => '28069', - ], - ], - ], - ], + 'Length' => ['description' => 'The length of the key.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''], + 'Value' => ['description' => 'The content of the key. If the value exceeds 256 characters in length, the system returns the first 100 characters and the last 100 characters, with the middle part omitted.', 'type' => 'string', 'example' => 'value1', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '96ED3127-EC7A-57C5-AFA6-A689B24B2530', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'The parameter is set to an invalid value.'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => 'The account is invalid. Check whether an account is specified.'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'The namespace is invalid. Check whether a namespace is specified.'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'The key is invalid. Check whether a key is specified.'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'The key cannot exceed 512 bytes in length.'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'The value cannot exceed 2,000,000 bytes in length.'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', - ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'The capacity of the namespace has reached the upper limit. Each namespace can be at most 1 GB.'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => 'An authentication parameter is set to an invalid value.'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => 'The authentication time parameter you entered is invalid. Check the parameter value and try again.'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => 'The token you entered is invalid. Please check and enter the correct token and try again.'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => 'The specified resource is invalid.'], + ], + [ + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account does not exist.', 'description' => 'The specified account does not exist.'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'The specified namespace does not exist.'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => 'The specified key does not exist.'], + ], + 406 => [ + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'The namespace already exists.'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'The number of namespaces has reached the upper limit.'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'The number of keys has reached the upper limit.'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests are submitted.', 'description' => 'Do not send requests at a high frequency.'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'Do not perform the key put/delete operation at a high frequency.'], ], ], - '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' => 'DescribeDdosAllEventList', - ], - 'DescribeDcdnDdosService' => [ - 'summary' => 'Queries the status of DCDN DDoS mitigation.', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'PutDcdnKv', + 'summary' => 'The PutDcdnKv operation sets a key-value (KV) pair for a specified namespace.', + 'description' => '> The call frequency is limited to 50 calls per second per user.', + 'changeSet' => [ + ['createdAt' => '2023-07-20T07:43:36.000Z', 'description' => 'Request parameters changed, Response parameters changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PutDcdnKv'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:PutDcdnKv', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => 'read', + 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '143162', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZA9EPX', + 'abilityTreeCode' => '121111', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + ], + 'parameters' => [ + [ + 'name' => 'Description', + 'in' => 'formData', + 'schema' => ['description' => 'The description of the namespace.', 'type' => 'string', 'required' => false, 'maxLength' => 1024, 'title' => '', 'example' => 'the first namespace'], + ], + [ + 'name' => 'Namespace', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the namespace. The name is case-insensitive and can contain letters, digits, hyphens (-), and underscores (\\_).', 'type' => 'string', 'required' => true, 'maxLength' => 64, 'pattern' => '^[0-9a-zA-Z_-]+$', 'title' => '', 'example' => 'ns1'], ], - 'tenantRelevance' => 'publicInformation', ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => 'The status of the service. Valid values:'."\n" - ."\n" - .'* **Normal**'."\n" - .'* **WaitForExpire**'."\n" - .'* **expired**'."\n" - .'* **Released**'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'ChangingAffectTime' => [ - 'description' => 'The time when the renewed service takes effect. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2018-03-31T16:00:00Z', - ], - 'OpeningTime' => [ - 'description' => 'The time when the service was enabled.'."\n", - 'type' => 'string', - 'example' => '2021-09-26T16:00:00Z', - ], - 'ChangingEdition' => [ - 'description' => 'The protection edition for which the configuration changes take effect. Valid values:'."\n" - ."\n" - .'* **poc**: POC Edition'."\n" - .'* **basic**: Basic Edition'."\n" - .'* **insurance**: Insurance Edition'."\n" - .'* **unlimited**: Unlimited Edition'."\n", - 'type' => 'string', - 'example' => 'basic', - ], - 'ChargeType' => [ - 'description' => 'The billing method. Valid values:'."\n" - ."\n" - .'* **PayByBandwidth**'."\n" - .'* **PayByTraffic**'."\n" - .'* **PayByBandwidth95**'."\n", - 'type' => 'string', - 'example' => 'PayByTraffic', - ], - 'DomianNum' => [ - 'description' => 'The number of protected domain names.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'ChangingProtectNum' => [ - 'description' => 'The number of mitigation sessions with configuration changes.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'ChangingDomianNum' => [ - 'description' => 'The number of protected domain names.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '30', - ], - 'InstanceId' => [ - 'description' => 'The instance ID.'."\n", - 'type' => 'string', - 'example' => 'xxx-12345', - ], - 'Edition' => [ - 'description' => 'The protection edition. Valid values:'."\n" - ."\n" - .'* **poc**: POC Edition'."\n" - .'* **basic**: Basic Edition'."\n" - .'* **insurance**: Insurance Edition'."\n" - .'* **unlimited**: Unlimited Edition'."\n", - 'type' => 'string', - 'example' => 'poc', - ], - 'ChangingChargeType' => [ - 'description' => 'The metering method after the configuration changes Valid values:'."\n" - ."\n" - .'* **PayByBandwidth**'."\n" - .'* **PayByTraffic**'."\n" - .'* **PayByBandwidth95**'."\n", - 'type' => 'string', - 'example' => 'PayByBandwidth', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => 'C370DAF1-C838-4288-A1A0-9A87633D248E', - ], - 'ProtectNum' => [ - 'description' => 'The number of mitigation sessions.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'Enabled' => [ - 'description' => 'The activation status of the service. Valid values:'."\n" - ."\n" - .'* **on**'."\n" - .'* **off**'."\n", - 'type' => 'string', - 'example' => 'on', - ], - 'EndingTime' => [ - 'description' => 'The service expiration time.'."\n", - 'type' => 'string', - 'example' => '2023-09-26T16:00:00Z', - ], + 'Status' => ['description' => 'The status of the namespace. Valid values:'."\n" + ."\n" + .'- **online**: Normal.'."\n" + .'- **delete**: The namespace is pending deletion.'."\n" + .'- **deleting**: The namespace is being deleted.'."\n" + .'- **deleted**: The namespace is deleted.', 'type' => 'string', 'title' => '', 'example' => 'online'], + 'Namespace' => ['description' => 'The name of the namespace.', 'type' => 'string', 'title' => '', 'example' => 'ns1'], + 'NamespaceId' => ['description' => 'The ID of the namespace.', 'type' => 'string', 'title' => '', 'example' => '12423131231****'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C'], + 'Description' => ['description' => 'The description of the namespace. The description can be up to 1,024 characters in length.', 'type' => 'string', 'maxLength' => 1024, 'title' => '', 'example' => 'the first namespace'], ], 'description' => '', + 'title' => '', ], ], ], - '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' => 'DescribeDcdnDdosService', - ], - 'DescribeDcdnDdosSpecInfo' => [ - 'summary' => 'Queries the specifications of DCDN DDoS versions.', - 'methods' => [ - 'get', - 'post', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'The parameter is set to an invalid value.'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => 'The account is invalid. Check whether an account is specified.'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'The namespace is invalid. Check whether a namespace is specified.'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'The key is invalid. Check whether a key is specified.'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'The key cannot exceed 512 bytes in length.'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'The value cannot exceed 2,000,000 bytes in length.'], + ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'The capacity of the namespace has reached the upper limit. Each namespace can be at most 1 GB.'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => 'An authentication parameter is set to an invalid value.'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => 'The authentication time parameter you entered is invalid. Check the parameter value and try again.'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => 'The token you entered is invalid. Please check and enter the correct token and try again.'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => 'The specified resource is invalid.'], + ], + [ + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account does not exist.', 'description' => 'The specified account does not exist.'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'The specified namespace does not exist.'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => 'The specified key does not exist.'], + ], + 406 => [ + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'The namespace already exists.'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'The number of namespaces has reached the upper limit.'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'The number of keys has reached the upper limit.'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests are submitted.', 'description' => 'Do not send requests at a high frequency.'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'Do not perform the key put/delete operation at a high frequency.'], + ], + ], + 'title' => 'PutDcdnKvNamespace', + 'summary' => 'You can call PutDcdnKvNamespace to add a namespace to your account.', + 'changeSet' => [ + ['createdAt' => '2025-04-02T06:58:00.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-03-25T08:01:20.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-02-19T06:32:02.000Z', 'description' => 'Response parameters changed'], ], - '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' => 'All Resource', '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' => 'Sets a key-value pair for a namespace. This operation supports a request body of up to 25 MB.', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnO1ZP9O', + 'abilityTreeCode' => '213942', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], + ], + 'parameters' => [ + [ + 'name' => 'Namespace', + 'in' => 'query', + 'schema' => ['description' => 'The name of the namespace that you specified when you called the [PutDcdnKvNamespace](~~PutDcdnKvNamespace~~) operation.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'test_namesapce'], + ], + [ + 'name' => 'Key', + 'in' => 'query', + 'schema' => ['description' => 'The name of the key to set. The key can be up to 512 characters in length and cannot contain spaces or backslashes (/).', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'test_key'], + ], + [ + 'name' => 'Url', + 'in' => 'query', + 'schema' => ['description' => 'The download URL of the object that stores the key-value pair. This parameter is automatically generated by the SDK. You must use an SDK to call this operation.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'https://xxxobject.oss-cn-reginon.aliyuncs.com/9d91_xxxxxxxxxxx_158bb6e0f97c477791209bb46bd599f7'], ], ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Edition' => [ - 'description' => 'The version. Valid values:'."\n" - ."\n" - .'* **poc**: POC Edition'."\n" - .'* **basic**: Basic Edition'."\n" - .'* **insurance**: Insurance Edition'."\n" - .'* **unlimited**: Unlimited Edition'."\n" - .'* **port_enhancement**: Special Port Enhanced Edition', - 'type' => 'string', - 'example' => 'insurance', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'DEA8E7BE-33C6-56F5-AC56-74D50547CF34', - ], - 'Enable' => [ - 'description' => 'Specifies whether to enable DDoS mitigation. Valid values:'."\n" - ."\n" - .'* **on:**'."\n" - .'* **off**.'."\n", - 'type' => 'string', - 'example' => 'on', - ], - 'ProtectedArea' => [ - 'description' => 'Protected region. Valid values:'."\n" - ."\n" - .'* **global**: global'."\n" - .'* **chinese_mainland**: Chinese mainland'."\n" - .'* **global_excluding_the_chinese_mainland**: outside the Chinese mainland', - 'type' => 'string', - 'example' => 'global', - ], - 'BandwidthLimit' => [ - 'description' => 'The bandwidth limit of a single instance.', - 'type' => 'string', - 'example' => '40Gbps', - ], - 'QpsLimit' => [ - 'description' => 'The QPS limit.', - 'type' => 'string', - 'example' => '100', - ], - 'SpecInfos' => [ - 'description' => 'The code and configurations of the security rules.', - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Rule' => [ - 'description' => 'The version rule. Valid values:'."\n" - ."\n" - .'* **version_defense_num**: the rule for the number of version mitigation sessions'."\n" - .'* **domain_num**: the rule for the limit on the number of domain names'."\n" - .'* **defence_package_num**: the rule for extra mitigation session plans'."\n", - 'type' => 'string', - 'example' => 'version_defense_num', - ], - 'Configs' => [ - 'description' => 'The configurations of the version rule.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Value' => [ - 'description' => 'The value of the configuration expression of the version rule.'."\n", - 'type' => 'string', - 'example' => '1', - ], - 'Config' => [ - 'description' => 'The configuration code of the version rule. Valid values:'."\n" - ."\n" - .'* **total_defense_num**: the total number of mitigation sessions of the version.'."\n" - .'* **consume_defense_num**: the number of used mitigation sessions of the version.'."\n" - .'* **max_domain_num**: the limit on the number of added domain names.'."\n" - .'* **emain_domain_num**: the number of added domain names.'."\n" - .'* **defence_package_num**: the total number of purchased additional mitigation sessions.'."\n" - .'* **consume_defence_package_num**: the number of used additional mitigation sessions.'."\n", - 'type' => 'string', - 'example' => 'total_defense_num', - ], - 'Expr' => [ - 'description' => 'The configuration expression of the version rule.'."\n", - 'type' => 'string', - 'example' => 'equal', - ], - ], - ], - ], - ], - ], - ], - 'IsSpecialPort' => [ - 'description' => 'Specifies whether custom ports are supported. Valid values:'."\n" - ."\n" - .'* **yes**'."\n" - .'* **no**'."\n", - 'type' => 'string', - 'example' => 'no', - ], + 'Length' => ['description' => 'The length of the value in the key-value pair.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '4'], + 'Value' => ['description' => 'The content of the key. If the value is longer than 256 characters, the system returns the first 100 characters and the last 100 characters, and omits the middle part.', 'type' => 'string', 'title' => '', 'example' => 'test'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'EEEBE525-F576-1196-8DAF-2D70CA3F4D2F'], ], 'description' => '', + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'The parameter is set to an invalid value.'], + ['errorCode' => 'InvalidAccount.Malformed', 'errorMessage' => 'The specified account is invalid.', 'description' => 'The account is invalid. Check whether an account is specified.'], + ['errorCode' => 'InvalidNameSpace.Malformed', 'errorMessage' => 'The specified namespace is invalid.', 'description' => 'The namespace is invalid. Check whether a namespace is specified.'], + ['errorCode' => 'InvalidKey.Malformed', 'errorMessage' => 'The specified key is invalid.', 'description' => 'The key is invalid. Check whether a key is specified.'], + ['errorCode' => 'InvalidKey.ExceedsMaximum', 'errorMessage' => 'The size of the key cannot exceed 512 bytes.', 'description' => 'The key cannot exceed 512 bytes in length.'], + ['errorCode' => 'InvalidValue.ExceedsMaximum', 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.', 'description' => 'The value cannot exceed 2,000,000 bytes in length.'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', - ], + 403 => [ + ['errorCode' => 'InvalidKey.ExceedsCapacity', 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'description' => 'The capacity of the namespace has reached the upper limit. Each namespace can be at most 1 GB.'], + ['errorCode' => 'Unauthorized.InvalidParameters', 'errorMessage' => 'The specified authentication parameters are invalid.', 'description' => 'An authentication parameter is set to an invalid value.'], + ['errorCode' => 'Unauthorized.InvalidTime', 'errorMessage' => 'The specified authentication time is invalid.', 'description' => 'The authentication time parameter you entered is invalid. Check the parameter value and try again.'], + ['errorCode' => 'Unauthorized.InvalidToken', 'errorMessage' => 'Token authentication failed.', 'description' => 'The token you entered is invalid. Please check and enter the correct token and try again.'], + ['errorCode' => 'Unauthorized.InvalidResource', 'errorMessage' => 'Resource authentication failed.', 'description' => 'The specified resource is invalid.'], + ], + [ + ['errorCode' => 'InvalidAccount.NotFound', 'errorMessage' => 'The specified account does not exist.', 'description' => 'The specified account does not exist.'], + ['errorCode' => 'InvalidNameSpace.NotFound', 'errorMessage' => 'The specified namespace does not exist.', 'description' => 'The specified namespace does not exist.'], + ['errorCode' => 'InvalidKey.NotFound', 'errorMessage' => 'The specified key does not exist.', 'description' => 'The specified key does not exist.'], + ], + 406 => [ + ['errorCode' => 'InvalidNameSpace.Duplicate', 'errorMessage' => 'The specified namespace already exists.', 'description' => 'The namespace already exists.'], + ['errorCode' => 'InvalidNameSpace.QuotaFull', 'errorMessage' => 'The maximum number of namespaces is exceeded.', 'description' => 'The number of namespaces has reached the upper limit.'], + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'The number of keys has reached the upper limit.'], + ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests are submitted.', 'description' => 'Do not send requests at a high frequency.'], + ['errorCode' => 'TooQuickRequests', 'errorMessage' => 'Request for putting or deleting keys are frequently submitted.', 'description' => 'Do not perform the key put/delete operation at a high frequency.'], ], ], - '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' => 'DescribeDcdnDdosSpecInfo', - ], - 'DescribeDcdnWafDomain' => [ - 'summary' => 'Queries domain names that have Web Application Firewall (WAF) enabled and the relevant information, including the status of the access control list (ACL), protection against HTTP flood attacks, domain name, and WAF.', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'PutDcdnKvWithHighCapacity', + 'description' => 'This operation provides the same functionality as [PutDcdnKv](~~PutDcdnKv~~) but supports a larger request body. If the request body is small, use the [PutDcdnKv](~~PutDcdnKv~~) operation to reduce the server-side processing time. Calling this operation requires an SDK. For example, if you use the Go SDK, call the PutDcdnKvWithHighCapacityAdvance function.'."\n" + ."\n" + .'```'."\n" + .'func TestPutDcdnKvWithHighCapacity() {'."\n" + .' // Initialize the configuration.'."\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" + .' // Construct the key-value pair request to upload.'."\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" + .' // If the payload is larger than 2 MB, call the high-capacity operation to upload the data.'."\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" + .'}'."\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' => 'All Resource', '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' => 'read', + 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '216660', + 'abilityTreeNodes' => ['FEATUREdcdn4QVGXU'], ], 'parameters' => [ [ - 'name' => 'RegionId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The region where WAF is enabled.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn-hangzhou', - 'enum' => [ - 'cn-hangzhou', - 'ap-southeast-1', - ], - ], + 'schema' => ['description' => 'The accelerated domain name.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com '], ], [ - 'name' => 'DomainName', + 'name' => 'CacheTag', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. If you do not specify an accelerated domain name, all accelerated domain names are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The cache tag. Separate multiple tags with commas.', 'type' => 'string', 'required' => true, 'maxLength' => 16384, 'title' => '', 'example' => 'tag1,tag2'], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'Force', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the resource group. If you leave this parameter empty, the default resource group is used.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '/', - ], + 'schema' => ['description' => 'Specifies whether to refresh all resources associated with the cache tag, or only the resources that have been updated. The default value is false.'."\n" + ."\n" + .'- **true**: Refreshes all resources associated with the tag.'."\n" + .'- **false**: Refreshes only the changed resources associated with the tag.', 'type' => 'boolean', 'required' => false, 'title' => '', 'example' => 'true'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Response schema', 'type' => 'object', 'properties' => [ - 'TotalCount' => [ - 'description' => 'The number of accelerated domain names returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-802B-72F8FD6DA2FE', - ], - 'OutPutDomains' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'AclStatus' => [ - 'description' => 'The status of the ACL. Valid values:'."\n" - ."\n" - .'* 0: disabled'."\n" - .'* 1: enabled'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Status' => [ - 'description' => 'The status of the domain name. Valid values:'."\n" - ."\n" - .'* 1: The domain name is added to WAF, or the domain name is valid.'."\n" - .'* 10: The domain name is being added to WAF.'."\n" - .'* 11: The domain name failed to be added to WAF.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Domain' => [ - 'description' => 'The domain name that has WAF enabled.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'CcStatus' => [ - 'description' => 'The status of protection against HTTP flood attacks. Valid values:'."\n" - ."\n" - .'* 0: disabled'."\n" - .'* 1: enabled'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'WafStatus' => [ - 'description' => 'The status of WAF. Valid values:'."\n" - ."\n" - .'* 0: disabled'."\n" - .'* 1: enabled'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - ], - ], - ], + 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], + 'RefreshTaskId' => ['description' => 'The ID of the refresh task.', 'type' => 'string', 'title' => '', 'example' => '17410889914'], ], ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - [ - 'errorCode' => 'InvalidDomainName', - 'errorMessage' => 'The specified DomainName 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' => 'The ObjectType parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'InvalidObjectPath.Malformed', 'errorMessage' => 'The specified ObjectPath is invalid.', 'description' => 'The ObjectPath parameter is set to an invalid value. Specify a valid value and try again.'], + ['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' => 'Wildcard domain names are not supported.'], + ['errorCode' => 'QuotaPerMinuteExceeded.Refresh', 'errorMessage' => 'You tried to refresh too frequently; please try again later.', 'description' => 'Refresh requests are submitted too frequently. Try again later.'], + ['errorCode' => 'TooMany.Refresh', 'errorMessage' => 'The refresh queue is full; please try again later.', 'description' => 'The maximum number of refresh requests for a domain name has been reached. Try again later.'], + ['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' => ''], ], - 404 => [ - [ - 'errorCode' => 'InvalidDomain.NotFound', - 'errorMessage' => 'The specified domain does not exist.', - ], + 429 => [ + ['errorCode' => 'TooManyRequests', 'errorMessage' => 'Too many requests, please try again later', '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' => 'DescribeDcdnWafDomain', - 'description' => '> You can call this operation up to 50 times per second per account.'."\n", - 'extraInfo' => ' ', - ], - 'CreateDcdnWafPolicy' => [ - 'summary' => 'Creates a Web Application Firewall (WAF) protection policy.', - 'methods' => [ - 'get', - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'RefreshDcdnObjectCacheByCacheTag', + 'summary' => 'After the cache tag feature is enabled, you can call RefreshObjectCacheByCacheTag to refresh content by specifying cache tags.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RefreshDcdnObjectCacheByCacheTag'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:RefreshDcdnObjectCacheByCacheTag', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\",\\n \\"RefreshTaskId\\": \\"17410889914\\"\\n}","type":"json"}]', + ], + 'RefreshDcdnObjectCaches' => [ + 'summary' => 'Refreshes file content on nodes and refreshes the content of specified URLs to cache nodes. Supports batch URL refresh.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -28481,67 +24358,39 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnV3G3FZ', - 'FEATUREdcdnSU2QP6', - ], + 'abilityTreeNodes' => ['FEATUREdcdnBCJPGN'], ], 'parameters' => [ [ - 'name' => 'PolicyName', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The name of the protection policy. The name can be up to 64 characters in length and can contain letters, digits, and underscores (\\_).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'policy_test', - ], - ], - [ - 'name' => 'PolicyType', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to set the current policy as the default policy. Valid values:'."\n" - ."\n" - .'* default: sets the current policy as the default policy.'."\n" - .'* custom: does not set the current policy as the default policy.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'default', - ], + 'name' => 'ObjectPath', + 'in' => 'query', + 'schema' => ['description' => '- Separate multiple URLs or directories with line breaks when submitting them in a single request.'."\n" + .'- The total number of domain names across all URLs in a single request must not exceed 10.', 'type' => 'string', 'required' => true, 'example' => 'http://example.com/example.txt'."\n" + .'http://example.com/example2.txt', 'title' => ''], ], [ - 'name' => 'PolicyStatus', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The status of the protection policy. Valid values:'."\n" - ."\n" - .'* on: The policy is enabled.'."\n" - .'* off: The policy is disabled.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'on', - ], + 'name' => 'ObjectType', + 'in' => 'query', + 'schema' => ['description' => 'The refresh type. Valid values:'."\n" + ."\n" + .'- **File** (default): URL.'."\n" + .'- **Directory**: directory refresh.'."\n" + .'- **Regex**: regular expression-based refresh.'."\n" + .'- **IgnoreParams**: purge by URL with parameters ignored. This refers to removing the `?` and all characters after `?` from the request URL. When you submit a URL with parameters removed through the API, the submitted URL is matched against cached resource URLs after their parameters are also removed. If a cached resource URL matches the submitted URL after parameter removal, the point of presence executes a refresh on the cached resource.'."\n" + ."\n" + .'> - For the feature description of URL refresh and directory refresh, see [Refresh and prefetch resources](~~64936~~).'."\n" + .'> - File refresh directly deletes the resource on the point of presence (POP). When a new request is received, the new resource is retrieved from the origin server via back-to-origin. Other refresh types refresh only changed resources by default. To force a refresh, set the Force parameter to true. For more information, see the description of the Force parameter.', 'type' => 'string', 'required' => false, 'default' => 'File', 'example' => 'File', 'title' => ''], ], [ - 'name' => 'DefenseScene', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The type of the WAF protection policy. Valid values:'."\n" - ."\n" - .'* waf_group: basic web protection'."\n" - .'* custom_acl: custom protection'."\n" - .'* whitelist: IP address whitelist'."\n" - .'* ip_blacklist: IP address blacklist'."\n" - .'* region_block: region blacklist'."\n" - .'* bot: bot management'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'waf_group', - ], + 'name' => 'Force', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to refresh all resources within the corresponding scope when the back-to-origin content is consistent with the origin server resources. Default value: false.'."\n" + .'- **true**: Refreshes all resources within the corresponding scope. When "Refresh All Resources" is selected, if the requested content matches a resource within the corresponding scope, the DCDN point of presence (POP) retrieves the new resource from the origin server via back-to-origin, returns it to the user, and caches the resource again.'."\n" + .'- **false**: Refreshes only changed resources within the corresponding scope. When "Refresh Changed Resources" is selected, if the requested content matches a resource within the corresponding scope, the DCDN point of presence (POP) retrieves the Last-Modified information of the resource from the origin server via back-to-origin. If the information is consistent with the currently cached resource, the cached resource is returned directly. If the information is inconsistent, the new resource is retrieved from the origin server via back-to-origin, returned to the user, and cached again.'."\n" + .'> This parameter takes effect for all refresh types except file refresh.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ @@ -28549,1481 +24398,233 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'PolicyId' => [ - 'description' => 'The ID of the protection policy that you created.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10000001', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-A198-72F8FD6DA2FE', - ], + 'RefreshTaskId' => ['description' => 'The task ID returned for the refresh. Multiple IDs are separated by commas (,).', 'type' => 'string', 'example' => '95248880', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'E5BD4B50-7A02-493A-AE0B-97B9024B4135', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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' => 'SingleRequest.OverLimit', 'errorMessage' => 'A maximum of 1000 URLs are supported for each request.', 'description' => ''], + ['errorCode' => 'InvalidObjectType.Malformed', 'errorMessage' => 'The specified ObjectType is invalid.', 'description' => 'The ObjectType parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'InvalidObjectPath.Malformed', 'errorMessage' => 'The specified ObjectPath is invalid.', 'description' => 'The ObjectPath parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'QuotaExceeded.Refresh', 'errorMessage' => 'Your refresh attempts have exceeded the daily limit.', 'description' => 'The number of refresh tasks on the current day has reached the upper limit. You can call the refresh API operation to query the remaining number of refresh tasks that you want to run on the current day.'], + ['errorCode' => 'InvalidExtensiveDomain.ValueNotSupported', 'errorMessage' => 'The specified ExtensiveDomain is not supported.', 'description' => 'Wildcard domain names are not supported.'], + ['errorCode' => 'QuotaPerMinuteExceeded.Refresh', 'errorMessage' => 'You tried to refresh too frequently; please try again later.', 'description' => 'Refresh requests are submitted too frequently. Try again later.'], + ['errorCode' => 'TooMany.Refresh', 'errorMessage' => 'The refresh queue is full; please try again later.', 'description' => 'The maximum number of refresh requests for a domain name has been reached. Try again later.'], ], - 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.', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RefreshTaskId\\": \\"95248880\\",\\n \\"RequestId\\": \\"E5BD4B50-7A02-493A-AE0B-97B9024B4135\\"\\n}","type":"json"}]', + 'title' => 'Cache purge', + 'description' => '- Request method: POST requests are supported. Parameters are displayed in a form.'."\n" + .'- Related operations: The refresh and prefetch operations include the [RefreshDcdnObjectCaches](~~130620~~) refresh operation and the [PreloadDcdnObjectCaches](~~130636~~) prefetch operation.'."\n" + .'- URL refresh quota (daily): By default, each account can submit up to 10,000 URL refresh requests and 100 directory refresh requests per day. Directory refresh includes subdirectories. If the daily peak bandwidth of your Alibaba Cloud account exceeds 200 Mbit/s, you can request a higher daily quota by <props="china">[Quota Management](~~375348~~)</props><props="intl">[submitting a ticket](https://account.alibabacloud.com/login/login.htm?oauth_callback=https%3A//ticket-intl.console.aliyun.com/%23/ticket/createIndex)</props>. Alibaba Cloud will evaluate and configure the quota based on your actual business requirements.'."\n" + .'- Each request supports up to 1,000 URL refresh requests or 100 directory refresh requests.'."\n" + .'- A maximum of 10,000 URL refresh requests can be submitted per minute for a single domain name.'."\n" + .'- Maximum invocation frequency per user: 30 times per second.'."\n" + ."\n" + .'#### Considerations'."\n" + .'- After a refresh node is submitted and successfully executed, the cached resources on DCDN points of presence (POPs) are invalidated. When you send an access request again, the point of presence (POP) retrieves the required resources from the origin server via back-to-origin and caches them on the POP again. Submitting a large number of refresh nodes clears a large amount of cache, which causes spikes in back-to-origin bandwidth and requests and increases the load on the origin server.'."\n" + .'- A refresh node takes approximately 5 to 6 minutes to take effect after it is submitted. If the time-to-live (TTL) configured for a file or directory is less than 5 minutes, you do not need to perform a refresh operation. Wait for the file or directory cache to expire and update automatically.'."\n" + .'- To use a Resource Access Management (RAM) user to perform refresh or prefetch operations, obtain authorization first. For more information, see [Grant RAM users the refresh and prefetch permissions](~~445051~~).', + 'changeSet' => [ + ['createdAt' => '2023-10-17T08:31:07.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-07-03T07:37:48.000Z', 'description' => 'Error codes changed'], + ], + '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 \\"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' => 'CreateDcdnWafPolicy', - 'description' => '* You can call this operation up to 20 times per second per user.'."\n" - .'* Alibaba Cloud Dynamic Route for CDN (DCDN) supports POST requests.'."\n", ], - 'BatchCreateDcdnWafRules' => [ - 'summary' => 'Creates Web Application Firewall (WAF) protection rules.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'RefreshErObjectCaches' => [ + 'summary' => 'Refreshes caches written through the edge function Cache API and caches written through fetch subrequests. Supports batch URL refresh.', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnV3YEJ8', - ], + 'abilityTreeCode' => '193439', + 'abilityTreeNodes' => ['FEATUREdcdn75UYDO'], ], 'parameters' => [ [ - 'name' => 'PolicyId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the protection policy.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1000001', - ], + 'name' => 'ObjectPath', + 'in' => 'query', + 'schema' => ['description' => 'The URLs to refresh.'."\n" + .'>- Separate multiple URLs with line breaks. Each URL can be up to 1,024 characters in length.'."\n" + .'>- All URLs in a single request must belong to the same domain name.'."\n" + .'>- Each request can contain up to 1,000 URLs.', 'type' => 'string', 'required' => true, 'example' => 'http://example.com/examplefile.txt'."\n" + .'http://example.com/examplefile2.txt', 'title' => ''], ], [ - 'name' => 'RuleConfigs', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The configuration of the protection rule.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '{"name":"ttttt","action":"monitor","conditions":[{"key":"URL","opValue":"match-one","values":"1,2,3,4,5"},{"key":"Header","opValue":"contain-one","subKey":"testheader","values":"6,7,8,9,10"}],"ratelimit":{"target":"header","interval":10,"threshold":5,"ttl":1800,"subKey":"testheadercc","status":{"code":"502","count":5}},"ccStatus":"on","effect":"rule","status":"on"}', - ], + 'name' => 'ObjectType', + 'in' => 'query', + 'schema' => ['description' => 'The refresh type. Valid values:'."\n" + ."\n" + .'- **File** (default): URL.'."\n" + .'- **Directory**: directory refresh.'."\n" + .'- **Regex**: regular expression-based refresh.'."\n" + .'- **IgnoreParams**: purge by URL with parameters ignored. This refers to removing the `?` and all parameters after `?` from the request URL. When you submit a URL with parameters removed through this operation, the submitted URL is matched against cached resource URLs after their parameters are removed. If a cached resource URL matches the submitted URL after parameter removal, the point of presence (POP) executes the refresh on the cached resource.'."\n" + ."\n" + .'>Directory refresh marks resources as expired by default. You cannot delete a directory. Directory refresh marks the corresponding directory on POPs as expired. When a user subsequently accesses the directory, the DCDN POP performs back-to-origin validation with the origin server to check whether the directory has been updated. If updated, the POP retrieves the new version from the origin server and returns it to the user. If not updated, the origin server returns a 304 status code in the response.', 'type' => 'string', 'required' => true, 'example' => 'File', 'title' => ''], + ], + [ + 'name' => 'MergeDomainName', + 'in' => 'query', + 'schema' => ['description' => 'The domain names to merge for refresh. When a refresh is performed, the scheduling node of the merged domain names is refreshed.'."\n" + .'>Separate multiple domain names with commas (,).', 'type' => 'string', 'required' => false, 'example' => 'a.test.com,b.test.com', 'title' => ''], + ], + [ + 'name' => 'RoutineId', + 'in' => 'query', + 'schema' => ['description' => 'The routine ID of the edge function script, also known as the function ID. It is composed of "Name.Subdomain" and serves as the unique identifier for the edge function code.'."\n" + ."\n" + .'>- Specify this parameter when refreshing caches written through the Cache API.'."\n" + .'>- Do not specify this parameter when refreshing caches written through fetch subrequests.', 'type' => 'string', 'required' => false, 'example' => ' test.mysubdomain', 'title' => ''], + ], + [ + 'name' => 'Force', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to refresh all resources in the corresponding directory when the back-to-origin content is inconsistent with the origin server resources. Default value: false.'."\n" + .'- **true**: Refreshes all resources in the corresponding directory.'."\n" + .'- **false**: Refreshes only the changed resources in the corresponding directory.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => '', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-280B-72F8FD6DA2FE', - ], - 'RuleIds' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RuleId' => [ - 'description' => 'The IDs of created rules.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'string', - 'example' => '100001,200002', - ], - ], - ], - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92CF8F'], + 'RefreshTaskId' => ['description' => 'The ID of the refresh task. Multiple IDs are separated by commas (,).', 'type' => 'string', 'example' => '95248880', 'title' => ''], ], + 'example' => '', ], ], ], '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.', - ], - ], - 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' => 'The ObjectType parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'InvalidObjectPath.Malformed', 'errorMessage' => 'The specified ObjectPath is invalid.', 'description' => 'The ObjectPath parameter is set to an invalid value. Specify a valid value and try again.'], + ['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' => 'Wildcard domain names are not supported.'], + ['errorCode' => 'QuotaPerMinuteExceeded.Refresh', 'errorMessage' => 'You tried to refresh too frequently; please try again later.', 'description' => 'Refresh requests are submitted too frequently. Try again later.'], + ['errorCode' => 'TooMany.Refresh', 'errorMessage' => 'The refresh queue is full; please try again later.', 'description' => 'The maximum number of refresh requests for a domain name has been reached. Try again later.'], + ['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' => 'Refresh edge function caches', + 'description' => '> '."\n" + .'> - Request method: POST requests are supported. Parameters are displayed in a form.'."\n" + .'> - Related operations: Refresh operations include the [RefreshDcdnObjectCaches](~~130620~~) operation.'."\n" + .'> - URL refresh quota (daily): By default, each account can submit up to 10,000 URL refresh requests and 100 directory refresh requests per day. Directory refresh includes subdirectories.'."\n" + .'> - Each request can contain up to 1,000 URL refresh requests or 100 directory refresh requests.'."\n" + .'> - Each domain name supports up to 1,000 URL refresh requests per minute.'."\n" + .'> - Maximum number of calls per user: 30 calls per second.', + '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-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' => 'BatchCreateDcdnWafRules', - 'description' => '> You can call this operation up to 20 times per second per account.'."\n", - 'requestParamsDescription' => '## Description of the RuleConfigs parameter'."\n" - ."\n" - .'* RuleConfigs is a list slice. Each struct represents a rule.'."\n" - .'* The fields in the RuleConfigs parameter vary based on the type of the protection policy. The protection policy ID is specified by the PolicyId parameter.'."\n" - ."\n" - .'### Scenario 1: web RegEx protection (waf\\_group)'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|status|String|No|on|Specifies whether to enable the protection rule. Valid values: on and off. Default value: on.|'."\n" - .'|action|String|Yes|block|The action to perform based on the rule. Valid values: block and monitor.|'."\n" - .'|wafGroupIds|String|No|1012|The ID of the WAF rule group. Separate multiple IDs with commas (,). Default value: 1012.|'."\n" - ."\n\n" - .'Sample code for waf\\_group'."\n" - ."\n" - .'```'."\n" - .'// You can configure only one rule for a protection policy of the waf_group type.['."\n" - .' {'."\n" - .' "status": "on",'."\n" - .' "action": "block"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - ."\n" - .'### Scenario 2: custom rules (custom\\_acl)'."\n" - ."\n" - .'|Name|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|name|string|Yes|acl\\_1|The name of the protection rule. The name can be up to 64 characters in length and can contain letters, digits, and underscores (\\_).|'."\n" - .'|status|string|No|on|Valid values: on and off. Default value: on.|'."\n" - .'|conditions|Condition|Yes|\\[ {"key": "URI", "subKey": "","opValue": "contain", "values": "/login.php" }\\]|The trigger conditions. For more information, see **Table 1: Fields in the conditions parameter**.|'."\n" - .'|ccStatus|string|Yes|off|Specifies whether to enable rate limiting. Valid values: on and off.|'."\n" - .'|rateLimit|RateLimit|No|{ "target": "Header", "subKey": "User-Agent", "interval": 5, "threshold": 2, "ttl": 1800}|The rate limiting rule. If you set ccStatus to on, you must configure this parameter. For more information, see **Table 2: Fields in the rateLimit parameter**.|'."\n" - .'|effect|string|No|service|The effective scope of the rate limiting blacklist. If you set ccStatus to on, you must configure this parameter. Valid values: rule (takes effect for the current rule) and service (takes effect globally).|'."\n" - .'|action|string|Yes|deny|The action to perform based on the rule. Valid values: deny, js (JavaScript validation), and monitor.|'."\n" - ."\n\n" - .'Table 1: Fields in the conditions parameter'."\n" - ."\n" - .'|Name|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|Key|string|Yes|Query String Parameter|The match field. For more information, see [DescribeDcdnWafFilterInfo](~~423285~~).|'."\n" - .'|subKey|string|No|action|The match subfield. For more information, see [DescribeDcdnWafFilterInfo](~~423285~~).|'."\n" - .'|opValue|String|Yes|eq|The logical operator. For more information, see [DescribeDcdnWafFilterInfo](~~423285~~).|'."\n" - .'|values|String|No|js|The content to match. Separate multiple values with commas (,). For more information, see [DescribeDcdnWafFilterInfo](~~423285~~).|'."\n" - ."\n\n" - .'Table 2: Fields in the rateLimit parameter'."\n" - ."\n" - .'|Name|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|target|string|Yes|Header|The statistical field for rate limiting. IP: calculates the frequency at which requests are sent from a specified IP address. Header: calculates the frequency of requests that contain the specified header. Query String Parameter: calculates the frequency of requests that contain the specified parameter. Cookie Name: calculates the frequency of requests that contain the specified cookie. Session: calculates the frequency of requests that are transmitted over a specified session.|'."\n" - .'|subKey|string|No|User-Agent|The subfield of the target field. If you set target to Header, Query String Parameter, or Cookie Name, you must configure subKey.|'."\n" - .'|Interval|Integer|Yes|5|The statistical interval. Valid values: 5 to 1800. Unit: seconds.|'."\n" - .'|threshold|Integer|Yes|2|The number of requests that trigger rate limiting. Valid values: 2 to 500000.|'."\n" - .'|ttl|Integer|Yes|1800|The validity period of the blacklist. Valid values: 60 to 86400. Unit: seconds.|'."\n" - .'|status|RateLimitStatus|No|{"code": "404", "ratio": 10}|Information about the HTTP status code. For more information, see **Table 3: Fields in the RateLimitStatus parameter**.|'."\n" - ."\n\n" - .'Table 3: Fields in the RateLimitStatus parameter'."\n" - ."\n" - .'|Name|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|codet|string|Yes|404|The HTTP status code.|'."\n" - .'|ratio|Integer|No|10|The percentage of HTTP status codes. Valid values: 1 to 100. You can configure either ratio or count.|'."\n" - .'|count|Integer|No|10|The number of times that the HTTP status code that was returned. Valid values: 2 to 50000. You can configure either ratio or count.|'."\n" - ."\n\n" - .'Sample code for custom\\_acl'."\n" - ."\n" - .'```'."\n" - .'['."\n" - .'// Access control'."\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" - .'// Rate limiting'."\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" - .'### Scenario 3: whitelist (whitelist)'."\n" - ."\n" - .'|Name|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|name|string|Yes|on|The name of the protection rule. The name can be up to 64 characters in length and can contain letters, digits, and underscores (\\_).|'."\n" - .'|status|string|No|on|Specifies whether to enable the protection rule. Default value: on. Valid values: on and off.|'."\n" - .'|conditions|Condition|Yes|\\[{ "key": "Http-Method","subKey": "","opValue": "match-one", "values": "GET,POST,DELETE" }\\]|The conditions that trigger the rule. For more information, see **Table 1: Fields in the conditions parameter**.|'."\n" - .'|tags|String|Yes|\\[ "waf\\_group", "custom\\_acl"\\]|The types of the protection policies.|'."\n" - .'|regularTypes|String|No|\\[ \\[ "sqli", "xss","code\\_exec", "crlf", "lfilei", "rfilei", "webshell","vvip", "other"\\]|The type of the regular expression. If the value of the tags field contains waf\\_group, you can specify this field. Valid values: \\["sqli", "xss", "code\\_exec", "crlf", "lfilei", "rfilei", "webshell", "vvip", and "other"\\].|'."\n" - .'|regularRules|String|No|\\[ "100001", "100002", "100003"\\]|The regular expression. If the value of the tags field contains waf\\_group, you can configure only regularRules or regularTypes. The value must be a string that consists of six digits.|'."\n" - ."\n\n" - .'Sample code for whitelist:'."\n" - ."\n" - .'```'."\n" - .'['."\n" - .'// Skip all scenarios.'."\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" - .'// Skip the IDs of the rules that are specified in waf_group. {'."\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" - .'// Skip the types of the rules that are specified in 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" - .'// Skip custom rules.'."\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" - .'// Skip the IP address blacklist.'."\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" - .'// Skip region blocking.'."\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" - ."\n" - .'### Scenario 4: IP address blacklist (ip\\_blacklist)'."\n" - ."\n" - .'|Name|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|name|string|Yes|ipblacklist|The name of the protection rule. The name can be up to 64 characters in length and can contain letters, digits, and underscores (\\_).|'."\n" - .'|status|string|No|on|Specifies whether to enable the protection rule. Valid values: on and off. Default value: on.|'."\n" - .'|remoteAddr|\\[\\]String|Yes|\\["192.168.0.1","10.10.10.10/24","::1","abcd::abcd","BCDE::BCDE"\\]|Filter by IP address. For more information, see [DescribeDcdnWafFilterInfo](~~423285~~).|'."\n" - .'|action|string|Yes|deny|The action to perform when the rule is matched. Valid values: deny and monitor.|'."\n" - ."\n\n" - .'Sample code for ipblacklist:'."\n" - ."\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" - .'### Scenario 5: region blacklist (region\\_block)'."\n" - ."\n" - .'|Name|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|status|string|No|on|Specifies whether to enable the protection rule. Valid values: on and off. Default value: on.|'."\n" - .'|cnRegionList|string|No|110000,TW,MO|The blocked regions in the Chinese mainland. Separate the regions with commas (,). For more information about the regions that can be blocked, see [DescribeDcdnWafGeoInfo](~~433207~~).|'."\n" - .'|otherRegionList|string|No|JP,GB|The blocked regions outside the Chinese mainland. Separate the regions with commas (,). For more information about the regions that can be blocked, see [DescribeDcdnWafGeoInfo](~~433207~~).|'."\n" - .'|action|string|Yes|deny|The action to perform when the rule is matched. Valid values: deny and monitor.|'."\n" - ."\n\n" - .'**Note** You must specify at least one of the ProcessId or ProcessName parameters.'."\n" - ."\n" - .'Sample code for region\\_block:'."\n" - ."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "status": "on",'."\n" - .' "cnRegionList": "110000,TW,MO",'."\n" - .' "otherRegionList": "JP,GB",'."\n" - .' "action": "deny"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - ."\n" - .'### Scenario 6: bot management (bot)'."\n" - ."\n" - .'**Rule template**'."\n" - ."\n" - .'The following table describes the rule parameters. For more information about parameter values, see the following tables.'."\n" - ."\n" - .'|Parameter|Type|Required|Description|'."\n" - .'|---|---|---|---|'."\n" - .'|type|String|Yes|The type of the rule. For more information, see the rule classification.|'."\n" - .'|status|String|Yes|The status of the rule. Valid values: on and off.|'."\n" - .'|config|TargetType|No|The configuration of the rule. For more information, see Rule classification.|'."\n" - .'|action|String|No|The action to perform when the rule is matched. For more information, see Rule classification.|'."\n" - ."\n\n" - .'**Rule type 1: protection object type**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|type|String|Yes|target\\_type|The type of the rule. Set the value to target\\_type.|'."\n" - .'|status|String|Yes|on|Specifies whether to enable the rule. Set the value to on.|'."\n" - .'|config|TargetType|No|{"target":"app"}|The configuration of the rule. Format:target: the type of the protection object. This field is required. Valid values: web (web pages and browsers) and app (apps).|'."\n" - .'|action|String|No|Left empty|The action to perform when the rule is matched. Leave this parameter empty.|'."\n" - ."\n\n" - .'Configuration example of the protection target type:'."\n" - ."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type":"target_type",'."\n" - .' "status":"on",'."\n" - .' "config":{"target":"app"},'."\n" - .' "action":""'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - ."\n" - .'**Rule type 2: Web SDK integration**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|type|String|Yes|web\\_sdk|The type of the rule. Set the value to web\\_sdk.|'."\n" - .'|status|String|Yes|on|Specifies whether to enable the rule. Set the value to on.|'."\n" - .'|config|WebSdk|No|{"mode":"automatic","crossDomain":"example.com"}|The configuration of the rule.(Required) mode: the integration mode of the Web SDK. Valid values: automatic and manual.(Optional) crossDomain: cross-origin domain name calling. This parameter takes effect only when the value of mode is automatic.|'."\n" - .'|action|String|No|Left empty|The action to perform when the rule is matched. Leave this parameter empty.|'."\n" - ."\n\n" - .'Configuration example of Web SDK integration:'."\n" - ."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type":"web_sdk",'."\n" - .' "status":"on",'."\n" - .' "config":{"mode":"automatic","crossDomain":"example.com"},'."\n" - .' "action":""'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - ."\n" - .'**Rule classification 3: protection target characteristics**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|type|String|Yes|traffic\\_feature|The type of the rule. Set the value to traffic\\_feature.|'."\n" - .'|status|String|Yes|on|Specifies whether to enable the rule. Set the value to on.|'."\n" - .'|config|TrafficFeature|Yes|{"conditions":\\[{"key":"Header","subKey":"User-Agent","opValue":"contain","values":"Chrome"},{"key":"IP","subKey":"","opValue":"ip-contain","values":"192.168.0.1/24"}\\]}|The configuration of the rule. For more information, see **condition**.|'."\n" - .'|action|String|No|Left empty|The action to perform when the rule is matched. Leave this parameter empty.|'."\n" - ."\n\n" - .'**condition** (match condition)'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|key|String|Yes|Header|The match field. For more information, see [DescribeDcdnWafFilterInfo](~~423285~~).|'."\n" - .'|subKey|String|No|User-Agent|The match subfield. For more information, see [DescribeDcdnWafFilterInfo](~~423285~~).|'."\n" - .'|opValue|String|Yes|contain|The operator. For more information, see [DescribeDcdnWafFilterInfo](~~423285~~).|'."\n" - .'|values|String|No|Chrome|The content to match. Separate multiple values with commas (,). For more information, see [DescribeDcdnWafFilterInfo](~~423285~~).|'."\n" - ."\n\n" - .'Configuration example of protection target characteristics:'."\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" - ."\n" - .'**Rule classification 4: legitimate bot management**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|type|String|Yes|intelligence\\_crawler|The type of the rule. Set the value to intelligence\\_crawler.|'."\n" - .'|status|String|Yes|on|Specifies whether to enable the rule. Set the value to on.|'."\n" - .'|config|IntelligenceCrawler|No|{"name":"intelligence\\_crawler\\_baidu"}|The configuration of the rule. For more information, see **name (spider whitelist)**.|'."\n" - .'|action|String|Yes|bypass|The action to perform when the rule is matched. Set the value to bypass.|'."\n" - ."\n\n" - .'**name (spider whitelist)**'."\n" - ."\n" - .'|Value|Description|'."\n" - .'|---|---|'."\n" - .'|intelligence\\_crawler\\_all|Whitelist for authorized search engines, such as Google, Bing, Baidu, Sogou, 360, and Yandex.|'."\n" - .'|intelligence\\_crawler\\_baidu|Baidu spider whitelist|'."\n" - .'|intelligence\\_crawler\\_sogou|Sogou spider whitelist|'."\n" - .'|intelligence\\_crawler\\_360|360 spider whitelist|'."\n" - .'|intelligence\\_crawler\\_google|Google spider whitelist|'."\n" - .'|intelligence\\_crawler\\_bing|Bing spider whitelist|'."\n" - .'|intelligence\\_crawler\\_yandex|Yandex Spider Whitelist|'."\n" - ."\n\n" - .'Configuration example of legitimate bot management:'."\n" - ."\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" - ."\n" - .'**Rule classification 5: script-based bot block (JavaScript)**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|type|String|Yes|js|The type of the rule. Set the value to js.|'."\n" - .'|status|String|Yes|on|Specifies whether to enable the rule. Valid values: on and off.|'."\n" - .'|config|Js|No|Left empty|The configuration of the rule. Leave the parameter empty.|'."\n" - .'|action|String|Yes|js|The action to perform when the rule is matched. Set the value to js (JavaScript validation).|'."\n" - ."\n\n" - .'Configuration example of a script-based bot block (JavaScript)'."\n" - ."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type":"js",'."\n" - .' "status":"on",'."\n" - .' "config":{},'."\n" - .' "action":"js"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - ."\n" - .'**Rule classification 6: advanced bot defense (dynamic token-based authentication)**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|type|String|Yes|sigchl|The type of the rule. Set the value to sigchl.|'."\n" - .'|status|String|Yes|on|Specifies whether to enable the rule. Valid values: on and off.|'."\n" - .'|config|Sigchl|No|{"sigchl":\\["sig","replay","driver"\\]}|The configuration of the rule. Format:(Required) sigchl: signature-based verification for request data. Valid values: sig (signature verification exception),replay (signature timestamp exception), and driver (WebDriver attack).|'."\n" - .'|action|String|Yes|sigchl|The action to perform when the rule is matched. Set the value to sigchl (block).|'."\n" - ."\n\n" - .'Configuration example of advanced bot defense (dynamic token-based authentication):'."\n" - ."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type":"sigchl",'."\n" - .' "status":"on",'."\n" - .' "config":{"sigchl":["sig","replay","driver"]},'."\n" - .' "action":"sigchl"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - ."\n" - .'**Rule classification 7: intelligent protection**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|type|String|Yes|algorithm|The type of the rule. Set the value to algorithm.|'."\n" - .'|status|String|Yes|on|Specifies whether to enable the rule. Valid values: on and off.|'."\n" - .'|config|Algorithm|No|Left empty|The configuration of the rule. Leave the parameter empty.|'."\n" - .'|action|String|Yes|captcha|The action to perform when the rule is matched. Valid values: monitor and captcha.|'."\n" - ."\n\n" - .'Configuration example of intelligent protection:'."\n" - ."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type":"algorithm",'."\n" - .' "status":"on",'."\n" - .' "config":{},'."\n" - .' "action":"captcha"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - ."\n" - .'**Rule classification 8: IP address throttling**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|type|String|Yes|custom\\_cc\\_ip|The type of the rule. Set the value to custom\\_cc\\_ip.|'."\n" - .'|status|String|Yes|on|Specifies whether to enable the rule. Valid values: on and off.|'."\n" - .'|config|CustomCcIp|Yes|{"interval":20,"target":"IP","threshold":50,"ttl":2800}|The configuration of the rule. For more information, see **Fields in the config parameter of IP address throttling**.|'."\n" - .'|action|String|Yes|monitor|The action to perform when the rule is matched. Valid values: deny, monitor, and captcha (only for web).|'."\n" - ."\n\n" - .'**Fields in the config parameter of IP address throttling**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|target|String|Yes|IP|The statistical field of rate limiting. Set the value to IP.|'."\n" - .'|subKey|String|No|Left empty|The subfield of the target field. Leave the value empty.|'."\n" - .'|Interval|Integer|Yes|20|The statistical interval. Valid values: 5 to 1800. Unit: seconds.|'."\n" - .'|threshold|Integer|Yes|50|The number of requests that trigger rate limiting. Valid values: 2 to 50000.|'."\n" - .'|ttl|Integer|Yes|2800|The validity period of the blacklist. Valid values: 60 to 86400. Unit: seconds.|'."\n" - ."\n\n" - .'Configuration example of IP address throttling:'."\n" - ."\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" - .'**Rule classification 9: device throttling**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|type|String|Yes|custom\\_cc\\_dev|The type of the rule. Set the value to custom\\_cc\\_dev.|'."\n" - .'|status|String|Yes|on|Specifies whether to enable the rule. Valid values: on and off.|'."\n" - .'|config|CustomCcDev|Yes|{"interval":20,"target":"Header","subKey":"aliwaf\\_wxbb\\_umid","threshold":50,"ttl":2800}|The configuration of the rule. For more information, see **Fields in the config parameter of device throttling**.|'."\n" - .'|action|String|Yes|monitor|The action to perform when the rule is matched. Valid values: deny and monitor.|'."\n" - ."\n\n" - .'**Fields in the config parameter of device throttling**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|target|String|Yes|Header|The statistical field for rate limiting. Set the value to Header.|'."\n" - .'|subKey|String|No|aliwaf\\_wxbb\\_umid|The subfield of the target field. Set the value to aliwaf\\_wxbb\\_umid.|'."\n" - .'|Interval|Integer|Yes|20|The statistical interval. Valid values: 5 to 1800. Unit: seconds.|'."\n" - .'|threshold|Integer|Yes|50|The number of requests that trigger rate limiting. Valid values: 2 to 50000.|'."\n" - .'|ttl|Integer|Yes|2800|The validity period of the blacklist. Valid values: 60 to 86400. Unit: seconds.|'."\n" - ."\n\n" - .'Configuration example of device throttling:'."\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" - .'**Rule classification 10: custom session-based throttling**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|type|String|Yes|custom\\_cc|The type of the rule. Set the value to custom\\_cc.|'."\n" - .'|status|String|Yes|on|Specifies whether to enable the rule. Valid values: on and off.|'."\n" - .'|config|CustomCcIp|Yes|{"interval":10,"target":"Query String Parameter","subKey":"arg","threshold":30,"ttl":1800}|The configuration of the rule. For more information, see **Fields in the config parameter of custom session-based throttling**.|'."\n" - .'|action|String|Yes|monitor|The action to perform when the rule is matched. Valid values: deny, monitor, and captcha (only for web).|'."\n" - ."\n\n" - .'**Fields in the config parameter of custom session-based throttling**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|target|String|Yes|Query String Parameter|The statistical field for rate limiting. Valid values: Header, calculates the frequency of requests that contain the specified header; Query String Parameter, calculates the frequency of requests that contain the specified parameter; Cookie Name, calculates the frequency of requests that contain the specified cookie; and Session, calculates the frequency of requests that are transmitted over a specified session.|'."\n" - .'|subKey|String|No|arg|The subfield of the target field. You can customize the value.|'."\n" - .'|Interval|Integer|Yes|10|The statistical interval. Valid values: 5 to 1800. Unit: seconds.|'."\n" - .'|threshold|Integer|Yes|30|The number of requests that trigger rate limiting. Valid values: 2 to 50000.|'."\n" - .'|ttl|Integer|Yes|2800|The validity period of the blacklist. Valid values: 60 to 86400. Unit: seconds.|'."\n" - ."\n\n" - .'Configuration example of custom session-based throttling:'."\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" - .'**Rule classification 11: bot threat intelligence library**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|type|String|Yes|intelligence|The type of the rule. Set the value to intelligence.|'."\n" - .'|status|String|Yes|on|Specifies whether to enable the rule. Valid values: on and off.|'."\n" - .'|config|Intelligence|No|Left empty|The configuration of the rule. Leave the parameter empty.|'."\n" - .'|action|String|Yes|captcha|The action to perform when the rule is matched. Valid values: monitor and captcha.|'."\n" - ."\n\n" - .'Configuration example of bot threat intelligence library:'."\n" - ."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type":"intelligence",'."\n" - .' "status":"on",'."\n" - .' "config":{},'."\n" - .' "action":"captcha"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - ."\n" - .'**Rule classification 12: data center blacklist**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|type|String|Yes|intelligence\\_idc|The type of the rule. Set the value to intelligence\\_idc.|'."\n" - .'|status|String|Yes|on|Specifies whether to enable the rule. Valid values: on and off.|'."\n" - .'|config|IntelligenceIdc|Yes|{"name":"intelligence\\_idc\\_alibaba"}|The configuration of the rule. For more information, see **Values of name**.|'."\n" - .'|action|String|Yes|captcha|The action to perform when the rule is matched. Valid values: deny, monitor, and captcha.|'."\n" - ."\n\n" - .'**Values of name**'."\n" - ."\n" - .'|Parameter Value|Definition|'."\n" - .'|---|---|'."\n" - .'|intelligence\\_idc\\_alibaba|Data center IP address library-Alibaba Cloud|'."\n" - .'|intelligence\\_idc\\_tencent|Data center IP address library-Tencent Cloud|'."\n" - .'|intelligence\\_idc\\_mtyun|Data center IP address library-Meituan Open Services|'."\n" - .'|intelligence\\_idc\\_vnet|Data center IP address library-21Vianet|'."\n" - .'|intelligence\\_idc\\_other|Data center IP address library-Others|'."\n" - ."\n\n" - .'Configuration example of data center blacklist'."\n" - ."\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" - .'**Rule classification 13: fake spider blocking**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|type|String|Yes|intelligence\\_fake\\_crawler|The type of the rule. Set the value to intelligence\\_fake\\_crawler.|'."\n" - .'|status|String|Yes|on|Specifies whether to enable the rule. Valid values: on and off.|'."\n" - .'|config|IntelligenceFakeCrawler|No|Left empty|The configuration of the rule. Leave the parameter empty.|'."\n" - .'|action|String|Yes|deny|The action to perform when the rule is matched. Set the value to deny.|'."\n" - ."\n\n" - .'Configuration example of fake spider blocking:'."\n" - ."\n" - .'```'."\n" - .'['."\n" - .' {'."\n" - .' "type": "intelligence_fake_crawler",'."\n" - .' "status": "on",'."\n" - .' "config":{},'."\n" - .' "action": "deny"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - ."\n" - .'**Rule classification 14: bot characteristic detection**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|type|String|Yes|app\\_sdk|The type of the rule. Set the value to app\\_sdk.|'."\n" - .'|status|String|Yes|on|Specifies whether to enable the rule. Set the value to on.|'."\n" - .'|config|AppSdk|Yes|{"featureAbnormal":\\["simulator","proxy","root","debugged","hook","virtual","antiReplay","signInvalid"\\],"customSignStatus":"on","customSign":{"key":"header","value":"ua"}}|The configuration of the rule. For more information, see **Fields in the config parameter of bot characteristic detection**.|'."\n" - .'|action|String|Yes|monitor|The action to perform when the rule is matched. Valid values: deny and monitor.|'."\n" - ."\n\n" - .'**Fields in the config parameter of bot characteristic detection**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|featureAbnormal|\\[\\]String|Yes|simulator|signInvalid: The app signature is invalid.antiReplay: The signature expired.simulator: Uses a simulator.proxy: Uses a proxy.root: Root device.debugged: The debugging mode.hook: The app is hooked.virtual: Multiboxing.|'."\n" - .'|customSignStatus|String|No|on|Specifies whether to enable the custom signature field. Valid values: on and off.|'."\n" - .'|customSign|CustomSign|No|{"key":"header","value":"ua"}|The custom signature field. Format:(Required) key: the name of the field. Valid values: header, arg, and cookie.(Required) value: the value of the field.|'."\n" - ."\n\n" - .'Configuration example of bot characteristic detection:'."\n" - ."\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" - .'**Rule classification 15: advanced protection (secondary packaging detection)**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|type|String|Yes|app\\_package|The type of the rule. Set the value to app\\_package.|'."\n" - .'|status|String|Yes|on|Specifies whether to enable the rule. Set the value to on.|'."\n" - .'|config|AppPackage|No|{"packageSigns":\\[{"name":"aaaaa","sign":"bbbb"},{"name":"cccc","sign":"dddd"}\\]}|The configuration of the rule. For more information, see **Fields in the packageSigns parameter**.|'."\n" - .'|action|String|Yes|monitor|The action to perform when the rule is matched. Valid values: deny and monitor.|'."\n" - ."\n\n" - .'**Fields in the packageSigns parameter**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|name|String|Yes|aaaaa|The valid package name.|'."\n" - .'|sign|String|No|bbbb|The signature of the package.|'."\n" - ."\n\n" - .'Configuration examples of advanced protection (secondary packaging detection):'."\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" - ."\n" - .'**Configuration example of bot management and web page/browser protection**'."\n" - ."\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" - ."\n" - .'**Configuration example of bot management and app protection**'."\n" - ."\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" - .'### Scenario 7: scan protection (anti\\_scan)'."\n" - ."\n" - .'**Rule template**'."\n" - ."\n" - .'The following table describes the rule parameters. For more information about parameter values, see the following tables.'."\n" - ."\n" - .'|Parameter|Type|Required|Description|'."\n" - .'|---|---|---|---|'."\n" - .'|type|String|Yes|The type of the rule. For more information, see the rule classification.|'."\n" - .'|status|String|No|The status of the rule. Valid values: on and off.|'."\n" - .'|config|Type|No|The configuration of the rule. For more information, see the rule classification.|'."\n" - .'|action|String|No|The action to perform when the rule is matched. For more information, see the rule classification.|'."\n" - ."\n\n" - .'**Rule type 1: high-frequency scanning blocking**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|type|String|Yes|high\\_frequency|The type of the rule. Set the value to high\\_frequency.|'."\n" - .'|status|String|Yes|on|Specifies whether to enable the rule. Valid values: on and off. Default value: on.|'."\n" - .'|config|HighFrequency|No|{"target":"IP","interval":20,"wafBlockThreshold":20,"ttl":1800,"distinctWafRuleThreshold":2}|The configuration of the rule. For more information, see the following structure string.|'."\n" - .'|action|String|No|deny|The action to perform when the rule is matched. Valid values: deny and monitor.|'."\n" - ."\n\n" - .'* Fields in the HighFrequency parameter'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|target|String|Yes|IP|The statistical field for rate limiting. Valid values: IP, Session, Header, Query String Parameter, and Cookie Name.|'."\n" - .'|subKey|String|No|yoursubKey|The subfield of a statistical field. This parameter is valid if you set target to Header, Query String Parameter, or Cookie Name. For example, if you set target to Header, the value of subKey is the key of the header.|'."\n" - .'|interval|Integer|Yes|20|The statistical interval. Valid values: 5 to 1800. Unit: seconds.|'."\n" - .'|wafBlockThreshold|Integer|Yes|20|The number of times that basic protection rules can be triggered. Valid values: 3 to 50000.|'."\n" - .'|ttl|Integer|Yes|1800|The blocking duration. Valid values: 60 to 86400. Unit: seconds.|'."\n" - .'|distinctWafRuleThreshold|Integer|Yes|2|The threshold of triggered rules. Valid values: 1 to 50.|'."\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" - .'```'."\n" - ."\n" - .'**Rule type 2: directory traversal blocking**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|type|String|Yes|directory\\_traversal|The type of the rule. Set the value to directory\\_traversal.|'."\n" - .'|status|String|Yes|on|Specifies whether to enable the rule. Valid values: on and off. Default value: on.|'."\n" - .'|config|DirectoryTraversal|No|{"target":"IP","interval":10,"threshold":50,"status":{"code":"404","ratio":70,"count":50},"ttl":1800}|The configuration of the rule. For more information, see the following structure string.|'."\n" - .'|action|String|No|deny|The action to perform when the rule is matched. Valid values: deny and monitor.|'."\n" - ."\n\n" - .'* Fields in the DirectoryTraversal parameter'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|target|String|Yes|IP|The statistical field for rate limiting. Valid values: IP, Session, Header, Query String Parameter, and Cookie Name.|'."\n" - .'|subKey|String|No|yoursubKey|The subfield of a statistical field. This parameter is valid if you set target to Header, Query String Parameter, or Cookie Name. For example, if you set target to Header, the value of subKey is the key of the header.|'."\n" - .'|interval|Integer|Yes|10|The statistical interval. Valid values: 5 to 1800. Unit: seconds.|'."\n" - .'|threshold|Integer|Yes|50|The number of times that the protected object is requested. Valid values: 2 to 50000.|'."\n" - .'|status|RateLimitStatus|Yes|{"code":"404","ratio":70,"count":50}|The response code.|'."\n" - .'|ttl|Integer|Yes|1800|The blocking duration. Valid values: 60 to 86400. Unit: seconds.|'."\n" - ."\n\n" - .'* Fields in the RateLimitStatus parameter'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|code|String|Yes|Example|The HTTP status code. Set the value to 404.|'."\n" - .'|ratio|Integer|Yes|Example|The percentage of HTTP 404 status codes. Valid values: 1 to 100.|'."\n" - .'|count|Integer|Yes|Example|The number of non-existent directories. Valid values: 2 to 50000.|'."\n" - ."\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" - .'**Rule type 3: scanner blocking**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|type|String|Yes|scan\\_tools|The type of the rule. Set the value to scan\\_tools.|'."\n" - .'|status|String|Yes|on|Specifies whether to enable the rule. Valid values: on and off. Default value: on.|'."\n" - .'|config|ScanTools|No|No default value|The configuration of the rule. Leave this parameter empty.|'."\n" - .'|action|String|No|deny|The action to perform when the rule is matched. Valid values: deny and monitor.|'."\n" - ."\n\n" - .'```json'."\n" - .'['."\n" - .' {'."\n" - .' "type":"scan_tools",'."\n" - .' "status":"on",'."\n" - .' "config":{},'."\n" - .' "action":"deny"'."\n" - .' }'."\n" - .']'."\n" - .'```'."\n" - ."\n" - .'**Final parameter combination**'."\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' => 'Changes the name, status, or configurations of a protection rule.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'RefreshErObjectCachesByCacheTag' => [ + 'summary' => 'Refreshes content using a cache tag in Edge Routine (ER) scenarios.', + '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'], + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'RuleId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the protection rule. You can specify only one ID in each request.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '200001', - ], + 'name' => 'Domain', + 'in' => 'query', + 'schema' => ['description' => 'The domain name that the ER component uses for fetch requests.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], [ - 'name' => 'RuleStatus', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The new status of the protection rule. Valid values:'."\n" - ."\n" - .'* **on**'."\n" - .'* **off**'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'off', - ], + 'name' => 'CacheTag', + 'in' => 'query', + 'schema' => ['description' => 'The cache tag. Separate multiple tags with commas.', 'type' => 'string', 'required' => true, 'example' => 'tag1,tag2', 'title' => ''], ], [ - 'name' => 'RuleName', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The new name of the protection rule.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'name' => 'MergeDomainName', + 'in' => 'query', + 'schema' => ['description' => 'The domain names for merged refresh operations. During the refresh, the points of presence (POPs) of the specified domain names are merged.'."\n" + ."\n" + .'> Separate multiple domain names with commas (,).', 'type' => 'string', 'required' => false, 'example' => 'a.test.com,b.test.com', 'title' => ''], ], [ - 'name' => 'RuleConfig', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The new configurations of the protection rule.'."\n" - ."\n" - .'> After you modify the configurations of the protection rule, the previous configurations are overwritten.'."\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\\"}}\'', - ], + 'name' => 'Force', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to refresh resources within the specified scope when the back-to-origin content is consistent with the resource on the origin server. The default value is false.'."\n" + ."\n" + .'- **true**: Refreshes all resources within the specified scope. If a user request matches a resource in the scope, DCDN POPs directly fetch the latest resource from the origin server, return it to the user, and then cache the resource.'."\n" + ."\n" + .'- **false**: Refreshes only updated resources within the specified scope. If a user request matches a resource in the scope, DCDN POPs fetch the Last-Modified information from the origin server. If the Last-Modified value is the same as that of the cached resource, the cached resource is returned. Otherwise, DCDN POPs fetch the latest resource from the origin server, return it to the user, and then cache the resource.'."\n" + ."\n" + .'> This parameter applies to all refresh types except for file refreshes.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], ], ], 'responses' => [ @@ -30031,107 +24632,59 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-3C2B-72F8FD6DA2FE', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => 'EEEBE525-F576-1196-8DAF-2D70CA3F4D2F'."\n"], + 'RefreshTaskId' => ['description' => 'The ID of the refresh task.', 'type' => 'string', 'example' => '17410889914', 'title' => ''], ], + 'title' => '', + 'description' => 'Schema of Response', + 'example' => '', ], ], ], '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.', - ], - ], - 403 => [ - [ - 'errorCode' => '%s.NotSupport', - 'errorMessage' => 'The specified resource type %s is not supported.', - ], - [ - 'errorCode' => '%s.OverQuota', - 'errorMessage' => 'The quantity of %s exceeds the quota.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', - ], - ], - ], - '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' => 'ModifyDcdnWafRule', - 'description' => '* You can call this operation up to 20 times per second per account.'."\n" - .'* Alibaba Cloud Dynamic Content Delivery Network (DCDN) supports POST requests.'."\n" - .'* You must configure at least one of the **RuleStatus**, **RuleName** and **RuleConfig** parameters.'."\n", + ['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' => 'The ObjectType parameter is set to an invalid value. Specify a valid value and try again.'], + ['errorCode' => 'InvalidObjectPath.Malformed', 'errorMessage' => 'The specified ObjectPath is invalid.', 'description' => 'The ObjectPath parameter is set to an invalid value. Specify a valid value and try again.'], + ['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' => 'Wildcard domain names are not supported.'], + ['errorCode' => 'QuotaPerMinuteExceeded.Refresh', 'errorMessage' => 'You tried to refresh too frequently; please try again later.', 'description' => 'Refresh requests are submitted too frequently. Try again later.'], + ['errorCode' => 'TooMany.Refresh', 'errorMessage' => 'The refresh queue is full; please try again later.', 'description' => 'The maximum number of refresh requests for a domain name has been reached. Try again later.'], + ['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' => 'RefreshErObjectCachesByCacheTag', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"EEEBE525-F576-1196-8DAF-2D70CA3F4D2F\\\\n\\",\\n \\"RefreshTaskId\\": \\"17410889914\\"\\n}","type":"json"}]', ], - 'BatchModifyDcdnWafRules' => [ - 'summary' => 'Modifies multiple Web Application Firewall (WAF) protection rules. Only Bot management rules can be modified.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'RollbackDcdnStagingConfig' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', - 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnV3YEJ8', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'PolicyId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the protection policy.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '10000001', - ], - ], - [ - 'name' => 'RuleConfigs', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The configurations of the protection rule.'."\n", - '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' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => 'The accelerated domain name. Only one domain name is supported.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], ], ], 'responses' => [ @@ -30139,73 +24692,48 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-XXXX-72F8FD6DA2FE', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], + 'description' => '', + 'title' => '', ], ], ], '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.', - ], + 404 => [ + ['errorCode' => 'StagingConfig.NotFound', 'errorMessage' => 'The staging configuration does not exist.', 'description' => 'The configuration cannot be found in the staging environment.'], ], - 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' => 'RollbackDcdnStagingConfig', + 'summary' => 'Rolls back the staging Dynamic Content Delivery Network (DCDN) configuration to the production version.', + 'description' => '> The throttling limit for a single user is 30 calls per second.', + '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-XXXX-72F8FD6DA2FE\\"\\n}","errorExample":""},{"type":"xml","example":"<BatchModifyDcdnWafRulesResponse>\\n <RequestId>CB1A380B-09F0-41BB-XXXX-72F8FD6DA2FE</RequestId>\\n</BatchModifyDcdnWafRulesResponse>","errorExample":""}]', - 'title' => 'BatchModifyDcdnWafRules', - 'description' => 'You can call this operation up to 20 times per second per account.', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]', ], - 'BatchSetDcdnWafDomainConfigs' => [ - 'summary' => 'Sets the protection status of multiple domain names at a time.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'SetDcdnDomainCSRCertificate' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -30213,47 +24741,23 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeNodes' => ['FEATUREdcdnX7NWEB'], ], 'parameters' => [ [ - 'name' => 'DomainNames', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The protected domain names for which you want to change the protection status. You can specify up to 50 domain names. Separate multiple domain names with commas (,).'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com,example2.com', - ], - ], - [ - 'name' => 'DefenseStatus', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The protection status of the domain name. Valid values: on, off, and empty string.'."\n" - ."\n" - .'* When you add a domain name, the value of this parameter is **on**, and the value of ClientIpTag takes effect, which is empty if the default header is selected and is the value specified by the user if a custom header is selected.'."\n" - .'* When you delete a domain name, the value of this parameter is **off**, and the value of ClientIpTag does not take effect.'."\n" - .'* When you only modify the value of ClientIpTag, the value of DefenseStatus is an empty string.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'on', - ], + 'name' => 'ServerCertificate', + 'in' => 'query', + 'schema' => ['description' => 'The content of the signing certificate for the certificate signing request (CSR) that you created by calling the [CreateDcdnCertificateSigningRequest](~~144478~~) operation. The certificate must be in PEM format.'."\n" + ."\n" + .'> Base64-encode the certificate content. Then, use the built-in JavaScript function encodeURIComponent to encode the result before you pass the parameter.', 'type' => 'string', 'required' => true, 'example' => '----BEGIN CERTIFICATE----- MIIFz****-----END CERTIFICATE-----', 'title' => ''], ], [ - 'name' => 'ClientIpTag', - 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies the header that records the IP address to be obtained. If the default header is selected, the value of this parameter is empty. If a custom header is selected, the value of this parameter is the value specified by the user. Separate multiple values with commas (,). You can specify a maximum of five values.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'X-Forwarded-For', - ], + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => 'The accelerated domain name for the certificate. The domain name must have HTTPS acceleration enabled.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], ], 'responses' => [ @@ -30261,60 +24765,55 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-3C82-72F8FD6DA2FE', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], - ], - 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.', - ], + ['errorCode' => 'Certificate.MissingParameter', 'errorMessage' => 'You must specify the Certificate parameter.', 'description' => 'The request is missing a Certificate parameter.'], + ['errorCode' => 'Certificate.EncodeError', 'errorMessage' => 'An error occurred while encoding the certificate.', 'description' => 'Failed to encode the certificate.'], + ['errorCode' => 'Certificate.DecodeError', 'errorMessage' => 'An error occurred while decoding the certificate.', 'description' => 'Failed to decode the certificate.'], + ['errorCode' => 'Certificate.FormatError', 'errorMessage' => 'The format of the certificate is invalid.', 'description' => 'The specified certificate format is invalid.'], + ['errorCode' => 'Certificate.MissMatch', 'errorMessage' => 'The certificate does not match the domain.', 'description' => 'The certificate and domain name do not match.'], + ['errorCode' => 'Certificate.NoPrivateKey', 'errorMessage' => 'The private key of the certificate does not exist.', 'description' => 'The specified private key does not exist.'], ], 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' => 'The domain name cannot be changed because a feature is in canary release.'], + ['errorCode' => 'Internal.ConfigError', 'errorMessage' => 'An error occurred while configuring the certificate.', 'description' => 'Failed to call the configuration operation.'], ], ], - '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' => 'BatchSetDcdnWafDomainConfigs', - 'description' => '#'."\n" - ."\n" - .'* You can call this operation up to 20 times per second.'."\n" - .'* Alibaba Cloud Dynamic Content Delivery Network (DCDN) supports POST requests.'."\n", - ], - 'ModifyDcdnWafPolicy' => [ - 'summary' => 'Changes the name or the status of a protection policy.', - 'methods' => [ - 'get', - 'post', + 'title' => 'SetDcdnDomainCSRCertificate', + 'summary' => 'Sets the HTTPS certificate for a specified domain name.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDcdnDomainCSRCertificate'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:SetDcdnDomainCSRCertificate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","type":"json"}]', + ], + 'SetDcdnDomainSMCertificate' => [ + 'summary' => 'You can call the SetDcdnDomainSMCertificate operation to configure an SM certificate for a specific accelerated domain name.', + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -30325,46 +24824,33 @@ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeNodes' => ['FEATUREdcdnX7NWEB'], ], 'parameters' => [ [ - 'name' => 'PolicyId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the protection policy that you want to modify. You can specify only one ID in each request.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1000001', - ], + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => 'The accelerated domain name for which you want to configure the SM certificate.'."\n" + ."\n" + .'> The domain name must use HTTPS acceleration.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], ], [ - 'name' => 'PolicyName', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The new name of the protection policy.'."\n" - ."\n" - .'> You must specify PolicyName or PolicyStatus.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'policy_test', - ], + 'name' => 'CertIdentifier', + 'in' => 'query', + 'schema' => ['description' => 'The certificate ID followed by "-cn-hangzhou". For example, if the certificate ID is \\`123\\`, the value of CertIdentifier is \\`123-cn-hangzhou\\`.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '123-cn-hangzhou'], ], [ - 'name' => 'PolicyStatus', - 'in' => 'formData', + 'name' => 'SSLProtocol', + 'in' => 'query', 'schema' => [ - 'description' => 'The new status of the protection policy. Valid values:'."\n" - ."\n" - .'* **on**'."\n" - .'* **off**'."\n" + 'description' => 'Specifies whether to enable the SM certificate.'."\n" ."\n" - .'> You must specify PolicyName or PolicyStatus.'."\n", + .'- **on**: enable.'."\n" + .'- **off**: disable.', 'type' => 'string', - 'required' => false, + 'required' => true, + 'enum' => ['on', 'off'], + 'title' => '', 'example' => 'on', ], ], @@ -30374,62 +24860,48 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-C730-72F8FD6DA2FE', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C8'], ], + 'description' => '', + 'title' => '', ], ], ], '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' => 'InvalidCertIdentifier.ValueNotSupported', 'errorMessage' => 'The specified value of parameter CertIdentifier is not valid.', 'description' => 'The CertIdentifier parameter is set to an invalid value.'], ], - 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' => 'SetDcdnDomainSMCertificate', + 'description' => '> The call frequency is limited to 30 calls per second per user.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDcdnDomainSMCertificate'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', + ], + '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\\": \\"CB1A380B-09F0-41BB-C730-72F8FD6DA2FE\\"\\n}","errorExample":""},{"type":"xml","example":"<ModifyDcdnWafPolicyResponse>\\n <RequestId>CB1A380B-09F0-41BB-C730-72F8FD6DA2FE</RequestId>\\n</ModifyDcdnWafPolicyResponse>","errorExample":""}]', - 'title' => 'ModifyDcdnWafPolicy', - 'description' => '* You can call this operation up to 20 times per second per account.'."\n" - .'* Alibaba Cloud Dynamic Content Delivery Network (DCDN) supports POST requests.'."\n", + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C8\\"\\n}","type":"json"}]', ], - 'ModifyDcdnWafPolicyDomains' => [ - 'summary' => 'Changes the accelerated domain names that are bound to a protection policy.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'SetDcdnDomainSSLCertificate' => [ + 'summary' => 'You can call SetDcdnDomainSSLCertificate to enable or disable the certificate feature for a domain name and update the certificate information.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -30437,68 +24909,73 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '162268', + 'abilityTreeNodes' => ['FEATUREdcdnX7NWEB'], ], 'parameters' => [ [ - 'name' => 'PolicyId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the protection policy. You can specify only one ID in each request.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1000001', - ], + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => 'The domain name to which the certificate belongs. The domain name must be an HTTPS-accelerated domain name.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], ], [ - 'name' => 'Method', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The association method. Valid values:'."\n" - ."\n" - .'* 0: replace.'."\n" - .'* 1: add.'."\n" - .'* Default value: 0.'."\n" - ."\n" - .'> '."\n" - ."\n" - .'* This parameter takes effect only when you specify **BindDomains**. If you have associated a domain name indicated by **BindDomains** with the default protection policy, the `Policy.DefaultAndCustom.BindToSameDomain` error is returned.'."\n" - ."\n" - .'* You can only replace accelerated domain names that are bound to the default protection policy.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], + 'name' => 'CertName', + 'in' => 'query', + 'schema' => ['description' => 'The name of the certificate. You can specify only one name. This parameter is valid only when **CertType** is set to **upload**. In this case, you can specify a name for the new certificate.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'yourCertName'], ], [ - 'name' => 'BindDomains', - 'in' => 'formData', + 'name' => 'CertId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the certificate. This parameter is required only when **CertType** is set to **cas**. In this case, specify the ID of an existing certificate.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'title' => '', 'example' => '8089870'], + ], + [ + 'name' => 'CertType', + 'in' => 'query', 'schema' => [ - 'description' => 'The domain names that you want to bind to the protection policy. You can specify up to 50 domain names. Separate multiple domain names with commas (,).'."\n" + 'description' => 'The type of the certificate. Valid values:'."\n" ."\n" - .'> You can configure either **BindDomains** or **UnbindDomains**.'."\n", + .'- **upload**: A custom certificate that you upload.'."\n" + ."\n" + .'- **cas**: A certificate that you purchase from Alibaba Cloud SSL Certificates Service.', 'type' => 'string', 'required' => false, - 'example' => 'example.com,example2.com', + 'enum' => ['cas', 'upload'], + 'title' => '', + 'example' => 'upload', ], ], [ - 'name' => 'UnbindDomains', - 'in' => 'formData', + 'name' => 'SSLProtocol', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to enable the SSL certificate. Valid values:'."\n" + ."\n" + .'- **on**: Enable.'."\n" + ."\n" + .'- **off**: Disable.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'off'], + ], + [ + 'name' => 'SSLPub', + 'in' => 'query', + 'schema' => ['description' => 'The content of the SSL certificate. Specify this parameter only when you enable the certificate.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'xxx'], + ], + [ + 'name' => 'SSLPri', + 'in' => 'query', + 'schema' => ['description' => 'The content of the private key. Specify this parameter only when you enable the certificate.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'y****'], + ], + [ + 'name' => 'CertRegion', + 'in' => 'query', 'schema' => [ - 'description' => 'The domain names that you want to unbind from the protection policy. You can specify up to 50 domain names. Separate multiple domain names with commas (,).'."\n" - ."\n" - .'> You can configure either **BindDomains** or **UnbindDomains**.'."\n", + 'description' => 'The region where the certificate is located. This parameter is valid only when you set CertType to cas. Valid values are **cn-hangzhou** and **ap-southeast-1**. The default value is **cn-hangzhou**. If you are an Alibaba Cloud international account user, set this parameter to **ap-southeast-1**.', 'type' => 'string', 'required' => false, - 'example' => 'example3.com', + 'enumValueTitles' => ['ap-southeast-1' => 'ap-southeast-1', 'cn-hangzhou' => 'cn-hangzhou'], + 'title' => '', + 'example' => 'cn-hangzhou', ], ], ], @@ -30507,135 +24984,84 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-2B35-72F8FD6DA2FE', - ], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => 'A7C69682-7F88-40DD-A198-10D0309E439D'], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], '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.', - ], + ['errorCode' => 'InvalidSSLProtocol.ValueNotSupported', 'errorMessage' => 'The specified SSLProtocol is invalid.', 'description' => 'The specified SSL certificate parameter is invalid. Set the value to on or off.'], + ['errorCode' => 'SSLPub.MissingParameter', 'errorMessage' => 'The SSLPub parameter is required.', 'description' => 'The SSLPub parameter is not specified.'], + ['errorCode' => 'SSLPri.MissingParameter', 'errorMessage' => 'The SSLPri parameter is required.', 'description' => 'The SSLPri parameter is not specified.'], + ['errorCode' => 'InvalidSSLPub', 'errorMessage' => 'The specified SSLPub is invalid.', 'description' => 'The value specified for the SSLPub parameter is invalid.'], + ['errorCode' => 'InvalidSSLPri', 'errorMessage' => 'The specified SSLPri is invalid.', 'description' => 'The value specified for the SSLPri parameter is invalid.'], + ['errorCode' => 'Certificate.MissMatch', 'errorMessage' => 'The SSLPri does not match the certificate.', 'description' => 'The certificate and private key do not match.'], + ['errorCode' => 'InvalidCertificate.TooLong', 'errorMessage' => 'The maximum length of the certificate is exceeded.', 'description' => 'The maximum length of the specified certificate content has been reached.'], + ['errorCode' => 'InvalidCertName.TooLong', 'errorMessage' => 'The length of the certificate name cannot exceed 128 characters.', 'description' => 'The certificate name cannot contain more than 128 characters.'], + ['errorCode' => 'AuthenticationFailed', 'errorMessage' => 'Error performing verification.', 'description' => 'Identity authentication failed.'], + ['errorCode' => 'SetDomainCertificate.ParameterError', 'errorMessage' => 'The specified parameters are invalid.', 'description' => 'The specified parameter values are invalid.'], + ['errorCode' => 'Certificate.StatusError', 'errorMessage' => 'The status of the certificate is invalid.', 'description' => 'The specified certificate status is invalid.'], + ['errorCode' => 'DeleteFailed', 'errorMessage' => 'Error deleting the certificate.', 'description' => 'Failed to delete the certificate.'], + ['errorCode' => 'Certificate.NotFind', 'errorMessage' => 'The certificate does not exist.', 'description' => 'The specified certificate does not exist.'], + ['errorCode' => 'Certificate.Duplicated', 'errorMessage' => 'The certificate name already exists.', 'description' => 'The certificate is duplicated.'], + ['errorCode' => 'Certificate.FormatError', 'errorMessage' => 'The format of the certificate is invalid.', 'description' => 'The specified certificate format is invalid.'], + ['errorCode' => 'Certificate.KeyNull', 'errorMessage' => 'The private key is required.', 'description' => 'The private key is not specified.'], + ['errorCode' => 'Key.Malformed', 'errorMessage' => 'The specified Key format is invalid.', 'description' => 'The Key parameter is set in an invalid format.'], + ['errorCode' => 'CertStorage.failed', 'errorMessage' => 'Error saving the certificate.', 'description' => 'Failed to store the certificate.'], + ['errorCode' => 'CertificateContent.Duplicated', 'errorMessage' => 'The certificate has been uploaded; do not upload again.', 'description' => 'The specified certificate has been uploaded. Do not upload the certificate again.'], + ['errorCode' => 'Certificate.Expired', 'errorMessage' => 'The certificate has expired.', 'description' => 'The certificate has expired.'], + ['errorCode' => 'InvalidDomain.notOnline', 'errorMessage' => 'The domain is offline. Check the status of the domain and try again later.', 'description' => 'The specified domain name status is invalid. Check whether the domain name is online and try again later.'], + ['errorCode' => 'Decode.Error', 'errorMessage' => 'Error decoding the SSLPub or SSLPri certificate.', 'description' => 'The system has failed to decode the public key or the private key of the SSL certificate.'], + ['errorCode' => 'sslPub.Error', 'errorMessage' => 'Error encoding SSLPub.', 'description' => 'Failed to encode sslPub.'], + ['errorCode' => 'sslPri.Error', 'errorMessage' => 'Error encoding SSLPri.', 'description' => 'Failed to encode SSLPri.'], + ['errorCode' => 'DomainInSafeMode', 'errorMessage' => 'The domain is in safe mode. To request permission, contact Customer Service.', 'description' => 'The specified domain name is in the protected mode. If you must perform this operation, submit a ticket.'], + ['errorCode' => 'CreateCertificateFailed', 'errorMessage' => 'Create certificate failed,please try again.', 'description' => 'The certificate failed to be created. Create the certificate again.'], + ['errorCode' => 'Abs.CertRegion.ValueNotSupported', 'errorMessage' => 'CertRegion is not supported.', 'description' => 'The certificate region is not supported.'], + ['errorCode' => 'CertNameAlreadyExists', 'errorMessage' => 'The CertName already exists.', 'description' => 'The certificate name already exists.'], ], 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' => 'The specified domain name is in the protected mode. If you must perform this operation, contact customer service.'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', - ], - ], - ], - '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' => 'ModifyDcdnWafPolicyDomains', - 'description' => '# Usage notes'."\n" - ."\n" - .'* You can call this operation up to 20 times per second per account.'."\n" - .'* Alibaba Cloud Dynamic Route for CDN (DCDN) supports POST requests.'."\n", - ], - 'DeleteDcdnUserConfig' => [ - 'summary' => 'Deletes feature configurations by user.', - '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' => 'The domain name is disabled.'], ], ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '194960', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], - 'tenantRelevance' => 'publicInformation', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A7C69682-7F88-40DD-A198-10D0309E439D\\"\\n}","type":"json"}]', + 'title' => 'SetDcdnDomainSSLCertificate', + 'changeSet' => [ + ['createdAt' => '2024-05-11T03:00:16.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-12-06T03:04:56.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2023-09-04T01:41:23.000Z', 'description' => 'Request parameters changed'], ], - 'parameters' => [ - [ - 'name' => 'FunctionName', - 'in' => 'query', - 'schema' => [ - 'description' => 'The name of the user feature that you want to delete. Currently, only DCDN Web Application Firewall (WAF) can be deleted. Default value: waf.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'waf', - 'default' => 'waf', - 'enum' => [ - 'waf', - ], - ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDcdnDomainSSLCertificate'], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '5CC228B4-7A67-4016-9C9F-4A4133494A91', - ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:SetDcdnDomainSSLCertificate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], ], - 'description' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5CC228B4-7A67-4016-9C9F-4A4133494A91\\"\\n}","type":"json"}]', - 'title' => 'DeleteDcdnUserConfig', ], - 'DeleteDcdnWafPolicy' => [ - 'summary' => 'Deletes a protection policy.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'SetDcdnDomainStagingConfig' => [ + 'summary' => 'Call SetDcdnDomainStagingConfig to set or modify the configurations for a domain name in the staging environment.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -30643,24 +25069,104 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnSU2QP6', - ], + 'abilityTreeNodes' => ['FEATUREdcdn2JMMUY'], ], 'parameters' => [ [ - 'name' => 'PolicyId', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the protection policy that you want to delete. You can specify only one ID in each request.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1000001', - ], + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => 'The accelerated domain name. Separate multiple domain names with commas (,).', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], + ], + [ + 'name' => 'Functions', + 'in' => 'query', + 'schema' => ['description' => 'A list of features. The format is as follows:'."\n" + ."\n" + .'- functionName (feature name, required): For a list of configurable features, see [Feature list](~~410622~~).'."\n" + .'- argName (parameter name, required): A parameter for functionName. You can specify multiple parameters.'."\n" + .'- argValue (parameter value, required): The value of the parameter for functionName.'."\n" + .'- parentId (conditional rule ID, optional): You can create conditional rules using the condition function of the rules engine. These rules match and filter user requests based on request parameters. Each conditional rule has a unique [configid](~~410558~~). You can use this configid as the ParentId parameter to reference the rule in other functions. This lets you combine conditional rules with feature configurations for more flexibility. For more information, see [Parameters for domain name configuration features](~~410622~~).'."\n" + ."\n" + .'If you set parentId to -1, the existing conditional rule in the configuration is deleted.'."\n" + ."\n" + .'```'."\n" + .'"functionArgs": [{'."\n" + .' "argName": "Feature Parameter A", '."\n" + .' "argValue": "Value of Feature Parameter A"'."\n" + .' }, '."\n" + .'{'."\n" + .' "argName": "Feature Parameter B", '."\n" + .' "argValue": "Value of Feature Parameter B"'."\n" + .' }], '."\n" + .'```'."\n" + ."\n" + .'"functionName": "Feature Name", "parentId": Optional. Corresponds to the configid of the referenced conditional rule. }]'."\n" + ."\n" + .'Example configuration without using parentId: The following request parameters show how to use the origin\\_request\\_header function to add a header to origin requests:'."\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" + .'Example configuration using parentId: The following request parameters show how to use the origin\\_request\\_header function to add a header to origin requests by referencing the conditional rule with 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" + .'Example of deleting a parentId reference from a feature configuration: The origin\\_request\\_header function already references the conditional rule with configid=222728944812032. To delete the reference, use the following request parameters:'."\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, 'title' => '', 'example' => ' '."\n" + .'[{"functionArgs": [{"argName": "key","argValue": "Content-Encoding"},{"argName": "value","argValue": "gzip"}],"functionName": "set_resp_header"} ]'], ], ], 'responses' => [ @@ -30668,62 +25174,69 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-B084-72F8FD6DA2FE', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], + 'description' => '', + 'title' => '', ], ], ], '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.', - ], + ['errorCode' => 'InvalidFunctionName.ValueNotSupported', 'errorMessage' => '%s', 'description' => '%s'], + ['errorCode' => 'InvalidArgName.ValueNotSupported', 'errorMessage' => '%s', 'description' => 'The name of the %s parameter is invalid.'], + ['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' => 'The configuration exists in the staging environment. You cannot modify the configuration in the production environment.'], + ['errorCode' => 'GrayConfigExist', 'errorMessage' => 'A canary configuration already exists under the domain.', 'description' => 'The domain name already has configurations in canary release.'], + ['errorCode' => 'InvalidDomain.BelongToConfigGroup', 'errorMessage' => 'The domain is bound to a configuration group. Modify the domain in the configuration group.', 'description' => 'The domain name is associated with a configuration group. To modify the configuration of the domain name, you must modify the configuration group.'], + ['errorCode' => 'EdgeScriptCountExceedLimit', 'errorMessage' => 'The number of rules exceeds the default limit.', 'description' => 'The number of rules exceeds the limit. To increase the limit, submit a ticket.'], + ['errorCode' => 'EdgeScripOptionsHasInnerConfig', 'errorMessage' => 'The extension has a background configuration or a parameter of this configuration is invalid. For more information, submit a ticket.', 'description' => 'The extension has a background configuration or a configured parameter 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.', 'description' => 'A background custom rule exists or a configured parameter is invalid. For more information, submit a ticket.'], + ['errorCode' => 'EdgeScriptNotSupportJs', 'errorMessage' => 'JavaScript rules are not supported. For more information, submit a ticket.', 'description' => 'JavaScript rules are not supported. For more information, submit a ticket.'], ], - 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' => 'SetDcdnDomainStagingConfig', + 'description' => '> The call frequency for a single user is limited to 30 calls per second.', + 'requestParamsDescription' => 'Some features, such as edge\\_function, allow you to configure multiple records. To update a specific record, use its ConfigId (of the Long type) to specify the configuration that you want to modify. The format is as follows:'."\n" + ."\n" + .'```'."\n" + .'[{"functionArgs":[{"argName":"enable","argValue":"on"},{"argName":"pri","argValue":"1"},{"argName":"rule","argValue":"yyy"}],"ConfigId":123456,"functionName":"edge_function"}]'."\n" + .'```'."\n" + ."\n" + .'**Feature description** All parameter values are processed as strings.'."\n" + ."\n" + .'| Feature name | Parameters |'."\n" + .'| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| edge\\_function: Edge Routine | Required parameters: rule: The DSL rule. pri: The priority. enable: Specifies whether to enable the current rule. Valid values: on and off. Optional parameters: name: The name of the rule. pos: The position where the rule is executed. For DCDN domain names, only head is supported. foot is not supported. brk: If this rule is matched, the remaining rules at the current execution position are skipped. option: The option control. grammar: The grammar control. Valid values: empty, es2, and js. jsmode: The JavaScript (JS) domain name whitelist control. Valid values: redirect and bypass. |', + 'changeSet' => [ + ['createdAt' => '2023-05-25T03:09:10.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2022-12-08T02:03:24.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDcdnDomainStagingConfig'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', + ], + '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\\": \\"CB1A380B-09F0-41BB-B084-72F8FD6DA2FE\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDcdnWafPolicyResponse>\\n <RequestId>CB1A380B-09F0-41BB-B084-72F8FD6DA2FE</RequestId>\\n</DeleteDcdnWafPolicyResponse>","errorExample":""}]', - 'title' => 'DeleteDcdnWafPolicy', - 'description' => '* You can call this operation up to 20 times per second per account.'."\n" - .'* Alibaba Cloud Dynamic Content Delivery Network (DCDN) supports POST requests.'."\n", + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]', + 'extraInfo' => ' ', ], - 'BatchDeleteDcdnWafRules' => [ - 'summary' => 'Deletes multiple Web Application Firewall (WAF) protection rules at a time.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'SetDcdnFullDomainsBlockIP' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -30731,221 +25244,130 @@ ], 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnV3YEJ8', - ], + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'RuleIds', + 'name' => 'IPList', + 'in' => 'formData', + 'schema' => ['description' => 'The IP addresses or CIDR blocks to block or unblock. Separate multiple entries with commas (,). You can specify a maximum of 1,000 IP addresses or CIDR blocks.', 'type' => 'string', 'required' => true, 'example' => '1.XXX.XXX.1,2.XXX.XXX.2', 'title' => ''], + ], + [ + 'name' => 'OperationType', 'in' => 'formData', 'schema' => [ - 'description' => 'The IDs of the protection rules that you want to delete. Separate multiple IDs with commas (,).'."\n", + 'description' => 'The action to perform. Valid values:'."\n" + ."\n" + .'- **block**: Blocks the specified IP addresses.'."\n" + ."\n" + .'- **unblock**: Unblocks the specified IP addresses.', 'type' => 'string', 'required' => true, - 'example' => '20000001,20000002', + 'enum' => ['block', 'unblock'], + 'example' => 'block', + 'title' => '', ], ], + [ + 'name' => 'BlockInterval', + 'in' => 'formData', + 'schema' => ['description' => 'The block duration. Unit: seconds. A value of **0** indicates a permanent block. This parameter is valid only when **OperationType** is set to **block**.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3000', 'title' => ''], + ], + [ + 'name' => 'UpdateType', + 'in' => 'formData', + 'schema' => ['description' => 'The update type for the block duration. This parameter is valid only when **OperationType** is set to **block**. Valid values:'."\n" + ."\n" + .'- **cover**: The new block duration overwrites the existing one.'."\n" + ."\n" + .'- **uncover**: The longer of the new and existing block durations is used.'."\n" + ."\n" + .'- If you do not specify this parameter, the default value cover is used.', 'type' => 'string', 'required' => false, 'example' => 'cover', 'title' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-802B-72F8FD6DA2FE', - ], + 'Code' => ['description' => 'The result code.'."\n" + ."\n" + .'A value of 0 indicates that the request was successful. A non-zero value indicates that the request failed. Possible causes of a failure include incomplete parameters or incorrect parameter formats.', 'type' => 'integer', 'format' => 'int32', 'example' => '0', 'title' => ''], + 'Message' => ['description' => 'The result message.', 'type' => 'string', 'example' => 'OK', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'CB1A380B-09F0-41BB-802B-72F8FD6DA2FE', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'InvaildParameter', 'errorMessage' => 'The specified parameters are invalid.', 'description' => 'A parameter is set to an invalid value. Specify a valid value and try again.'], ], 403 => [ - [ - 'errorCode' => '%s.NotSupport', - 'errorMessage' => 'The specified resource type %s is not supported.', - ], - [ - 'errorCode' => '%s.OverQuota', - 'errorMessage' => 'The quantity of %s exceeds the quota.', - ], - ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', - ], + ['errorCode' => 'OperationDeniedAccount', 'errorMessage' => 'You are not authorized to perform this operation.', 'description' => 'You are not authorized to perform this operation.'], ], - ], - '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' => 'BatchDeleteDcdnWafRules', - 'description' => '* You can call this operation up to 20 times per second per account.'."\n" - .'* Alibaba Cloud Dynamic Content Delivery Network (DCDN) supports POST requests.', - 'requestParamsDescription' => ' ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DescribeDcdnWafScenes' => [ - 'summary' => 'Queries the information about the type of the protection policy that you use.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 406 => [ + ['errorCode' => 'InvalidKey.QuotaFull', 'errorMessage' => 'The maximum number of keys is exceeded.', 'description' => 'The number of keys has reached the upper limit.'], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', + 'title' => 'SetDcdnFullDomainsBlockIP', + 'summary' => 'Call the SetDcdnFullDomainsBlockIP operation to block or unblock specified IP addresses or CIDR blocks.', + 'description' => '> This operation is suitable for blocking many IP addresses. You can specify up to 1,000 IP addresses or CIDR blocks in a single call.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDcdnFullDomainsBlockIP'], ], ], - 'parameters' => [ + 'ramActions' => [ [ - 'name' => 'DefenseScenes', - 'in' => 'query', - 'schema' => [ - 'description' => 'The types of the protection policies that you want to query. Separate multiple types with commas (,). Valid values:'."\n" - ."\n" - .'* waf_group: basic web protection'."\n" - .'* custom_acl: custom protection'."\n" - .'* whitelist: IP address whitelist'."\n" - .'* ip_blacklist: IP address blacklist'."\n" - .'* region_block: region blacklist'."\n" - .'* bot: bot management'."\n" - ."\n" - .'> If you do not set this parameter, all types of protection policies are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'waf_group,custom_acl,whitelist', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '3D7BB13C-DD84-5654-A835-B8E1385DE274', - ], - 'DefenseScenes' => [ - 'description' => 'The types of the protection policies.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'PolicyCount' => [ - 'description' => 'The total number of policies of this type that were configured.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RuleCount' => [ - 'description' => 'The total number of protection rules that were configured in this type of the policy.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '12', - ], - 'DefenseScene' => [ - 'description' => 'The type of the protection policy, which is the same as the DefenseScenes parameter in request parameters.'."\n", - 'type' => 'string', - 'example' => 'waf_group', - ], - ], - ], - ], + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:SetDcdnFullDomainsBlockIP', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => 'DescribeDcdnWafScenes', - 'description' => 'You can call this operation up to 20 times per second per user.'."\n", + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 0,\\n \\"Message\\": \\"OK\\",\\n \\"RequestId\\": \\"CB1A380B-09F0-41BB-802B-72F8FD6DA2FE\\"\\n}","type":"json"}]', ], - 'DescribeDcdnWafDomains' => [ - 'summary' => 'Queries the accelerated domain names that are protected by Web Application Firewall (WAF). Fuzzy search is supported.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'SetDcdnUserConfig' => [ + 'summary' => 'Call SetDcdnUserConfig to configure user settings.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '133321', - 'abilityTreeNodes' => [ - 'FEATUREdcdnSU2QP6', - ], + 'abilityTreeCode' => '111610', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'QueryArgs', - 'in' => 'query', - 'schema' => [ - 'description' => 'The query conditions. You can filter domain names by name. Fuzzy match is supported `QueryArgs={"DomainName":"Accelerated domain name"}`'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"DomainName":"example.com"}', - ], - ], - [ - 'name' => 'PageNumber', + 'name' => 'FunctionId', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Valid values: **1** to **100000**.'."\n" - ."\n" - .'Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => 'The ID of the feature.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'title' => '', 'example' => '6'], ], [ - 'name' => 'PageSize', + 'name' => 'Configs', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of domain names to return on each page. Valid values: an integer from **1** to **500**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'example' => '20', - 'default' => '20', - ], + 'schema' => ['description' => 'The parameters of the feature.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '\\"argId\\":12,\\"argValue\\":\\"on\\"'], ], ], 'responses' => [ @@ -30953,129 +25375,83 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of domain names returned per page, which is the same as the PageSize parameter in request parameters.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '153ca2cd-3c01-44be-b408-64dbc6c88630', - ], - 'PageNumber' => [ - 'description' => 'The page number of the returned page, which is the same as the PageNumber parameter in request parameters.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The total number of protected domain names.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '15', - ], - 'Domains' => [ - 'description' => 'The protected domain name.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'PolicyCount' => [ - 'description' => 'The number of protection policies that were configured for the protected domain name.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'ClientIpTag' => [ - 'description' => 'The header of IP address of the client that is connected to the point of presence (POP).'."\n", - 'type' => 'string', - 'example' => 'X-Forwarded-For', - ], - 'DomainName' => [ - 'description' => 'The protected domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - ], - ], - ], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => 'F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED'], ], + 'description' => '', + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'InvalidFunctions.Malformed', 'errorMessage' => 'The specified Functions is invalid.', 'description' => 'The specified configuration is invalid.'], + ['errorCode' => 'InvalidArgValue.Malformed', 'errorMessage' => 'The specified ArgValue is invalid.', 'description' => 'The value specified for the ArgValue parameter is invalid.'], + ['errorCode' => 'Invalid%s.ValueNotSupported', 'errorMessage' => '[%s] is not supported.', 'description' => 'The specified value is not supported.'], + ['errorCode' => 'Invalid%s.Malformed', 'errorMessage' => 'The specified ArgValue [%s] is invalid.', 'description' => 'The value specified for the ArgValue parameter is invalid.'], ], ], - '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' => 'DescribeDcdnWafDomains', - 'description' => 'You can call this operation up to 20 times per second per account.'."\n", - ], - 'DescribeDcdnWafPolicyDomains' => [ - 'summary' => 'Queries the accelerated domain names that are protected by a specified Web Application Firewall (WAF) protection policy.', - 'methods' => [ - 'get', - 'post', + 'title' => 'SetDcdnUserConfig', + 'description' => '> The maximum call frequency is 30 calls per second per user.', + 'requestParamsDescription' => 'The following table describes the valid values for FunctionID and Configs.'."\n" + ."\n" + .'| FunctionID | Name | Configs |'."\n" + .'| ---------- | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| 6 | websocket: Websocket | enabled (12): Specifies whether to enable the feature. Valid values: on and off. |'."\n" + .'| 16 | domain\\_business\\_control: Domain name feature configuration | allow\\_function (22): Specifies whether features such as rate limiting, Location Blacklist, and Accurate Access Control are available to the user. Valid values: on and off. |'."\n" + .'| 23 | ddos: DDoS | rdomestic (42): Specifies whether to enable DDoS instances in the Chinese mainland. Valid values: on or off. overseas (43): Specifies whether to enable DDoS instances in Hong Kong (China), Macao (China), Taiwan (China), and other countries and regions. Valid values: on or 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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED\\"\\n}","type":"json"}]', + ], + 'SetRoutineSubdomain' => [ + 'summary' => 'Sets an Edge Routine (ER) subdomain.', + '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' => 'PolicyId', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the protection policy. You can specify only one ID in each request.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '100001', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Valid values: **1** to **100000**. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of domain names to return on each page. Valid values: an integer from **1** to **500**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'example' => '20', - 'default' => '20', - ], + 'name' => 'Subdomains', + 'in' => 'formData', + 'style' => 'json', + 'schema' => ['description' => 'The subdomain parameters.'."\n" + ."\n" + .'The format is as follows:'."\n" + ."\n" + .'```'."\n" + .'Subdomains: ['."\n" + .' "subdomain-test"'."\n" + .']'."\n" + .'```', 'type' => 'object', 'required' => true, 'example' => '["subdomain-test"]', 'title' => ''], ], ], 'responses' => [ @@ -31083,255 +25459,68 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of domain names returned per page, which is the same as the PageSize parameter in request parameters.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '153ca2cd-3c01-44be-b480-64dbc6c88630', - ], - 'PageNumber' => [ - 'description' => 'The page number of the returned page, which is the same as the PageNumber parameter in request parameters.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The total number of domain names returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'Domains' => [ - 'description' => 'The accelerated domain names.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DomainName' => [ - 'description' => 'The accelerated domain name that is protected by the specified protection policy.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - ], - ], - ], + 'Content' => ['description' => 'Returns "Status": "OK".', 'type' => 'object', 'example' => ' {"Status": "OK"}', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => 'A server error occurred. Try again later. If the error persists, submit a ticket.'], ], ], - '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' => 'DescribeDcdnWafPolicyDomains', - 'description' => 'You can call this operation up to 20 times per second per user.'."\n", - ], - 'DescribeDcdnWafPolicies' => [ - 'summary' => 'Queries the details of the Web Application Firewall (WAF) protection policies that you configured.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', + 'title' => 'SetRoutineSubdomain', + 'description' => '- Each subdomain must be globally unique across all RAM users.'."\n" + ."\n" + .'- API call frequency: 100 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetRoutineSubdomain'], ], ], - 'parameters' => [ - [ - 'name' => 'QueryArgs', - 'in' => 'query', - 'schema' => [ - 'description' => 'The query conditions. The value is a JSON string. The format is `QueryArgs={"PolicyIds":"The IDs of protection policies","RuleIds":"The IDs of protection rules","PolicyNameLike":"The name of the protection policy","DomainNames":"The protected domain names","PolicyType":"default","DefenseScenes":"waf_group","PolicyStatus":"on","OrderBy":"GmtModified","Desc":"false"}`'."\n" - ."\n" - .'> If you do not set this parameter, all protection policies are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"PolicyNameLIike":"test_policy"}', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Valid values: **1** to **100000**. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], + 'ramActions' => [ [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of protection policies to return on each page. Valid values: an integer from **1** to **500**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'example' => '20', - 'default' => '20', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of protection policies returned per page. Valid values: an integer from **1** to **500**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '153ca2cd-3c01-44be-2e83-64dbc6c88630', - ], - 'PageNumber' => [ - 'description' => 'The page number of the returned page. Valid values: **1** to **100000**. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The total number of protection policies.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '15', - ], - 'Policies' => [ - 'description' => 'The information about protection policies.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'PolicyStatus' => [ - 'description' => 'The status of the protection policy, which is the same as the PolicyStatus field in the QueryArgs parameter.'."\n", - 'type' => 'string', - 'example' => 'on', - ], - 'DefenseScene' => [ - 'description' => 'The type of the protection policy, which is the same as the DefenseScenes field in the QueryArgs parameter.'."\n", - 'type' => 'string', - 'example' => 'custom_acl', - ], - 'DomainCount' => [ - 'description' => 'The number of domain names that use the protection policy.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '22', - ], - 'PolicyName' => [ - 'description' => 'The name of the protection policy.'."\n", - 'type' => 'string', - 'example' => 'policy_test', - ], - 'PolicyId' => [ - 'description' => 'The ID of the protection policy.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100001', - ], - 'RuleCount' => [ - 'description' => 'The number of protection rules in the protection policy.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '9', - ], - 'GmtModified' => [ - 'description' => 'The time when the protection policy was modified. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2021-12-29T17:08:45Z', - ], - 'PolicyType' => [ - 'description' => 'Indicates whether this protection policy is the default policy, which is the same as the PolicyType field in the QueryArgs parameter.'."\n", - 'type' => 'string', - 'example' => 'default', - ], - ], - ], - ], + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:SetRoutineSubdomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], ], - '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' => 'DescribeDcdnWafPolicies', - 'description' => 'You can call this operation up to 20 times per second per account.'."\n", - 'requestParamsDescription' => '**Fields in the QueryArgs parameter**'."\n" - ."\n" - .'| Name | Type | Required | Example | Description |'."\n" - .'|-------|------|----------|----------|-------------|'."\n" - .'| PolicyIds | string | No | 10000001,10000002 | The IDs of protection policies. Separate multiple IDs with commas (,). Only exact match is supported. | '."\n" - .'| RuleIds| string|No| 20000001,20000055| The IDs of protection rules. Separate multiple IDs with commas (,). Only exact match is supported. | | PolicyNameLike| string|No|policy_test| The name of the protection policy. Fuzzy search is supported. The name can contain letters, digits, and underscores (\\_). | | DomainNames| string|No| example.com| The protected domain names. You can specify up to 50 domain names. Separate multiple domain names with commas (,). Only exact search is supported. |'."\n" - .'| PolicyType| string|No| default| Specifies whether the protection policy is the default policy. Valid values: default custom |'."\n" - .'| DefenseScenes | string | No | custom_acl | The types of protection policies. Separate multiple types with commas (,). Only exact search is supported. Valid values: waf_group: basic web protection custom_acl: custom protection whitelist: whitelist |'."\n" - .'|PolicyStatus| string|No| on| The status of the policy. on off |'."\n" - .'| OrderBy| string|No| GmtModified| The field that is used to sort query results. Valid values: GmtModified, PolicyId, PolicyName, and PolicyStatus.|'."\n" - .'| Desc| Boolean|No| false| The sort order. The value true indicates the reverse chronological order. The value false indicates the chronological order. Default value: false. |', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": {\\n \\"Status\\": \\"OK\\"\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]', ], - 'DescribeDcdnWafPolicy' => [ - 'summary' => 'Queries the details of a protection policy.', - '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' => 'PolicyId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the protection policy. You can specify only one ID in each request.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1000001', - ], + 'schema' => ['description' => 'The accelerated domain name to enable. You can enable only one domain name per request.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], ], ], 'responses' => [ @@ -31339,126 +25528,70 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE', - ], - 'Policy' => [ - 'description' => 'The information about the protection policy.'."\n", - 'type' => 'object', - 'properties' => [ - 'PolicyStatus' => [ - 'description' => 'The status of the protection policy. Valid values:'."\n" - ."\n" - .'* on'."\n" - .'* off'."\n", - 'type' => 'string', - 'example' => 'on', - ], - 'DefenseScene' => [ - 'description' => 'The type of the protection policy. Valid values:'."\n" - ."\n" - .'* waf_group: basic web protection'."\n" - .'* custom_acl: custom protection'."\n" - .'* whitelist: whitelist'."\n", - 'type' => 'string', - 'example' => 'waf_group', - ], - 'DomainCount' => [ - 'description' => 'The number of domain names that use the protection policy.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '22', - ], - 'RuleConfigs' => [ - 'description' => 'The protection rule configurations corresponding to the protection policy. The configurations only support Bot management. For more information, see [BatchCreateDcdnWafRules](~~BatchCreateDcdnWafRules~~).'."\n", - 'type' => 'string', - 'example' => '{ "type":"target_type", "status":"on", "config":{"target":"app"}, "action":"" }', - ], - 'PolicyName' => [ - 'description' => 'The name of the protection policy.'."\n", - 'type' => 'string', - 'example' => 'policy_test', - ], - 'PolicyId' => [ - 'description' => 'The ID of the protection policy.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100001', - ], - 'RuleCount' => [ - 'description' => 'The number of protection rules in the protection policy.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '9', - ], - 'GmtModified' => [ - 'description' => 'The time when the protection policy was modified. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2021-12-29T17:08:45Z', - ], - 'PolicyType' => [ - 'description' => 'Indicates whether the current policy is the default policy. Valid values:'."\n" - ."\n" - .'* default'."\n" - .'* custom'."\n", - 'type' => 'string', - 'example' => 'default', - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], ], 'description' => '', + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'RecordCheckNotAvailable', 'errorMessage' => 'The ICP filing interface is unavailable. Please try again later.', 'description' => 'The operation for ICP filing is unavailable. Try again later.'], + ['errorCode' => 'IcpBlack', 'errorMessage' => 'The domain is on the ICP blacklist.', 'description' => 'The domain name is on the blacklist of the MIIT.'], + ['errorCode' => 'IspBlack', 'errorMessage' => 'The domain is on the ISP blacklist.', 'description' => 'The domain name is on the blacklist of Alibaba Cloud.'], ], ], - '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' => 'DescribeDcdnWafPolicy', - 'description' => '> You can call this operation up to 20 times per second per account.'."\n", - ], - 'DescribeDcdnWafDomainDetail' => [ - 'summary' => 'Queries the information about the protection policy of a domain name.', - 'methods' => [ - 'get', - 'post', + 'title' => 'StartDcdnDomain', + 'summary' => 'Call StartDcdnDomain to enable a disabled accelerated domain name. This operation changes the DomainStatus to online.', + 'description' => '- You cannot call this operation if the domain name is invalid or the associated account has an overdue payment.'."\n" + ."\n" + .'- The call frequency for a single user is 30 calls per second.', + '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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","type":"json"}]', + ], + 'StartDcdnIpaDomain' => [ + 'summary' => 'You can call the StartDcdnIpaDomain operation to enable a disabled accelerated domain name. This changes the status of the domain name to `online`.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZ2GXIC', - ], + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. You can specify only one domain name in each request. Exact match is supported.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'schema' => ['description' => 'The domain name to accelerate with DCDN IPA. You can enable only one domain name at a time.', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], ], 'responses' => [ @@ -31466,372 +25599,140 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '153ca2cd-3c01-44be-82C0-64dbc6c88630', - ], - 'Domain' => [ - 'description' => 'The information about the accelerated domain name.'."\n", - 'type' => 'object', - 'properties' => [ - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'DefenseScenes' => [ - 'description' => 'The types of the protection policies.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DefenseScene' => [ - 'description' => 'The type of the protection policy. Valid values:'."\n" - ."\n" - .'* waf_group: basic web protection'."\n" - .'* custom_acl: custom protection'."\n" - .'* whitelist: whitelist'."\n", - 'type' => 'string', - 'example' => 'waf_group', - ], - 'PolicyId' => [ - 'description' => 'The ID of the protection policy.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10000002', - ], - 'PolicyIds' => [ - 'description' => 'The IDs of the protection policy.', - 'type' => 'string', - 'example' => '10000001,10000004', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'RecordCheckNotAvailable', 'errorMessage' => 'The ICP filing interface is unavailable. Please try again later.', 'description' => 'The operation for ICP filing is unavailable. Try again later.'], + ['errorCode' => 'IcpBlack', 'errorMessage' => 'The domain is on the ICP blacklist.', 'description' => 'The domain name is on the blacklist of the MIIT.'], + ['errorCode' => 'IspBlack', 'errorMessage' => 'The domain is on the ISP blacklist.', 'description' => 'The domain name is on the blacklist of Alibaba Cloud.'], + ], + 403 => [ + ['errorCode' => 'DcdnIpaServiceNotFound', 'errorMessage' => 'The DCDN IPA service has not been activated.', 'description' => 'IPA is not activated for DCDN.'], ], - ], - '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' => 'DescribeDcdnWafDomainDetail', - 'description' => 'You can call this operation up to 20 times per second per account.', - ], - 'DescribeDcdnWafRules' => [ - 'summary' => 'Queries the details of the protection rules that you configured.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + ['errorCode' => 'NoResource', 'errorMessage' => 'The required port has no resources, please submit a ticket.', 'description' => 'The required port has no resources, please submit a ticket.'], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnBQ0J3E', + 'title' => 'StartDcdnIpaDomain', + 'description' => '> - The call to enable the accelerated domain name fails if the domain name is in an invalid state or the associated account has an overdue payment.'."\n" + .'>'."\n" + .'> - The call frequency is limited to 20 calls per second per user.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartDcdnIpaDomain'], ], ], - 'parameters' => [ + 'ramActions' => [ [ - 'name' => 'QueryArgs', - 'in' => 'query', - 'schema' => [ - 'description' => 'The query conditions. The value needs to be a JSON string in the following format: `QueryArgs={"PolicyIds":"The range of protection policy IDs","RuleIds":"The range of protection rule IDs","RuleNameLike":"The name of the protection rule","DomainNames":"The protected domain names","DefenseScenes":"waf_group","RuleStatus":"on","OrderBy":"GmtModified","Desc":"false"}`.'."\n" - ."\n" - .'> If you do not specify this parameter, all protection rules are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"RuleIds":"100001,200002"}', - ], - ], - [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Valid values: **1** to **100000**. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of protection rules to return per page. Valid values: integers from **1** to **500**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'example' => '20', - 'default' => '20', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of protection rules returned per page. The value of this parameter is the same as that of the PageSize parameter in the request.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE', - ], - 'PageNumber' => [ - 'description' => 'The page number of the returned page. The value of this parameter is the same as that of the PageNumber parameter in the request.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The total number of protection rules.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '121', - ], - 'Rules' => [ - 'description' => 'The information about the protection rule.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'RuleStatus' => [ - 'description' => 'The status of the protection rule. The value of this parameter is the same as that of the RuleStatus field in QueryArgst.'."\n", - 'type' => 'string', - 'example' => 'on', - ], - 'DefenseScene' => [ - 'description' => 'The type of the protection policy. The value of this parameter is the same as that of the DefenseScene field in QueryArgst.'."\n", - 'type' => 'string', - 'example' => 'custom_acl', - ], - 'PolicyId' => [ - 'description' => 'The ID of the protection policy.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200001', - ], - 'GmtModified' => [ - 'description' => 'The time when the protection policy was last modified. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2021-12-29T17:08:45Z', - ], - 'RuleId' => [ - 'description' => 'The ID of the protection rule.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100001', - ], - 'RuleName' => [ - 'description' => 'The name of the protection rule.'."\n", - 'type' => 'string', - 'example' => 'rule_1', - ], - 'RuleConfig' => [ - 'description' => 'The configuration information about the protection rule.'."\n", - '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}}', - ], - ], - ], - ], + '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 \\"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' => 'DescribeDcdnWafRules', - 'description' => 'You can call this operation up to 20 times per second per account.'."\n", - 'requestParamsDescription' => '**Fields in the QueryArgs parameter**'."\n" - ."\n" - .'|Parameter|Type|Required|Example|Description|'."\n" - .'|---|---|---|---|---|'."\n" - .'|PolicyIds|string|No|10000001,10000100|The IDs of protection policies. Separate multiple IDs with commas (,). Only exact search is supported.|'."\n" - .'|RuleIds|string|No|100001,200002|The IDs of protection rules. Separate multiple IDs with commas (,). Only exact search is supported.|'."\n" - .'|RuleNameLike|string|No|rule\\_1|The name of the protection rule. Fuzzy search is supported. The name can be up to 64 characters in length and can contain letters, digits, and underscores (\\_).|'."\n" - .'|DomainNames|string|No|example.com|The protected domain names. You can specify up to 50 domain names. Separate multiple domain names with commas (,). Only exact search is supported.|'."\n" - .'|DefenseScenes|string|No|custom\\_acl|The types of the protection policies. Separate multiple types with commas (,). Only exact search is supported. Valid values: waf\\_group: basic web protection custom\\_acl: custom protection whitelist: IP address whitelist|'."\n" - .'|RuleStatus|string|No|on|The status of the policy. Valid values: on off|'."\n" - .'|OrderBy|string|No|GmtModified|The field that is used to sort query results. Valid values: GmtModified, RuleName, RuleStatus, RuleId, and PolicyId.|'."\n" - .'|Desc|Boolean|No|false|The display order of the query results. Default value: false. true: reverse chronological order false: chronological order|', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","type":"json"}]', ], - 'ModifyDcdnWafGroup' => [ - 'summary' => 'Modifies a custom Web Application Firewall (WAF) rule group.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'StopDcdnDomain' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', - 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '162579', - 'abilityTreeNodes' => [ - 'FEATUREdcdnL8HX1L', - ], + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ - 'name' => 'Id', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the custom WAF rule group.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '30000110', - ], - ], - [ - 'name' => 'Name', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The name of the custom WAF rule group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - ], - [ - 'name' => 'Rules', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The incremental modifications of the rules in the custom WAF rule group. The value is a JSON string.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{\\"All\\":false,\\"Op\\":\\"del\\",\\"List\\":\\"900109\\"}', - ], + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => ['description' => 'The accelerated domain name. You can disable only one domain name at a time.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '79B78B62-9006-5D6A-9DAB-303E134CD7AA', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], ], + 'description' => '', + 'title' => '', ], ], ], - '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.', - ], - ], - 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' => 'StopDcdnDomain', + 'summary' => 'Call StopDcdnDomain to disable an accelerated domain name and change its DomainStatus to offline.', + 'description' => '> - After an accelerated domain name is disabled, its configuration information is retained. However, Alibaba Cloud DCDN stops providing acceleration services for the domain name. The domain name is then resolved to an invalid address, "offline.\\*\\*\\*.com", and becomes inaccessible.'."\n" + .'>'."\n" + .'> - The call frequency for a single user is 30 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2022-10-27T01:22:34.000Z', 'description' => 'Error codes changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopDcdnDomain'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:StopDcdnDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"79B78B62-9006-5D6A-9DAB-303E134CD7AA\\"\\n}","type":"json"}]', - 'title' => 'ModifyDcdnWafGroup', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","type":"json"}]', ], - 'DescribeDcdnWafRule' => [ - 'summary' => 'Queries the details of a specified protection rule.', - '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' => 'RuleId', + 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the protection rule. You can specify only one ID in each request.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1000001', - ], + 'schema' => ['description' => 'The domain name that is accelerated by DCDN IPA. You can disable only one domain name per request.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], ], ], 'responses' => [ @@ -31839,312 +25740,231 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE', - ], - 'Rule' => [ - 'description' => 'The information about the protection rule.'."\n", - 'type' => 'object', - 'properties' => [ - 'RuleStatus' => [ - 'description' => 'The status of the protection rule. Valid values:'."\n" - ."\n" - .'* on'."\n" - .'* off'."\n", - 'type' => 'string', - 'example' => 'on', - ], - 'DefenseScene' => [ - 'description' => 'The type of the protection policy. Valid values:'."\n" - ."\n" - .'* waf_group: basic web protection'."\n" - .'* custom_acl: custom protection'."\n" - .'* whitelist: IP address whitelist'."\n", - 'type' => 'string', - 'example' => 'custom_acl', - ], - 'PolicyId' => [ - 'description' => 'The ID of the protection policy.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200001', - ], - 'GmtModified' => [ - 'description' => 'The time when the scaling group was modified. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.'."\n", - 'type' => 'string', - 'example' => '2021-12-29T17:08:45Z', - ], - 'RuleId' => [ - 'description' => 'The ID of the protection rule.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100001', - ], - 'RuleName' => [ - 'description' => 'The name of the protection rule.'."\n", - 'type' => 'string', - 'example' => 'rule_1', - ], - 'RuleConfig' => [ - 'description' => 'The configurations of the protection rule.'."\n", - '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' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '15C66C7B-671A-4297-9187-2C4477247A74'], ], + 'description' => '', + 'title' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + 403 => [ + ['errorCode' => 'DcdnIpaServiceNotFound', 'errorMessage' => 'The DCDN IPA service has not been activated.', 'description' => 'IPA is not activated for DCDN.'], ], ], - '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' => 'DescribeDcdnWafRule', - 'description' => '#'."\n" - ."\n" - .'You can call this operation up to 20 times per second per account.'."\n", - ], - 'DescribeDcdnWafPolicyValidDomains' => [ - 'summary' => 'Queries the domain names that can be bound to a custom protection policy.', - 'methods' => [ - 'get', - 'post', + 'title' => 'StopDcdnIpaDomain', + 'summary' => 'Call StopDcdnIpaDomain to disable an accelerated domain name. This operation sets the domain\'s status to offline.', + 'description' => '> - After an accelerated domain name is disabled, its information is retained. Requests sent to the domain name are automatically redirected to the origin server.'."\n" + .'> - The call frequency is limited to 20 calls per second for a single user.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + '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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A74\\"\\n}","type":"json"}]', + ], + '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' => 'DefenseScene', + 'name' => 'ResourceType', 'in' => 'query', 'schema' => [ - 'description' => 'The type of the Web Application Firewall (WAF) protection policy. Valid values:'."\n" - ."\n" - .'* waf_group: basic web protection'."\n" - .'* custom_acl: custom protection'."\n" - .'* whitelist: IP address whitelist'."\n" - .'* ip_blacklist: IP address blacklist'."\n" - .'* region_block: region blacklist'."\n" - .'* bot: bot management'."\n", + 'description' => 'The resource type. Set the value to **DOMAIN**.', 'type' => 'string', 'required' => true, - 'example' => 'custom_acl', + 'enum' => ['DOMAIN'], + 'title' => '', + 'example' => 'DOMAIN', ], ], [ - 'name' => 'DomainNameLike', + 'name' => 'ResourceId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The protected domain name. Fuzzy search is supported.'."\n", - 'type' => 'string', - 'required' => false, + 'description' => 'The list of resource IDs. You can specify up to 50 resource IDs.', + 'type' => 'array', + 'items' => ['description' => 'The resource ID.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'example.com'], + 'required' => true, 'example' => 'example.com', + 'maxItems' => 51, + 'title' => '', ], ], [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The page number of the returned page. Valid values: **1** to **100000**. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'PageSize', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The number of domain names to return on each page. Valid values: an integer from **1** to **500**. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'example' => '20', - 'default' => '20', + 'description' => 'The list of tags. You can specify up to 20 tags.', + 'type' => 'array', + 'items' => [ + 'description' => 'The tag.', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'env'], + 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'value'], + ], + 'required' => false, + 'title' => '', + ], + 'required' => true, + 'maxItems' => 21, + 'title' => '', ], ], ], 'responses' => [ 200 => [ - 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => 'The number of domain names returned per page, which is the same as the PageSize parameter in request parameters.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '3C6CCEC4-6B88-4D4A-93E4-D47B3D92C630', - ], - 'PageNumber' => [ - 'description' => 'The page number of the returned page, which is the same as the PageNumber parameter in request parameters.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalCount' => [ - 'description' => 'The total number of domain names returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'Domains' => [ - 'description' => 'The information about the protected domain names.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'PolicyName' => [ - 'description' => 'The name of the protection policy.'."\n", - 'type' => 'string', - 'example' => 'test1', - ], - 'PolicyId' => [ - 'description' => 'The ID of the protection policy.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1000001', - ], - 'DomainName' => [ - 'description' => 'The protected domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'PolicyType' => [ - 'description' => 'Indicates whether the protection policy is the default policy. Valid values:'."\n" - ."\n" - .'* default: The protection policy is the default policy.'."\n" - .'* custom: The protection policy is not the default policy.'."\n", - 'type' => 'string', - 'example' => 'default', - ], - 'Policies' => [ - 'description' => 'The policy that is bound to the domain name.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Id' => [ - 'description' => 'The ID of the rule.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10000002', - ], - 'Name' => [ - 'description' => 'The name of the policy.'."\n", - 'type' => 'string', - 'example' => 'test2', - ], - 'Type' => [ - 'description' => 'The type of the policy.'."\n", - 'type' => 'string', - 'example' => 'custom', - ], - ], - ], - 'required' => false, - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '97C68796-EB7F-4D41-9D5B-12B909D76508'], ], + 'description' => '', + 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'The specified parameter is invalid.', - ], + ['errorCode' => 'InvalidRegionId.Malformed', 'errorMessage' => 'The specified RegionId is invalid.', 'description' => 'The RegionId parameter is set to an invalid value.'], + ['errorCode' => 'Resource.NotExist', 'errorMessage' => 'The resource does not exist.', 'description' => 'The specified resource does not exist.'], + ['errorCode' => 'TagKeyIsInvalid', 'errorMessage' => 'The specified TagKey is invalid.', 'description' => 'The TagKey parameter is set to an invalid value.'], + ['errorCode' => 'TooManyTags', 'errorMessage' => 'You have entered too many tags.', 'description' => 'The number of specified tags exceeds the upper limit.'], + ['errorCode' => 'TagValueIsInvalid', 'errorMessage' => 'The specified TagValue is invalid.', 'description' => 'The TagValue parameter is set to an invalid value. Specify another value and try again.'], + ['errorCode' => 'TagKeyDuplicated', 'errorMessage' => 'The specified TagKey is duplicated.', 'description' => 'The value of the TagKey parameter must be unique.'], + ['errorCode' => 'TagIsInvalid', 'errorMessage' => 'The number of Tag exceeds 20.', 'description' => 'The number of tags cannot exceed 20.'], + ['errorCode' => 'ResourceIdIsInvalid', 'errorMessage' => 'The number of ResourceId exceeds 50.', 'description' => 'The number of resource IDs (ResourceId) cannot exceed 50.'], + ['errorCode' => 'SystemTagIsInvalid', 'errorMessage' => 'The number of System Tag exceeds 50.', 'description' => 'The number of system tags cannot exceed 50.'], + ['errorCode' => 'CustomTagIsInvalid', 'errorMessage' => 'The number of Custom Tag exceeds 20.', 'description' => 'The number of tags cannot exceed 20.'], ], ], - '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' => 'DescribeDcdnWafPolicyValidDomains', - 'description' => 'You can call this operation up to 20 times per second per account.'."\n", - ], - 'DescribeDcdnWafFilterInfo' => [ - 'summary' => 'Queries the information about match conditions in a custom protection rule, such as the match fields, logical characters, and match content.', - 'methods' => [ - 'get', - 'post', + 'title' => 'TagDcdnResources', + 'summary' => 'You can call TagDcdnResources to add tags to resources.', + 'description' => '> The call frequency for a single user is limited to 100 times per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-07-25T12:33:57.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-01-04T01:53:11.000Z', 'description' => 'Response parameters changed'], ], - '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' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"97C68796-EB7F-4D41-9D5B-12B909D76508\\"\\n}","type":"json"}]', + ], + 'UntagDcdnResources' => [ + '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' => 'DefenseScenes', + 'name' => 'ResourceType', 'in' => 'query', 'schema' => [ - 'description' => 'The type of the protection policy. Separate multiple types with commas (,). Valid values:'."\n" - ."\n" - .'* waf_group: basic web protection'."\n" - .'* custom_acl: custom protection'."\n" - .'* whitelist: IP address whitelist'."\n" - ."\n" - .'>If you do not specify this parameter, all types are returned.', + 'description' => 'The type of the resource. The value must be **DOMAIN**.', 'type' => 'string', - 'required' => false, - 'example' => 'custom_acl', + 'required' => true, + 'enum' => ['DOMAIN'], + 'title' => '', + 'example' => 'DOMAIN', ], ], [ - 'name' => 'Language', + 'name' => 'All', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to remove all tags. Valid values:'."\n" + ."\n" + .'- **true**: Yes.'."\n" + .'- **false**: No.'."\n" + ."\n" + .'The default value is **false**.', 'type' => 'boolean', 'required' => false, 'title' => '', 'example' => 'false'], + ], + [ + 'name' => 'ResourceId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'The language of the returned information. Valid values:'."\n" - ."\n" - .'* en: English'."\n" - .'* cn: Simplified Chinese'."\n", - 'type' => 'string', + 'description' => 'The IDs of the resources. You can specify from **1** to **50** resource IDs.', + 'type' => 'array', + 'items' => ['description' => 'The ID of the resource.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'example***.com'], 'required' => true, - 'example' => 'cn', + 'example' => 'example.com', + 'maxItems' => 51, + 'title' => '', + ], + ], + [ + 'name' => 'TagKey', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The keys of the tags to remove. You can specify from **1** to **20** tag keys.', + 'type' => 'array', + 'items' => ['description' => 'The key of the tag.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'env'], + 'required' => false, + 'example' => 'env', + 'maxItems' => 21, + 'title' => '', ], ], ], @@ -32153,344 +25973,92 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '153ca2cd-3c01-44be-204c-64dbc6c88630', - ], - 'Content' => [ - 'description' => 'The returned information.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DefenseScene' => [ - 'description' => 'The type of the protection policy. The value of this parameter is the same as that of the DefenseScenes parameter in the request.'."\n", - 'type' => 'string', - 'example' => 'custom_acl', - ], - 'Fields' => [ - 'description' => 'The information about the match condition.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ExtendField' => [ - 'description' => 'The description of the match field. This parameter is not returned or is empty if no match fields are found.'."\n", - 'type' => 'string', - 'example' => 'Custom Header'."\n", - ], - 'MatchField' => [ - 'description' => 'The match field.'."\n", - 'type' => 'string', - 'example' => 'Header', - ], - 'LogicalSymbol' => [ - 'description' => 'The information about the logical symbol.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => 'The number of match items. Valid values:'."\n" - ."\n" - .'* multi: You can specify multiple match items.'."\n" - .'* single: You can specify only a match item.'."\n" - .'* none: no match items.'."\n", - 'type' => 'string', - 'example' => 'multi', - ], - 'Symbol' => [ - 'description' => 'The logical symbol that is passed to the backend.'."\n", - 'type' => 'string', - 'example' => 'match-one', - ], - 'Tip' => [ - 'description' => 'The tips that are displayed in the match item.'."\n", - 'type' => 'string', - 'example' => 'You can enter up to 50 tips. Press the Enter key.'."\n", - ], - 'Attributes' => [ - 'description' => 'The configurable attributes, which are bit-field variables that are shown in the following list.\\'."\n" - .'For example, 1(00000001) indicates that case sensitivity can be enabled and stream match cannot be enabled, and 3(00000011) indicates that case sensitivity and stream match can be enabled.'."\n" - ."\n" - .'* Bit (low to high) - Description'."\n" - .'* 1 - Case sensitivity'."\n" - .'* 2 - Stream match'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'MaxLength' => [ - 'description' => 'The maximum number of match items that can be returned. The value of this parameter varies based on the value of the Type parameter. Valid values:'."\n" - ."\n" - .'* If **multi** is returned for the Type parameter, the value of this parameter indicates the maximum number of match items.'."\n" - .'* If **single** is returned for the Type parameter, the value of this parameter is 1.'."\n" - .'* If **none** is returned for the Type parameter, the value of this parameter is 0.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'Description' => [ - 'description' => 'The logical symbol that is displayed in the Dynamic Content Delivery Network (DCDN) console.'."\n", - 'type' => 'string', - 'example' => 'Equal to one of multiple values.'."\n", - ], - 'Regexp' => [ - 'description' => 'The information about the regular expression.'."\n", - 'type' => 'object', - 'properties' => [ - 'Pattern' => [ - 'description' => 'The regular expression.'."\n", - 'type' => 'string', - 'example' => '^\\S+$', - ], - 'ErrMsg' => [ - 'description' => 'The error message returned when no items match the regular expression.'."\n", - 'type' => 'string', - 'example' => 'Specify this field.'."\n", - ], - ], - ], - ], - 'description' => '', - ], - ], - ], - 'description' => '', - ], - ], - ], - 'description' => '', - ], - ], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '97C68796-EB7F-4D41-9D5B-12B909D76508'], ], 'description' => '', + 'title' => '', ], ], ], - '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' => 'DescribeDcdnWafFilterInfo', - 'description' => 'You can call this operation up to 20 times per second per account.'."\n", + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'TagIsInvalid', 'errorMessage' => 'The number of Tag exceeds 20.', 'description' => 'The number of tags cannot exceed 20.'], + ['errorCode' => 'ResourceIdIsInvalid', 'errorMessage' => 'The number of ResourceId exceeds 50.', 'description' => 'The number of resource IDs (ResourceId) cannot exceed 50.'], + ], + ], + 'title' => 'UntagDcdnResources', + 'summary' => 'You can call UntagDcdnResources to delete tags from resources.', + 'description' => '> The call frequency for a single user is limited to 100 calls per second.', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnWafSpecInfo' => [ - 'summary' => 'Queries the version of Web Application Firewall (WAF) used in Dynamic Content Delivery Network (DCDN).', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UntagDcdnResources'], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], - ], - 'parameters' => [], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Edition' => [ - 'description' => 'The version of WAF.'."\n", - 'type' => 'string', - 'example' => 'dcdnwaf_afterpay', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '7281593a-f414-42c1-b7ba-2ce65e21cc00', - ], - 'SpecInfos' => [ - 'description' => 'The supported types of protection policies and the configuration information of protection rules.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DefenseScene' => [ - 'description' => 'The type of the protection policy. Valid values:'."\n" - ."\n" - .'* waf_group: basic web protection'."\n" - .'* custom_acl: custom'."\n" - .'* whitelist: whitelist'."\n" - .'* ip_blacklist: IP address blacklist'."\n" - .'* region_block: region blacklist'."\n" - .'* bot: bot management'."\n", - 'type' => 'string', - 'example' => 'custom_acl', - ], - 'Configs' => [ - 'description' => 'The configuration information of the protection rule.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Value' => [ - 'description' => 'The value of the configuration expression of the protection rule.'."\n", - 'type' => 'string', - 'example' => 'on', - ], - 'Config' => [ - 'description' => 'The configuration code of the protection rule.'."\n", - 'type' => 'string', - 'example' => 'enable', - ], - 'Expr' => [ - 'description' => 'The configuration expression of the protection rule.'."\n", - 'type' => 'string', - 'example' => 'equal', - ], - ], - ], - ], - ], - ], - ], + '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 \\"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' => 'DescribeDcdnWafSpecInfo', - 'description' => 'You can call this operation up to 20 times per second per account.'."\n", + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"97C68796-EB7F-4D41-9D5B-12B909D76508\\"\\n}","type":"json"}]', ], - 'DescribeDcdnWafService' => [ - 'summary' => 'Queries the information about Dynamic Content Delivery Network (DCDN) Web Application Firewall WAF), including the time when WAF is enabled, edition of WAF, current status of WAF, metering method for requests, and metering method for rules.', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateDcdnDeliverTask' => [ + 'summary' => 'Call the UpdateDcdnDeliverTask operation to update a subscribed report task by its tracking task ID.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '133730', - 'abilityTreeNodes' => [ - 'FEATUREdcdnZA9EPX', - ], - 'tenantRelevance' => 'publicInformation', + 'abilityTreeNodes' => ['FEATUREdcdnGMYWU5'], ], - 'parameters' => [], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => 'The status of WAF. Valid values:'."\n" - ."\n" - .'* Normal'."\n" - .'* WaitForExpire'."\n" - .'* Expired'."\n" - .'* Released'."\n", - 'type' => 'string', - 'example' => 'Normal', - ], - 'RequestBillingType' => [ - 'description' => 'The metering method for requests.'."\n", - 'type' => 'string', - 'example' => 'dcdn_waf_req', - ], - 'Edition' => [ - 'description' => 'The edition of WAF.'."\n", - 'type' => 'string', - 'example' => 'dcdnwaf_afterpay', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '4A95CA90-E0F2-1BF6-99E0-8C1510CAF649', - ], - 'OpeningTime' => [ - 'description' => 'The time when WAF was enabled.'."\n", - 'type' => 'string', - 'example' => '2021-09-26T16:00:00Z', - ], - 'Enabled' => [ - 'description' => 'The status of WAF. Valid values:'."\n" - ."\n" - .'* on'."\n" - .'* off'."\n", - 'type' => 'string', - 'example' => 'on', - ], - 'RuleBillingType' => [ - 'description' => 'The metering method for rules. You are charged for the number of SeCUs.'."\n", - 'type' => 'string', - 'example' => 'dcdn_waf_rule', - ], - ], - ], + 'parameters' => [ + [ + 'name' => 'DeliverId', + 'in' => 'formData', + 'schema' => ['description' => 'The ID of the tracking task to update.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'title' => '', 'example' => '92'], ], - ], - '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' => 'DescribeDcdnWafService', - 'description' => '# Usage notes'."\n" - ."\n" - .'You can call this operation up to 20 times per second per account.'."\n", - ], - 'DescribeDcdnWafGeoInfo' => [ - 'summary' => 'Queries the countries and regions that can be added to the blacklist of Web Application Firewall (WAF).', - 'methods' => [ - 'get', - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the tracking task.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'Domain subscription'], ], - ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', + [ + 'name' => 'Reports', + 'in' => 'formData', + 'schema' => ['description' => 'A list of reports to subscribe to. The value must be a JSON-escaped string.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '[{\\"reportId\\":2,\\"conditions\\":[{\\"field\\":\\"prov\\",\\"op\\":\\"in\\",\\"value\\":[\\" Heilongjiang\\",\\" Beijing\\"]}]}]'], ], - ], - 'parameters' => [ [ - 'name' => 'Language', - 'in' => 'query', - 'schema' => [ - 'description' => 'The language of the information to return. Valid values:'."\n" - ."\n" - .'* cn: Chinese'."\n" - .'* en: English'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'cn', - ], + 'name' => 'DomainName', + 'in' => 'formData', + 'schema' => ['description' => 'A list of domain names for the subscription. Separate multiple domain names with commas (,). If you do not set this parameter, reports for all domain names that belong to your account are delivered by default.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'www.example.com'], + ], + [ + 'name' => 'Deliver', + 'in' => 'formData', + 'schema' => ['description' => 'The method for sending reports. Only email delivery is supported. The value must be a JSON-escaped string.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '{"email":{"subject":" topic name","to":["username@example.com","username@example.com"]}}'], + ], + [ + 'name' => 'Schedule', + 'in' => 'formData', + 'schema' => ['description' => 'Parameters for the subscription cycle. The value must be a JSON-escaped string.', 'type' => 'string', 'required' => false, 'title' => '', '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' => [ @@ -32498,148 +26066,119 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE', - ], - 'Content' => [ - 'description' => 'The type of information about the country or region.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => 'The type of the region.'."\n" - ."\n" - .'* CN: China'."\n" - .'* Other: outside China'."\n", - 'type' => 'string', - 'example' => 'CN', - ], - 'Continents' => [ - 'description' => 'The information about the country or region.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Name' => [ - 'description' => 'The district to which the country or region belongs.'."\n", - 'type' => 'string', - 'example' => 'China'."\n", - ], - 'Regions' => [ - 'description' => 'The region information.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Name' => [ - 'description' => 'The name of the country or region.'."\n", - 'type' => 'string', - 'example' => 'Beijing'."\n", - ], - 'Value' => [ - 'description' => 'The code of the country or region.'."\n", - 'type' => 'string', - 'example' => '110000', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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' => 'DescribeDcdnWafGeoInfo', - 'description' => '> You can call this operation up to 20 times per second per account.'."\n", - 'requestParamsDescription' => ' ', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'TimeParseFailed', 'errorMessage' => 'Failed to parse the time parameter.', 'description' => 'Failed to parse the time parameter.'], + ['errorCode' => 'SubscriptionAlreadyExists', 'errorMessage' => 'The subscription already exists.', 'description' => 'The subscription already exists.'], + ['errorCode' => 'SubscriptionNotFound', 'errorMessage' => 'The subscription is not found.', 'description' => 'The subscription is not found.'], + ['errorCode' => 'NameAlreadyExists', 'errorMessage' => 'The name already exists.', 'description' => 'The name already exists.'], + ['errorCode' => 'DeliverExceedLimit', 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', 'description' => 'The number of tracking tasks has reached the upper limit.'], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]', + 'title' => 'UpdateDcdnDeliverTask', + 'description' => '> The call frequency for a single user is limited to 3 calls per second.', + 'requestParamsDescription' => '**Report data**'."\n" + ."\n" + .'| Parameter | Type | Required | Description |'."\n" + .'| ---------- | ----------- | -------- | ------------------------------------- |'."\n" + .'| reportId | String | Yes | The report ID. |'."\n" + .'| conditions | ConDatas\\[] | No | The filter conditions for the report. |'."\n" + ."\n" + .'**Condition data**'."\n" + ."\n" + .'| Parameter | Type | Required | Description |'."\n" + .'| --------- | --------- | -------- | ---------------------------------------------- |'."\n" + .'| field | String | No | The filter field. |'."\n" + .'| op | String | No | The filter operator. Only **in** is supported. |'."\n" + .'| value | String\\[] | No | An array of field values. |'."\n" + ."\n" + .'**Delivery data**'."\n" + ."\n" + .'| Parameter | Type | Required | Description |'."\n" + .'| --------- | --------- | -------- | ------------------------------ |'."\n" + .'| subject | String | No | The subject of the email. |'."\n" + .'| to | String\\[] | Yes | A list of recipient mailboxes. |'."\n" + ."\n" + .'**Schedule data**'."\n" + ."\n" + .'| Parameter | Type | Required | Description |'."\n" + .'| ------------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------ |'."\n" + .'| schedName | String | No | The name of the tracking task. |'."\n" + .'| description | String | No | The description of the tracking task. |'."\n" + .'| crontab | String | Yes | The delivery cycle of the tracking task. |'."\n" + .'| frequency | String | Yes | The delivery frequency. Valid values: **h**: hourly **d**: daily **w**: weekly |'."\n" + .'| status | String | No | The status of the tracking task. Valid values: **enable**: The task is enabled. **disable**: The task is disabled. |'."\n" + .'| effectiveFrom | String | No | The start time of the delivery task. |'."\n" + .'| effectiveEnd | String | No | The end time of the delivery task. |', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DescribeDcdnWafUsageData' => [ - 'summary' => 'The number of used SeCUs.', - 'methods' => [ - 'get', - 'post', + '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}'], + ], + ], + ], ], + 'translator' => 'machine', + ], + 'UpdateDcdnDomain' => [ + 'summary' => 'Updates the configurations of an accelerated domain name.', + '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' => 'The timestamp of the data returned.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => 'The beginning of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-09-30T16:00:00Z', - ], + 'schema' => ['description' => 'The accelerated domain name. You can specify only one domain name in each request.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], ], [ - 'name' => 'EndTime', + 'name' => 'Sources', 'in' => 'query', - 'schema' => [ - 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n" - ."\n" - .'> The end time must be later than the start time.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '2018-10-01T16:00:00Z', - ], + 'schema' => ['description' => 'The list of origin addresses.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '[{"content":"10.10.10.10","type":"ipaddr","priority":"20","port":80}]'], ], [ - 'name' => 'Interval', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of used SeCUs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '300', - ], + 'schema' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'rg-xxxxx'], ], [ - 'name' => 'SplitBy', + 'name' => 'TopLevelDomain', 'in' => 'query', - 'schema' => [ - 'description' => 'The WAF information about the accelerated domain name.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'domain', - ], + 'schema' => ['description' => 'The top-level domain.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'yourTopLevelDomain '], ], ], 'responses' => [ @@ -32647,836 +26186,526 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => 'The operation that you want to perform. Set the value to **DescribeDcdnWafUsageData**.'."\n", - 'type' => 'string', - 'example' => '2018-10-01T16:00:00Z', - ], - 'StartTime' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => '2018-09-30T16:00:00Z",', - ], - 'RequestId' => [ - 'description' => 'Specifies how query results are grouped. By default, this parameter is empty. Valid values:'."\n" - ."\n" - .'* domain: Query results are grouped by accelerated domain name.'."\n" - .'* An empty string: Query results are not grouped.'."\n", - 'type' => 'string', - 'example' => 'CB1A380B-09F0-41BB-802B-72F8FD6DA2FE', - ], - 'WafUsageData' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'WafUsageDataItem' => [ - 'description' => 'The number of monitored requests.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ObserveCnt' => [ - 'description' => 'The end of the time range during which data was queried.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '300', - ], - 'Domain' => [ - 'description' => 'The domain name that you want to query. If you do not specify an accelerated domain name, all accelerated domain names are queried by default.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'BlockCnt' => [ - 'description' => 'The number of allowed requests.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '300', - ], - 'AccessCnt' => [ - 'description' => 'The number of blocked requests.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '600', - ], - 'TimeStamp' => [ - 'description' => 'The beginning of the time range during which data was queried.'."\n", - 'type' => 'string', - 'example' => '2018-09-30T16:00:00Z', - ], - 'SecCu' => [ - 'description' => 'The time granularity for a query. Unit: seconds.'."\n" - ."\n" - .'The time granularity varies with the maximum time range per query. Valid values: 300 (5 minutes), 3600 (1 hour), and 86400 (1 day).'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '50', - ], - ], - ], - ], - ], - ], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9'], ], + 'description' => '', + 'title' => '', ], ], ], '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' => 'MissingDomainName', 'errorMessage' => 'The domainName parameter is required.', 'description' => 'The domain name parameter is not specified.'], + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => 'The specified domain name is invalid.'], + ['errorCode' => 'InvalidSource.Content.Malformed', 'errorMessage' => 'The specified Source Content is invalid.', 'description' => 'The information about the origin server is invalid.'], + ['errorCode' => 'InvalidTypeContent.Mismatch', 'errorMessage' => 'The specified source type does not match the specified source content.', 'description' => 'The specified origin server type does not match the type of the specified origin server. Specify a valid value and try again.'], + ['errorCode' => 'MissingSource.Content', 'errorMessage' => 'The Source Content must be specified.', 'description' => 'No value is specified for the content field in the Sources parameter.'], + ['errorCode' => 'MissingSource.Type', 'errorMessage' => 'The Source Type must be specified.', 'description' => 'No value is specified for the type field in the Sources parameter.'], + ['errorCode' => 'InvalidSource.Type.Malformed', 'errorMessage' => 'The specified Source Type is invalid.', 'description' => 'The value specified for the type field in the Sources parameter is invalid.'], + ['errorCode' => 'InvalidSource.Priority.Malformed', 'errorMessage' => 'The specified Source Priority is invalid.', 'description' => 'The value specified for the priority field in the Sources parameter is invalid.'], + ['errorCode' => 'InvalidResourceGroupId.Malformed', 'errorMessage' => 'The specified ResourceGroupId is invalid.', 'description' => 'The value specified for the ResourceGroupId parameter is invalid. Specify a valid value and try again.'], + ['errorCode' => 'EntityNotExists.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => 'The specified resource group does not exist.'], + ['errorCode' => 'EntityNotExist.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => 'The specified resource group does not exist.'], + ['errorCode' => 'InvalidStatus.ResourceGroup', 'errorMessage' => 'The current status of the resource group does not support this operation.', 'description' => 'This operation is not supported while the resource group is in the current state.'], + ['errorCode' => 'TopLevelDomain.NotFound', 'errorMessage' => 'The specified TopLevelDomain does not exist.', 'description' => 'The specified top-level domain name does not exist.'], + ['errorCode' => 'TopLevelDomain.Mismatch', 'errorMessage' => 'The specified TopLevelDomain does not match webSiteType.', 'description' => 'The top-level domain name does not match the domain name type.'], + ], + 403 => [ + ['errorCode' => 'DomainInProtectedMode', 'errorMessage' => 'The domain is in protection mode. To request permission, contact Customer Service.', 'description' => 'The specified domain name is in the protected mode. If you must perform this operation, contact customer service.'], ], ], - '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' => 'DescribeDcdnWafUsageData', - 'description' => '* You can call this operation up to 10 times per second per account.'."\n" - .'* The minimum time granularity for a query is 5 minutes. The maximum time span for a query is 31 days. The time period within which historical data is available for a query is 90 days.'."\n", - ], - 'DescribeDcdnWafGroups' => [ - 'summary' => 'Queries custom Web Application Firewall (WAF) rule groups.', - 'methods' => [ - 'get', - 'post', + 'title' => 'UpdateDcdnDomain', + 'description' => '> The throttling limit for a single user is 30 calls per second.', + 'requestParamsDescription' => 'The following table describes the fields in the Sources parameter.'."\n" + ."\n" + .'| Parameter | Type | Required | Description |'."\n" + .'| --------- | ------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| type | String | Yes | The type of the origin server. Valid values:<br>**ipaddr**: an IP address.<br>**domain**: a domain name.<br>**oss**: an Object Storage Service (OSS) bucket.<br>**fc_domain**: a Function Compute domain name. |'."\n" + .'| content | String | Yes | The address of the origin server. The value can be an IP address or a domain name. |'."\n" + .'| port | Integer | No | The port. You can specify port **443** or **80**, or a custom port. The default value is **80**. Port **443** is used for HTTPS origin fetch. |'."\n" + .'| priority | String | No | The priority of the origin server. Valid values are **20** and **30**. The default value is **20**. A value of **20** indicates the primary origin server, and a value of **30** indicates the secondary origin server. |'."\n" + .'| weight | String | No | The weight of the origin server. The value must be an integer less than or equal to **100**. The default value is **10**. |', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateDcdnDomain'], + ], ], - 'schemes' => [ - 'http', - 'https', + '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\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","type":"json"}]', + ], + 'UpdateDcdnIpaDomain' => [ + 'summary' => 'You can call the UpdateDcdnIpaDomain operation to modify an accelerated domain name for IPA.', + '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', - ], + 'abilityTreeCode' => '111620', + 'abilityTreeNodes' => ['FEATUREdcdn2E10XY'], ], 'parameters' => [ [ - 'name' => 'Language', + 'name' => 'DomainName', 'in' => 'query', - 'allowEmptyValue' => true, - 'schema' => [ - 'description' => 'The language of the response. Valid values:'."\n" - ."\n" - .'* **en** (default): English.'."\n" - .'* **zh**: Chinese.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'zh', - ], + 'schema' => ['description' => 'The domain name to accelerate with IP Application Accelerator (IPA). You can modify only one domain name at a time.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'example.com'], ], [ - 'name' => 'QueryArgs', + 'name' => 'Sources', 'in' => 'query', - 'schema' => [ - 'description' => 'The query conditions. The value is a string in the JSON format. Format: `QueryArgs={"PolicyIds":"IDs of protection policies","RuleIds":"IDs of the protection rules","RuleNameLike":"Names of the protection rule","DomainNames":"Protected domain names","DefenseScenes":"waf_group","RuleStatus":"on","OrderBy":"GmtModified","Desc":"false"}`'."\n" - ."\n" - .'> If you do not specify this parameter, all protection rules are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"RuleIds":"100001,200002"}', - ], + 'schema' => ['description' => 'The list of origin addresses.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '[{"content":"10.10.10.10","type":"ipaddr","priority":"20","port":80,"weight":"15"}]'], ], [ - 'name' => 'PageNumber', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => 'The ID of the resource group.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'rg-acfmyuji4b6r4**'], ], [ - 'name' => 'PageSize', + 'name' => 'TopLevelDomain', 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - 'default' => '20', - ], + 'schema' => ['description' => 'The top-level domain.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'example.edu'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], - 'TotalCount' => [ - 'description' => 'The number of WAF rule groups.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '16', - ], - 'WafGroups' => [ - 'description' => 'The list of WAF rule groups.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'GmtModified' => [ - 'description' => 'The time when the WAF rule group was modified.'."\n", - 'type' => 'string', - 'example' => '2020-04-12 22:25:11', - ], - 'Id' => [ - 'description' => 'The ID of the custom WAF rule group.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '30000156', - ], - 'Name' => [ - 'description' => 'The name of the WAF rule.'."\n", - 'type' => 'string', - 'example' => 'DCDN-test-operation-reports-1', - ], - 'RuleCount' => [ - 'description' => 'The number of WAF rules.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '452', - ], - 'TemplateId' => [ - 'description' => 'The ID of the template.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1012', - ], - 'Subscribe' => [ - 'description' => 'Indicates whether to enable subscription. Valid values:'."\n" - ."\n" - .'* **on**'."\n" - .'* **off**'."\n", - 'type' => 'string', - 'example' => 'on', - ], - 'Policies' => [ - 'description' => 'The policy that is associated with the WAF rule group.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Id' => [ - 'description' => 'The ID of the policy.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '30000165', - ], - 'Name' => [ - 'description' => 'The name of the policy.'."\n", - 'type' => 'string', - 'example' => 'wasm-testmaster', - ], - 'Type' => [ - 'description' => 'The type of the policy. Valid values:'."\n" - ."\n" - .'* **custom**: a custom policy'."\n" - .'* **default**: the default policy'."\n", - 'type' => 'string', - 'example' => 'default', - ], - ], - ], - ], - ], - ], - ], - 'PageNumber' => [ - 'description' => 'The page number of the returned page. Default value: 1.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => 'The number of entries to return on each page. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '15C66C7B-671A-4297-9187-2C4477247A74'], ], + 'description' => '', + 'title' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MissingDomainName', 'errorMessage' => 'The domainName parameter is required.', 'description' => 'The domain name parameter is not specified.'], + ['errorCode' => 'InvalidDomainName.Malformed', 'errorMessage' => 'The specified DomainName is invalid.', 'description' => 'The specified domain name is invalid.'], + ['errorCode' => 'InvalidSource.Content.Malformed', 'errorMessage' => 'The specified Source Content is invalid.', 'description' => 'The information about the origin server is invalid.'], + ['errorCode' => 'InvalidTypeContent.Mismatch', 'errorMessage' => 'The specified source type does not match the specified source content.', 'description' => 'The specified origin server type does not match the type of the specified origin server. Specify a valid value and try again.'], + ['errorCode' => 'MissingSource.Content', 'errorMessage' => 'The Source Content must be specified.', 'description' => 'No value is specified for the content field in the Sources parameter.'], + ['errorCode' => 'MissingSource.Type', 'errorMessage' => 'The Source Type must be specified.', 'description' => 'No value is specified for the type field in the Sources parameter.'], + ['errorCode' => 'InvalidSource.Type.Malformed', 'errorMessage' => 'The specified Source Type is invalid.', 'description' => 'The value specified for the type field in the Sources parameter is invalid.'], + ['errorCode' => 'InvalidSource.Priority.Malformed', 'errorMessage' => 'The specified Source Priority is invalid.', 'description' => 'The value specified for the priority field in the Sources parameter is invalid.'], + ['errorCode' => 'InvalidResourceGroupId.Malformed', 'errorMessage' => 'The specified ResourceGroupId is invalid.', 'description' => 'The value specified for the ResourceGroupId parameter is invalid. Specify a valid value and try again.'], + ['errorCode' => 'EntityNotExists.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => 'The specified resource group does not exist.'], + ['errorCode' => 'EntityNotExist.ResourceGroup', 'errorMessage' => 'The resource group does not exist.', 'description' => 'The specified resource group does not exist.'], + ['errorCode' => 'InvalidStatus.ResourceGroup', 'errorMessage' => 'The current status of the resource group does not support this operation.', 'description' => 'This operation is not supported while the resource group is in the current state.'], + ['errorCode' => 'TopLevelDomain.NotFound', 'errorMessage' => 'The specified TopLevelDomain does not exist.', 'description' => 'The specified top-level domain name does not exist.'], + ['errorCode' => 'InvalidSource.Port.Malformed', 'errorMessage' => 'The source port is empty, or it is outside the range 0-65535.', 'description' => 'No port is specified or the specified port number is invalid. Valid values: 0 to 65535.'], + ], + 403 => [ + ['errorCode' => 'DomainInProtectedMode', 'errorMessage' => 'The domain is in protection mode. To request permission, contact Customer Service.', 'description' => 'The specified domain name is in the protected mode. If you must perform this operation, contact customer service.'], + ['errorCode' => 'DcdnIpaServiceNotFound', 'errorMessage' => 'The DCDN IPA service has not been activated.', 'description' => 'IPA is not activated for DCDN.'], + ], + [ + ['errorCode' => 'NoResource', 'errorMessage' => 'The required port has no resources, please submit a ticket.', 'description' => 'The required port has no resources, please submit a ticket.'], + ], ], - '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' => 'DescribeDcdnWafGroups', - ], - 'DescribeDcdnWafGroup' => [ - 'summary' => 'Queries the details of a custom WAF rule group by page.', - 'methods' => [ - 'get', - 'post', + 'title' => 'UpdateDcdnIpaDomain', + 'description' => '> The throttling limit for a single user is 20 calls per second.', + 'requestParamsDescription' => 'The following table describes the fields in Sources.'."\n" + ."\n" + .'| Parameter | Type | Required | Description |'."\n" + .'| --------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| type | String | Yes | The type of the origin server. Valid values: **ipaddr**: an IP address. **domain**: a domain name. **oss**: an OSS domain name. |'."\n" + .'| content | String | Yes | The origin URL. This can be an IP address or a domain name. |'."\n" + .'| port | Integer | No | The custom port. Valid values: 0 to **65535**. |'."\n" + .'| priority | String | No | The priority of the origin server. Valid values are **20** (default) and **30**. A value of **20** indicates the primary origin server and **30** indicates the secondary origin server. |'."\n" + .'| weight | String | No | The weight for origin fetch. The value must be less than **100**. The default value is **10**. |', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-04-09T01:37:08.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateDcdnIpaDomain'], + ], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UpdateDcdnIpaDomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'IpaDomain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A74\\"\\n}","type":"json"}]', + ], + 'UpdateDcdnSLSRealtimeLogDelivery' => [ + 'summary' => 'Updates a real-time log delivery project.', + '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' => 'Language', - 'in' => 'query', - 'schema' => [ - 'description' => 'The language of the response. Valid values:'."\n" - ."\n" - .'* **en**: English.'."\n" - .'* **zh**: Chinese.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'zh', - 'enum' => [ - 'zh', - 'en', - ], - ], + 'name' => 'ProjectName', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the project.', 'type' => 'string', 'required' => true, 'example' => 'example', 'title' => ''], ], [ - 'name' => 'Id', - 'in' => 'query', - 'schema' => [ - 'description' => 'The ID of the WAF rule group. You can query the ID by calling the [DescribeDcdnWafGroups](~~DescribeDcdnWafGroups~~) operation.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1012', - ], + 'name' => 'DomainName', + 'in' => 'formData', + 'schema' => ['description' => 'The domain names from which logs were collected. You can specify one or more domain names. Separate multiple domain names with commas (,).', 'type' => 'string', 'required' => true, 'example' => 'example.com', 'title' => ''], ], [ - 'name' => 'Scope', - 'in' => 'query', - 'schema' => [ - 'description' => 'The range of the rule group to be queried.'."\n" - ."\n" - .'* **in**: Rules in the rule group are returned.'."\n" - .'* **out**: Rules that are in the full rule set but are not in the rule group are returned.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'in', - 'enum' => [ - 'in', - 'out', - ], - ], + 'name' => 'SamplingRate', + 'in' => 'formData', + 'schema' => ['description' => 'The sampling rate.', 'type' => 'string', 'required' => false, 'example' => '1.0', 'title' => ''], ], [ - 'name' => 'QueryArgs', - 'in' => 'query', - 'schema' => [ - 'description' => 'The query conditions. The value is a JSON string in the following format:'."\n" - ."\n" - .'`QueryArgs={"PolicyIds":"The range of protection policy IDs","RuleIds":"The range of protection rule IDs","RuleNameLike":"The name of the protection rule","DomainNames":"The protected domain names","DefenseScenes":"waf_group","RuleStatus":"on","OrderBy":"GmtModified","Desc":"false"}`'."\n" - ."\n" - .'> If you do not specify this parameter, all protection rules are queried.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{\\"RiskLevel\\":\\"\\",\\"ProtectionType\\":\\"\\",\\"ApplicationType\\":\\"\\",\\"RuleIdLike\\":\\"\\"}', - ], + 'name' => 'SLSRegion', + 'in' => 'formData', + 'schema' => ['description' => 'The region to which logs were delivered.', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ - 'name' => 'PageNumber', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of the page to return. Default value: **1**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'name' => 'SLSProject', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the log file.', 'type' => 'string', 'required' => true, 'example' => 'example-cn', 'title' => ''], ], [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'The number of entries to return on each page. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - 'default' => '20', - ], + 'name' => 'SLSLogStore', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the Logstore.', 'type' => 'string', 'required' => true, 'example' => 'example-cn', 'title' => ''], + ], + [ + 'name' => 'DataCenter', + 'in' => 'formData', + 'schema' => ['description' => 'The region from which logs are collected.'."\n" + ."\n" + .'- **cn**: Chinese mainland'."\n" + ."\n" + .'- **sg**: Singapore'."\n" + ."\n" + .'- **in**: India'."\n" + ."\n" + .'- **eu**: Europe'."\n" + ."\n" + .'- **us**: United States', 'type' => 'string', 'required' => true, 'example' => 'cn', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368', - ], - 'Id' => [ - 'description' => 'The ID of the custom WAF rule group.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1012', - ], - 'Name' => [ - 'description' => 'The name of the WAF rule group.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'TemplateId' => [ - 'description' => 'The ID of the template.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1012', - ], - 'Subscribe' => [ - 'description' => 'Indicates whether to enable subscription. Valid values:'."\n" - ."\n" - .'* **on:**'."\n" - .'* **off**'."\n", - 'type' => 'string', - 'example' => 'on', - ], - 'TotalCount' => [ - 'description' => 'The total number of rules that are filtered out.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '16', - ], - 'Rules' => [ - 'description' => 'The configurations of the rule.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'GmtModified' => [ - 'description' => 'The time when the rule was modified.'."\n", - 'type' => 'string', - 'example' => '2021-12-29T17:08:45Z', - ], - 'Id' => [ - 'description' => 'The ID of the custom WAF rule.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100001', - ], - 'Name' => [ - 'description' => 'The name of the WAF rule.'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'Description' => [ - 'description' => 'The description of the WAF rule.'."\n", - 'type' => 'string', - 'example' => 'OK', - ], - 'RiskLevel' => [ - 'description' => 'The risk level of the resources that do not comply with the managed rule. Valid values:'."\n" - ."\n" - .'* **1**: high risk'."\n" - .'* **2**: medium risk'."\n" - .'* **3**: low risk'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'ProtectionType' => [ - 'description' => 'Protection type Valid values:'."\n" - ."\n" - .'* **11**: SQL injection'."\n" - .'* **12**: cross-site scripting (XSS)'."\n" - .'* **13**: code execution'."\n" - .'* **14**: carriage return line feeds (CRLF)'."\n" - .'* **15**: local file inclusion'."\n" - .'* **16**: remote file inclusion'."\n" - .'* **17**: webshells'."\n" - .'* **19**: cross-site request forgery'."\n" - .'* **20**: others'."\n" - .'* **21**: SEMA'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '11', - ], - 'ApplicationType' => [ - 'description' => 'The type of the application. Valid values:'."\n" - ."\n" - .'* **0**: Common'."\n" - .'* **1**: WordPress'."\n" - .'* **2**: DedeCMS'."\n" - .'* **3**: Discuz'."\n" - .'* **4**: PHP CMS'."\n" - .'* **5**: ECShop'."\n" - .'* **6**: ShopEX'."\n" - .'* **7**: 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'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'CveId' => [ - 'description' => 'The Common Vulnerabilities and Exposures (CVE) ID of the related vulnerability.'."\n", - 'type' => 'string', - 'example' => 'CVE-2021-22945', - ], - 'CveUrl' => [ - 'description' => 'The CVE link.'."\n", - 'type' => 'string', - 'example' => 'https://nxx.nxxx.gov/vuln/detail/CVE-2022-XXXX', + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => 'F32C57AA-7BF8-49AE-A2CC-9F42390F5A19', 'title' => ''], + 'Content' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Domains' => [ + 'description' => 'The configuration results of the domain name.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => 'Indicates whether the real-time log delivery project was successfully updated. Valid values:'."\n" + ."\n" + .'- **success**'."\n" + ."\n" + .'- **fail**', 'type' => 'string', 'example' => 'success', 'title' => ''], + 'DomainName' => ['description' => 'The domain name.', 'type' => 'string', 'example' => 'example.com', 'title' => ''], + 'Region' => ['description' => 'The name of the region.', 'type' => 'string', 'example' => 'cn', 'title' => ''], + 'Desc' => ['description' => 'The description of the returned result.', 'type' => 'string', 'example' => 'updated', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], ], - ], - 'PageNumber' => [ - 'description' => 'The page number of the page returned.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => 'The number of entries to return on each page. Default value: **20**.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', + 'description' => '', + 'title' => '', + 'example' => '', ], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Invalid.Parameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'The parameter is set to an invalid value.'], + ['errorCode' => 'ProjectNotFound', 'errorMessage' => 'The project provided does not belong to you.', 'description' => 'The project does not exist or does not belong to the current user.'], + ['errorCode' => 'InternalError', 'errorMessage' => 'An internal exception occurred, please try again later.', 'description' => 'An inner exception was triggered. Please try again later.'], + ], ], - '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' => 'DescribeDcdnWafGroup', - ], - 'CreateDcdnWafGroup' => [ - 'summary' => 'Create a custom WAF rule group.', - 'methods' => [ - 'post', - 'get', + 'title' => 'UpdateDcdnSLSRealtimeLogDelivery', + 'description' => '> Each account can call this operation up to 100 times per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-12-18T07:22:52.000Z', 'description' => 'Error codes changed'], + ['createdAt' => '2024-12-04T08:12:41.000Z', 'description' => 'Error codes changed'], ], - 'schemes' => [ - 'http', - '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' => '[{"errorExample":"","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}","type":"json"}]', + ], + 'UpdateDcdnSubTask' => [ + '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' => ['FEATUREdcdnGMYWU5'], ], 'parameters' => [ [ - 'name' => 'Name', + 'name' => 'ReportIds', 'in' => 'formData', - 'schema' => [ - 'description' => 'The name of the WAF rule group. The name can be up to 128 characters in length. This parameter is required when you create a custom WAF rule group.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'The IDs of the reports to customize. Separate multiple IDs with commas (,). Call the [DescribeDcdnSubList](~~270075~~) operation to query report IDs.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '2,4,6'], ], [ - 'name' => 'TemplateId', + 'name' => 'DomainName', 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the rule group to be replicated. This parameter is required when you replicate a custom WAF rule group. You can call the [DescribeDcdnWafGroups](~~DescribeDcdnWafGroups~~) operation to query the ID of the rule group. If no template is used, set the value to 0 or do not specify this parameter.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '0', - ], + 'schema' => ['description' => 'The domain names for which to customize reports. If you do not specify this parameter, operations reports are customized for all domain names under your account by default.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => 'www.example.com'], ], [ - 'name' => 'Subscribe', + 'name' => 'StartTime', 'in' => 'formData', - 'schema' => [ - 'description' => 'Specifies whether to enable subscription. Valid values:'."\n" - ."\n" - .'* **on**'."\n" - .'* **off**'."\n" - ."\n" - .'When you replicate a custom rule group, do not specify this parameter.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'on', - 'enum' => [], - ], + 'schema' => ['description' => 'The start time of the task. Use the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '2021-04-17T00:00:00Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'formData', + 'schema' => ['description' => 'The end time of the task. Use the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.', 'type' => 'string', 'required' => false, 'title' => '', 'example' => '2021-06-17T00:00:00Z'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '675F4820-400E-5929-8B03-2C031A5D5391', - ], - 'Id' => [ - 'description' => 'The ID of the created WAF rule group.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '30000166', - ], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368'], ], + 'description' => '', + 'title' => '', ], ], ], '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' => 'InvalidParameter', 'errorMessage' => 'The specified parameter is invalid.', 'description' => 'A parameter is set to an invalid value.'], + ['errorCode' => 'TimeParseFailed', 'errorMessage' => 'Failed to parse the time parameter.', 'description' => 'Failed to parse the time parameter.'], + ['errorCode' => 'SubscriptionAlreadyExists', 'errorMessage' => 'The subscription already exists.', 'description' => 'The subscription already exists.'], + ['errorCode' => 'SubscriptionNotFound', 'errorMessage' => 'The subscription is not found.', 'description' => 'The subscription is not found.'], + ['errorCode' => 'NameAlreadyExists', 'errorMessage' => 'The name already exists.', 'description' => 'The name already exists.'], + ['errorCode' => 'DeliverExceedLimit', 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.', 'description' => 'The number of tracking tasks has reached the upper limit.'], ], - 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' => 'UpdateDcdnSubTask', + 'summary' => 'Updates a custom operations report.', + 'description' => '> The throttling limit for a single user is 3 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-05-18T11:11:03.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateDcdnSubTask'], ], - 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UpdateDcdnSubTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'Domain', 'arn' => 'acs:dcdn:*:{#accountId}:domain/{#domainName}'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"675F4820-400E-5929-8B03-2C031A5D5391\\",\\n \\"Id\\": 30000166\\n}","type":"json"}]', - 'title' => 'CreateDcdnWafGroup', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","type":"json"}]', ], - 'DeleteDcdnWafGroup' => [ - 'summary' => 'Deletes a custom WAF rule group.', - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateDcdnUserRealTimeDeliveryField' => [ + 'summary' => 'Updates the fields in real-time log entries.', + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', - 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnSU2QP6', - ], + 'abilityTreeCode' => '111623', + 'abilityTreeNodes' => ['FEATUREdcdn9K10I1'], + 'tenantRelevance' => 'publicInformation', ], 'parameters' => [ [ - 'name' => 'Id', - 'in' => 'formData', - 'schema' => [ - 'description' => 'The ID of the custom WAF rule group.'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '30000135', - ], + 'name' => 'BusinessType', + 'in' => 'query', + 'schema' => ['description' => 'The type of the collected logs. Default value: cdn\\_log\\_access\\_l1. Valid values:'."\n" + ."\n" + .'- **cdn\\_log\\_access\\_l1**: access logs of L1 Dynamic Route for CDN (DCDN) points of presence (POPs)'."\n" + ."\n" + .'- **cdn\\_log\\_origin**: back-to-origin logs'."\n" + ."\n" + .'- **cdn\\_log\\_er**: EdgeRoutine logs', 'type' => 'string', 'required' => false, 'default' => 'dcdn_log_access_l1', 'example' => 'cdn_log_access_l1', 'title' => ''], + ], + [ + 'name' => 'Fields', + 'in' => 'query', + 'schema' => ['description' => 'The list of fields. Separate multiple fields with commas (,). For more information, see [Fields in a real-time log](~~324199~~).', 'type' => 'string', 'required' => true, 'example' => 'body_bytes_sent,client_ip,content_type', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The request ID.'."\n", 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '2430E05E-1340-5773-B5E1-B743929F46F2', - ], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'WafGroup.BeingBound', - 'errorMessage' => 'The specified WAF group is being bound.', - ], - [ - 'errorCode' => 'WafGroup.NotExist', - 'errorMessage' => 'The specified WAF group does not exist.', - ], - ], - 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' => 'InvalidParameters', 'errorMessage' => 'The specified parameters are invalid.', 'description' => 'A parameter is set to an invalid value.'], ], 500 => [ - [ - 'errorCode' => 'InternalError', - 'errorMessage' => 'An internal error occurred; please try again later.', - ], + ['errorCode' => 'Internal Exception', 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.', 'description' => 'Internal error, please try again later or contact us.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'UpdateDcdnUserRealTimeDeliveryField', + 'description' => '> Each account can call this operation up to 100 times per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2024-12-18T07:22:51.000Z', 'description' => 'Error codes changed'], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2430E05E-1340-5773-B5E1-B743929F46F2\\"\\n}","type":"json"}]', - 'title' => 'DeleteDcdnWafGroup', - ], - 'DescribeDcdnWafDefaultRules' => [ - 'summary' => 'Queries the default configurations of a WAF rule.', - 'methods' => [ - 'get', - 'post', + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4\\"\\n}","type":"json"}]', + ], + 'UploadRoutineCode' => [ + 'summary' => 'Call the UploadRoutineCode operation to upload code for an Edge Routine.', + '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', - ], + 'abilityTreeCode' => '111624', + 'abilityTreeNodes' => ['FEATUREdcdn75UYDO'], ], 'parameters' => [ [ - 'name' => 'QueryArgs', - 'in' => 'query', - 'schema' => [ - 'description' => 'The query conditions. The value is a string in the JSON format. Format: `QueryArgs={"DefenseScene":"anti_scan"}`'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{"DefenseScene":"anti_scan"}', - ], + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the Edge Routine. The name must be unique within an Alibaba Cloud account.', 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''], + ], + [ + 'name' => 'CodeDescription', + 'in' => 'formData', + 'schema' => ['description' => 'The description of the code version.', 'type' => 'string', 'required' => true, 'example' => 'Hello World', 'title' => ''], ], ], 'responses' => [ @@ -33484,122 +26713,90 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '15C66C7B-671A-4297-9187-2C4477247A123425345', - ], - 'Content' => [ - 'description' => 'The rule configurations.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'DefenseScene' => [ - 'description' => 'The protection scenario. Valid values:'."\n" - ."\n" - .'* **waf_group**: basic web protection.'."\n" - .'* **anti_scan**: scan protection.'."\n", - 'type' => 'string', - 'example' => 'anti_scan', - ], - 'Rules' => [ - 'description' => 'The rules.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '', - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => 'The type of the rule. Valid values:'."\n" - ."\n" - .'* **waf_group**: basic web protection.'."\n" - .'* **high_frequency**: high-frequency scanning blocking.'."\n" - .'* **directory_traversal**: directory traversal blocking.'."\n" - .'* **scan_tools**: scanner blocking.'."\n", - 'type' => 'string', - 'example' => 'waf_group', - ], - 'Name' => [ - 'description' => 'The default name of the rule.'."\n", - 'type' => 'string', - 'example' => 'Default_WafGroup_Rule', - ], - 'Status' => [ - 'description' => 'The default status of the rule. Valid values:'."\n" - ."\n" - .'* **on**'."\n" - .'* **off**'."\n", - 'type' => 'string', - 'example' => 'on', - ], - 'Config' => [ - 'description' => 'The default configuration of the rule.'."\n", - 'type' => 'string', - 'example' => '{\\"wafGroupIds\\":\\"1012\\"}', - ], - 'Action' => [ - 'description' => 'The default action of the rule. Valid values:'."\n" - ."\n" - .'* **monitor**'."\n" - .'* **deny**'."\n" - .'* **block**'."\n", - 'type' => 'string', - 'example' => 'block', - ], - ], - ], - ], - ], - ], - ], + 'Content' => ['description' => 'The content returned for the call. It includes the code version number and information related to the code upload.', 'type' => 'object', 'example' => 'OssPostConfig and CodeRevision', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'DFA2027F-86C0-4421-9593-581A7993696C', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => 'A server error occurred. Try again later. If the error persists, submit a ticket.'], + ], ], - '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' => 'DescribeDcdnWafDefaultRules', - ], - 'DescribeDcdnOriginSiteHealthStatus' => [ - 'summary' => 'Queries the status of the origin server for a DCDN-accelerated domain name.', - 'methods' => [ - 'get', - 'post', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"DFA2027F-86C0-4421-9593-581A7993696C\\"\\n}","type":"json"}]', + 'title' => 'UploadRoutineCode', + 'description' => '> - Uploading code for an Edge Routine generates a new version. You can use this version for code management and publishing.'."\n" + .'>'."\n" + .'> - An Edge Routine can have a maximum of 10 code versions. If this limit is exceeded, you can call the DeleteRoutineCodeRevision operation to delete unnecessary versions.'."\n" + .'>'."\n" + .'> - The call frequency for this operation is limited to 100 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => '### Content parameters'."\n" + ."\n" + .'| Name | Type | Example | Description |'."\n" + .'| ----------------- | ------ | ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |'."\n" + .'| CodeRevision | String | 1622034169188190000 | The code version number. |'."\n" + .'| OssPostConfig | Json | | The request content required to upload the JavaScript (JS) code. |'."\n" + .'| OSSAccessKeyId | String | KiTr**** | The AccessKey ID used to upload the object. |'."\n" + .'| Signature | String | +VaGBmeMjdKTD1E= | The signature calculated based on the AccessKey secret and policy. OSS authenticates the Post request by verifying this signature. |'."\n" + .'| callback | String | eyJjYWxsYmFja1VybCI6Imh0dHA6Ly9lci**** | A Base64-encoded JSON string. To construct this parameter, specify the server URL for the request callback (callbackUrl) and the callback content (callbackBody). |'."\n" + .'| x:codeDescription | String | IkhlbGxvIFdvcmxkIg== | The description of the current code version. |'."\n" + .'| Url | String | http://****.oss-cn-hangzhou.aliyuncs.com | The OSS domain name for uploading the object. |'."\n" + .'| key | String | test.123.69188190343.js | The name of the object to upload. |'."\n" + .'| policy | String | eyJleHBpcmF0aW9uIjoiMjAyMS0wNS0yNlQxMz**** | Used to authenticate the request. It is a UTF-8 and Base64-encoded JSON text that declares the conditions that the Post request must meet. |', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UploadRoutineCode'], + ], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UploadRoutineCode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'translator' => 'manual', + ], + 'UploadStagingRoutineCode' => [ + 'summary' => 'Call UploadStagingRoutineCode to upload test code for an Edge Routine (ER).', + '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', - ], + 'abilityTreeCode' => '111625', + 'abilityTreeNodes' => ['FEATUREdcdn75UYDO'], ], 'parameters' => [ [ - 'name' => 'DomainName', - 'in' => 'query', - 'schema' => [ - 'title' => 'A short description of struct', - 'description' => 'The accelerated domain name. You can specify only one domain name in each request.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'example.com', - ], + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => 'The name of the Edge Routine. The name must be unique within your Alibaba Cloud account.', 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''], + ], + [ + 'name' => 'CodeDescription', + 'in' => 'formData', + 'schema' => ['description' => 'The description of the version.', 'type' => 'string', 'required' => false, 'example' => 'desc', 'title' => ''], ], ], 'responses' => [ @@ -33607,618 +26804,4747 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9', - ], - 'OriginSiteStatus' => [ - 'description' => 'The information about the origin server of the accelerated domain name.'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Host' => [ - 'description' => 'The origin domain name that you configured in the DCDN console, which can be an IPv4 address, IPv6 address, common domain name, or Object Storage Service (OSS) domain name.'."\n", - 'type' => 'string', - 'example' => 'host.com', - ], - 'HealthStatus' => [ - 'description' => 'The health status of the origin server. Each point of presence (POP) periodically initiates a probe request to the configured origin domain name. If the POP receives a response from the origin server in 5 seconds, the probe is considered successful. After the probe data for each POP is collected, the health status of the origin server is calculated based on the proportion of successful probes. Valid values:'."\n" - ."\n" - .'* unknown: The probe data of the origin server is not obtained because the configurations of the origin server have been changed recently. Try again later.'."\n" - .'* healthy: The proportion of successful probes is higher than 80%.'."\n" - .'* degraded: The proportion of successful probes is higher than 0% and lower than or equal to 80%.'."\n" - .'* critical: All probing requests to the origin server failed.'."\n", - 'type' => 'string', - 'example' => 'healthy', - ], - ], - ], - ], + 'Content' => ['description' => 'The parameters required by the code.', 'type' => 'object', 'example' => 'OssPostConfig and CodeRevision', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'DFA2027F-86C0-4421-9593-581A7993696C', 'title' => ''], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], 'errorCodes' => [ - 404 => [ - [ - 'errorCode' => 'InvalidDomain.NotFound', - 'errorMessage' => 'The domain does not exist, or it does not belong to you.', - ], + 400 => [ + ['errorCode' => 'EdgeRoutine.GeneralError', 'errorMessage' => 'A server error occurred: %s', 'description' => 'A server error occurred. Try again later. If the error persists, submit a ticket.'], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - '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' => 'DescribeDcdnOriginSiteHealthStatus', - ], - 'DescribeDcdnUserVipsByDomain' => [ - 'summary' => 'Queries virtual IP addresses of the POPs by domain name.', - 'methods' => [ - 'get', - 'post', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"DFA2027F-86C0-4421-9593-581A7993696C\\"\\n}","type":"json"}]', + 'title' => 'UploadStagingRoutineCode', + 'description' => '- Uploading test code for an ER generates a version number. This action consumes one code version from your CodeRev quota. The generated version is for testing only.'."\n" + ."\n" + .'- This operation automatically publishes the code to the staging environment.'."\n" + ."\n" + .'- An ER can have a maximum of 10 versions. If this limit is exceeded, call DeleteRoutineCodeRevision to delete unused versions.'."\n" + ."\n" + .'- API call frequency: 100 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UploadStagingRoutineCode'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UploadStagingRoutineCode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'translator' => 'manual', + ], + 'VerifyDcdnDomainOwner' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'operationType' => 'write', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'abilityTreeCode' => '111626', + 'abilityTreeNodes' => ['FEATUREdcdnZ2GXIC'], ], 'parameters' => [ [ 'name' => 'DomainName', 'in' => 'query', - 'schema' => [ - 'description' => 'The accelerated domain name. You can specify only one domain name.'."\n" - ."\n" - .'Enumeration values: example.com', - 'type' => 'string', - 'required' => true, - 'enumValueTitles' => [ - 'example.com' => 'example.com', - ], - 'example' => 'example.com'."\n", - ], + 'schema' => ['description' => 'The domain name to verify. Only one domain name can be specified.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '**example**.com'], ], [ - 'name' => 'Available', + 'name' => 'VerifyType', 'in' => 'query', - 'schema' => [ - 'description' => 'Specifies whether to query the virtual IP addresses of only healthy POPs. Valid value:'."\n" - ."\n" - .'* **on**: queries healthy VIPs.'."\n" - .'* **off**: queries all VIPs.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'on', - 'enum' => [ - 'on', - 'off', - ], - ], + 'schema' => ['description' => 'The verification method. Valid values:'."\n" + ."\n" + .'- **dnsCheck**: DNS verification.'."\n" + ."\n" + .'- **fileCheck**: File verification.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'dnsCheck'], ], ], 'responses' => [ 200 => [ + 'headers' => [], 'schema' => [ 'type' => 'object', 'properties' => [ - 'DomainName' => [ - 'description' => 'The domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'RequestId' => [ - 'description' => 'The request ID.'."\n", - 'type' => 'string', - 'example' => '820E7900-5CA9-4AEF-B0DD-20ED5F64BE55'."\n", - ], - 'Vips' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Vip' => [ - 'description' => 'The list of VIPs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'Details of the VIPs.'."\n", - 'type' => 'string', - 'example' => '122.72.xxx.xxx', - ], - ], - ], - ], + 'Content' => ['description' => 'The verification content.', 'type' => 'string', 'title' => '', 'example' => 'verify_dffeb6610035dcb77b413a59c32cd9**'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB'], ], 'description' => '', + 'title' => '', ], ], ], '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' => 'DomainOwnerVerifyFail', 'errorMessage' => 'Owner verification of the root domain failed.', 'description' => 'The first time a domain name is added to DCDN, you must prove the ownership of the domain name. You must add a DNS record or upload a verification file for the domain name before it can be added to DCDN.'], + ], + ], + 'title' => 'VerifyDcdnDomainOwner', + 'summary' => 'Verifies the ownership of a domain name.', + 'description' => '> The throttling limit for a single user is 100 calls per second.', + 'requestParamsDescription' => ' ', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [ + ['createdAt' => '2023-03-16T01:38:33.000Z', 'description' => 'Response parameters changed'], + ], + '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' => 'All Resource', 'arn' => '*'], + ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": \\"verify_dffeb6610035dcb77b413a59c32cd9**\\",\\n \\"RequestId\\": \\"34AB41F1-04A5-496F-8C8D-634BDBE6A9FB\\"\\n}","type":"json"}]', + ], + ], + 'endpoints' => [ + ['regionId' => 'ap-northeast-1', 'regionName' => 'Japan (Tokyo)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'ap-southeast-1', 'regionName' => 'Singapore', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'ap-southeast-2', 'regionName' => 'Australia (Sydney) Closed', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'ap-southeast-3', 'regionName' => 'Malaysia (Kuala Lumpur)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'ap-southeast-5', 'regionName' => 'Indonesia (Jakarta)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-beijing', 'regionName' => 'China (Beijing)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-chengdu', 'regionName' => 'China (Chengdu)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-hangzhou', 'regionName' => 'China (Hangzhou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-hongkong', 'regionName' => 'China (Hong Kong)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-huhehaote', 'regionName' => 'China (Hohhot)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-qingdao', 'regionName' => 'China (Qingdao)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-shanghai', 'regionName' => 'China (Shanghai)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-shenzhen', 'regionName' => 'China (Shenzhen)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-zhangjiakou', 'regionName' => 'China (Zhangjiakou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'us-west-1', 'regionName' => 'US (Silicon Valley)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'us-east-1', 'regionName' => 'US (Virginia)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'eu-west-1', 'regionName' => 'UK (London)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'eu-central-1', 'regionName' => 'Germany (Frankfurt)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'me-east-1', 'regionName' => 'UAE (Dubai)', 'areaId' => 'middleEast', 'areaName' => 'Middle East', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'ap-south-1', 'regionName' => 'India (Mumbai) Closed', 'areaId' => 'middleEast', 'areaName' => 'Middle East', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-shenzhen-finance-1', 'regionName' => 'China South 1 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-shanghai-finance-1', 'regionName' => 'China East 2 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-north-2-gov-1', 'regionName' => 'Beijing Government Cloud', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-hangzhou-finance', 'regionName' => 'China East 1 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-beijing-finance-1', 'regionName' => 'China North 2 Finance (Preview)', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'dcdn.aliyuncs.com', 'endpoint' => 'dcdn.aliyuncs.com', 'vpc' => ''], + ], + 'errorCodes' => [ + ['code' => ' InvalidPageNumber.ValueNotSupported', 'message' => 'The specified PageNumber is not supported.', 'http_code' => 400, 'description' => 'The value specified for the PageNumber parameter exceeds the maximum limit allowed.'], + ['code' => ' SingleRequest.OverLimit', 'message' => 'A maximum of 1000 URLs are supported for each request.', 'http_code' => 400, 'description' => 'You can submit up to 1,000 URLs at a time.'], + ['code' => '%s.NotSupport', 'message' => 'The specified resource type %s is not supported.', 'http_code' => 403, 'description' => 'The specified resource type is not supported. To use this type of resource, contact us.'], + ['code' => '%s.OverQuota', 'message' => 'The quantity of %s exceeds the quota.', 'http_code' => 403, 'description' => 'The number of resources exceeds the quota. If you want to apply for more resources, contact us.'], + ['code' => '%s.WrongValueMatched', 'message' => 'The value of specified parameter %s can not pass the matching check.', 'http_code' => 403, 'description' => 'The value of the specified parameter can not pass the matching check. If you determine that you need to use this parameter value, please contact us.'], + ['code' => '%sServiceNotFound', 'message' => 'The [%s] service is not activated.', 'http_code' => 403, 'description' => 'The service is not activated.'], + ['code' => 'Abs.CertRegion.ValueNotSupported', 'message' => 'CertRegion is not supported.', 'http_code' => 400, 'description' => 'The certificate region is not supported.'], + ['code' => 'Abs.sslProtocol.ValueNotSupported', 'message' => 'The specified SSLProtocol is invalid.', 'http_code' => 400, 'description' => 'The SSLProtocol parameter is set to an invalid value.'], + ['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' => 'Account blacklist restrictions, please submit a work order to contact customer service for processing.'], + ['code' => 'ActiveSiteNotExist', 'message' => 'No matched active site.', 'http_code' => 400, 'description' => 'There are no activated sites that match the record name.'], + ['code' => 'ApplyCertificateNotAllowed', 'message' => 'The certificate application is not allowed for current site.', 'http_code' => 400, 'description' => 'The current site does not allow applications for free free certificates, please make sure the site is activated. To apply for a wildcard domain name certificate, make sure that the current site is accessed in NS mode.'], + ['code' => 'ApplyVanityNSError', 'message' => 'Failed to apply for vanity NS resources. Please contact customer service.', 'http_code' => 400, 'description' => 'Failed to apply for vanity NS resources. Please contact customer service.'], + ['code' => 'ApplyVipError', 'message' => 'Failed to apply for ip resources, please contact customer service.', 'http_code' => 400, 'description' => 'failed to apply for ip resources, please contact customer service.'], + ['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' => 'The current plan does not support the configuration of restricted parameters, please check the input parameters.'], + ['code' => 'AuthenticationFailed', 'message' => 'Error performing verification.', 'http_code' => 400, 'description' => 'Identity authentication failed.'], + ['code' => 'AuthenticationFailed', 'message' => 'The API authentication failed.', 'http_code' => 403, 'description' => 'The API authentication failed.'], + ['code' => 'AuthorizeFailed', 'message' => 'Failed to authenticate.', 'http_code' => 400, 'description' => 'The authentication failed.'], + ['code' => 'BatchSetBusinessError', 'message' => 'some configs error:%s', 'http_code' => 400, 'description' => ''], + ['code' => 'BillingMode.NotChanged', 'message' => 'The billing model has not been changed.', 'http_code' => 400, 'description' => 'The billing model has not changed.'], + ['code' => 'BillingMode.Overdue', 'message' => 'The user is not allowed to modify the billing type in the overdue state.', 'http_code' => 400, 'description' => 'The user is not allowed to modify the billing type in the overdue state.'], + ['code' => 'BillingMode.OverLimit', 'message' => 'You can modify the billing type at most once within 24 hours.', 'http_code' => 400, 'description' => 'You can modify the billing type at most once within 24 hours.'], + ['code' => 'BusinessExist', 'message' => 'The domain is being submitted; do not submit again.', 'http_code' => 400, 'description' => 'The specified business already exists.'], + ['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' => 'The number of sites for which the cache reserve instance bindings exceeds the limit.'], + ['code' => 'CanNotSetSequence', 'message' => 'Non-regular configuration, you cannot set Sequence parameters.', 'http_code' => 400, 'description' => 'Sequence parameters is not allowed in global configuration.'], + ['code' => 'CdnTypeNotSupportExtensiveDomain', 'message' => 'Wildcard domain names are not supported.', 'http_code' => 400, 'description' => 'Wildcard domain names are not supported.'], + ['code' => 'CertIdentifier.MissingParameter', 'message' => 'The input parameter CertIdentifier that is mandatory for processing this request is not supplied.', 'http_code' => 400, 'description' => 'The CertIdentifier parameter is required.'], + ['code' => 'Certificate.DecodeError', 'message' => 'An error occurred while decoding the certificate.', 'http_code' => 400, 'description' => 'Failed to decode the certificate.'], + ['code' => 'Certificate.Duplicated', 'message' => 'The certificate name already exists.', 'http_code' => 400, 'description' => 'The certificate is duplicated.'], + ['code' => 'Certificate.EncodeError', 'message' => 'An error occurred while encoding the certificate.', 'http_code' => 400, 'description' => 'Failed to encode the certificate.'], + ['code' => 'Certificate.Expired', 'message' => 'The certificate has expired.', 'http_code' => 400, 'description' => 'The certificate has expired.'], + ['code' => 'Certificate.FormatError', 'message' => 'The format of the certificate is invalid.', 'http_code' => 400, 'description' => 'The specified certificate format is invalid.'], + ['code' => 'Certificate.KeyNull', 'message' => 'The private key is required.', 'http_code' => 400, 'description' => 'The private key is not specified.'], + ['code' => 'Certificate.MissingParameter', 'message' => 'You must specify the Certificate parameter.', 'http_code' => 400, 'description' => 'The request is missing a Certificate parameter.'], + ['code' => 'Certificate.MissMatch', 'message' => 'The SSLPri does not match the certificate.', 'http_code' => 400, 'description' => 'The certificate and private key do not match.'], + ['code' => 'Certificate.MissMatch', 'message' => 'The certificate does not match the domain.', 'http_code' => 400, 'description' => 'The certificate and domain name do not match.'], + ['code' => 'Certificate.NoPrivateKey', 'message' => 'The private key of the certificate does not exist.', 'http_code' => 400, 'description' => 'The specified private key does not exist.'], + ['code' => 'Certificate.NotFind', 'message' => 'The certificate does not exist.', 'http_code' => 400, 'description' => 'The specified certificate does not exist.'], + ['code' => 'Certificate.NotFound', 'message' => 'The specified certificate does not exist.', 'http_code' => 404, 'description' => 'The specified certificate does not exist.'], + ['code' => 'Certificate.StatusError', 'message' => 'The certificate does not exist, or the status of the certificate is invalid.', 'http_code' => 400, 'description' => 'The specified certificate does not exist or the certificate status is invalid.'], + ['code' => 'Certificate.StatusError', 'message' => 'The status of the certificate is invalid.', 'http_code' => 400, 'description' => 'The specified certificate status is invalid.'], + ['code' => 'CertificateContent.Duplicated', 'message' => 'The certificate has been uploaded; do not upload again.', 'http_code' => 400, 'description' => 'The specified certificate has been uploaded. Do not upload the certificate again.'], + ['code' => 'CertNameAlreadyExists', 'message' => 'The CertName already exists.', 'http_code' => 400, 'description' => 'The certificate name already exists.'], + ['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' => 'The custom certificate quota verification failed. The number of uploaded certificates exceeds the upper limit allowed for the plan.'], + ['code' => 'CertStorage.failed', 'message' => 'Error saving the certificate.', 'http_code' => 400, 'description' => 'Failed to store the certificate.'], + ['code' => 'CheckCertificateQuotaFailed', 'message' => 'Cannot get free type certificate quota, please try later.', 'http_code' => 400, 'description' => 'Failed to get free certificate quota, please try again later.'], + ['code' => 'CheckCertificateQuotaFailed', 'message' => 'Cannot get free type certificate usage, please try later.', 'http_code' => 400, 'description' => 'Failed to obtain free certificate usage. Please try again later.'], + ['code' => 'CheckIcpFailed', 'message' => 'Error checking ICP information; please try again later.', 'http_code' => 400, 'description' => 'Failed to verify the ICP information. Try again later.'], + ['code' => 'CheckOrderFailed', 'message' => 'Invalid order parameter.', 'http_code' => 400, 'description' => 'Invalid order parameter.'], + ['code' => 'CheckPlanFailed', 'message' => 'Invalid planCode value.', 'http_code' => 400, 'description' => 'Invalid planCode value.'], + ['code' => 'CheckRealTimeLogSlr.PermissionDenied', 'message' => 'Role: AliyunServiceRoleForDCDNServicesRealtimeLogPush not exist.', 'http_code' => 400, 'description' => 'You do not have permission to create a service association role. Contact your Alibaba Cloud account or administrator to grant you AliyunDCDNFullAccess policies or custom policies for creating service-associated roles. Service name: "is". operation: ram:CreateServiceLinkedRole.'], + ['code' => 'CheckSourceHealthFailed', 'message' => 'Error checking the security. Provide the valid origin site information.', 'http_code' => 400, 'description' => 'The origin check failed. Please provide the correct origin information.'], + ['code' => 'ClientCertificate.OverLimit', 'message' => 'You are allowed to create 20 client certificates at most under current site.', 'http_code' => 400, 'description' => 'Create a maximum of 20 client certificates under the current site.'], + ['code' => 'CodeVersionInUse', 'message' => 'This version of the code is in use.', 'http_code' => 400, 'description' => 'This version of the code is in use.'], + ['code' => 'CodeVersionNumberExceedQuotaLimit', 'message' => 'code version number exceeds the quota limit.', 'http_code' => 400, 'description' => 'The number of code versions exceeds the quota limit.'], + ['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' => 'Rule compilation failed. Check the incoming rule configuration. For details, see the rule configuration format described in the interface document.'], + ['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' => 'The number of configuration items for the current function has exceeded the upper limit set by the system.'], + ['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' => 'The parameter uniqueness check failed. Check for duplicate parameter values.'], + ['code' => 'ConfigDuplicate', 'message' => 'The configuration already exists.', 'http_code' => 400, 'description' => 'The specified configuration is duplicate.'], + ['code' => 'ConfigDuplicate', 'message' => 'Duplicate configuration. This function has already been configured and cannot be added repeatedly.', 'http_code' => 400, 'description' => 'Duplicate configuration. This function has already been configured and cannot be added repeatedly.'], + ['code' => 'ConfigExceedLimit', 'message' => 'Count of config entries exceeds the limit.', 'http_code' => 400, 'description' => 'The number of features exceeds the limit.'], + ['code' => 'ConfigGroupAlreadyExist', 'message' => 'The configuration group already exists.', 'http_code' => 400, 'description' => 'The specified configuration group already exist.'], + ['code' => 'ConfigGroupNotExist', 'message' => 'The specified ConfigGroup does not exist.', 'http_code' => 400, 'description' => 'The specified configuration group (ConfigGroup) does not exist.'], + ['code' => 'ConfigIsGraying', 'message' => 'The domain configuration is under canary testing. You cannot modify the configuration in production environment.', 'http_code' => 400, 'description' => 'The domain name is in canary release. You cannot modify the settings in the product environment.'], + ['code' => 'ConfigNotFound', 'message' => 'The specified configid does not exist.', 'http_code' => 404, 'description' => 'The specified configuration ID (configid) does not exist or does not match the domain name. Set this parameter to another value and try again.'], + ['code' => 'ConfigOverLimit', 'message' => 'The number of config group exceeds the limit.', 'http_code' => 400, 'description' => 'The number of configuration groups has reached the upper limit.'], + ['code' => 'ConfigParentExceedLimit', 'message' => 'Config Parent exceed limit.', 'http_code' => 400, 'description' => ''], + ['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' => 'The configuration exists in the staging environment. You cannot modify the configuration in the production environment.'], + ['code' => 'CreateCertificateFailed', 'message' => 'Create certificate failed,please try again.', 'http_code' => 400, 'description' => 'The certificate failed to be created. Create the certificate again.'], + ['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' => 'The configuration of the new site function failed. Please check the CreateSiteFunction interface document and check the parameters.'], + ['code' => 'CreateOrderFailed', 'message' => 'Failed to create order.', 'http_code' => 500, 'description' => 'Failed to create order.'], + ['code' => 'CreateRealTimeLogSlr.PermissionDenied', 'message' => 'Role: AliyunServiceRoleForDCDNServicesRealtimeLogPush not exist.', 'http_code' => 400, 'description' => 'You do not have permission to create a service association role. Contact your Alibaba Cloud account or administrator to grant you AliyunDCDNFullAccess policies or custom policies for creating service-associated roles. Service name: "is". operation: ram:CreateServiceLinkedRole.'], + ['code' => 'CreateRealTimeLogSlrError', 'message' => 'create Role: AliyunServiceRoleForDCDNServicesRealtimeLogPush error.', 'http_code' => 400, 'description' => 'Failed to create AliyunServiceRoleForDCDNServicesRealtimeLogPush role'], + ['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' => 'You do not have the permissions to create service-linked roles. Acquire the AliyunDCDNFullAccess permission or custom permission policies from the Alibaba Cloud account. Acquire custom permission policies based on the following information: service name: realtimelogdelivery.dcdn.aliyuncs.com, service linked-role name: AliyunServiceRoleForDCDNRealTimeLogDelivery, and required permission: 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' => 'Failed to create the Log Service project. Make sure that Log Service is activated and available.'], + ['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' => 'Failed to create real-time log sls shipping item.'], + ['code' => 'CustomConfigExist', 'message' => 'these domains contains custom config', 'http_code' => 400, 'description' => 'A customized template exists in the domain name list.'], + ['code' => 'CustomTagIsInvalid', 'message' => 'The number of Custom Tag exceeds 20.', 'http_code' => 400, 'description' => 'The number of tags cannot exceed 20.'], + ['code' => 'DataUpdating', 'message' => 'Data is updating,please wait.', 'http_code' => 400, 'description' => 'The data is being updated. Try again later.'], + ['code' => 'DcdnIpaServiceNotFound', 'message' => 'The DCDN IPA service has not been activated.', 'http_code' => 403, 'description' => 'IPA is not activated for DCDN.'], + ['code' => 'DcdnService.HasOpened', 'message' => 'Your DCDN service has been activated.', 'http_code' => 400, 'description' => 'DCDN is activated.'], + ['code' => 'DcdnServiceNotFound', 'message' => 'The DCDN service is not activated.', 'http_code' => 403, 'description' => 'DCDN is not activated. Activate DCDN and try again.'], + ['code' => 'DcdnServiceSuspended', 'message' => 'Your have overdue payments.', 'http_code' => 403, 'description' => 'Your account has overdue payments.'], + ['code' => 'DcdnServiceSuspended', 'message' => 'Your account has overdue payments.', 'http_code' => 403, 'description' => 'Your account has overdue payments.'], + ['code' => 'DDosExpired', 'message' => 'The user‘s DDoS protection has expired.', 'http_code' => 400, 'description' => ''], + ['code' => 'Decode.Error', 'message' => 'Error decoding the SSLPub or SSLPri certificate.', 'http_code' => 400, 'description' => 'The system has failed to decode the public key or the private key of the SSL certificate.'], + ['code' => 'DefenseScene.MultiPolicies.NotSupport', 'message' => 'The specified defense scene does not support multiple policies bound to the same domain name.', 'http_code' => 400, 'description' => 'A domain name cannot be bound to multiple policies in the specified protection scenario.'], + ['code' => 'DeleteFailed', 'message' => 'Error deleting the certificate.', 'http_code' => 400, 'description' => 'Failed to delete the certificate.'], + ['code' => 'DeleteFunctionFailed', 'message' => 'Batch delete functions failed.', 'http_code' => 400, 'description' => 'Failed to delete the configurations.'], + ['code' => 'DeliverExceedLimit', 'message' => 'The maximum number of subscribed tasks is exceeded.', 'http_code' => 400, 'description' => 'The number of tracking tasks has reached the upper limit.'], + ['code' => 'DependedByOthers', 'message' => 'An error occurred depending on another service.', 'http_code' => 400, 'description' => 'An error occurred depending on another service.'], + ['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' => 'The ICP number of the domain name is invalid.'], + ['code' => 'Domain.Bound.DefaultAndCustom', 'message' => 'The specified domain name is bound to both default and custom policies.', 'http_code' => 400, 'description' => 'The specified domain name is associated with both the default policy and a custom policy.'], + ['code' => 'Domain.DDosAlreadyExists', 'message' => 'This specified domain has been in DDoS.', 'http_code' => 400, 'description' => ''], + ['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' => 'The specified domain name does not support WAF.'], + ['code' => 'Domain.PortAllocateError', 'message' => 'Your port resource allocation failed, please try again in 30 minutes.', 'http_code' => 400, 'description' => ''], + ['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' => 'The number of domain names exceeds the upper limit.'], + ['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' => 'The domain name already exists.'], + ['code' => 'DomainBindAndUnbind.Overlapped', 'message' => 'The specified bind and unbind domain names overlap.', 'http_code' => 400, 'description' => 'The domain name that you want to associate with and dissociate from are the same.'], + ['code' => 'DomainExist.OtherProduct', 'message' => 'The domain already exists in %s.', 'http_code' => 400, 'description' => 'The domain name has been added to another service of yours.'], + ['code' => 'DomainExist.OtherUser', 'message' => 'This domain is already added by another user.', 'http_code' => 400, 'description' => 'The domain name has been added by another user.'], + ['code' => 'DomainHasUnsuccessConfig', 'message' => 'Domain has unsuccessful config.', 'http_code' => 400, 'description' => ''], + ['code' => 'DomainInBlacklist', 'message' => 'The domain is in the blacklist.', 'http_code' => 400, 'description' => 'The domain name is in the blacklist.'], + ['code' => 'DomainInProtectedMode', 'message' => 'The domain is in protection mode. To request permission, contact Customer Service.', 'http_code' => 403, 'description' => 'The specified domain name is in the protected mode. If you must perform this operation, contact customer service.'], + ['code' => 'DomainInRiskList', 'message' => 'The domain you added may be at risk. If you have any questions, please submit a ticket.', 'http_code' => 400, 'description' => 'The domain name you added may be at risk. If you have any questions, please submit a work order.'], + ['code' => 'DomainInSafeMode', 'message' => 'The domain is in safe mode. To request permission, contact Customer Service.', 'http_code' => 400, 'description' => 'The specified domain name is in the protected mode. If you must perform this operation, submit a ticket.'], + ['code' => 'DomainNameOverLimit', 'message' => 'A maximum of 500 domains are supported for each request.', 'http_code' => 400, 'description' => 'The number of domain names cannot exceed 500.'], + ['code' => 'DomainNameOverLimit', 'message' => 'A maximum of 50 domains is supported for each request.', 'http_code' => 400, 'description' => 'The number of domain names cannot exceed 50. Reduce domain names and try again.'], + ['code' => 'DomainNotFound', 'message' => 'domain not found', 'http_code' => 400, 'description' => 'The domain name is not found.'], + ['code' => 'DomainNotRegistration', 'message' => 'The specified domain name is not filed for ICP.', 'http_code' => 400, 'description' => 'ICP filing is not completed for your domain name.'], + ['code' => 'DomainOverLimit', 'message' => 'The maximum number of domains is exceeded.', 'http_code' => 400, 'description' => 'The maximum number of domain names has been reached.'], + ['code' => 'DomainOwnerVerifyFail', 'message' => 'Owner verification of the root domain failed.', 'http_code' => 400, 'description' => 'The first time a domain name is added to DCDN, you must prove the ownership of the domain name. You must add a DNS record or upload a verification file for the domain name before it can be added to DCDN.'], + ['code' => 'DomainReserved', 'message' => 'The root domain of your domain is reserved by another account. Submit a ticket to contact customer support.', 'http_code' => 400, 'description' => 'The root domain name of this domain name is used by another account. Submit a ticket to apply for new domain names.'], + ['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' => 'You cannot change the domain name because the peak bandwidth of the domain name yesterday exceeded the upper limit.'], + ['code' => 'DomainVerifyFail', 'message' => 'Domain verification failed.', 'http_code' => 400, 'description' => 'Domain name verification failed.'], + ['code' => 'Duplicate.TagKey', 'message' => 'The specified TagKey is duplicated.', 'http_code' => 400, 'description' => 'The value of the TagValue parameter must be unique. Specify another value and try again.'], + ['code' => 'DuplicateRequirementTicket', 'message' => 'You have already submitted the requirement ticket. Do not submit it again.', 'http_code' => 400, 'description' => 'You have already submitted the demand form, so there is no need to submit it again.'], + ['code' => 'EdgeRoutine.GeneralError', 'message' => 'A server error occurred: %s', 'http_code' => 400, 'description' => 'A server error occurred. Try again later. If the error persists, submit a ticket.'], + ['code' => 'EdgeRoutine.GeneralError.%s', 'message' => 'A server error occurred: %s', 'http_code' => 500, 'description' => 'A server error occurred. Please try again later. If the problem still exists, submit a ticket.'], + ['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' => 'The extension has a background configuration or a configured parameter is invalid. For more information, submit a ticket.'], + ['code' => 'EdgeScriptCountExceedLimit', 'message' => 'The number of rules exceeds the default limit.', 'http_code' => 400, 'description' => 'The number of rules exceeds the limit. To increase the limit, submit a ticket.'], + ['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' => 'A background custom rule exists or a configured parameter is invalid. For more information, submit a ticket.'], + ['code' => 'EdgeScriptNotSupportJs', 'message' => 'JavaScript rules are not supported. For more information, submit a ticket.', 'http_code' => 400, 'description' => 'JavaScript rules are not supported. For more information, submit a ticket.'], + ['code' => 'EntityNotExist.ResourceGroup', 'message' => 'The resource group does not exist.', 'http_code' => 400, 'description' => 'The specified resource group does not exist.'], + ['code' => 'EntityNotExist.Role', 'message' => 'The specified role does not exist.', 'http_code' => 400, 'description' => 'The specified role %s does not exist.'], + ['code' => 'EntityNotExists.ResourceDir', 'message' => 'The account is not a master or a member of a resource directory.', 'http_code' => 400, 'description' => 'The specified account is not an Alibaba Cloud account or a member account of the resource directory.'], + ['code' => 'EntityNotExists.ResourceGroup', 'message' => 'The resource group does not exist.', 'http_code' => 400, 'description' => 'The specified resource group does not exist.'], + ['code' => 'ErrDomainReserved', 'message' => 'Domain is reserved.', 'http_code' => 400, 'description' => ''], + ['code' => 'ErrSiteIdNoteEnterprise', 'message' => 'Site must be Enterprise Edition.', 'http_code' => 400, 'description' => 'Site must be Enterprise Edition.'], + ['code' => 'ErrSmartScheduleOn', 'message' => 'Smart Schedule must be off.', 'http_code' => 400, 'description' => 'The intelligent wash switch must be off.'], + ['code' => 'ErService.HasOpened', 'message' => 'Your er service has opened.', 'http_code' => 400, 'description' => 'Your Er service has been activated'], + ['code' => 'ErService.NotOpen', 'message' => 'Er service has not opend.', 'http_code' => 403, 'description' => 'ER service not turned on'], + ['code' => 'ExceedFileUpload', 'message' => 'The size of upload file must be less than 10MB.', 'http_code' => 400, 'description' => 'The upload file size must be less than 10MB.'], + ['code' => 'Expression.Invalid', 'message' => 'The specified expression is invalid: %s.', 'http_code' => 403, 'description' => 'The specified expression is invalid.'], + ['code' => 'ExtensiveAndAllBothExist', 'message' => 'A wildcard domain name and a domain name with an all. prefix cannot be both specified.', 'http_code' => 400, 'description' => 'Wildcard domain names and domain names that start with "all." cannot both exist.'], + ['code' => 'ExtensiveAndSpecificDomainConflict', 'message' => 'The wildcard domain name overlaps a domain name at the same level.', 'http_code' => 400, 'description' => 'Wildcard domain names and specific domain names of the same level as the wildcard domain names are mutually exclusive. Enter another domain name.'], + ['code' => 'FlowControlError', 'message' => 'The request was denied due to flow control.', 'http_code' => 400, 'description' => 'Traffic throttling is triggered on the specified interface.'], + ['code' => 'Forbidden.RAM', 'message' => 'You are not authorized to operate this resource, or this API does not support RAM.', 'http_code' => 403, 'description' => 'You are not authorized to manage the specified resource, or RAM users do not have permissions to perform this operation.'], + ['code' => 'Function.ArgDuplicate', 'message' => 'Duplicate feature parameters.', 'http_code' => 400, 'description' => 'Feature parameters conflict.'], + ['code' => 'Function.DependedByOthers', 'message' => 'The specified config is depended by others.', 'http_code' => 400, 'description' => 'The specified configuration is depended on by other configurations.'], + ['code' => 'Function.ExceedLimit', 'message' => 'The maximum number of configurations of the feature is exceeded.', 'http_code' => 400, 'description' => 'The number of configurations for this feature exceeds the limit.'], + ['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' => 'This feature is not supported.'], + ['code' => 'FunctionConflict', 'message' => 'The feature configuration conflicts. Sites with version management enabled cannot configure this feature.', 'http_code' => 400, 'description' => 'The currently configured function conflicts with other functions. If you need to configure, delete the conflicting function configurations first.'], + ['code' => 'FunctionMutex', 'message' => 'This configuration conflicts with another configuration.', 'http_code' => 400, 'description' => 'The specified setting conflicts with another setting.'], + ['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' => 'The current plan does not support the configuration of restricted functions, please check the plan related function description.'], + ['code' => 'GetTokenFailed', 'message' => 'Failed to obtain a token.', 'http_code' => 401, 'description' => 'Failed to obtain the request token.'], + ['code' => 'GrayConfigExist', 'message' => 'A canary configuration already exists under the domain.', 'http_code' => 400, 'description' => 'The domain name already has configurations in canary release.'], + ['code' => 'GrayConfigIsNull', 'message' => 'You cannot delete all configurations. At least one configuration must be kept.', 'http_code' => 400, 'description' => 'You cannot clear all settings in the canary release. You must leave at least one setting.'], + ['code' => 'GrayConfigIsNull', 'message' => 'You cannot delete all gary configurations. You can clear them by rolling back the simulation environment.', 'http_code' => 400, 'description' => ''], + ['code' => 'IcpBlack', 'message' => 'The domain is on the ICP blacklist.', 'http_code' => 400, 'description' => 'The domain name is on the blacklist of the MIIT.'], + ['code' => 'IllegalOperation', 'message' => 'You are not authorized to operate this domain.', 'http_code' => 400, 'description' => 'The specified domain name is invalid.'], + ['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' => 'You are not authorized to manage the domain name.'], + ['code' => 'IllegalOriginSiteIp', 'message' => 'The specified origin site IP address is invalid.', 'http_code' => 403, 'description' => 'The IP address of the origin server is invalid.'], + ['code' => 'IllegalSources', 'message' => 'The specified origin site information is invalid.', 'http_code' => 400, 'description' => 'The information about the origin server is invalid. Enter the information and try again.'], + ['code' => 'IncompleteInformation', 'message' => 'Your information is incomplete. Complete your information before the operation.', 'http_code' => 400, 'description' => 'You must provide all the required information.'], + ['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' => 'The instance is being modified.'], + ['code' => 'InstanceNotExist', 'message' => 'The current package instance does not exist.', 'http_code' => 400, 'description' => 'The current package instance does not exist.'], + ['code' => 'Internal Exception', 'message' => 'The request processing has failed due to some unknown error, exception or failure.', 'http_code' => 500, 'description' => 'Internal error, please try again later or contact us.'], + ['code' => 'Internal.ConfigError', 'message' => 'An error occurred while configuring the certificate.', 'http_code' => 500, 'description' => 'Failed to call the configuration operation.'], + ['code' => 'Internal.CreateCSRError', 'message' => 'Failed to create the CSR.', 'http_code' => 500, 'description' => 'Failed to generate a CSR.'], + ['code' => 'Internal.EncodeCSRError', 'message' => 'Failed to encode the CSR.', 'http_code' => 500, 'description' => 'Failed to encode the CSR.'], + ['code' => 'Internal.EncodeKeyError', 'message' => 'Failed to encode the private key.', 'http_code' => 500, 'description' => 'Failed to encode the private key.'], + ['code' => 'Internal.ForbidError', 'message' => 'You cannot modify the configurations when some features of the domain are in a canary deployment.', 'http_code' => 500, 'description' => 'The domain name cannot be changed because a feature is in canary release.'], + ['code' => 'Internal.KeyError', 'message' => 'Failed to generate the RSA key.', 'http_code' => 500, 'description' => 'Failed to generate a RSA key.'], + ['code' => 'InternalError', 'message' => 'An internal error occurred; please try again later.', 'http_code' => 500, 'description' => 'An internal error occurred. Try again later. If the error persists, submit a ticket.'], + ['code' => 'InternalError', 'message' => 'The request processing has failed due to some unknown error.', 'http_code' => 400, 'description' => 'Internal error. It is recommended to try again. If you try again for many times, please submit the work order.'], + ['code' => 'InternalError', 'message' => 'The request processing has failed due to some unknown error, exception or failure.', 'http_code' => 500, 'description' => 'Internal error, please try again later or contact us!'], + ['code' => 'InternalError', 'message' => 'An internal exception occurred, please try again later.', 'http_code' => 400, 'description' => 'An inner exception was triggered. Please try again later.'], + ['code' => 'InternalException', 'message' => 'An internal exception occurred, please try again later.', 'http_code' => 400, 'description' => 'An inner exception was triggered. Please try again later.'], + ['code' => 'InternalOperationError', 'message' => 'Internal error in backend service.', 'http_code' => 400, 'description' => 'Internal error in backend service.'], + ['code' => 'InvaildIpAddrList.LengthTooLong', 'message' => 'The Specified IpAddrList is too long.', 'http_code' => 400, 'description' => 'Batch parameters exceed the limit. A maximum of 20 parameters are allowed for a single query.'], + ['code' => 'InvaildParameter', 'message' => 'The specified parameters are invalid.', 'http_code' => 400, 'description' => 'A parameter is set to an invalid value. Specify a valid value and try again.'], + ['code' => 'InvaildParameter', 'message' => 'The domain must differ from the origin site.', 'http_code' => 400, 'description' => 'The accelerated domain name cannot be the domain name of the origin server. Specify another domain name and try again.'], + ['code' => 'InvaildParameter', 'message' => 'The specified DomainName is invalid.', 'http_code' => 400, 'description' => 'The domain name parameter is invalid.'], + ['code' => 'InvaildParameter', 'message' => 'The specified origin site IP format is invalid.', 'http_code' => 400, 'description' => 'The domain name parameter is invalid.'], + ['code' => 'InvaildParameter', 'message' => 'The parameter you provided is invalid.', 'http_code' => 403, 'description' => 'Input parameter format error.'], + ['code' => 'InvaildParameterDomainName', 'message' => 'The specified DomainName is invalid.', 'http_code' => 400, 'description' => 'The DomainName parameter is set to an invalid value. Specify a valid value and try again.'], + ['code' => 'InvaildParameterSource', 'message' => 'The domain must be different from the origin site.', 'http_code' => 400, 'description' => 'The domain name cannot be the origin server. Specify another domain name and try again.'], + ['code' => 'Invalid%s.Malformed', 'message' => 'The specified ArgValue [%s] is invalid.', 'http_code' => 400, 'description' => 'The value specified for the ArgValue parameter is invalid.'], + ['code' => 'Invalid%s.ValueNotSupported', 'message' => 'FunctionName [%s] is not supported.', 'http_code' => 400, 'description' => 'The specified configuration is not supported.'], + ['code' => 'Invalid%s.ValueNotSupported', 'message' => '[%s] is not supported.', 'http_code' => 400, 'description' => 'The specified value is not supported.'], + ['code' => 'Invalid.Parameter', 'message' => 'The specified parameter is invalid.', 'http_code' => 400, 'description' => 'The parameter is set to an invalid value.'], + ['code' => 'Invalid.Value', 'message' => 'The request Value is invalid.', 'http_code' => 400, 'description' => 'Invalid request value.'], + ['code' => 'InvalidAccount.Malformed', 'message' => 'The specified account is invalid.', 'http_code' => 400, 'description' => 'The account is invalid. Check whether an account is specified.'], + ['code' => 'InvalidAccount.NotFound', 'message' => 'The specified account does not exist.', 'http_code' => 404, 'description' => 'The specified account does not exist.'], + ['code' => 'InvalidApp.NotFound', 'message' => 'Specified app is not found.', 'http_code' => 404, 'description' => 'Specified app not found'], + ['code' => 'InvalidAreaParameter', 'message' => 'The specified Area is invalid.', 'http_code' => 400, 'description' => 'The Area parameter is set to an invalid value.'], + ['code' => 'InvalidArgName', 'message' => 'The parameter name does not exist, please check the function interface document.', 'http_code' => 400, 'description' => 'The parameter name does not exist, please check the function interface document.'], + ['code' => 'InvalidArgName.ValueNotSupported', 'message' => '%s', 'http_code' => 400, 'description' => 'The name of the %s parameter is invalid.'], + ['code' => 'InvalidArgValue.Malformed', 'message' => 'The specified ArgValue is invalid.', 'http_code' => 400, 'description' => 'The value specified for the ArgValue parameter is invalid.'], + ['code' => 'InvalidArgValue.Malformed', 'message' => '%s', 'http_code' => 400, 'description' => '%s'], + ['code' => 'InvalidBaseVersion.Malformed', 'message' => 'The specified BaseVersion validation error.', 'http_code' => 400, 'description' => 'The BaseVersion parameter is set to an invalid value.'], + ['code' => 'InvalidCdnType.Malformed', 'message' => 'This operation is not supported.', 'http_code' => 400, 'description' => 'The operation is not supported.'], + ['code' => 'InvalidCertId.NotFound', 'message' => 'The certId does not exist.', 'http_code' => 400, 'description' => 'The certificate ID does not exist.'], + ['code' => 'InvalidCertIdentifier.ValueNotSupported', 'message' => 'The specified value of parameter CertIdentifier is not valid.', 'http_code' => 400, 'description' => 'The CertIdentifier parameter is set to an invalid value.'], + ['code' => 'InvalidCertificate', 'message' => 'The specified certificate format is invalid.', 'http_code' => 400, 'description' => 'The format of the specified certificate is invalid.'], + ['code' => 'InvalidCertificate.NotFound', 'message' => 'The certificate does not belong to this site.', 'http_code' => 400, 'description' => 'The certificate does not belong to this site.'], + ['code' => 'InvalidCertificate.TooLong', 'message' => 'The maximum length of the certificate is exceeded.', 'http_code' => 400, 'description' => 'The maximum length of the specified certificate content has been reached.'], + ['code' => 'InvalidCertificate.TooLong', 'message' => 'The maximum lengths of the certificate and the SSLPri are exceeded.', 'http_code' => 400, 'description' => 'The maximum length of the certificate and private key is exceeded.'], + ['code' => 'InvalidCertName.TooLong', 'message' => 'The length of the certificate name cannot exceed 128 characters.', 'http_code' => 400, 'description' => 'The certificate name cannot contain more than 128 characters.'], + ['code' => 'InvalidChangeEndTime.Malformed', 'message' => 'The specified ChangeEndTime is invalid.', 'http_code' => 400, 'description' => 'The update end time is invalid.'], + ['code' => 'InvalidChangeStartTime.Malformed', 'message' => 'The specified ChangeStartTime is invalid.', 'http_code' => 400, 'description' => 'The update start time is invalid.'], + ['code' => 'InvalidCheckUrl.Malformed', 'message' => 'The specified CheckUrl is invalid.', 'http_code' => 400, 'description' => 'The CheckUrl parameter is set to an invalid value.'], + ['code' => 'InvalidComponent', 'message' => 'The specified value of parameter BillType is not valid.', 'http_code' => 400, 'description' => 'The specified metering method is invalid. Specify another metering method and try again.'], + ['code' => 'InvalidConfigDomain.Malformed', 'message' => 'The quota for the config group domain is exceeded.', 'http_code' => 400, 'description' => 'The number of domain names exceeds the upper limit.'], + ['code' => 'InvalidConfigGroup.NotFound', 'message' => 'The config group does not exist.', 'http_code' => 400, 'description' => 'The configuration group does not exist.'], + ['code' => 'InvalidConfigId', 'message' => 'The specified configId is invalid.', 'http_code' => 400, 'description' => 'The configId of the feature is invalid. It does not exist or does not belong to the current instance.'], + ['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' => 'The incoming ConfigId does not exist.'], + ['code' => 'InvalidData.NotFound', 'message' => 'The data is not found.', 'http_code' => 400, 'description' => 'No data found.'], + ['code' => 'InvalidDomain.BelongToConfigGroup', 'message' => 'The domain is bound to a configuration group. Modify the domain in the configuration group.', 'http_code' => 400, 'description' => 'The domain name is associated with a configuration group. To modify the configuration of the domain name, you must modify the configuration group.'], + ['code' => 'InvalidDomain.Configure_failed', 'message' => 'Error configuring the domain.', 'http_code' => 500, 'description' => 'Failed to configure the domain name.'], + ['code' => 'InvalidDomain.Malformed', 'message' => 'Only one config group can be attached to a domain.', 'http_code' => 400, 'description' => 'One domain name can be associated with only one configuration group.'], + ['code' => 'InvalidDomain.NotExist', 'message' => 'The domain you provided is not exist.', 'http_code' => 400, 'description' => 'The domain name you provided does not exist.'], + ['code' => 'InvalidDomain.NotFound', 'message' => 'The domain does not exist, or it does not belong to you.', 'http_code' => 404, 'description' => 'The specified domain name does not exist or does not belong to the current account. Check whether the domain name is valid, belongs to the current account, or has expired.'], + ['code' => 'InvalidDomain.NotFound', 'message' => 'The specified domain does not exist.', 'http_code' => 404, 'description' => 'The specified domain name does not exist.'], + ['code' => 'InvalidDomain.notOnline', 'message' => 'The domain is offline. Check the status of the domain and try again later.', 'http_code' => 400, 'description' => 'The specified domain name status is invalid. Check whether the domain name is online and try again later.'], + ['code' => 'InvalidDomain.NotOnline', 'message' => 'Domain should be online status to activate.', 'http_code' => 400, 'description' => 'The domain name must be enabled before you can activate the configuration group.'], + ['code' => 'InvalidDomain.Offline', 'message' => 'The domain is offline.', 'http_code' => 404, 'description' => 'The domain name is disabled.'], + ['code' => 'InvalidDomainName', 'message' => 'The specified DomainName is invalid.', 'http_code' => 400, 'description' => 'The DomainName parameter is set to an invalid value. Specify a valid value and try again.'], + ['code' => 'InvalidDomainName', 'message' => 'The specified DomainNames is invalid.', 'http_code' => 400, 'description' => 'No domain name is specified or the number of specified domain names exceeds the limit. Specify domain names based on the API documentation.'], + ['code' => 'InvalidDomainName.Malformed', 'message' => 'The specific DomainName is invalid.', 'http_code' => 400, 'description' => 'The specified domain name is invalid.'], + ['code' => 'InvalidDomainName.Malformed', 'message' => 'The specified DomainName is invalid.', 'http_code' => 400, 'description' => 'The specified domain name is invalid.'], + ['code' => 'InvalidDomainNameLevel', 'message' => 'The alicdn.com domain supports a maximum of three levels of domain.', 'http_code' => 400, 'description' => 'alicdn.com supports up to three domain levels for wildcard domain names.'], + ['code' => 'InvalidDomainNames.Malformed', 'message' => 'The specified DomainNames is invalid.', 'http_code' => 400, 'description' => 'The DomainNames parameter is set to an invalid value.'], + ['code' => 'InvalidDomainNumber.TooLong', 'message' => 'The maximum number of DomainNumber is 50.', 'http_code' => 400, 'description' => 'The number of domain names cannot exceed 50.'], + ['code' => 'InvalidDomainSearchType.ValueNotSupported', 'message' => 'The specified value of DomainSearchType is invalid.', 'http_code' => 400, 'description' => 'The DomainSearchType parameter is set to an invalid value. Specify a valid value and try again.'], + ['code' => 'InvalidDomainStatus.ValueNotSupported', 'message' => 'The specified value of DomainStatus is invalid.', 'http_code' => 400, 'description' => 'The DomainStatus parameter is set to an invalid value. Specify a valid value and try again.'], + ['code' => 'InvalidEndTime.Malformed', 'message' => 'The specified EndTime is invalid.', 'http_code' => 400, 'description' => 'The format of the specified end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['code' => 'InvalidEndTime.Mismatch', 'message' => 'The specified EndTime is earlier than the StartTime.', 'http_code' => 400, 'description' => 'The end time is earlier than the start time.'], + ['code' => 'InvalidEndTimeParameter', 'message' => 'The specified end time is invalid.', 'http_code' => 400, 'description' => 'The end time is in an invalid format.'], + ['code' => 'InvalidExecution.CountFull', 'message' => 'The execution count of job is full.', 'http_code' => 400, 'description' => 'Too many execution schedules for warm-up tasks.'], + ['code' => 'InvalidExecution.ExecutionNotFound', 'message' => 'The specified execution is not found.', 'http_code' => 404, 'description' => 'No execution plans were found for the specified parameters.'], + ['code' => 'InvalidExecution.NotFound', 'message' => 'The specified execution is not found.', 'http_code' => 404, 'description' => 'Specified warm-up schedule not found.'], + ['code' => 'InvalidExtensiveDomain.ValueNotSupported', 'message' => 'The specified ExtensiveDomain is not supported.', 'http_code' => 400, 'description' => 'Wildcard domain names are not supported.'], + ['code' => 'InvalidExtensiveDomain.ValueNotSupported', 'message' => 'Extensive domains are not supported.', 'http_code' => 400, 'description' => 'Wildcard domains are not supported.'], + ['code' => 'InvalidFieldsParameter', 'message' => 'The specified Field is invalid.', 'http_code' => 400, 'description' => 'The Field parameter is set to an invalid value.'], + ['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' => 'The configuration of the YYYY feature for XXXX already exists. You can add the configuration only if it is the same as the current configuration group.'], + ['code' => 'InvalidFunctionName.ValueNotSupported', 'message' => '%s', 'http_code' => 400, 'description' => '%s'], + ['code' => 'InvalidFunctions.Malformed', 'message' => 'The specified Functions is invalid.', 'http_code' => 400, 'description' => 'The specified configuration is invalid.'], + ['code' => 'InvalidHeaderKey.ValueNotSupported', 'message' => 'The specified value of parameter HeaderKey is not supported.', 'http_code' => 400, 'description' => 'The HeaderKey parameter is set to an invalid value.'], + ['code' => 'InvalidInstance', 'message' => 'The specified instance is invalid.', 'http_code' => 400, 'description' => 'The specified instance is invalid.'], + ['code' => 'InvalidIntervalParameter', 'message' => 'The specified Interval is invalid.', 'http_code' => 400, 'description' => 'The interval parameter is set to an invalid value.'], + ['code' => 'InvalidIP.ValueNotSupported', 'message' => 'The specified value of parameter IP is not supported.', 'http_code' => 400, 'description' => 'The format of the IP address is invalid.'], + ['code' => 'InvalidIspNameEn.Malformed', 'message' => 'The specified IspNameEn is invalid.', 'http_code' => 400, 'description' => 'The specified ISP name is invalid. Call the DescribeCdnRegionAndIsp operation to query the ISP name and try again.'], + ['code' => 'InvalidIspParameter', 'message' => 'The specified Isp is invalid.', 'http_code' => 400, 'description' => 'The specified ISP is invalid.'], + ['code' => 'InvalidJob.JobCountOfSiteFull', 'message' => 'The job count of site is full.', 'http_code' => 400, 'description' => 'The number of warm-up tasks for the site is too large.'], + ['code' => 'InvalidJob.NotFound', 'message' => 'The specified job is not found.', 'http_code' => 404, 'description' => 'Specified warmup task not found.'], + ['code' => 'InvalidKey.ExceedsCapacity', 'message' => 'The maximum capacity of a single namespace cannot exceed 1 GB.', 'http_code' => 403, 'description' => 'The capacity of the namespace has reached the upper limit. Each namespace can be at most 1 GB.'], + ['code' => 'InvalidKey.ExceedsCapacity', 'message' => 'The capacity of the namespace exceeds the quota.', 'http_code' => 403, 'description' => 'The capacity of the namespace exceeds the quota.'], + ['code' => 'InvalidKey.ExceedsMaximum', 'message' => 'The size of the key cannot exceed 512 bytes.', 'http_code' => 400, 'description' => 'The key cannot exceed 512 bytes in length.'], + ['code' => 'InvalidKey.Malformed', 'message' => 'The specified key is invalid.', 'http_code' => 400, 'description' => 'The key is invalid. Check whether a key is specified.'], + ['code' => 'InvalidKey.NotFound', 'message' => 'The specified key does not exist.', 'http_code' => 404, 'description' => 'The specified key does not exist.'], + ['code' => 'InvalidKey.QuotaFull', 'message' => 'The maximum number of keys is exceeded.', 'http_code' => 406, 'description' => 'The number of keys has reached the upper limit.'], + ['code' => 'InvalidKey.QuotaFull', 'message' => 'The total number of IP exceeds the quota.', 'http_code' => 406, 'description' => 'the total number of ip addresses exceeds the quota.'], + ['code' => 'InvalidKey.TooManyKeys', 'message' => 'request contains too many keys.', 'http_code' => 400, 'description' => ''], + ['code' => 'InvalidLimitParameter', 'message' => 'The specified Limit is invalid.', 'http_code' => 400, 'description' => 'The Limit parameter is set to an invalid value.'], + ['code' => 'InvalidLocationNameEn.Malformed', 'message' => 'The specified LocationNameEn is not supported.', 'http_code' => 400, 'description' => 'LocationNameEn is not supported.'], + ['code' => 'InvalidLocName', 'message' => 'The specified LocName is not supported.', 'http_code' => 400, 'description' => 'The LocName parameter is set to an invalid value.'], + ['code' => 'InvalidNameSpace.Duplicate', 'message' => 'The specified namespace already exists.', 'http_code' => 406, 'description' => 'The namespace already exists.'], + ['code' => 'InvalidNameSpace.Malformed', 'message' => 'The specified namespace is invalid.', 'http_code' => 400, 'description' => 'The namespace is invalid. Check whether a namespace is specified.'], + ['code' => 'InvalidNameSpace.NotFound', 'message' => 'The specified namespace does not exist.', 'http_code' => 404, 'description' => 'The specified namespace does not exist.'], + ['code' => 'InvalidNameSpace.QuotaFull', 'message' => 'The maximum number of namespaces is exceeded.', 'http_code' => 406, 'description' => 'The number of namespaces has reached the upper limit.'], + ['code' => 'InvalidNodeGroupParameter', 'message' => 'The specified nodegroup parameter is invalid.', 'http_code' => 400, 'description' => 'The Nodegroup parameter is set to an invalid value.'], + ['code' => 'InvalidNodeGroupProductParameter', 'message' => 'The specified ngProduct parameter is invalid.', 'http_code' => 400, 'description' => 'The ngProduct parameter is set to an invalid value.'], + ['code' => 'InvalidObjectPath.ExceedsMaximum', 'message' => 'The maximum number of urls is exceeded.', 'http_code' => 400, 'description' => 'The number of submitted URLs exceeds the maximum limit.'."\n"], + ['code' => 'InvalidObjectPath.Malformed', 'message' => 'The specified ObjectPath is invalid.', 'http_code' => 400, 'description' => 'The ObjectPath parameter is set to an invalid value. Specify a valid value and try again.'], + ['code' => 'InvalidObjectPath.Malformed', 'message' => 'The specified value of ObjectPath is invalid.', 'http_code' => 400, 'description' => 'The specified ObjectPath parameter is invalid. Example: abc.com/image/1.png. Multiple URLs must be separated by line feeds (\\n or \\r\\n).'], + ['code' => 'InvalidObjectType.Malformed', 'message' => 'The specified ObjectType is invalid.', 'http_code' => 400, 'description' => 'The ObjectType parameter is set to an invalid value. Specify a valid value and try again.'], + ['code' => 'InvalidObjectType.ValueNotSupported', 'message' => 'The specified ObjectType is not supported.', 'http_code' => 400, 'description' => 'The specified ObjectType parameter is invalid.'], + ['code' => 'InvalidOffsetParameter', 'message' => 'The specified Page is invalid.', 'http_code' => 400, 'description' => 'The page parameter is set to an invalid value.'], + ['code' => 'InvalidPageNumber.ValueNotSupported', 'message' => 'The specified PageNumber is not supported.', 'http_code' => 400, 'description' => 'The value specified for the PageNumber parameter is invalid.'], + ['code' => 'InvalidPageNumber.ValueNotSupported', 'message' => 'The specified value of PageNumber is not supported.', 'http_code' => 400, 'description' => 'The PageNumber parameter is set to an invalid value. Specify a valid value and try again.'], + ['code' => 'InvalidPageSize.ValueNotSupported', 'message' => 'The specified value of PageSize is invalid.', 'http_code' => 400, 'description' => 'The PageSize parameter is set to an invalid. Specify a valid value and try again.'], + ['code' => 'InvalidParameter', 'message' => 'The specified parameter is invalid.', 'http_code' => 400, 'description' => 'A parameter is set to an invalid value.'], + ['code' => 'InvalidParameter', 'message' => 'The number of domains reached the version limit.', 'http_code' => 400, 'description' => 'The number of domain names has reached the upper limit.'], + ['code' => 'InvalidParameter', 'message' => 'Domain already exists in high ddos.', 'http_code' => 400, 'description' => 'The domain name is already protected by Anti-DDoS services.'], + ['code' => 'InvalidParameter', 'message' => 'The specified parameter is not valid.', 'http_code' => 400, 'description' => 'Parameter verification fails.'], + ['code' => 'InvalidParameter', 'message' => 'Input parameter specification verification failed.', 'http_code' => 400, 'description' => 'Input parameter specification verification failed.'], + ['code' => 'InvalidParameter.AddressConflict', 'message' => 'The incoming source address conflicts. You cannot have duplicate source addresses in the same origin pool.', 'http_code' => 400, 'description' => 'The incoming source address conflicts. You cannot have duplicate source addresses in the same origin pool.'], + ['code' => 'InvalidParameter.appid', 'message' => 'The specified parameter appid is not valid.', 'http_code' => 400, 'description' => 'the appid parameter fails the verification.'], + ['code' => 'InvalidParameter.ArgName', 'message' => 'The specified ArgName is invalid.', 'http_code' => 400, 'description' => 'The incoming ArgName is illegal.'], + ['code' => 'InvalidParameter.ArgValue', 'message' => 'The specified ArgValue is invalid.', 'http_code' => 400, 'description' => 'Failed to verify the passed parameter value.'], + ['code' => 'InvalidParameter.ConfigIds', 'message' => 'The Specified ConfigIds is invalid.', 'http_code' => 400, 'description' => 'The ConfigIds parameter passed in is invalid.'], + ['code' => 'InvalidParameter.Configs', 'message' => 'The specified configs are invalid.', 'http_code' => 400, 'description' => 'The configs information passed in is invalid.'], + ['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' => 'The specified Domains parameter contains duplicate domain names. Please deduplicate and try again.'], + ['code' => 'InvalidParameter.Domains', 'message' => 'The parameter Domains is missing or contains too many domain names.', 'http_code' => 400, 'description' => 'Parameter Domains not specified or excessive number of domain names specified for parameter Domains. Adjust accordingly and try again.'], + ['code' => 'InvalidParameter.Domains', 'message' => 'The specified parameter Domains is applying the certificate.', 'http_code' => 400, 'description' => 'There is an ongoing certificate application in the specified domain name list, please do not submit it again.'], + ['code' => 'InvalidParameter.Domains', 'message' => 'The specified parameter Domains does not belong to the current site.', 'http_code' => 400, 'description' => 'The domain name included in the specified parameter Domains does not belong to the current site. Please check and try again.'], + ['code' => 'InvalidParameter.FunctionName', 'message' => 'The specified FunctionName is invalid.', 'http_code' => 400, 'description' => 'The FunctionNamepassed in does not exist.'], + ['code' => 'InvalidParameter.HealthCheckFailTimes', 'message' => 'Specified parameter HealthCheckFailTimes is not valid.', 'http_code' => 400, 'description' => 'Parameter HealthCheckFailTimes format is incorrect'], + ['code' => 'InvalidParameter.HealthCheckHost', 'message' => 'Specified parameter HealthCheckHost is not valid.', 'http_code' => 400, 'description' => 'Parameter HealthCheckHost format is incorrect'], + ['code' => 'InvalidParameter.HealthCheckHttpCode', 'message' => 'Specified parameter HealthCheckHttpCode is not valid.', 'http_code' => 400, 'description' => 'Parameter HealthCheckHttpCode format is incorrect'], + ['code' => 'InvalidParameter.HealthCheckInterval', 'message' => 'Specified parameter HealthCheckInterval is not valid.', 'http_code' => 400, 'description' => 'Parameter HealthCheckInterval format is incorrect'], + ['code' => 'InvalidParameter.HealthCheckMethod', 'message' => 'Specified parameter HealthCheckMethod is not valid.', 'http_code' => 400, 'description' => 'Parameter HealthCheckMethod format is incorrect'], + ['code' => 'InvalidParameter.HealthCheckPort', 'message' => 'Specified parameter HealthCheckPort is not valid.', 'http_code' => 400, 'description' => 'Parameter HealthCheckPort format is incorrect'], + ['code' => 'InvalidParameter.HealthCheckSuccTimes', 'message' => 'Specified parameter HealthCheckSuccTimes is not valid.', 'http_code' => 400, 'description' => 'Parameter HealthCheckHost format is incorrect'], + ['code' => 'InvalidParameter.HealthCheckTimeout', 'message' => 'Specified parameter HealthCheckTimeout is not valid.', 'http_code' => 400, 'description' => 'Parameter HealthCheckTimeout format is incorrect'], + ['code' => 'InvalidParameter.HealthCheckType', 'message' => 'Specified parameter HealthCheckType is not valid.', 'http_code' => 400, 'description' => 'Parameter HealthCheckType format is incorrect'], + ['code' => 'InvalidParameter.HealthCheckURI', 'message' => 'Specified parameter HealthCheckURI is not valid.', 'http_code' => 400, 'description' => 'Parameter HealthCheckURI format is incorrect'], + ['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' => 'The HttpHeaders parameter is invalid. Please check whether the HttpHeaders parameter is filled in. The parameter cannot contain @'], + ['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' => 'Illegal Image parameter. Please check the Image parameter, which cannot be assigned to illegal characters such @,'], + ['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' => 'The record name you entered does not meet the specifications. Please adjust the record name according to the product documentation.'], + ['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' => 'The record name you entered does not meet the specifications. Please adjust the record name according to the product documentation.'], + ['code' => 'InvalidParameter.InvalidSiteEnvironmentName', 'message' => 'The specified site environment name is invalid.', 'http_code' => 400, 'description' => 'The specified site environment name is invalid.'], + ['code' => 'InvalidParameter.InvalidVanityNSName', 'message' => 'A vanity nameserver must be an absolute domain name. Correct it and try again.', 'http_code' => 400, 'description' => 'You need to enter the full domain name to customize the NS name. Please adjust and submit it again.'], + ['code' => 'InvalidParameter.InvalidVanityNSNum', 'message' => 'Enter 2 to 5 vanity nameservers. Correct them and try again.', 'http_code' => 400, 'description' => 'Custom NS requires 2~5 names, please adjust and resubmit.'], + ['code' => 'InvalidParameter.JobType', 'message' => 'The specified job type is invalid.', 'http_code' => 400, 'description' => 'Invalid warm-up task type parameter.'], + ['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' => 'The load balancer name is invalid. It must be a valid domain name and a subdomain name under the site.'], + ['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' => 'The Name parameter is not valid. Check the Name parameter, which is between 6 and 128 characters. After modification, call the interface again.'], + ['code' => 'InvalidParameter.ObjectId', 'message' => 'The specified object id is invalid.', 'http_code' => 400, 'description' => 'The specified object ID is invalid.'], + ['code' => 'InvalidParameter.OrderKey', 'message' => 'The specified OrderKey is invalid. Please check the OrderKey parameter.', 'http_code' => 400, 'description' => 'The OrderKey parameter is invalid. Please check the OrderKey parameter, as it cannot be assigned illegal characters such as @, #, % etc. Please make the necessary modifications and call the interface again.'], + ['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' => 'The OrderType parameter is invalid. Please check the OrderType parameter. You may not have set it to Asc or Desc. Please modify it and call the interface again.'], + ['code' => 'InvalidParameter.PageNumber', 'message' => 'Specified parameter pagenumber is not valid.', 'http_code' => 400, 'description' => 'Parameter pagenumber format is incorrect'], + ['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' => 'The Percentage parameter is invalid. Check the Percentage parameter. The parameter range is 1-100. Modify the parameter and call the interface again.'], + ['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' => 'The PublishEnv parameter is invalid. Please check the PublishEnv parameter. You may not have set it to prod or staging one of them. Please modify it and call the interface again.'], + ['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' => 'The record name is a required parameter. You must enter a valid record name.'], + ['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' => 'The specified site environment rule is the same as an existing environment.'], + ['code' => 'InvalidParameter.SiteId', 'message' => 'Specified parameter SiteId is not valid.', 'http_code' => 400, 'description' => 'The specified SiteId parameter is invalid and the site name cannot be obtained from the id.'], + ['code' => 'InvalidParameter.SiteName', 'message' => 'The specified site name is invalid.', 'http_code' => 400, 'description' => 'The specified site name is invalid.'], + ['code' => 'InvalidParameter.SiteVersionDescExceedLimit', 'message' => 'The specified site version description exceeds the maximum length.', 'http_code' => 400, 'description' => 'The specified site version description exceeds the maximum length.'], + ['code' => 'InvalidParameter.TagValue', 'message' => 'The specified TagValue is invalid.', 'http_code' => 400, 'description' => 'The TagValue parameter is invalid.'], + ['code' => 'InvalidParameter.TimeRange', 'message' => 'The specified time range is invalid.', 'http_code' => 400, 'description' => 'The specified time range is invalid'], + ['code' => 'InvalidParameter.VanityNSNameDuplicate', 'message' => 'The vanity nameservers are duplicated. Please delete it and try again.', 'http_code' => 400, 'description' => 'Duplicate custom NS name exists, please delete and resubmit.'], + ['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' => 'The VersionId parameter 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.'], + ['code' => 'InvalidParameterAliuid', 'message' => 'The specified Aliuid is invalid.', 'http_code' => 400, 'description' => 'The Aliuid parameter is set to an invalid value.'], + ['code' => 'InvalidParameterArea', 'message' => 'The specified Area is invalid.', 'http_code' => 400, 'description' => 'The Area parameter is set to an invalid value.'], + ['code' => 'InvalidParameterBillType', 'message' => 'The specified BillType is invalid.', 'http_code' => 400, 'description' => 'The BillType parameter is set to an invalid value.'], + ['code' => 'InvalidParameterDimension', 'message' => 'The specified Dimension is invalid.', 'http_code' => 400, 'description' => 'The Dimension parameter is set to an invalid value.'], + ['code' => 'InvalidParameterEndTime', 'message' => 'The specified EndTime is invalid.', 'http_code' => 400, 'description' => 'The EndTime parameter is set to an invalid value.'], + ['code' => 'InvalidParameterField', 'message' => 'The specified Field is invalid.', 'http_code' => 400, 'description' => 'The Field parameter is set to an invalid value.'], + ['code' => 'InvalidParameterInterval', 'message' => 'The specified Interval is invalid.', 'http_code' => 400, 'description' => 'The Interval parameter is set to an invalid value.'], + ['code' => 'InvalidParameterOperator', 'message' => 'The specified Operator is invalid.', 'http_code' => 400, 'description' => 'The Operator parameter is set to an invalid value.'], + ['code' => 'InvalidParameterProduct', 'message' => 'The specified Product is invalid.', 'http_code' => 400, 'description' => 'The Product parameter is set to an invalid value.'], + ['code' => 'InvalidParameters', 'message' => 'The specified parameters are invalid.', 'http_code' => 400, 'description' => 'A parameter is set to an invalid value.'], + ['code' => 'InvalidParameterStartTime', 'message' => 'The specified StartTime is invalid.', 'http_code' => 400, 'description' => 'The StartTime parameter is set to an invalid value.'], + ['code' => 'InvalidParameterTaskId', 'message' => 'The specified TaskId is invalid.', 'http_code' => 400, 'description' => 'The TaskId parameter is set to an invalid value.'], + ['code' => 'InvalidParameterType', 'message' => 'The specified Type is invalid.', 'http_code' => 400, 'description' => 'The Type parameter is set to an invalid value.'], + ['code' => 'InvalidProductParameter', 'message' => 'The specified Product is invalid.', 'http_code' => 400, 'description' => 'The Product parameter is set to an invalid value.'], + ['code' => 'InvalidRegionId.Malformed', 'message' => 'The specified RegionId is invalid.', 'http_code' => 400, 'description' => 'The RegionId parameter is set to an invalid value.'], + ['code' => 'InvalidRequestDomain', 'message' => 'Failed to get the domain name.', 'http_code' => 400, 'description' => 'Failed to query the domain name.'], + ['code' => 'InvalidRequestHeader', 'message' => 'The request header information is invalid.', 'http_code' => 400, 'description' => 'The format of the request header is invalid.'], + ['code' => 'InvalidRequestHeader', 'message' => 'The request header information JSON data parsing failed.', 'http_code' => 400, 'description' => 'Failed to parse the JSON request header.'], + ['code' => 'InvalidRequestHeader', 'message' => 'The JSON encoding of the request header information failed.', 'http_code' => 400, 'description' => 'Failed to encode the request header in JSON.'], + ['code' => 'InvalidRequestJson', 'message' => 'The request for JSON data parsing failed.', 'http_code' => 400, 'description' => 'Failed to parse the JSON data.'], + ['code' => 'InvalidRequestMethod', 'message' => 'The request method is not supported.', 'http_code' => 400, 'description' => 'The request method is not supported.'], + ['code' => 'InvalidRequestMethod', 'message' => 'Failed to get method.', 'http_code' => 400, 'description' => 'Failed to query the request method.'], + ['code' => 'InvalidRequestProtocol', 'message' => 'A protocol type error occurred.', 'http_code' => 400, 'description' => 'The specified protocol is invalid.'], + ['code' => 'InvalidRequestProtocol', 'message' => 'Failed to get the protocol.', 'http_code' => 400, 'description' => 'Failed to query the protocol.'], + ['code' => 'InvalidRequestProxy', 'message' => 'The regular matching IP address is not matched.', 'http_code' => 400, 'description' => 'The IP address is not a match.'], + ['code' => 'InvalidRequestProxy', 'message' => 'An error occurred while matching the IP address.', 'http_code' => 400, 'description' => 'An error occurred while matching the IP address.'], + ['code' => 'InvalidRequestUri', 'message' => 'Failed to get URI.', 'http_code' => 400, 'description' => 'Failed to query the URI.'], + ['code' => 'InvalidResourceGroupId.Malformed', 'message' => 'The specified ResourceGroupId is invalid.', 'http_code' => 400, 'description' => 'The value specified for the ResourceGroupId parameter is invalid. Specify a valid value and try again.'], + ['code' => 'InvalidResourceId.NotFound', 'message' => 'The specified resource does not exist or is released.', 'http_code' => 404, 'description' => 'The resource does not exist or has been released.'], + ['code' => 'InvalidResponseBody', 'message' => 'Failed to read the response body.', 'http_code' => 400, 'description' => 'Failed to read the response body.'], + ['code' => 'InvalidResponseBody', 'message' => 'The response body failed to close.', 'http_code' => 400, 'description' => 'Failed to close the response body.'], + ['code' => 'InvalidResponseGetResp', 'message' => 'The response from the request is null.', 'http_code' => 400, 'description' => 'The response is empty.'], + ['code' => 'InvalidResponseGetResp', 'message' => 'The response from the request failed.', 'http_code' => 400, 'description' => 'Failed to return a response.'], + ['code' => 'InvalidResponseHeader', 'message' => 'JSON encoding of the response header failed.', 'http_code' => 400, 'description' => 'Failed to encode the response header in JSON.'], + ['code' => 'InvalidRule.Malformed', 'message' => '%s', 'http_code' => 400, 'description' => '%s'], + ['code' => 'InvalidSchemeParameter', 'message' => 'The specified Scheme parameter is invalid.', 'http_code' => 400, 'description' => 'The Scheme parameter is set to an invalid value.'], + ['code' => 'InvalidScope.Malformed', 'message' => 'The specified Scope is invalid.', 'http_code' => 400, 'description' => 'The value specified for the Scope parameter is invalid.'], + ['code' => 'InvalidSiteICP', 'message' => 'The ICP of site is invalid.', 'http_code' => 400, 'description' => 'The ICP of site is invalid.'], + ['code' => 'InvalidSiteName', 'message' => 'Invalid siteName value.', 'http_code' => 400, 'description' => 'Invalid siteName value.'], + ['code' => 'InvalidSortByParameter', 'message' => 'The specified Ordering is invalid.', 'http_code' => 400, 'description' => 'The Ordering parameter is set to an invalid value.'], + ['code' => 'InvalidSource.Content.Malformed', 'message' => 'The specified Source Content is invalid.', 'http_code' => 400, 'description' => 'The information about the origin server is invalid.'], + ['code' => 'InvalidSource.Port.Malformed', 'message' => 'The source port is empty, or it is outside the range 0-65535.', 'http_code' => 400, 'description' => 'No port is specified or the specified port number is invalid. Valid values: 0 to 65535.'], + ['code' => 'InvalidSource.Priority.Malformed', 'message' => 'The specified Source Priority is invalid.', 'http_code' => 400, 'description' => 'The value specified for the priority field in the Sources parameter is invalid.'], + ['code' => 'InvalidSource.Type.Malformed', 'message' => 'The specified Source Type is invalid.', 'http_code' => 400, 'description' => 'The value specified for the type field in the Sources parameter is invalid.'], + ['code' => 'InvalidSourceParameter', 'message' => 'The specified source is invalid.', 'http_code' => 400, 'description' => 'The Source parameter is set to an invalid value.'], + ['code' => 'InvalidSources.Malformed', 'message' => 'The specified Sources is invalid.', 'http_code' => 400, 'description' => 'The specified Sources parameter is invalid. It can be IP address or domain name. Up to 20 IP addresses are supported and they must be separated by commas (,). Only a single domain name is supported.'], + ['code' => 'InvalidSources.OverLimit', 'message' => 'The maximum number of back-to-origin IP addresses is exceeded.', 'http_code' => 400, 'description' => 'The number of origin IP addresses exceeds the upper limit.'], + ['code' => 'InvalidSplitByParameter', 'message' => 'The specified splitType parameter is invalid.', 'http_code' => 400, 'description' => 'The specified grouping key is incorrect, or the parameter corresponding to the grouping key is not specified.'], + ['code' => 'InvalidSSLPri', 'message' => 'The specified SSLPri is invalid.', 'http_code' => 400, 'description' => 'The value specified for the SSLPri parameter is invalid.'], + ['code' => 'InvalidSSLProtocol.ValueNotSupported', 'message' => 'The specified SSLProtocol is invalid.', 'http_code' => 400, 'description' => 'The specified SSL certificate parameter is invalid. Set the value to on or off.'], + ['code' => 'InvalidSSLPub', 'message' => 'The specified SSLPub is invalid.', 'http_code' => 400, 'description' => 'The value specified for the SSLPub parameter is invalid.'], + ['code' => 'InvalidStartTime.Malformed', 'message' => 'The specified StartTime parameter is invalid.', 'http_code' => 400, 'description' => 'The format of the specified start time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['code' => 'InvalidStartTime.ValueNotSupported', 'message' => 'The specified StartTime is invalid.', 'http_code' => 400, 'description' => 'The specified start time is invalid.'], + ['code' => 'InvalidStartTime.ValueNotSupported', 'message' => 'The StartTime cannot exceed 31 days before the current time.', 'http_code' => 400, 'description' => 'You can query data only within the last 31 days.'], + ['code' => 'InvalidStartTimeParameter', 'message' => 'The specified start time is invalid.', 'http_code' => 400, 'description' => 'The start time is invalid.'], + ['code' => 'InvalidStationParameter', 'message' => 'The specified Station is invalid.', 'http_code' => 400, 'description' => 'The station parameter is set to an invalid value.'], + ['code' => 'InvalidStatus.ResourceGroup', 'message' => 'The current status of the resource group does not support this operation.', 'http_code' => 400, 'description' => 'This operation is not supported while the resource group is in the current state.'], + ['code' => 'InvalidStatus.ValueNotSupported', 'message' => 'The specified Status is not supported.', 'http_code' => 400, 'description' => 'The specified Status parameter is invalid.'], + ['code' => 'InvalidTargetParameter', 'message' => 'The specified parameter Target is invalid', 'http_code' => 400, 'description' => 'The value specified for Target is invalid. For information about how to specify a valid value for Target, see the API documentation.'], + ['code' => 'InvalidTaskId', 'message' => 'The maximum number of taskIds is 10.', 'http_code' => 400, 'description' => 'The number of task IDs (taskIds) cannot exceed 10.'], + ['code' => 'InvalidTaskId.Malformed', 'message' => 'The specified TaskId is invalid.', 'http_code' => 400, 'description' => 'The value specified for the TaskId parameter is invalid.'], + ['code' => 'InvalidTime', 'message' => 'The query time cannot exceed the last 3 days.', 'http_code' => 400, 'description' => 'You can query data up to the last three days.'], + ['code' => 'InvalidTime.Malformed', 'message' => 'Specified StartTime or EndTime is malformed.', 'http_code' => 400, 'description' => 'The format of the specified start time or end time is invalid. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'], + ['code' => 'InvalidTimePointParameter', 'message' => 'The specified TimePoint is invalid.', 'http_code' => 400, 'description' => 'The TimePoint parameter is set to an invalid value.'], + ['code' => 'InvalidTimeRange', 'message' => 'The time span between the StartTime and the EndTime cannot exceed 31 days.', 'http_code' => 400, 'description' => 'The different between the end time (EndTime) and start time (StartTime) cannot exceed 31 days.'], + ['code' => 'InvalidTimeSpan', 'message' => 'The time span exceeds the limit.', 'http_code' => 400, 'description' => 'The time span exceeds the limit. Configure a valid time span as described in API documentation.'], + ['code' => 'InvalidTypeContent.Mismatch', 'message' => 'The specified source type does not match the specified source content.', 'http_code' => 400, 'description' => 'The specified origin server type does not match the type of the specified origin server. Specify a valid value and try again.'], + ['code' => 'InvalidUid.PermissionDenied', 'message' => 'The specified uid does not have permission to operate on the resource.', 'http_code' => 403, 'description' => 'The specified Ali UID does not have permission to operate on the resource.'], + ['code' => 'InvalidUserParameter', 'message' => 'The specified User is invalid.', 'http_code' => 400, 'description' => 'A parameter is set to an invalid value.'], + ['code' => 'InvalidValue.ExceedsMaximum', 'message' => 'The size of the value cannot exceed 2,000,000 bytes.', 'http_code' => 400, 'description' => 'The value cannot exceed 2,000,000 bytes in length.'], + ['code' => 'InvalidValue.Malformed', 'message' => 'Country must only contain 2 characters.', 'http_code' => 400, 'description' => 'The value of the Country parameter must be 2 characters in length.'], + ['code' => 'InvalidVersion.Malformed', 'message' => 'The version has been activated.', 'http_code' => 400, 'description' => 'The specified version number is already activated.'], + ['code' => 'InvalidVersion.Malformed', 'message' => 'This version is active and cannot be deleted.', 'http_code' => 400, 'description' => 'You cannot delete the specified version because it is already activated.'], + ['code' => 'InvalidVersion.Malformed', 'message' => 'You must deactivate the active version of this configuration group before deleting it.', 'http_code' => 400, 'description' => 'You must deactivate all versions in the configuration group before you can delete the configuration group.'], + ['code' => 'InvalidVersion.Malformed', 'message' => 'This version is active and cannot be modified.', 'http_code' => 400, 'description' => 'You cannot configure the version because it is activated.'], + ['code' => 'InvalidVersion.NotFound', 'message' => 'The version does not exist.', 'http_code' => 400, 'description' => 'The specified version number does not exist.'], + ['code' => 'IspBlack', 'message' => 'The domain is on the ISP blacklist.', 'http_code' => 400, 'description' => 'The domain name is on the blacklist of Alibaba Cloud.'], + ['code' => 'Key.Malformed', 'message' => 'The specified Key format is invalid.', 'http_code' => 400, 'description' => 'The Key parameter is set in an invalid format.'], + ['code' => 'List.BeingBound', 'message' => 'The specified list is being bound.', 'http_code' => 403, 'description' => 'The specified list is being bound by one or more protection rules.'], + ['code' => 'List.Name.AlreadyExist', 'message' => 'The specified list name already exists.', 'http_code' => 403, 'description' => 'The specified list name is already used by another list.'], + ['code' => 'List.NotExist', 'message' => 'The specified list does not exist.', 'http_code' => 403, 'description' => 'The specified list does not exist.'], + ['code' => 'lllegalOperationDomain', 'message' => 'The domain name cannot be added because it contains illegal content', 'http_code' => 400, 'description' => 'The domain name is hosting illegal content and cannot be added.'], + ['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' => '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.'], + ['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' => 'Your current plan does not allow you to configure the load balancer\'s health detection. Upgrade the plan and try again.'], + ['code' => 'LoadBalancerNameConflict', 'message' => 'LoadBalancer name conflict.', 'http_code' => 400, 'description' => 'The name of the load balancer conflicts. The name of the load balancer cannot be duplicated, nor can it be duplicated with the record name of the origin pool.'], + ['code' => 'LoadBalancerNotExist', 'message' => 'The specified load balancer not exist.', 'http_code' => 400, 'description' => 'The load balancer does not exist.'], + ['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' => '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.'], + ['code' => 'LoadBalancerPolicyCheckFailed', 'message' => 'Your current plan does not support the load balancer scheduling policy. Upgrade the plan and try again.', 'http_code' => 400, 'description' => 'Your current plan does not support the load balancer scheduling policy. Upgrade the plan and try again.'], + ['code' => 'LoadBalancerQuotaCheckFailed', 'message' => 'Load balancer enable quota check failed.', 'http_code' => 400, 'description' => 'Your current plan cannot use the load balancer related functions. If you need to use it, upgrade the plan.'], + ['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' => '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.'], + ['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' => '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.'], + ['code' => 'LogNotFound', 'message' => 'Log not found.', 'http_code' => 404, 'description' => 'No logs found.'], + ['code' => 'LogserviceNotFound', 'message' => 'Log Service has not been activated.', 'http_code' => 403, 'description' => 'Real-time log delivery is not activated.'], + ['code' => 'LogserviceServiceNotFound', 'message' => 'Log Service has not been activated.', 'http_code' => 400, 'description' => 'Real-time log delivery is not activated.'], + ['code' => 'LogstoreNotExist', 'message' => 'Logstore does not exist.', 'http_code' => 404, 'description' => 'The specified Logstore does not exist.'], + ['code' => 'ManagedRulesGroup.BeingBound', 'message' => 'The specified WAF managed rules group is being bound.', 'http_code' => 403, 'description' => 'The specified WAF managed rule group is being bound by one or more protection rules.'], + ['code' => 'ManagedRulesGroup.Name.Invalid', 'message' => 'The specified WAF managed rules group name is invalid.', 'http_code' => 403, 'description' => 'The specified WAF managed rule group name is invalid.'], + ['code' => 'ManagedRulesGroup.NotExist', 'message' => 'The specified WAF managed rules group does not exist.', 'http_code' => 403, 'description' => 'The specified WAF managed rule group does not exist.'], + ['code' => 'Match.Malformed', 'message' => 'The specified parameter match is malformed or does not adhere to the required format.', 'http_code' => 403, 'description' => 'The specified Match parameter is malformed or does not adhere to the required format.'], + ['code' => 'MissingConfigId', 'message' => 'ConfigId is mandatory for this action.', 'http_code' => 400, 'description' => 'Required parameter ConfigId is not filled. Please check if this parameter is filled in the call and try the request again.'], + ['code' => 'MissingDomainName', 'message' => 'The domainName parameter is required.', 'http_code' => 400, 'description' => 'The domain name parameter is not specified.'], + ['code' => 'MissingOssUrl', 'message' => 'Oss url is mandatory for this action.', 'http_code' => 400, 'description' => 'The OSS link for downloading the preheat file is missing.'], + ['code' => 'MissingParameter', 'message' => 'Certain required parameters are missing.', 'http_code' => 400, 'description' => 'A required parameter is not set.'], + ['code' => 'MissingParameter', 'message' => 'You must specify ArgValue.', 'http_code' => 400, 'description' => 'A required parameter is not set.'], + ['code' => 'MissingParameter', 'message' => 'The specified ArgName is required for this function.', 'http_code' => 400, 'description' => 'When configuring a specific function, the required parameter is missing.'], + ['code' => 'MissingParameter', 'message' => 'The input parameter Record that is mandatory for processing this request is not supplied.', 'http_code' => 400, 'description' => 'The required parameter Record is not filled. Please check if this parameter is filled in the call and try the request again.'], + ['code' => 'MissingParameter%s', 'message' => 'The specified value of ArgName %s is missing.', 'http_code' => 400, 'description' => 'A required parameter is not set.'], + ['code' => 'MissingParameter.ObjectType', 'message' => 'The ObjectType parameter is required if DomainName or ObjectType is specified.', 'http_code' => 400, 'description' => 'Specify the ObjectType parameter.'], + ['code' => 'MissingSiteId', 'message' => 'SiteId is mandatory for this action.', 'http_code' => 400, 'description' => 'The required parameter SiteId is not specified. Please check if this parameter is filled in the call and try the request again.'], + ['code' => 'MissingSource.Content', 'message' => 'The Source Content must be specified.', 'http_code' => 400, 'description' => 'No value is specified for the content field in the Sources parameter.'], + ['code' => 'MissingSource.Type', 'message' => 'The Source Type must be specified.', 'http_code' => 400, 'description' => 'No value is specified for the type field in the Sources parameter.'], + ['code' => 'MissingStartTimeParameter', 'message' => 'The StartTime is required.', 'http_code' => 400, 'description' => 'You must specify a start time.'], + ['code' => 'MissingTimeParameter', 'message' => 'The StartTime and EndTime must be both specified.', 'http_code' => 400, 'description' => 'You must set both the start time and the end time.'], + ['code' => 'MissingUrlList', 'message' => 'UrlList is mandatory for this action.', 'http_code' => 400, 'description' => 'Missing preheated URL list parameter.'], + ['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' => 'You must set Tag or ResourceId.'], + ['code' => 'MonitorExpectedBodyInvalid', 'message' => 'The incoming monitor expected return body is illegal, the length cannot be greater than 102400.', 'http_code' => 400, 'description' => 'The incoming monitor expected return body is illegal, the length cannot be greater than 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' => '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.'], + ['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' => '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.'], + ['code' => 'MonitorMethodNotSupport', 'message' => 'The incoming monitor request method is not supported, only the following methods are supported: GET/HEAD.', 'http_code' => 400, 'description' => 'The incoming monitor request method is not supported, only the following methods are supported: 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' => '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.'], + ['code' => 'MonitorPortNotSupport', 'message' => 'The incoming monitor listening port is not supported. The port value range is [1,65535].', 'http_code' => 400, 'description' => 'The incoming monitor listening port is not supported. The port value range is [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' => 'The input monitor retries parameter is not supported. The range of supported retries is [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' => 'The monitor timeout passed in is out of range. The following range is supported:[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' => 'The incoming monitor type is not supported. The monitor only supports the following types: off/HTTP/HTTPS/TCP/UDP/ICMP Ping/SMTP.'], + ['code' => 'NameAlreadyExist', 'message' => 'The subscription name already exists.', 'http_code' => 400, 'description' => 'The name of the tracking task already exists.'], + ['code' => 'NameAlreadyExists', 'message' => 'The name already exists.', 'http_code' => 400, 'description' => 'The name already exists.'], + ['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' => 'The number of embedded sub-conditions in the rule exceeds the plan limit. Please check the plan description and upgrade your plan.'], + ['code' => 'NoHttpsDomain', 'message' => 'Your account does not have any HTTPS domain.', 'http_code' => 400, 'description' => 'Your account does not have an HTTP-capable domain name.'], + ['code' => 'NoHttpsDomain', 'message' => 'Your account does not have https domain.', 'http_code' => 400, 'description' => ''], + ['code' => 'NoPermission', 'message' => 'You do not have permission to access or operate on the current resource.', 'http_code' => 400, 'description' => 'You do not have permissions to access or operate on the resource.'], + ['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' => '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.'], + ['code' => 'NoPermission', 'message' => 'Permission denied.', 'http_code' => 400, 'description' => 'No permission'], + ['code' => 'NoRealNameAuthentication', 'message' => 'Real name authentication is needed.', 'http_code' => 400, 'description' => 'Your account has not passed real-time verification.'], + ['code' => 'NoResource', 'message' => 'The required port has no resources, please submit a ticket.', 'http_code' => 404, 'description' => 'The required port has no resources, please submit a ticket.'], + ['code' => 'NotFoundCertList', 'message' => 'The certList is null.', 'http_code' => 400, 'description' => 'The certificate list is empty.'], + ['code' => 'NotInternationRealIdentity', 'message' => 'Real-name registration is required for services offered in Mainland China.', 'http_code' => 400, 'description' => 'You have not passed real-name verification. According to the regulations issued by MIIT, you must pass real-name verification if you want to purchase information services in the Chinese mainland.'], + ['code' => 'OperationDenied', 'message' => 'Error performing verification.', 'http_code' => 400, 'description' => 'Authentication failed.'], + ['code' => 'OperationDenied', 'message' => 'You are not authorized to perform this operation.', 'http_code' => 403, 'description' => 'You are not authorized to perform this operation. Check whether RAM users have permissions to perform this operation.'], + ['code' => 'OperationDenied', 'message' => 'Your UID and BID do not match.', 'http_code' => 403, 'description' => 'The specified UID and BID do not match.'], + ['code' => 'OperationDenied.DefaultSiteEnvironmentUneditable', 'message' => 'The rule of the default environment is not allowed to be modified.', 'http_code' => 400, 'description' => 'The rule of the default environment is not allowed to be modified.'], + ['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' => 'Sites that are accessed only by NS mode can use custom NS. Please adjust your site access mode and try again.'], + ['code' => 'OperationDeniedAccount', 'message' => 'You are not authorized to perform this operation.', 'http_code' => 403, 'description' => 'You are not authorized to perform this operation.'], + ['code' => 'OperationDeniedUid', 'message' => 'Your UID and BID do not match.', 'http_code' => 403, 'description' => 'The specified UID and BID do not match.'], + ['code' => 'Order.InstanceHasUnpaidOrder', 'message' => 'The specified instance has an unpaid order.', 'http_code' => 400, 'description' => 'The specified instance has an unpaid order.'], + ['code' => 'OriginPoolNameConflict', 'message' => 'Origin pool name conflict.', 'http_code' => 400, 'description' => 'The name of the origin pool conflicts. The name of the origin pool cannot be the same as that of other origin pools in the same site, and its record name cannot be the same as that of the load balancer.'], + ['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' => 'The origin pool id passed in does not exist or does not belong to this user or site.'], + ['code' => 'Page.BeingBound', 'message' => 'The specified page is being bound.', 'http_code' => 403, 'description' => 'The specified custom response page is being bound by one or more protection rules.'], + ['code' => 'Page.NotExist', 'message' => 'The specified page does not exist.', 'http_code' => 403, 'description' => 'The specified custom response page does not exist.'], + ['code' => 'ParameterAlreadyExist', 'message' => 'The entered parameter already exists.', 'http_code' => 400, 'description' => 'The entered parameter already exists.'], + ['code' => 'ParameterNotExist', 'message' => 'The entered parameter does not exist.', 'http_code' => 400, 'description' => 'The entered parameter does not exist.'], + ['code' => 'ParamNameError', 'message' => 'parameter name error', 'http_code' => 400, 'description' => 'The value of the Name parameter is invalid.'], + ['code' => 'Policy.DefaultExisted', 'message' => 'The default policy is existed in specified defense scene.', 'http_code' => 400, 'description' => 'The specified protection scenario already has a default policy.'], + ['code' => 'Policy.DeleteForbidden', 'message' => 'The specified policy is forbidden to delete.', 'http_code' => 400, 'description' => 'You cannot delete the specified policy.'], + ['code' => 'Policy.NotExist', 'message' => 'The specified policy does not exist.', 'http_code' => 400, 'description' => 'The specified protection policy does not exist.'], + ['code' => 'PolicyName.AlreadyExists', 'message' => 'The specified policy name already exists.', 'http_code' => 400, 'description' => 'The specified policy name is already used by another policy.'], + ['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' => '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.'], + ['code' => 'PoolReferenceExist', 'message' => 'The origin pool has references and cannot be deleted.', 'http_code' => 400, 'description' => 'The origin pool has references and cannot be deleted.'], + ['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' => 'The maximum number of URLs of the objects that are being prefetched has been reached. Try again later.'], + ['code' => 'PrivateKeyError', 'message' => 'The content of the certificate is invalid.', 'http_code' => 500, 'description' => 'The certificate content is invalid.'], + ['code' => 'ProjectExist', 'message' => 'sls project belong to other user.', 'http_code' => 200, 'description' => 'sls project already belongs to another user'], + ['code' => 'ProjectNotExist', 'message' => 'The project does not exist.', 'http_code' => 404, 'description' => 'Information about the project is not found.'], + ['code' => 'ProjectNotFound', 'message' => 'The project provided does not belong to you.', 'http_code' => 400, 'description' => 'The project does not exist or does not belong to the current user.'], + ['code' => 'QueryDBError', 'message' => 'An internal exception occurred when query data, please try again later.', 'http_code' => 500, 'description' => 'An internal exception occurred when query data, please try again later.'], + ['code' => 'QueryLog.Timeout', 'message' => 'Query Log System Timeout.', 'http_code' => 500, 'description' => 'Query offline log system timeout, please try again later.'], + ['code' => 'QuotaCheckFailed.CustomNS', 'message' => 'The current plan does not allow custom NS.', 'http_code' => 400, 'description' => 'The current plan does not allow custom 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' => 'This feature is not allowed in the current package, or the feature has exceeded the package quota.'], + ['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' => 'This function arguments is not available in the current package, or the quantity has exceeded the quota limit.'], + ['code' => 'QuotaCheckFailed.Regex', 'message' => 'The current plan does not allow regular expressions in rules.', 'http_code' => 400, 'description' => 'The current tier does not allow regular expressions in rules.'], + ['code' => 'QuotaCheckFailed.VersionManagement', 'message' => 'The current plan\'s quota of version management is insufficient. Please try to upgrade the plan.', 'http_code' => 400, 'description' => 'The version management quota of the current package is insufficient. Please try to upgrade the package version.'], + ['code' => 'QuotaExceed.NestedConditional', 'message' => 'The number of nested conditions for the rule exceeds the quota limit.', 'http_code' => 400, 'description' => 'The number of nested conditions for the rule exceeds the quota limit.'], + ['code' => 'QuotaExceed.RecordCount', 'message' => 'The number of records exceeds the quota limit.', 'http_code' => 400, 'description' => 'The number of records exceeds the package quota limit.'], + ['code' => 'QuotaExceed.SiteCount', 'message' => 'The number of site exceeds the quota limit.', 'http_code' => 400, 'description' => 'The number of site exceeds the quota limit.'], + ['code' => 'QuotaExceed.UploadHttpCert', 'message' => 'The number of self-upload certificates exceeds the quota limit.', 'http_code' => 400, 'description' => 'The number of self-upload certificates exceeds the quota limit.'], + ['code' => 'QuotaExceed.WildCardRecord', 'message' => 'The number of wild card records exceeds the quota limit.', 'http_code' => 400, 'description' => 'The number of pan records exceeds the quota limit.'], + ['code' => 'QuotaExceeded', 'message' => 'The quota is exceeded.', 'http_code' => 403, 'description' => 'The quota is exhausted.'], + ['code' => 'QuotaExceeded.Block', 'message' => 'Your block attempts have exceeded the daily limit.', 'http_code' => 400, 'description' => 'The blacklist quota on the current day is exhausted.'], + ['code' => 'QuotaExceeded.Preload', 'message' => 'Your refresh attempts have exceeded the daily limit.', 'http_code' => 400, 'description' => 'The maximum number of refresh and prefetch requests on the current day has been reached.'], + ['code' => 'QuotaExceeded.Refresh', 'message' => 'Your refresh attempts have exceeded the daily limit.', 'http_code' => 400, 'description' => 'The number of refresh tasks on the current day has reached the upper limit. You can call the refresh API operation to query the remaining number of refresh tasks that you want to run on the current day.'], + ['code' => 'QuotaNotExist', 'message' => 'Quota does not exist.', 'http_code' => 400, 'description' => 'Package quota item does not exist.'], + ['code' => 'QuotaPerMinuteExceeded.Preload', 'message' => 'You have exceeded the prescribed preload limits per minute.', 'http_code' => 400, 'description' => 'The number of prefetch tasks per minute has reached the upper limit.'], + ['code' => 'QuotaPerMinuteExceeded.Refresh', 'message' => 'You tried to refresh too frequently; please try again later.', 'http_code' => 400, 'description' => 'Refresh requests are submitted too frequently. Try again later.'], + ['code' => 'RealTimeLog.BucketRegionError', 'message' => 'Realtime log oss bucket region error.', 'http_code' => 403, 'description' => 'oss bucket region selection error'], + ['code' => 'RealTimeLog.KafkaBrokersExceedError', 'message' => 'Realtime log kafka brokers exceed error.', 'http_code' => 403, 'description' => 'The number of real-time log kakfa broker servers exceeds the upper limit (maximum 50)'], + ['code' => 'RealTimeLog.KafkaConfigError', 'message' => 'Realtime log kafka config error.', 'http_code' => 403, 'description' => 'real-time log kafka delivery configuration error'], + ['code' => 'RealTimeLog.NameCheckFail', 'message' => 'Real-time log name field validity check failed.', 'http_code' => 403, 'description' => 'The real-time log configuration field you entered contains illegal characters. Please delete the illegal characters and try again. The allowed characters include numbers, letters, underscore "_" and spaces ""'], + ['code' => 'RealTimeLog.OssBucketQueryError', 'message' => 'Realtime log oss bucket query error.', 'http_code' => 403, 'description' => 'oss bucket query exception'], + ['code' => 'RealTimeLog.OssRoleCheckError', 'message' => 'Realtime log oss role does not exist.', 'http_code' => 403, 'description' => 'the real-time log oss shipping authorization role does not exist.'], + ['code' => 'RealTimeLog.ProjectExistError', 'message' => 'Realtime-log project name already exist.', 'http_code' => 400, 'description' => 'Real-time log entry name already exists'], + ['code' => 'RealTimeLog.RegexpCheckFail', 'message' => 'Realtime log Regexp check fail.', 'http_code' => 403, 'description' => 'Real-time log configuration field regular matching check failed'], + ['code' => 'RealTimeLog.S3EndpointInvalidError', 'message' => 'Realtime log s3 endpoint invalid.', 'http_code' => 403, 'description' => 'real-time log s3 shipping endpoint configuration exception'], + ['code' => 'RealTimeLog.SlrRoleCheckError', 'message' => 'Realtime log SLR role check error.', 'http_code' => 403, 'description' => 'Real-time log SLR role permission error'], + ['code' => 'RealTimeLog.SlsClientError', 'message' => 'Realtime log sls client init error.', 'http_code' => 403, 'description' => 'real-time log sls shipping client exception'], + ['code' => 'RealTimeLog.SlsEndpointError', 'message' => 'Realtime log sls config endpoint error.', 'http_code' => 403, 'description' => 'real-time log sls shipping endpoint exception'], + ['code' => 'RealTimeLog.SlsLogstoreQueryError', 'message' => 'Realtime Log sls logstore query error.', 'http_code' => 403, 'description' => 'sls logstore query failed'], + ['code' => 'RealTimeLog.SlsNotOpen', 'message' => 'Aliyun Log service not open.', 'http_code' => 403, 'description' => 'the alibaba cloud log service service has not been activated'], + ['code' => 'RealTimeLog.SlsProjectExistError', 'message' => 'log sls project exist error.', 'http_code' => 403, 'description' => 'sls project already exists'], + ['code' => 'RealTimeLog.SomeDomainFailed', 'message' => 'Some domain failed to process.', 'http_code' => 409, 'description' => 'Some domain failed to process.'], + ['code' => 'RealTimeLog.StatusQuotaError', 'message' => 'Realtime log service quota limit error.', 'http_code' => 403, 'description' => 'Insufficient real-time log subscription quota'], + ['code' => 'RealtimeLogProjectExistError', 'message' => 'Realtime-log project name already exist.', 'http_code' => 400, 'description' => 'Real-time log entry name already exists'], + ['code' => 'Record.AlreadyExist', 'message' => 'The record to be added already exists or conflicts.', 'http_code' => 403, 'description' => 'The record to be added already exists or conflicts with an existing record.'], + ['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' => 'The record does not exist.'], + ['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' => 'This record is being configured, please try again later.'], + ['code' => 'RecordCheckNotAvailable', 'message' => 'The ICP filing interface is unavailable. Please try again later.', 'http_code' => 400, 'description' => 'The operation for ICP filing is unavailable. Try again later.'], + ['code' => 'RegionNoResource', 'message' => 'No resource is available in the specified region.', 'http_code' => 400, 'description' => ''], + ['code' => 'RegionNoResource', 'message' => 'Resource allocation failed. Please submit a work order to contact customer service.', 'http_code' => 400, 'description' => 'Resource allocation failed. Please submit a work order to contact customer service.'], + ['code' => 'RelatedRecordNumberExceedQuotaLimit', 'message' => 'related record number exceeds the quota limit.', 'http_code' => 400, 'description' => 'The number of Routine associated record records exceeds the quota limit.'], + ['code' => 'RelatedRouteNumberExceedQuotaLimit', 'message' => 'related route number exceeds the quota limit.', 'http_code' => 400, 'description' => 'The number of routes exceeds the quota limit.'], + ['code' => 'RelatedSiteNumberExceedQuotaLimit', 'message' => 'The number of Routine associated site sites exceeds the quota limit.', 'http_code' => 400, 'description' => 'The number of Routine associated site sites exceeds the quota limit.'], + ['code' => 'RequestNotSupported', 'message' => 'The request is not supported for unactivated site.', 'http_code' => 400, 'description' => 'Unactivated sites do not support free certificate requests. Please activate the site first.'], + ['code' => 'Resource.NotExist', 'message' => 'The resource does not exist.', 'http_code' => 400, 'description' => 'The specified resource does not exist.'], + ['code' => 'ResourceIdIsInvalid', 'message' => 'The number of ResourceId exceeds 50.', 'http_code' => 400, 'description' => 'The number of resource IDs (ResourceId) cannot exceed 50.'], + ['code' => 'ResourceNotExist', 'message' => 'The specified domain does not exist.', 'http_code' => 400, 'description' => 'The specified resource does not exist.'], + ['code' => 'ResourceOverload', 'message' => 'Resources are overloaded. Please try again later.', 'http_code' => 403, 'description' => 'The server is overloaded. Try again later.'], + ['code' => 'RetErrorSourceCircle', 'message' => 'Error configuring the source. CDN already contains the domain. Please change the source.', 'http_code' => 400, 'description' => 'The specified origin server is a domain name accelerated by Alibaba Cloud CDN. Specify another origin server.'], + ['code' => 'RoutineAlreadyExist', 'message' => 'The Routine name you entered already exists.', 'http_code' => 400, 'description' => 'The Routine name you entered already exists.'], + ['code' => 'RoutineNotExist', 'message' => 'The Routine name entered does not exist.', 'http_code' => 400, 'description' => 'The Routine name entered does not exist.'], + ['code' => 'RoutineNumberExceedQuotaLimit', 'message' => 'routine number exceeds the quota limit.', 'http_code' => 400, 'description' => 'The number of routine has exceeded the quota limit.'], + ['code' => 'RoutineUserServiceStatusHalt', 'message' => 'The user is in halt state, can not perform update operations.', 'http_code' => 400, 'description' => 'The user is in halt state, can not perform update operations.'], + ['code' => 'Rule.Config.Malformed', 'message' => 'The specified rule configuration is malformed or does not adhere to the required format.', 'http_code' => 403, 'description' => 'The specified rule configuration is malformed or does not adhere to the required format. Please examine the rule configuration for any syntax errors or structural inconsistencies and rectify them to align with the expected configuration schema.'], + ['code' => 'Rule.Config.Noncompliance', 'message' => 'The specified rule configuration does not meet the established compliance criteria.', 'http_code' => 403, 'description' => 'The specified rule configuration does not meet the established compliance criteria. Please review the rule settings for any discrepancies or violations of the expected standards and make the necessary adjustments to ensure all rules are properly validated.'], + ['code' => 'Rule.Name.AlreadyExists', 'message' => 'The specified rule name already exists and cannot be duplicated within the system\'s configuration.', 'http_code' => 403, 'description' => 'The specified rule name already exists and cannot be duplicated within the system\'s configuration. Please select a distinctive rule name that does not conflict with others or consider modifying the existing rule\'s name if necessary to prevent any ambiguity and to preserve the uniqueness of each rule identifier.'], + ['code' => 'Rule.Name.CantBeModified', 'message' => 'The specified rule name can not be modified.', 'http_code' => 400, 'description' => 'The name of the specified rule cannot be modified.'], + ['code' => 'Rule.NotExist', 'message' => 'The specified rule does not exist.', 'http_code' => 400, 'description' => 'The specified rule does not exist in the current context or system configuration. Please verify the existence of the rule identifier and ensure it has been correctly defined or implemented.'], + ['code' => 'Rule.Position.Invalid', 'message' => 'The specified rule position is invalid or falls outside the acceptable range.', 'http_code' => 403, 'description' => 'The specified rule position is invalid or falls outside the acceptable range. Verify the rule position parameters and make the appropriate corrections to ensure compliance with the established boundaries or sequence requirements.'], + ['code' => 'Rule.QuantityOverflow', 'message' => 'Rules are overflowed quantity in specified policy.', 'http_code' => 400, 'description' => 'The number of rules in the specified policy has already reached the upper limit.'], + ['code' => 'RuleCompileError', 'message' => 'Compilation failed because of incorrect rule information.', 'http_code' => 400, 'description' => 'Compilation failed because of incorrect rule information.'], + ['code' => 'RuleConfigs.Malformed', 'message' => 'The specified RuleConfigs format is invalid.', 'http_code' => 400, 'description' => 'The RuleConfigs parameter is in an invalid format.'], + ['code' => 'RuleName.AlreadyExists', 'message' => 'Rule name already exists in specified policy.', 'http_code' => 400, 'description' => 'The specified rule name is already used by another rule.'], + ['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' => 'The current plan does not support the configuration of a rule engine with a regular expression. Please check the plan description and upgrade your plan.'], + ['code' => 'Ruleset.Name.AlreadyExists', 'message' => 'The specified ruleset name already exists within the system\'s rule management infrastructure.', 'http_code' => 403, 'description' => 'The specified ruleset name already exists within the system\'s rule management infrastructure. Please select an alternative name that is unique to avoid duplication and potential conflicts with pre-existing rulesets. If renaming an existing ruleset, ensure that the new name is distinct and does not infringe upon the identifiers of other established rulesets.'], + ['code' => 'Ruleset.NotExist', 'message' => 'The specified ruleset does not exist or has not been registered within the current system configuration.', 'http_code' => 403, 'description' => 'The specified ruleset does not exist or has not been registered within the current system configuration. Please verify that the ruleset identifier is correct and refers to a ruleset that has been properly defined and is maintained within the system\'s ruleset registry. If the ruleset is a new entity, ensure that the necessary steps for its creation and registration have been successfully executed to make it available for use.'], + ['code' => 'ScenePolicyQuotaExceedLimit', 'message' => 'Scene Policy Quota Exceeded.', 'http_code' => 400, 'description' => 'Scenario policy configuration quota exceeds limit'], + ['code' => 'Schedule.ChangeFail', 'message' => 'Failed to change the accelerated area for the domain.', 'http_code' => 400, 'description' => 'Failed to switch to another scheduling domain for the domain name.'], + ['code' => 'Schedule.NotFound', 'message' => 'This domain does not have any available CDN resources in the accelerated area.', 'http_code' => 400, 'description' => 'No scheduling domain resources are available for the domain name.'], + ['code' => 'ServiceBusy', 'message' => 'The specified domain is being configured; please try again later.', 'http_code' => 403, 'description' => 'The specified domain name is being configured. Try again later.'], + ['code' => 'ServiceInvokeFailed', 'message' => 'Failed to invoke service.', 'http_code' => 400, 'description' => 'An error occurred while invoking internal services.'], + ['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' => 'Failed to call the service. Please try again later or contact customer service for details.'], + ['code' => 'ServiceNotOpen', 'message' => 'The edge routine service is not enabled.', 'http_code' => 400, 'description' => 'The edge routine service is not enabled.'], + ['code' => 'ServiceUnavailable', 'message' => 'The request has failed due to a temporary failure of the server.', 'http_code' => 503, 'description' => 'The service is unavailable.'], + ['code' => 'SetDomainCertificate.ParameterError', 'message' => 'The specified parameters are invalid.', 'http_code' => 400, 'description' => 'The specified parameter values are invalid.'], + ['code' => 'SingleRequest.OverLimit', 'message' => 'A maximum of 100 URLs are supported for each request.', 'http_code' => 400, 'description' => 'You can submit at most 1,000 URLs at a time.'], + ['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' => 'The specified acceleration region is invalid. You can only switch to the acceleration region supported by the subscription instance.'], + ['code' => 'Site.NotExist', 'message' => 'The specified site does not exist or is not currently recognized by the system.', 'http_code' => 403, 'description' => 'The specified site does not exist or is not currently recognized by the system. Please check the site identifier for accuracy and ensure it matches a site that has been previously defined, is currently active, and is accessible within the system\'s network of recognized sites. If the site is intended to be a new addition, please ensure that the appropriate creation or registration procedures have been completed to integrate it into the system.'], + ['code' => 'Site.NSNotFound', 'message' => 'The specified site name does not have ns records.', 'http_code' => 200, 'description' => 'The current NS record for the site does not exist'], + ['code' => 'Site.ServiceBusy', 'message' => 'This specified site is being configured, please try again later.', 'http_code' => 400, 'description' => 'This site is being configured, please try again later.'], + ['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' => 'Unable to update the access type of the site. Check whether there are any configurations or records that are not supported by the target access type.'], + ['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' => 'The size of the site configuration exceeds the limit, and the total size cannot exceed 512K.'], + ['code' => 'SiteEnvironment.Conflict', 'message' => 'The specified site environment conflicts with an existing environment.', 'http_code' => 400, 'description' => 'The specified site environment conflicts with an existing environment.'], + ['code' => 'SiteEnvironment.DeleteDenied', 'message' => 'The default site environment cannot be deleted.', 'http_code' => 400, 'description' => 'The default site environment cannot be deleted.'], + ['code' => 'SiteEnvironment.NotExist', 'message' => 'The specified site environment does not exist.', 'http_code' => 400, 'description' => 'The specified site environment does not exist.'], + ['code' => 'SiteEnvironment.UpdateDenied', 'message' => 'The update operation for the specified site environment was denied.', 'http_code' => 400, 'description' => 'The update operation for the specified site environment is disabled.'], + ['code' => 'SiteNotActivated', 'message' => 'The site is not activated, the process is not allowed.', 'http_code' => 400, 'description' => 'The operation is not supported because the site is not activated.'], + ['code' => 'SiteNotFound', 'message' => 'The site does not exist or does not belong to you.', 'http_code' => 404, 'description' => 'The site does not exist or does not belong to you.'], + ['code' => 'SiteNotFound', 'message' => 'The specified site is not found.', 'http_code' => 400, 'description' => 'The site you specified does not exist. Please check whether the site you entered is correct.'], + ['code' => 'SiteParameterNotMatch', 'message' => 'Failed to verify the entered site-related parameters.', 'http_code' => 400, 'description' => 'Failed to verify the entered site-related parameters.'], + ['code' => 'SiteVerify.Unpassed', 'message' => 'Site ownership verification failed.', 'http_code' => 200, 'description' => 'Site ownership verification failed'], + ['code' => 'SiteVersion.Configuring', 'message' => 'The specified site version is being configured.', 'http_code' => 400, 'description' => 'The specified site version is in a cloning configuration, please try again later.'], + ['code' => 'SiteVersion.DeleteDenied', 'message' => 'The specified version is prohibited from being deleted because it is deployed to an environment.', 'http_code' => 400, 'description' => 'The specified version cannot be deleted because it is deployed to an environment.'], + ['code' => 'SiteVersion.NotExist', 'message' => 'The specified site version does not exist.', 'http_code' => 400, 'description' => 'The specified site version does not exist.'], + ['code' => 'SourceAddressInvalid', 'message' => 'The source address is invalid, and the ip or domain name format is invalid.', 'http_code' => 400, 'description' => 'The source address is invalid, and the ip or domain name format is invalid.'], + ['code' => 'SourceInBlacklist', 'message' => 'Source is in the blacklist.', 'http_code' => 400, 'description' => 'The origin server is in the blacklist.'], + ['code' => 'SourceIp.Exceed', 'message' => 'The maximum number of back-to-origin IP addresses is exceeded.', 'http_code' => 400, 'description' => 'The number of origin IP addresses exceeds the upper limit.'], + ['code' => 'SourceNumberExceedLimit', 'message' => 'The number of sources in the origin pool exceeds the quota limit.', 'http_code' => 400, 'description' => 'The number of sources that can be created in the origin pool has reached the upper limit of the package. Please check your package quota and upgrade the package to obtain more quota.'], + ['code' => 'SourceTypeNotSupport', 'message' => 'The incoming source type is not supported.', 'http_code' => 400, 'description' => 'The incoming source type is not supported. The source type only supports the following types: ip_domain, OSS, FC and S3. Other types are not supported.'], + ['code' => 'Specification.OverLimit', 'message' => 'Specifications exceed the limit, paid version can use 50ms, 100ms, free version can only use 5ms.', 'http_code' => 400, 'description' => 'Specifications exceed the limit, paid version can use 50ms, 100ms, free version can only use 5ms'], + ['code' => 'SpecifiedVersionReadOnly', 'message' => 'The specified version number is read-only and cannot be modified.', 'http_code' => 400, 'description' => 'The specified version number is read-only and cannot be modified.'], + ['code' => 'sslPri.Error', 'message' => 'Error encoding SSLPri.', 'http_code' => 400, 'description' => 'Failed to encode SSLPri.'], + ['code' => 'SSLPri.MissingParameter', 'message' => 'The SSLPri parameter is required.', 'http_code' => 400, 'description' => 'The SSLPri parameter is not specified.'], + ['code' => 'sslPub.Error', 'message' => 'Error encoding SSLPub.', 'http_code' => 400, 'description' => 'Failed to encode sslPub.'], + ['code' => 'SSLPub.MissingParameter', 'message' => 'The SSLPub parameter is required.', 'http_code' => 400, 'description' => 'The SSLPub parameter is not specified.'], + ['code' => 'StagingConfig.Failed', 'message' => 'The rules for the staging environment are being configured. Try again later.', 'http_code' => 400, 'description' => 'The staging environment is updating data. Try again later.'], + ['code' => 'StagingConfig.NotFound', 'message' => 'The staging configuration does not exist.', 'http_code' => 404, 'description' => 'The configuration cannot be found in the staging environment.'], + ['code' => 'StatusForbidden', 'message' => 'The request is forbidden.', 'http_code' => 403, 'description' => 'The request is denied.'], + ['code' => 'SubscriptionAlreadyExists', 'message' => 'The subscription already exists.', 'http_code' => 400, 'description' => 'The subscription already exists.'], + ['code' => 'SubscriptionNotFound', 'message' => 'The subscription is not found.', 'http_code' => 400, 'description' => 'The subscription is not found.'], + ['code' => 'SubSiteUnavailable', 'message' => 'Sub site is unsupported.', 'http_code' => 400, 'description' => 'Sub site is unsupported.'], + ['code' => 'SYSTEM.NoSpecificCodeFailed', 'message' => 'Invalid period value.', 'http_code' => 400, 'description' => 'Illegal purchase cycle parameter.'], + ['code' => 'SystemTagIsInvalid', 'message' => 'The number of System Tag exceeds 50.', 'http_code' => 400, 'description' => 'The number of system tags cannot exceed 50.'], + ['code' => 'SystemUpgrading', 'message' => 'The system is being upgraded; please try again later.', 'http_code' => 403, 'description' => 'The system is being upgraded. Try again later.'], + ['code' => 'TagIsInvalid', 'message' => 'The number of Tag exceeds 20.', 'http_code' => 400, 'description' => 'The number of tags cannot exceed 20.'], + ['code' => 'TagKeyDuplicated', 'message' => 'The specified TagKey is duplicated.', 'http_code' => 400, 'description' => 'The value of the TagKey parameter must be unique.'], + ['code' => 'TagKeyIsInvalid', 'message' => 'The specified TagKey is invalid.', 'http_code' => 400, 'description' => 'The TagKey parameter is set to an invalid value.'], + ['code' => 'TagKeyRepeated', 'message' => 'The specified TagKey is duplicated.', 'http_code' => 400, 'description' => 'Duplicate tag keys exists.'], + ['code' => 'TagValueIsInvalid', 'message' => 'The specified TagValue is invalid.', 'http_code' => 400, 'description' => 'The TagValue parameter is set to an invalid value. Specify another value and try again.'], + ['code' => 'TimeParseFailed', 'message' => 'Failed to parse the time parameter.', 'http_code' => 400, 'description' => 'Failed to parse the time parameter.'], + ['code' => 'TooMany.Refresh', 'message' => 'The refresh queue is full; please try again later.', 'http_code' => 400, 'description' => 'The maximum number of refresh requests for a domain name has been reached. Try again later.'], + ['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' => 'The server is unavailable. Try again later.'], + ['code' => 'TooManyRequests', 'message' => 'Too many requests are submitted.', 'http_code' => 429, 'description' => 'Do not send requests at a high frequency.'], + ['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' => 'The number of specified tags exceeds the upper limit.'], + ['code' => 'TooQuickRequests', 'message' => 'Request for putting or deleting keys are frequently submitted.', 'http_code' => 429, 'description' => 'Do not perform the key put/delete operation at a high frequency.'], + ['code' => 'TopLevelDomain.Conflicts', 'message' => 'The added domain conflicts with the top level domain.', 'http_code' => 404, 'description' => 'The specified domain name conflicts with the top-level domain name.'], + ['code' => 'TopLevelDomain.Mismatch', 'message' => 'The specified TopLevelDomain does not match webSiteType.', 'http_code' => 400, 'description' => 'The top-level domain name does not match the domain name type.'], + ['code' => 'TopLevelDomain.NotFound', 'message' => 'The specified TopLevelDomain does not exist.', 'http_code' => 400, 'description' => 'The specified top-level domain name does not exist.'], + ['code' => 'Unauthorized', 'message' => 'RealtimeLogDelivery service is not authorized.', 'http_code' => 400, 'description' => 'Real-time log delivery does not have the required permissions.'], + ['code' => 'Unauthorized.InvalidParameters', 'message' => 'The specified authentication parameters are invalid.', 'http_code' => 403, 'description' => 'An authentication parameter is set to an invalid value.'], + ['code' => 'Unauthorized.InvalidResource', 'message' => 'Resource authentication failed.', 'http_code' => 403, 'description' => 'The specified resource is invalid.'], + ['code' => 'Unauthorized.InvalidTime', 'message' => 'The specified authentication time is invalid.', 'http_code' => 403, 'description' => 'The authentication time parameter you entered is invalid. Check the parameter value and try again.'], + ['code' => 'Unauthorized.InvalidToken', 'message' => 'Token authentication failed.', 'http_code' => 403, 'description' => 'The token you entered is invalid. Please check and enter the correct token and try again.'], + ['code' => 'UnprocessableEntity', 'message' => 'Configuration failed due to invalid data, missing required fields, or missing resources.', 'http_code' => 422, 'description' => 'Configuration failed due to invalid data, missing required fields, or missing resources.'], + ['code' => 'UnsupportedParameter', 'message' => 'The specified OwnerId and OwnerAccount are not supported.', 'http_code' => 400, 'description' => 'The specified parameter is not supported.'], + ['code' => 'UnsupportQuota', 'message' => 'The current operation does not support this quota. Check whether the quota is valid.', 'http_code' => 404, 'description' => 'The current operation does not support this quota. Check whether the passed quota is valid.'], + ['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' => '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.'], + ['code' => 'UserWithoutConfLabel', 'message' => 'the user has not configured the required label information, such as L2IpGroup.', 'http_code' => 400, 'description' => 'The user did not configure the required configuration tag information.'], + ['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' => 'The specified version number is already activated in the staging environment.'], + ['code' => 'VersionNoDomain', 'message' => 'The version cannot be activated without domains.', 'http_code' => 400, 'description' => 'You cannot activate the specified version number because no domain name is associated with the version number.'], + ['code' => 'VersionNotValid', 'message' => 'The site does not have version management enabled, or the version number passed in does not exist.', 'http_code' => 400, 'description' => 'The site does not have version management enabled, or the version number passed in does not exist.'], + ['code' => 'VersionOverLimit', 'message' => 'The number of versions exceeds the limit.', 'http_code' => 400, 'description' => 'The number of versions has reached the upper limit.'], + ['code' => 'WafGroup.BeingBound', 'message' => 'The specified WAF group is being bound.', 'http_code' => 400, 'description' => 'The specified WAF rule group is bound to one or more protection policies.'], + ['code' => 'WafGroup.Name.Malformed', 'message' => 'The specified parameter Name is invalid.', 'http_code' => 400, 'description' => 'The format of the Name parameter is invalid.'], + ['code' => 'WafGroup.NotExist', 'message' => 'The specified WAF group does not exist.', 'http_code' => 400, 'description' => 'The specified WAF rule group does not exist.'], + ['code' => 'WafGroup.Quantity.Overflow', 'message' => 'WAF groups are overflowed quantity.', 'http_code' => 400, 'description' => 'The number of WAF rule groups exceeds the limit.'], + ['code' => 'WaitingRoomEventNotExist', 'message' => 'The waiting room event does not exist.', 'http_code' => 400, 'description' => 'Waiting room event does not exist.'], + ['code' => 'WaitingRoomNotExist', 'message' => 'The waiting room does not exist.', 'http_code' => 400, 'description' => 'The waiting room does not exist.'], + ['code' => 'WaitingRoomRuleNotExist', 'message' => 'The waiting room rule does not exist.', 'http_code' => 400, 'description' => 'Waiting room bypass rule does not exist.'], + ['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' => '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.'], + ['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' => 'The number of domain names exceeds the limit, and a configuration group can be associated with up to 50 city names.'], + ], + 'changeSet' => [ + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeDcdnFullDomainsBlockIPHistory'], ], - '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' => 'DescribeDcdnUserVipsByDomain', - 'description' => '> You can call this operation up to 30 times per second per account.'."\n", + 'createdAt' => '2024-12-18T07:52:09.000Z', + 'description' => '', ], - 'DescribeDcdnIpInfo' => [ - 'summary' => 'Queries whether an IP address belongs to a POP.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CheckDcdnProjectExist'], + ['description' => 'Error codes changed', 'api' => 'CreateDcdnSLSRealTimeLogDelivery'], + ['description' => 'Error codes changed', 'api' => 'CreateSlrAndSlsProject'], + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnSLSRealtimeLogDelivery'], + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnSLSRealTimeLogType'], + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnUserRealTimeDeliveryField'], + ['description' => 'Error codes changed', 'api' => 'ListDcdnRealTimeDeliveryProject'], + ['description' => 'Error codes changed', 'api' => 'UpdateDcdnSLSRealtimeLogDelivery'], + ['description' => 'Error codes changed', 'api' => 'UpdateDcdnUserRealTimeDeliveryField'], + ], + 'createdAt' => '2024-12-18T07:28:02.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'CreateDcdnSLSRealTimeLogDelivery'], + ['description' => 'Error codes changed', 'api' => 'DeleteDcdnRealTimeLogProject'], + ['description' => 'Error codes changed', 'api' => 'UpdateDcdnSLSRealtimeLogDelivery'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2024-12-04T08:17:40.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnWafDomains'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2024-11-28T01:48:09.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddDcdnDomain'], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '111531', - 'abilityTreeNodes' => [ - 'FEATUREdcdn33QGRH', - ], + 'createdAt' => '2024-11-26T03:17:44.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'BatchSetDcdnDomainCertificate'], ], - 'parameters' => [ - [ - 'name' => 'IP', - 'in' => 'query', - 'schema' => [ - 'description' => 'The IP address. You can specify only one IP address.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '10.10.10.10', - ], - ], + 'createdAt' => '2024-11-26T01:57:54.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'PreloadDcdnObjectCaches'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '1B1D0EE7-9559-489D-BC4E-279495EB8FB8', - ], - 'RegionEname' => [ - 'description' => 'The English name of the region.'."\n", - 'type' => 'string', - 'example' => 'China-Guizhou-guiyang', - ], - 'Region' => [ - 'description' => 'The Chinese name of the region.'."\n", - 'type' => 'string', - 'example' => '> The maximum number of times that users can call this operation per second is 50.'."\n", - ], - 'IspEname' => [ - 'description' => 'The name of the Internet service provider (ISP).'."\n", - 'type' => 'string', - 'example' => 'telecom', - ], - 'DcdnIp' => [ - 'description' => 'Indicates whether the specified IP address is assigned to an Alibaba Cloud DCDN POP.'."\n" - ."\n" - .'* True'."\n" - .'* False'."\n", - 'type' => 'string', - 'example' => 'True', - ], - 'ISP' => [ - 'description' => 'The ISP to which the specified IP address belongs.'."\n", - 'type' => 'string', - 'example' => 'China Telecom'."\n", - ], - ], - ], - ], + 'createdAt' => '2024-11-21T02:03:57.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'PreloadDcdnObjectCaches'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'InvalidIP.ValueNotSupported', - 'errorMessage' => 'The specified value of parameter IP is not supported.', - ], - ], + 'createdAt' => '2024-11-03T02:53:36.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnL2Ips'], ], - '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' => 'DescribeDcdnIpInfo', - 'description' => '> You can call this operation up to 50 times per second per account.'."\n", - 'extraInfo' => ' ', + 'createdAt' => '2024-09-24T06:30:09.000Z', + 'description' => '', ], - 'DescribeDcdnL2Vips' => [ - 'summary' => 'Queries the origin CIDR blocks by domain name. The CIDR blocks include IPv4 and IPv6 CIDR blocks.', - 'methods' => [ - 'post', - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddDcdnDomain'], + ['description' => 'Error codes changed', 'api' => 'AddDcdnIpaDomain'], + ['description' => 'Error codes changed', 'api' => 'BatchAddDcdnDomain'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2024-09-03T06:25:52.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeDcdnKvAccount'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2024-08-21T06:02:52.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeDcdnKvNamespace'], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREdcdnGMYWU5', - ], + 'createdAt' => '2024-08-20T09:18:31.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed, Response parameters changed', 'api' => 'DescribeDcdnKvAccount'], ], - 'parameters' => [ - [ - 'name' => 'DomainName', - 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => 'The domain name. You can specify only one domain name in each request. If you do not specify this parameter, the origin CIDR blocks of all domain names in your account in the whitelist are returned.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'example.com', - ], - ], + 'createdAt' => '2024-08-20T08:25:09.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'BatchDeleteDcdnKvWithHighCapacity'], + ['description' => 'Request parameters changed', 'api' => 'BatchPutDcdnKvWithHighCapacity'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'DomainName' => [ - 'description' => 'The accelerated domain name.'."\n", - 'type' => 'string', - 'example' => 'example.com', - ], - 'RequestId' => [ - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => '820E7900-5CA9-4AEF-B0DD-20ED5F64BE55', - ], - 'Vips' => [ - 'description' => 'The virtual IP addresses (VIPs).'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The VIPs.'."\n", - 'type' => 'string', - 'example' => '111.XXX.XXX.111/25', - ], - ], - ], - ], - ], + 'createdAt' => '2024-06-13T06:36:05.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DescribeDcdnUserDomains'], + ['description' => 'Error codes changed', 'api' => 'SetDcdnDomainSSLCertificate'], ], - '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' => 'DescribeDcdnL2Vips', + 'createdAt' => '2024-05-11T03:10:56.000Z', + 'description' => '', ], - 'DescribeDcdnL2Ips' => [ - 'summary' => 'Queries CIDR blocks of Dynamic Content Delivery Network (DCDN) points of presence (POPs).', - 'methods' => [ - 'get', + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'BatchSetDcdnDomainCertificate'], + ['description' => 'Error codes changed', 'api' => 'SetDcdnDomainCertificate'], ], - 'schemes' => [ - 'http', - 'https', + 'createdAt' => '2024-05-07T06:38:06.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'BatchPutDcdnKv'], ], - 'security' => [ - [ - 'AK' => [], - ], + 'createdAt' => '2024-04-29T15:11:38.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddDcdnIpaDomain'], + ['description' => 'Error codes changed', 'api' => 'UpdateDcdnIpaDomain'], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '162185', - 'abilityTreeNodes' => [ - 'FEATUREdcdnL8HX1L', - ], - 'autoTest' => true, - 'tenantRelevance' => 'publicInformation', + 'createdAt' => '2024-04-09T01:38:21.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'BatchPutDcdnKv'], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'title' => 'Id of the request', - 'description' => 'The ID of the request.'."\n", - 'type' => 'string', - 'example' => 'C370DAF1-C838-4288-A1A0-9A87633D248E', - ], - 'Vips' => [ - 'description' => 'The CIDR blocks of the POPs.'."\n", - 'type' => 'array', - 'items' => [ - 'description' => 'The CIDR blocks of the POP.'."\n", - 'type' => 'string', - 'example' => '111.XXX.XXX.111/25', - ], - ], - ], - ], - ], + 'createdAt' => '2024-03-27T02:35:09.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DescribeDcdnDomainConfigs'], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'UserWithoutConfLabel', - 'errorMessage' => 'the user has not configured the required label information, such as L2IpGroup.', - ], - ], + 'createdAt' => '2024-03-27T01:49:16.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'PutDcdnKvNamespace'], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'createdAt' => '2024-03-25T08:02:29.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeDcdnKvNamespace'], ], - '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' => 'DescribeDcdnL2Ips', - 'description' => '> * To use this operation, [submit a ticket](https://workorder-intl.console.aliyun.com/?spm=5176.2020520001.aliyun_topbar.18.dbd44bd3e4f845#/ticket/createIndex).'."\n" - .'> * You can call this operation up to 100 times per second per account.', - 'parameters' => [], + 'createdAt' => '2024-03-21T09:45:00.000Z', + 'description' => '', ], - ], - 'endpoints' => [ [ - 'regionId' => 'ap-northeast-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'PutDcdnKvNamespace'], + ], + 'createdAt' => '2024-02-19T06:33:07.000Z', + 'description' => '', ], [ - 'regionId' => 'ap-northeast-2-pop', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddDcdnDomain'], + ], + 'createdAt' => '2023-12-13T05:59:56.000Z', + 'description' => '', ], [ - 'regionId' => 'ap-south-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddDcdnDomain'], + ], + 'createdAt' => '2023-12-12T02:22:58.000Z', + 'description' => '', ], [ - 'regionId' => 'ap-southeast-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'SetDcdnDomainSSLCertificate'], + ], + 'createdAt' => '2023-12-06T03:05:35.000Z', + 'description' => '', ], [ - 'regionId' => 'ap-southeast-2', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeDcdnWafFilterInfo'], + ], + 'createdAt' => '2023-11-21T02:14:11.000Z', + 'description' => '', ], [ - 'regionId' => 'ap-southeast-3', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'RefreshDcdnObjectCaches'], + ], + 'createdAt' => '2023-10-17T08:31:49.000Z', + 'description' => '', ], [ - 'regionId' => 'ap-southeast-5', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DescribeDcdnUserDomainsByFunc'], + ], + 'createdAt' => '2023-10-16T07:45:46.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-beijing', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'BatchSetDcdnDomainConfigs'], + ], + 'createdAt' => '2023-10-10T02:14:13.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-beijing-finance-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeDcdnDdosSpecInfo'], + ], + 'createdAt' => '2023-09-14T01:39:47.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-beijing-finance-pop', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'SetDcdnDomainSSLCertificate'], + ], + 'createdAt' => '2023-09-04T01:41:53.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-beijing-gov-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed, Response parameters changed', 'api' => 'DescribeDcdnIpaDomainCidr'], + ], + 'createdAt' => '2023-08-30T06:54:21.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-beijing-nu16-b01', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'BatchCreateDcdnWafRules'], + ['description' => 'Error codes changed', 'api' => 'BatchDeleteDcdnWafRules'], + ['description' => 'Error codes changed', 'api' => 'BatchModifyDcdnWafRules'], + ['description' => 'Error codes changed', 'api' => 'BatchSetDcdnWafDomainConfigs'], + ['description' => 'Error codes changed', 'api' => 'CreateDcdnWafGroup'], + ['description' => 'Error codes changed', 'api' => 'CreateDcdnWafPolicy'], + ['description' => 'Error codes changed', 'api' => 'DeleteDcdnWafGroup'], + ['description' => 'Error codes changed', 'api' => 'DeleteDcdnWafPolicy'], + ['description' => 'Error codes changed', 'api' => 'ModifyDcdnWafGroup'], + ['description' => 'Error codes changed', 'api' => 'ModifyDcdnWafPolicy'], + ], + 'createdAt' => '2023-08-29T10:08:48.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-chengdu', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed, Request parameters changed', 'api' => 'AddDcdnDomain'], + ['description' => 'Response parameters changed', 'api' => 'DescribeDcdnDomainDetail'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DescribeDcdnUserDomains'], + ], + 'createdAt' => '2023-08-29T08:43:28.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-edge-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DescribeDcdnDomainByCertificate'], + ], + 'createdAt' => '2023-08-22T02:07:13.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-fujian', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'BatchSetDcdnDomainConfigs'], + ], + 'createdAt' => '2023-08-17T03:49:42.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-haidian-cm12-c01', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeDcdnUserDomains'], + ], + 'createdAt' => '2023-08-02T02:26:04.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hangzhou', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'BatchSetDcdnDomainConfigs'], + ], + 'createdAt' => '2023-07-26T09:40:15.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hangzhou-bj-b01', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'TagDcdnResources'], + ], + 'createdAt' => '2023-07-25T12:35:30.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hangzhou-finance', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'PreloadDcdnObjectCaches'], + ], + 'createdAt' => '2023-07-25T12:31:32.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hangzhou-internal-prod-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'PutDcdnKv'], + ], + 'createdAt' => '2023-07-20T07:45:01.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hangzhou-internal-test-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeDcdnDomainRealTimeDetailData'], + ], + 'createdAt' => '2023-07-04T08:40:15.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hangzhou-internal-test-2', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnUserBillHistory'], + ], + 'createdAt' => '2023-07-04T06:46:08.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hangzhou-internal-test-3', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'RefreshDcdnObjectCaches'], + ], + 'createdAt' => '2023-07-03T07:39:14.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hangzhou-test-306', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteDcdnDomain'], + ], + 'createdAt' => '2023-06-21T02:53:36.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hongkong', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'BatchSetDcdnDomainConfigs'], + ], + 'createdAt' => '2023-06-13T04:56:08.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hongkong-finance-pop', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'BatchSetDcdnDomainConfigs'], + ], + 'createdAt' => '2023-06-13T02:28:30.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-huhehaote', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DeleteDcdnSpecificStagingConfig'], + ], + 'createdAt' => '2023-06-08T02:49:46.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-north-2-gov-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'SetDcdnDomainStagingConfig'], + ], + 'createdAt' => '2023-05-25T03:09:33.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-qingdao', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'BatchSetDcdnDomainConfigs'], + ], + 'createdAt' => '2023-05-23T03:11:58.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-qingdao-nebula', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateDcdnSubTask'], + ['description' => 'Request parameters changed', 'api' => 'UpdateDcdnSubTask'], + ], + 'createdAt' => '2023-05-18T11:11:23.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shanghai', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeDcdnDomainBpsDataByLayer'], + ], + 'createdAt' => '2023-04-13T06:02:15.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shanghai-et15-b01', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DescribeDcdnRefreshTasks'], + ], + 'createdAt' => '2023-03-28T06:08:13.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shanghai-et2-b01', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeDcdnUserDomainsByFunc'], + ], + 'createdAt' => '2023-03-24T08:25:35.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shanghai-finance-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeDcdnUserTags'], + ], + 'createdAt' => '2023-03-24T08:25:27.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shanghai-inner', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'ModifyDcdnWafRule'], + ], + 'createdAt' => '2023-03-24T08:23:23.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shanghai-internal-test-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'BatchSetDcdnDomainConfigs'], + ], + 'createdAt' => '2023-03-24T08:22:25.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shenzhen', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'VerifyDcdnDomainOwner'], + ], + 'createdAt' => '2023-03-24T08:21:59.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shenzhen-finance-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'SetDcdnDomainCertificate'], + ], + 'createdAt' => '2023-03-24T08:20:59.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shenzhen-inner', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeDcdnRefreshQuota'], + ], + 'createdAt' => '2023-03-24T08:20:10.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shenzhen-st4-d01', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DescribeDcdnRefreshTasks'], + ], + 'createdAt' => '2023-03-24T08:20:00.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shenzhen-su18-b01', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'PreloadDcdnObjectCaches'], + ], + 'createdAt' => '2023-01-11T07:51:27.000Z', + 'description' => 'Headers', ], [ - 'regionId' => 'cn-wuhan', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'AddDcdnDomain'], + ['description' => 'Response parameters changed', 'api' => 'TagDcdnResources'], + ], + 'createdAt' => '2023-01-04T01:55:39.000Z', + 'description' => 'tag', ], [ - 'regionId' => 'cn-yushanfang', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeDcdnWafLogs'], + ], + 'createdAt' => '2023-01-03T08:50:19.000Z', + 'description' => '修改DescribeDcdnWafLogs 后端服务地址', ], [ - 'regionId' => 'cn-zhangbei-na61-b01', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnDomainUsageData'], + ], + 'createdAt' => '2022-12-26T06:50:31.000Z', + 'description' => 'amp', ], [ - 'regionId' => 'cn-zhangjiakou', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DescribeDcdnDomainStagingConfig'], + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnVerifyContent'], + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnWafDomains'], + ], + 'createdAt' => '2022-12-14T06:44:42.000Z', + 'description' => 'amp', ], [ - 'regionId' => 'cn-zhangjiakou-na62-a01', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnWafPolicies'], + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnWafUsageData'], + ], + 'createdAt' => '2022-12-13T07:17:33.000Z', + 'description' => 'amp', ], [ - 'regionId' => 'cn-zhengzhou-nebula-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnStagingIp'], + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnWafSpecInfo'], + ['description' => 'Error codes changed', 'api' => 'ListDcdnRealTimeDeliveryProject'], + ], + 'createdAt' => '2022-12-08T06:51:06.000Z', + 'description' => 'amp', ], [ - 'regionId' => 'eu-central-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnAclFields'], + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnWafFilterInfo'], + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnWafGeoInfo'], + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnWafRules'], + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnWafScenes'], + ], + 'createdAt' => '2022-12-08T06:12:36.000Z', + 'description' => 'amp', ], [ - 'regionId' => 'eu-west-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnUserSecDropByMinute'], + ], + 'createdAt' => '2022-12-07T03:35:00.000Z', + 'description' => 'amp', ], [ - 'regionId' => 'eu-west-1-oxs', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddDcdnDomain'], + ['description' => 'Error codes changed', 'api' => 'BatchSetDcdnDomainConfigs'], + ], + 'createdAt' => '2022-11-24T06:48:47.000Z', + 'description' => '增加错误码映射', ], [ - 'regionId' => 'me-east-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DescribeDcdnDomainConfigs'], + ], + 'createdAt' => '2022-11-16T03:02:47.000Z', + 'description' => 'amp发布', ], [ - 'regionId' => 'rus-west-1-pop', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DescribeDcdnIpInfo'], + ], + 'createdAt' => '2022-11-16T02:40:30.000Z', + 'description' => 'amp', ], [ - 'regionId' => 'us-east-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'DescribeDcdnDomainConfigs'], + ], + 'createdAt' => '2022-11-15T06:02:21.000Z', + 'description' => 'amp', ], [ - 'regionId' => 'us-west-1', - 'endpoint' => 'dcdn.aliyuncs.com', + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnDomainDetail'], + ], + 'createdAt' => '2022-10-27T07:43:12.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'BatchAddDcdnDomain'], + ], + 'createdAt' => '2022-10-27T07:31:42.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DescribeDcdnDomainConfigs'], + ], + 'createdAt' => '2022-10-27T06:31:25.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnWafService'], + ], + 'createdAt' => '2022-10-27T06:16:27.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddDcdnDomain'], + ], + 'createdAt' => '2022-10-27T06:04:34.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnService'], + ], + 'createdAt' => '2022-10-27T05:52:48.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeUserDcdnStatus'], + ], + 'createdAt' => '2022-10-27T03:18:15.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnCertificateList'], + ], + 'createdAt' => '2022-10-27T03:11:09.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnRefreshQuota'], + ], + 'createdAt' => '2022-10-27T03:08:07.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnSMCertificateList'], + ], + 'createdAt' => '2022-10-27T03:06:51.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeUserDcdnIpaStatus'], + ], + 'createdAt' => '2022-10-27T03:01:19.000Z', + 'description' => 'amp', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnCertificateDetail'], + ], + 'createdAt' => '2022-10-27T02:44:18.000Z', + 'description' => 'amp发布', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnIpaDomainDetail'], + ], + 'createdAt' => '2022-10-27T02:42:19.000Z', + 'description' => 'amp发布', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeUserErStatus'], + ], + 'createdAt' => '2022-10-27T02:28:28.000Z', + 'description' => 'amp发布', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeUserLogserviceStatus'], + ], + 'createdAt' => '2022-10-27T02:23:04.000Z', + 'description' => 'amp迁移', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'StopDcdnDomain'], + ], + 'createdAt' => '2022-10-27T01:22:59.000Z', + 'description' => 'amp迁移', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'AddDcdnIpaDomain'], + ], + 'createdAt' => '2022-10-26T21:59:49.000Z', + 'description' => 'amp迁移', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnRegionAndIsp'], + ], + 'createdAt' => '2022-10-13T02:33:45.000Z', + 'description' => 'amp迁移', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnUserQuota'], + ], + 'createdAt' => '2022-10-13T02:30:53.000Z', + 'description' => 'amp发布', + ], + [ + 'apis' => [ + ['description' => 'Error codes changed', 'api' => 'DescribeDcdnsecService'], + ], + 'createdAt' => '2022-10-13T02:27:20.000Z', + 'description' => '迁移amp', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI offline', 'api' => 'BatchModifyDcdnWafRules'], + ], + 'createdAt' => '2022-09-27T08:43:08.000Z', + 'description' => 'DCDN WAF 三期,支持bot防护场景', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI offline', 'api' => 'DescribeEncryptRoutineUid'], + ], + 'createdAt' => '2022-09-09T06:07:28.000Z', + 'description' => '获取aliuid的加密信息', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI offline', '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' => 'Edge Security Acceleration', + 'ramCodes' => ['dcdn'], + 'ramLevel' => 'RESOURCE', + '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' => 'All Resource', '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' => '', + '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' => '', + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'VerifyDcdnDomainOwner', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:VerifyDcdnDomainOwner', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'BatchPutDcdnKvWithHighCapacity', + 'description' => '', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:BatchPutDcdnKvWithHighCapacity', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainRealTimeHttpCodeData', + 'description' => '', + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafGroup', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'UpdateDcdnIpaDomain', + 'description' => '', + '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' => '', + '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' => '', + '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' => '', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:BatchDeleteDcdnKvWithHighCapacity', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'BatchModifyDcdnWafRules', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:BatchModifyDcdnWafRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafGeoInfo', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafGeoInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnIpInfo', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnIpInfo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnL2Ips', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnL2Ips', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'CreateSlrAndSlsProject', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:CreateSlrAndSlsProject', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteDcdnIpaSpecificConfig', + 'description' => '', + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnBgpTrafficData', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnBgpTrafficData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeRoutineRelatedDomains', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeRoutineRelatedDomains', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnUserResourcePackage', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserResourcePackage', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'CheckDcdnProjectExist', + 'description' => '', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:CheckDcdnProjectExist', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnIpaUserDomains', + 'description' => '', + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafPolicy', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainMultiUsageData', + 'description' => '', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainMultiUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteDcdnWafGroup', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnWafGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnIpaDomainCidr', + 'description' => '', + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnRealTimeDeliveryField', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnRealTimeDeliveryField', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'PutDcdnKv', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:PutDcdnKv', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeRDDomainConfig', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeRDDomainConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'PreloadDcdnObjectCaches', + 'description' => '', + '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' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafDomains', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDdosService', + 'description' => '', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDdosService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnKvNamespace', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnKvNamespace', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnStagingIp', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnStagingIp', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeKvUsageData', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeKvUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'BatchPutDcdnKv', + 'description' => '', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:BatchPutDcdnKv', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainRealTimeSrcHttpCodeData', + 'description' => '', + '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' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:SetDcdnFullDomainsBlockIP', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainHttpCodeData', + 'description' => '', + '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' => '', + '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' => '', + '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' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSecSpecInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnIpaDomainDetail', + 'description' => '', + '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' => 'All Resource', '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' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeRoutineSpec', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'BatchDeleteDcdnKv', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:BatchDeleteDcdnKv', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'UpdateDcdnUserRealTimeDeliveryField', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UpdateDcdnUserRealTimeDeliveryField', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainByCertificate', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainByCertificate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnUserSecDrop', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserSecDrop', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'CreateRoutine', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:CreateRoutine', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeRoutineCodeRevision', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeRoutineCodeRevision', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => '', + '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' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeUserLogserviceStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeEncryptRoutineUid', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeEncryptRoutineUid', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteDcdnKvNamespace', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnKvNamespace', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainProperty', + 'description' => '', + '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' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnErUsageData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => '', + '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' => '', + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteDcdnIpaDomain', + 'description' => '', + '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' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeRoutine', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'ModifyDcdnWafPolicy', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:ModifyDcdnWafPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnUserRealTimeDeliveryField', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserRealTimeDeliveryField', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainWebsocketTrafficData', + 'description' => '', + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnBgpBpsData', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnBgpBpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeKvRealTimeQpsData', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeKvRealTimeQpsData', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'SetDcdnDomainCSRCertificate', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:SetDcdnDomainCSRCertificate', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnUserVipsByDomain', + 'description' => '', + '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' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:PutDcdnKvWithHighCapacity', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnKvAccountStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnsecService', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnsecService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetDcdnKvStatus', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:GetDcdnKvStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnVerifyContent', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnVerifyContent', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeHighlightInfo', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeHighlightInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => '', + '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' => 'All Resource', '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnCertificateDetail', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnCertificateDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafService', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => '', + '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' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UploadRoutineCode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetDcdnKv', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:GetDcdnKv', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'SetDcdnUserConfig', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:SetDcdnUserConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'AddDcdnIpaDomain', + 'description' => '', + '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' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeUserDcdnIpaStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnRegionAndIsp', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnRegionAndIsp', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnSubList', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSubList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => '', + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafPolicyValidDomains', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafPolicyValidDomains', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainsBySource', + 'description' => '', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDomainsBySource', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnService', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'BatchSetDcdnIpaDomainConfigs', + 'description' => '', + '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnReportList', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnReportList', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnSLSRealtimeLogDelivery', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSLSRealtimeLogDelivery', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnIpaDomainConfigs', + 'description' => '', + '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' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeUserDcdnStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => 'All Resource', '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' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:CreateDcdnWafGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'OpenDcdnService', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:OpenDcdnService', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeRoutineCanaryEnvs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnFullDomainsBlockIPConfig', + 'description' => '', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnFullDomainsBlockIPConfig', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeRoutineUserInfo', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeRoutineUserInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteDcdnSubTask', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnSubTask', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnAclFields', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnAclFields', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteDcdnWafPolicy', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnWafPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetDcdnKvDetail', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:GetDcdnKvDetail', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnSLSRealTimeLogType', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnSLSRealTimeLogType', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'CreateDcdnCertificateSigningRequest', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:CreateDcdnCertificateSigningRequest', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafSpecInfo', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafSpecInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:SetRoutineSubdomain', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafBotAppKey', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafBotAppKey', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteRoutineCodeRevision', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:DeleteRoutineCodeRevision', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'ModifyDcdnWafRule', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:ModifyDcdnWafRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainIpaConnData', + 'description' => '', + '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' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:PublishRoutineCodeRevision', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'EditRoutineConf', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:EditRoutineConf', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnL2Vips', + 'description' => '', + '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' => '', + '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' => 'All Resource', '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' => 'All Resource', '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'CreateDcdnWafPolicy', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'dcdn:CreateDcdnWafPolicy', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'ModifyDcdnWafGroup', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:ModifyDcdnWafGroup', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafGroups', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafGroups', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteRoutineConfEnvs', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:DeleteRoutineConfEnvs', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnDomainWebsocketBpsData', + 'description' => '', + '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' => 'All Resource', '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' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafDefaultRules', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnUserTags', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnUserTags', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:CommitStagingRoutineCode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnFullDomainsBlockIPHistory', + 'description' => '', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnFullDomainsBlockIPHistory', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnDdosSpecInfo', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'PutDcdnKvNamespace', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:PutDcdnKvNamespace', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnOriginSiteHealthStatus', + 'description' => '', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnOriginSiteHealthStatus', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'UploadStagingRoutineCode', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'dcdn:UploadStagingRoutineCode', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'dcdn:DeleteDcdnKv', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnRefreshTaskById', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnRefreshTaskById', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'ListDcdnKv', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:ListDcdnKv', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => '', + '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' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnKvAccount', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeUserErStatus', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeUserErStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DescribeDcdnWafPolicies', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnWafPolicies', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'dcdn:DescribeDcdnIpaService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'DCDN', 'resourceType' => 'All Resource', '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}'], ], ], ]; |
