summaryrefslogtreecommitdiff
path: root/data/en_us/dcdn/2018-01-15/api-docs.php
diff options
context:
space:
mode:
authorZhineng Li <[email protected]>2026-02-13 10:54:11 +0800
committerZhineng Li <[email protected]>2026-02-13 10:54:11 +0800
commit7347bac4ab7e136157fc94777e6cf87ef9e08599 (patch)
tree0dec367dac6e152161a6f7cc0dba6ebbef1f34a2 /data/en_us/dcdn/2018-01-15/api-docs.php
downloadacs-metadata-full-main.tar.gz
acs-metadata-full-main.zip
Diffstat (limited to 'data/en_us/dcdn/2018-01-15/api-docs.php')
-rw-r--r--data/en_us/dcdn/2018-01-15/api-docs.php34224
1 files changed, 34224 insertions, 0 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
new file mode 100644
index 0000000..eb4cef4
--- /dev/null
+++ b/data/en_us/dcdn/2018-01-15/api-docs.php
@@ -0,0 +1,34224 @@
+<?php return [
+ 'version' => '1.0',
+ 'info' => [
+ 'style' => 'RPC',
+ 'product' => 'dcdn',
+ 'version' => '2018-01-15',
+ ],
+ 'directories' => [
+ [
+ 'id' => 392057,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'OpenDcdnService',
+ 'DescribeUserDcdnStatus',
+ 'DescribeDcdnService',
+ ],
+ ],
+ [
+ 'id' => 392061,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ [
+ 'id' => 392062,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'AddDcdnDomain',
+ 'BatchAddDcdnDomain',
+ 'DeleteDcdnDomain',
+ 'DescribeDcdnDeletedDomains',
+ ],
+ ],
+ [
+ 'id' => 392067,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'VerifyDcdnDomainOwner',
+ 'DescribeDcdnVerifyContent',
+ ],
+ ],
+ [
+ 'id' => 392070,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'StartDcdnDomain',
+ 'BatchStartDcdnDomain',
+ 'StopDcdnDomain',
+ 'BatchStopDcdnDomain',
+ ],
+ ],
+ [
+ 'id' => 392075,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'DescribeDcdnUserDomains',
+ 'DescribeDcdnDomainDetail',
+ 'DescribeDcdnUserDomainsByFunc',
+ 'DescribeDcdnDomainsBySource',
+ 'UpdateDcdnDomain',
+ 'DescribeDcdnDomainCname',
+ 'ModifyDCdnDomainSchdmByProperty',
+ 'SetDcdnUserConfig',
+ 'BatchSetDcdnDomainConfigs',
+ 'DescribeDcdnDomainConfigs',
+ 'DeleteDcdnSpecificConfig',
+ 'BatchDeleteDcdnDomainConfigs',
+ 'DescribeRDDomainConfig',
+ ],
+ ],
+ ],
+ ],
+ [
+ 'id' => 392089,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'RefreshDcdnObjectCaches',
+ 'PreloadDcdnObjectCaches',
+ 'DescribeDcdnRefreshQuota',
+ 'DescribeDcdnRefreshTasks',
+ 'DescribeDcdnUserQuota',
+ 'DescribeDcdnRefreshTaskById',
+ 'RefreshDcdnObjectCacheByCacheTag',
+ 'RefreshErObjectCachesByCacheTag',
+ ],
+ ],
+ [
+ 'id' => 392098,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ [
+ 'id' => 392099,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ [
+ 'id' => 392100,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'DescribeDcdnDomainHttpCodeData',
+ 'DescribeDcdnDomainHttpCodeDataByLayer',
+ 'DescribeDcdnDomainRegionData',
+ 'DescribeDcdnRegionAndIsp',
+ 'DescribeDcdnDomainIspData',
+ 'DescribeDcdnDomainHitRateData',
+ 'DescribeDcdnDomainQpsData',
+ 'DescribeDcdnDomainQpsDataByLayer',
+ 'DescribeDcdnDomainBpsData',
+ 'DescribeDcdnDomainBpsDataByLayer',
+ 'DescribeDcdnDomainTrafficData',
+ ],
+ ],
+ [
+ 'id' => 392112,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'DescribeDcdnDomainOriginBpsData',
+ 'DescribeDcdnDomainOriginTrafficData',
+ ],
+ ],
+ [
+ 'id' => 392115,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'DescribeDcdnDomainWebsocketHttpCodeData',
+ 'DescribeDcdnDomainWebsocketBpsData',
+ 'DescribeDcdnDomainWebsocketTrafficData',
+ ],
+ ],
+ ],
+ ],
+ [
+ 'id' => 392119,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ [
+ 'id' => 392120,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'DescribeDcdnDomainRealTimeQpsData',
+ 'DescribeDcdnDomainRealTimeTrafficData',
+ 'DescribeDcdnDomainRealTimeBpsData',
+ 'DescribeDcdnDomainRealTimeByteHitRateData',
+ 'DescribeDcdnDomainRealTimeReqHitRateData',
+ 'DescribeDcdnDomainRealTimeHttpCodeData',
+ 'DescribeDcdnDomainRealTimeDetailData',
+ ],
+ ],
+ [
+ 'id' => 392128,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'DescribeDcdnDomainRealTimeSrcBpsData',
+ 'DescribeDcdnDomainRealTimeSrcTrafficData',
+ 'DescribeDcdnDomainRealTimeSrcHttpCodeData',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ [
+ 'id' => 392132,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ [
+ 'id' => 392133,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateDcdnSubTask',
+ 'DescribeDcdnSubList',
+ 'DescribeDcdnReport',
+ 'DescribeDcdnReportList',
+ 'UpdateDcdnSubTask',
+ 'DeleteDcdnSubTask',
+ 'CreateDcdnDeliverTask',
+ 'DescribeDcdnDeliverList',
+ 'UpdateDcdnDeliverTask',
+ 'DeleteDcdnDeliverTask',
+ ],
+ ],
+ [
+ 'id' => 392144,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ [
+ 'id' => 392145,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'DescribeDcdnDomainLog',
+ 'DescribeDcdnWafLogs',
+ ],
+ ],
+ [
+ 'id' => 392148,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateDcdnSLSRealTimeLogDelivery',
+ 'DescribeDcdnSLSRealtimeLogDelivery',
+ 'UpdateDcdnSLSRealtimeLogDelivery',
+ 'DeleteDcdnRealTimeLogProject',
+ 'UpdateDcdnUserRealTimeDeliveryField',
+ 'DescribeDcdnRealTimeDeliveryField',
+ 'CheckDcdnProjectExist',
+ 'DescribeDcdnSLSRealTimeLogType',
+ 'ListDcdnRealTimeDeliveryProject',
+ 'DescribeUserLogserviceStatus',
+ 'CreateSlrAndSlsProject',
+ 'DescribeDcdnUserRealTimeDeliveryField',
+ ],
+ ],
+ ],
+ ],
+ [
+ 'id' => 392161,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'DescribeDcdnUserBillHistory',
+ 'DescribeDcdnUserBillType',
+ 'DescribeDcdnUserResourcePackage',
+ 'DescribeDcdnDomainUsageData',
+ 'DescribeDcdnBgpBpsData',
+ 'DescribeDcdnBgpTrafficData',
+ 'DescribeDcdnDomainMultiUsageData',
+ 'DescribeDcdnDomainPvData',
+ 'DescribeDcdnDomainTopReferVisit',
+ 'DescribeDcdnDomainTopUrlVisit',
+ 'DescribeDcdnDomainUvData',
+ 'DescribeDcdnTopDomainsByFlow',
+ 'DescribeKvUsageData',
+ ],
+ ],
+ ],
+ ],
+ [
+ 'id' => 392175,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateDcdnCertificateSigningRequest',
+ 'SetDcdnDomainCSRCertificate',
+ 'DescribeDcdnSSLCertificateList',
+ 'SetDcdnDomainSSLCertificate',
+ 'DescribeDcdnHttpsDomainList',
+ 'DescribeDcdnCertificateList',
+ 'DescribeDcdnDomainByCertificate',
+ 'DescribeDcdnCertificateDetail',
+ 'DescribeDcdnDomainCertificateInfo',
+ 'SetDcdnDomainSMCertificate',
+ 'DescribeDcdnSMCertificateDetail',
+ 'DescribeDcdnSMCertificateList',
+ 'DescribeDcdnUserCertificateExpireCount',
+ ],
+ ],
+ [
+ 'id' => 392189,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'TagDcdnResources',
+ 'DescribeDcdnTagResources',
+ 'DescribeDcdnUserTags',
+ 'UntagDcdnResources',
+ ],
+ ],
+ [
+ 'id' => 392194,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'DescribeDcdnIpaDomainConfigs',
+ 'StopDcdnIpaDomain',
+ 'DescribeUserDcdnIpaStatus',
+ 'DescribeDcdnIpaService',
+ 'UpdateDcdnIpaDomain',
+ 'DeleteDcdnIpaDomain',
+ 'StartDcdnIpaDomain',
+ 'AddDcdnIpaDomain',
+ 'BatchSetDcdnIpaDomainConfigs',
+ 'DescribeDcdnIpaUserDomains',
+ 'DescribeDcdnIpaDomainDetail',
+ 'DeleteDcdnIpaSpecificConfig',
+ 'DescribeDcdnDomainProperty',
+ 'DescribeDcdnDomainIpaBpsData',
+ 'DescribeDcdnDomainIpaTrafficData',
+ 'DescribeDcdnDomainIpaConnData',
+ 'DescribeDcdnIpaDomainCidr',
+ ],
+ ],
+ [
+ 'id' => 392212,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ [
+ 'id' => 392213,
+ 'title' => null,
+ '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,
+ 'type' => 'directory',
+ 'children' => [
+ 'SetDcdnDomainStagingConfig',
+ 'DescribeDcdnDomainStagingConfig',
+ 'DeleteDcdnSpecificStagingConfig',
+ 'PublishDcdnStagingConfigToProduction',
+ 'RollbackDcdnStagingConfig',
+ 'DescribeDcdnStagingIp',
+ ],
+ ],
+ [
+ 'id' => 392241,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'BatchDeleteDcdnKvWithHighCapacity',
+ 'DescribeKvRealTimeQpsData',
+ 'PutDcdnKvWithHighCapacity',
+ 'BatchDeleteDcdnKv',
+ 'BatchPutDcdnKvWithHighCapacity',
+ 'GetDcdnKvDetail',
+ 'BatchPutDcdnKv',
+ 'DescribeDcdnKvNamespace',
+ 'PutDcdnKvNamespace',
+ 'DeleteDcdnKvNamespace',
+ 'DescribeDcdnKvAccount',
+ 'DescribeDcdnKvAccountStatus',
+ 'GetDcdnKv',
+ 'ListDcdnKv',
+ 'PutDcdnKv',
+ 'DeleteDcdnKv',
+ 'GetDcdnKvStatus',
+ ],
+ ],
+ ],
+ ],
+ [
+ 'id' => 392259,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ [
+ 'id' => 392260,
+ 'title' => null,
+ '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',
+ ],
+ ],
+ [
+ 'id' => 392279,
+ 'title' => null,
+ 'type' => 'directory',
+ 'children' => [
+ 'DescribeDcdnWafDomain',
+ 'CreateDcdnWafPolicy',
+ 'BatchCreateDcdnWafRules',
+ 'ModifyDcdnWafRule',
+ 'BatchModifyDcdnWafRules',
+ 'BatchSetDcdnWafDomainConfigs',
+ 'ModifyDcdnWafPolicy',
+ 'ModifyDcdnWafPolicyDomains',
+ 'DeleteDcdnUserConfig',
+ 'DeleteDcdnWafPolicy',
+ 'BatchDeleteDcdnWafRules',
+ 'DescribeDcdnWafScenes',
+ 'DescribeDcdnWafDomains',
+ 'DescribeDcdnWafPolicyDomains',
+ 'DescribeDcdnWafPolicies',
+ 'DescribeDcdnWafPolicy',
+ 'DescribeDcdnWafDomainDetail',
+ 'DescribeDcdnWafRules',
+ 'ModifyDcdnWafGroup',
+ 'DescribeDcdnWafRule',
+ 'DescribeDcdnWafPolicyValidDomains',
+ 'DescribeDcdnWafFilterInfo',
+ 'DescribeDcdnWafSpecInfo',
+ 'DescribeDcdnWafService',
+ 'DescribeDcdnWafGeoInfo',
+ 'DescribeDcdnWafUsageData',
+ 'DescribeDcdnWafGroups',
+ 'DescribeDcdnWafGroup',
+ 'CreateDcdnWafGroup',
+ 'DeleteDcdnWafGroup',
+ 'DescribeDcdnWafDefaultRules',
+ ],
+ ],
+ ],
+ ],
+ [
+ 'id' => 392311,
+ 'title' => null,
+ '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111596',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZA9EPX',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'BillType',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'WebsocketBillType',
+ 'in' => 'query',
+ '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',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '97C68796-EB7F-4D41-9D5B-12B909D76503',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'DcdnService.HasOpened',
+ 'errorMessage' => 'Your DCDN service has been activated.',
+ ],
+ [
+ 'errorCode' => 'InvalidComponent',
+ 'errorMessage' => 'The specified value of parameter BillType is not valid.',
+ ],
+ [
+ 'errorCode' => 'NoRealNameAuthentication',
+ 'errorMessage' => 'Real name authentication is needed.',
+ ],
+ [
+ 'errorCode' => 'IncompleteInformation',
+ 'errorMessage' => 'Your information is incomplete. Complete your information before the operation.',
+ ],
+ ],
+ ],
+ '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"
+ ."\n"
+ .'* You can call this operation up to five times per second per user.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeUserDcdnStatus' => [
+ 'summary' => 'Queries whether DCDN is activated and whether your account has overdue payments.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111578',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnTP4C37',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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",
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111546',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZA9EPX',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'WebsocketChangingTime' => [
+ 'description' => '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'LockReason' => [
+ 'description' => 'The lock status of DCDN.'."\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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111432',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZ2GXIC',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'DomainName',
+ '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',
+ ],
+ ],
+ [
+ '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-acfmyuji4b6r4**',
+ ],
+ ],
+ [
+ '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}]',
+ ],
+ ],
+ [
+ 'name' => 'CheckUrl',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The URL that is used for health checks.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'example.com',
+ ],
+ ],
+ [
+ 'name' => 'Scope',
+ 'in' => 'query',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'TopLevelDomain',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The top-level domain.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'yourTopLevelDomain',
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'query',
+ 'style' => 'repeatList',
+ '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',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ 'maxItems' => 21,
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '15C66C7B-671A-4297-9187-2C4477247A74',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ '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.|',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'BatchAddDcdnDomain' => [
+ 'summary' => 'Adds one or more domain names to DCDN at a time.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111435',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZ2GXIC',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ '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' => 'ResourceGroupId',
+ 'in' => 'query',
+ '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',
+ ],
+ ],
+ [
+ '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' => 'www.example.com/test.html',
+ ],
+ ],
+ [
+ 'name' => 'Scope',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'TopLevelDomain',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The top-level domain.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'example.com',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '15C66C7B-671A-4297-9187-2C4477247A74',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZ2GXIC',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'DomainName',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZ2GXIC',
+ ],
+ ],
+ 'parameters' => [
+ [
+ '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,
+ 'maximum' => '100000',
+ 'minimum' => '1',
+ 'example' => '1',
+ 'default' => '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',
+ 'minimum' => '1',
+ 'example' => '5',
+ 'default' => '20',
+ ],
+ ],
+ ],
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'PageData' => [
+ 'description' => 'The information about the accelerated domain name.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'VerifyDcdnDomainOwner' => [
+ 'summary' => 'Verifies the ownership of a domain name.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111626',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZ2GXIC',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'DomainName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The domain name of which you want to verify the ownership. You can specify only one domain name in each call.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '**example**.com',
+ ],
+ ],
+ [
+ 'name' => 'VerifyType',
+ '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',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'DomainOwnerVerifyFail',
+ 'errorMessage' => 'Owner verification of the root domain failed.',
+ ],
+ ],
+ ],
+ '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",
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnVerifyContent' => [
+ 'summary' => 'Queries the ownership verification content of a 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 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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZ2GXIC',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'RecordCheckNotAvailable',
+ 'errorMessage' => '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.',
+ ],
+ ],
+ ],
+ '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",
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'RecordCheckNotAvailable',
+ 'errorMessage' => '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.',
+ ],
+ ],
+ ],
+ '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",
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZ2GXIC',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'DomainName',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZ2GXIC',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'DomainNameOverLimit',
+ 'errorMessage' => 'A maximum of 50 domains is supported for each request.',
+ ],
+ ],
+ ],
+ '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.',
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111558',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnWQK30N',
+ ],
+ ],
+ 'parameters' => [
+ [
+ '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',
+ 'example' => '20',
+ 'default' => '20',
+ ],
+ ],
+ [
+ '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' => 'DomainName',
+ '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,
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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** (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',
+ ],
+ ],
+ [
+ '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: displays domain names.'."\n"
+ .'* false: does not display detailed information.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'ResourceGroupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the resource group.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'rg-acfmv6jutt**',
+ ],
+ ],
+ [
+ 'name' => 'ChangeStartTime',
+ '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+0.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2018-05-10T12:00:00Z',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'query',
+ 'style' => 'repeatList',
+ '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,
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'PageData' => [
+ 'description' => 'The information about the queried domains.'."\n",
+ '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidPageNumber.ValueNotSupported',
+ 'errorMessage' => 'The specified value of PageNumber is not supported.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize.ValueNotSupported',
+ 'errorMessage' => 'The specified value of PageSize is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidDomainStatus.ValueNotSupported',
+ 'errorMessage' => 'The specified value of DomainStatus is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidDomainName.Malformed',
+ 'errorMessage' => 'The specified DomainName is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidDomainSearchType.ValueNotSupported',
+ 'errorMessage' => 'The specified value of DomainSearchType is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidChangeStartTime.Malformed',
+ 'errorMessage' => 'The specified ChangeStartTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidChangeEndTime.Malformed',
+ 'errorMessage' => 'The specified ChangeEndTime is invalid.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ '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 specify only one domain name.'."\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' => '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',
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"09ABE829-6CD3-4FE0-AFEE-556113E29727\\",\\n \\"DomainDetail\\": {\\n \\"GmtCreated\\": \\"2017-11-27T06:51:26Z\\",\\n \\"SSLPub\\": \\"xxx\\",\\n \\"Description\\": \\"京ICP备1703xxxx号\\",\\n \\"SSLProtocol\\": \\"on\\",\\n \\"ResourceGroupId\\": \\"rg-acfmyuji4b6r4**\\",\\n \\"Scope\\": \\"overseas\\",\\n \\"Cname\\": \\"example.aliyundoc.com\\",\\n \\"DomainStatus\\": \\"online\\",\\n \\"GmtModified\\": \\"2017-11-27T06:51:25Z\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"Sources\\": {\\n \\"Source\\": [\\n {\\n \\"Type\\": \\"oss\\",\\n \\"Weight\\": \\"20\\",\\n \\"Enabled\\": \\"online\\",\\n \\"Priority\\": \\"50\\",\\n \\"Port\\": 80,\\n \\"Content\\": \\"example.org\\"\\n }\\n ]\\n },\\n \\"Scene\\": \\"apiscene\\",\\n \\"FunctionType\\": \\"routine\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainDetailResponse>\\n <RequestId>09ABE829-6CD3-4FE0-AFEE-556113E29727</RequestId>\\n <DomainDetail>\\n <GmtCreated>2017-11-27T06:51:26Z</GmtCreated>\\n <SSLPub>xxx</SSLPub>\\n <Description>京ICP备1703xxxx号</Description>\\n <SSLProtocol>on</SSLProtocol>\\n <ResourceGroupId>rg-acfmyuji4b6r4**</ResourceGroupId>\\n <Scope>overseas</Scope>\\n <Cname>example.aliyundoc.com</Cname>\\n <DomainStatus>online</DomainStatus>\\n <GmtModified>2017-11-27T06:51:25Z</GmtModified>\\n <DomainName>example.com</DomainName>\\n <Sources>\\n <Type>oss</Type>\\n <Weight>20</Weight>\\n <Enabled>online</Enabled>\\n <Priority>50</Priority>\\n <Port>80</Port>\\n <Content>example.org</Content>\\n </Sources>\\n </DomainDetail>\\n</DescribeDcdnDomainDetailResponse>","errorExample":""}]',
+ 'title' => 'DescribeDcdnDomainDetail',
+ 'description' => '> You can call this operation up to 30 times per second per account.'."\n",
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZ2GXIC',
+ ],
+ ],
+ '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' => 'FuncFilter',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether the feature that is specified by the FuncId parameter is enabled.'."\n"
+ ."\n"
+ .'* **config**: enabled'."\n"
+ .'* **unconfig**: not enabled'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'config',
+ ],
+ ],
+ [
+ 'name' => 'DomainName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The accelerated domain name whose ICP filing status you want to update.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'example.com',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'ResourceGroupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the resource group.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'rg-acfmyuji4b6r4**',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidPageNumber.ValueNotSupported',
+ 'errorMessage' => 'The specified value of PageNumber is not supported.',
+ ],
+ [
+ 'errorCode' => 'InvalidPageSize.ValueNotSupported',
+ 'errorMessage' => 'The specified value of PageSize is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidDomainStatus.ValueNotSupported',
+ 'errorMessage' => 'The specified value of DomainStatus is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidDomainName.Malformed',
+ 'errorMessage' => 'The specified DomainName is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidDomainSearchType.ValueNotSupported',
+ 'errorMessage' => 'The specified value of DomainSearchType is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidChangeStartTime.Malformed',
+ 'errorMessage' => 'The specified ChangeStartTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidChangeEndTime.Malformed',
+ 'errorMessage' => 'The specified ChangeEndTime is invalid.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '196998',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZ2GXIC',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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,
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZ2GXIC',
+ ],
+ ],
+ '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' => '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}]',
+ ],
+ ],
+ [
+ 'name' => 'ResourceGroupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the resource group.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'rg-xxxxx',
+ ],
+ ],
+ [
+ 'name' => 'TopLevelDomain',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The top-level domain.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'yourTopLevelDomain ',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingDomainName',
+ 'errorMessage' => 'The domainName parameter is required.',
+ ],
+ [
+ 'errorCode' => 'InvalidDomainName.Malformed',
+ 'errorMessage' => 'The specified DomainName is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidSource.Content.Malformed',
+ 'errorMessage' => 'The specified Source Content is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidTypeContent.Mismatch',
+ 'errorMessage' => 'The specified source type does not match the specified source content.',
+ ],
+ [
+ 'errorCode' => 'MissingSource.Content',
+ 'errorMessage' => 'The Source Content must be specified.',
+ ],
+ [
+ 'errorCode' => 'MissingSource.Type',
+ 'errorMessage' => 'The Source Type must be specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidSource.Type.Malformed',
+ 'errorMessage' => 'The specified Source Type is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidSource.Priority.Malformed',
+ 'errorMessage' => 'The specified Source Priority is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidResourceGroupId.Malformed',
+ 'errorMessage' => 'The specified ResourceGroupId is invalid.',
+ ],
+ [
+ 'errorCode' => 'EntityNotExists.ResourceGroup',
+ 'errorMessage' => 'The resource group does not exist.',
+ ],
+ [
+ 'errorCode' => 'EntityNotExist.ResourceGroup',
+ 'errorMessage' => 'The resource group does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidStatus.ResourceGroup',
+ 'errorMessage' => 'The current status of the resource group does not support this operation.',
+ ],
+ [
+ 'errorCode' => 'TopLevelDomain.NotFound',
+ 'errorMessage' => 'The specified TopLevelDomain does not exist.',
+ ],
+ [
+ 'errorCode' => 'TopLevelDomain.Mismatch',
+ 'errorMessage' => 'The specified TopLevelDomain does not match webSiteType.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'DomainInProtectedMode',
+ 'errorMessage' => 'The domain is in protection mode. To request permission, contact Customer Service.',
+ ],
+ ],
+ ],
+ '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**.|',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnDomainCname' => [
+ 'summary' => 'Checks whether CNAME records are configured for one or more accelerated domain names.',
+ '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. Separate multiple domain names with commas (,).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'example.com,example.org',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"15C66C7B-671A-4297-9187-2C4477247A74\\",\\n \\"CnameDatas\\": {\\n \\"Data\\": [\\n {\\n \\"Status\\": 0,\\n \\"Domain\\": \\".example.com\\",\\n \\"Cname\\": \\"a.com.w.alikunlun.net\\",\\n \\"Passed\\": \\"true\\",\\n \\"ErrMsg\\": \\"timeout\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainCnameResponse>\\n<RequestId>D27C81EF-90CA-4897-94AC-B73ADBFE4781</RequestId>\\n<CnameDatas>\\n <Data>\\n <Cname>*.com</Cname>\\n <Status>0</Status>\\n <Domain>.example.com</Domain>\\n </Data>\\n</CnameDatas>\\n</DescribeDcdnDomainCnameResponse>\\n","errorExample":""}]',
+ 'title' => 'DescribeDcdnDomainCname',
+ 'description' => '> You can call this operation up to 80 times per second per account.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'ModifyDCdnDomainSchdmByProperty' => [
+ 'summary' => 'Changes the acceleration region.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111594',
+ '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"}',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '15C66C7B-671A-4297-9187-2C4477247A74',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Schedule.NotFound',
+ 'errorMessage' => '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.',
+ ],
+ ],
+ ],
+ '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",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'SetDcdnUserConfig' => [
+ 'summary' => 'Configures features for a user.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111610',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZ2GXIC',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'FunctionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the feature.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'example' => '6',
+ ],
+ ],
+ [
+ 'name' => 'Configs',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The configuration parameters of the feature.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '\\"argId\\":12,\\"argValue\\":\\"on\\"',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'F8AA0364-0FDB-4AD5-AC74-D69FAB8924ED',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ '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. |',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'BatchSetDcdnDomainConfigs' => [
+ 'summary' => 'Configures features for one or more domain names.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn2JMMUY',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'DomainNames',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The accelerated domain names. Specify multiple accelerated domain names with commas (,).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'example.com,example.org',
+ ],
+ ],
+ [
+ 'name' => 'Functions',
+ '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"}]',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ '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",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'example.com',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'ConfigId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the configuration.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '5003576',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s.ValueNotSupported',
+ 'errorMessage' => 'FunctionName [%s] is not supported.',
+ ],
+ ],
+ ],
+ '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.|',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DeleteDcdnSpecificConfig' => [
+ 'summary' => 'Deletes specified configurations of an accelerated domain name.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s.ValueNotSupported',
+ 'errorMessage' => 'FunctionName [%s] is not supported.',
+ ],
+ [
+ 'errorCode' => 'InvalidDomain.BelongToConfigGroup',
+ 'errorMessage' => 'The domain is bound to a configuration group. Modify the domain in the configuration group.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<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",
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'BatchDeleteDcdnDomainConfigs' => [
+ 'summary' => 'Deletes configurations of multiple accelerated domain names at a time.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn2JMMUY',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'DomainNames',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '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',
+ ],
+ ],
+ [
+ 'name' => 'FunctionNames',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s.ValueNotSupported',
+ 'errorMessage' => 'FunctionName [%s] is not supported.',
+ ],
+ [
+ 'errorCode' => 'DeleteFunctionFailed',
+ 'errorMessage' => 'Batch delete functions failed.',
+ ],
+ ],
+ ],
+ '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.',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeRDDomainConfig' => [
+ 'summary' => 'Queries the feature configurations of an accelerated domain name in the resource directory.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'DomainName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'A short description of struct',
+ 'description' => 'The accelerated domain name.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'example.com',
+ ],
+ ],
+ [
+ 'name' => 'FunctionName',
+ 'in' => 'query',
+ 'allowEmptyValue' => false,
+ 'schema' => [
+ 'title' => '幂等参数',
+ 'description' => 'The name of the feature. Default value: source_group.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'source_group',
+ 'default' => 'source_group',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnBCJPGN',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ObjectPath',
+ 'in' => 'query',
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 429 => [
+ [
+ 'errorCode' => 'TooManyRequests',
+ 'errorMessage' => 'Too many requests, please try again later',
+ ],
+ ],
+ ],
+ '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",
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111597',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn4TTNAL',
+ ],
+ ],
+ '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' => 'Area',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The acceleration region in which you want to prefetch content. If you do not specify a region, the value overseas is used.'."\n"
+ ."\n"
+ .'* **domestic**: Chinese mainland'."\n"
+ .'* **overseas**: outside the Chinese mainland'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'domestic',
+ 'enum' => [
+ 'domestic',
+ 'overseas',
+ ],
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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"
+ .'}',
+ ],
+ ],
+ [
+ 'name' => 'QueryHashkey',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'boolean',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ '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",
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111537',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"BlockQuota\\": \\"100\\",\\n \\"RegexRemain\\": \\"100\\",\\n \\"BlockRemain\\": \\"100\\",\\n \\"PreloadRemain\\": \\"500\\",\\n \\"RequestId\\": \\"42E0554B-80F4-4921-AED6-ACFB22CAAAD0\\",\\n \\"DirRemain\\": \\"100\\",\\n \\"UrlRemain\\": \\"2000\\",\\n \\"DirQuota\\": \\"100\\",\\n \\"UrlQuota\\": \\"2000\\",\\n \\"PreloadQuota\\": \\"500\\",\\n \\"RegexQuota\\": \\"100\\",\\n \\"IgnoreParamsQuota\\": \\"100\\",\\n \\"IgnoreParamsRemain\\": \\"10\\"\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnRefreshQuotaResponse>\\n <BlockQuota>100</BlockQuota>\\n <RegexRemain>100</RegexRemain>\\n <BlockRemain>100</BlockRemain>\\n <PreloadRemain>500</PreloadRemain>\\n <RequestId>42E0554B-80F4-4921-AED6-ACFB22CAAAD0</RequestId>\\n <DirRemain>100</DirRemain>\\n <UrlRemain>2000</UrlRemain>\\n <DirQuota>100</DirQuota>\\n <UrlQuota>2000</UrlQuota>\\n <PreloadQuota>500</PreloadQuota>\\n <RegexQuota>100</RegexQuota>\\n <IgnoreParamsQuota>100</IgnoreParamsQuota>\\n <IgnoreParamsRemain>10</IgnoreParamsRemain>\\n</DescribeDcdnRefreshQuotaResponse>","errorExample":""}]',
+ 'title' => '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",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnRefreshTasks' => [
+ 'summary' => 'Queries the refresh or prefetch tasks. You can query the tasks in the last three days.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111539',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnBCJPGN',
+ 'FEATUREdcdnRELTJV',
+ 'FEATUREdcdnEWYS3A',
+ 'FEATUREdcdn4TTNAL',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'TaskId',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'ObjectPath',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The path of the object. The path is used as a condition for exact matching.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'http://example.com/examplefile.txt',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'ObjectType',
+ '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',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'DomainName',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'Status',
+ 'in' => 'query',
+ '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',
+ ],
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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-01-01T12:12:20Z',
+ ],
+ ],
+ [
+ '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-01-01T12:13:20Z',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Task' => [
+ 'description' => 'Details about tasks.'."\n",
+ '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidTaskId.Malformed',
+ 'errorMessage' => 'The specified TaskId is invalid.',
+ ],
+ [
+ 'errorCode' => 'MissingParameter.ObjectType',
+ 'errorMessage' => 'The ObjectType parameter is required if DomainName or ObjectType is specified.',
+ ],
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'DomainNameOverLimit',
+ 'errorMessage' => 'A maximum of 500 domains are supported for each request.',
+ ],
+ [
+ 'errorCode' => 'InvalidTime',
+ 'errorMessage' => 'The query time cannot exceed the last 3 days.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidObjectType.ValueNotSupported',
+ 'errorMessage' => 'The specified ObjectType is not supported.',
+ ],
+ [
+ 'errorCode' => 'InvalidStatus.ValueNotSupported',
+ 'errorMessage' => 'The specified Status is not supported.',
+ ],
+ ],
+ 429 => [
+ [
+ 'errorCode' => 'TooManyRequests',
+ 'errorMessage' => 'The server is busy. Please try again later.',
+ ],
+ ],
+ ],
+ '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.',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnUserQuota' => [
+ 'summary' => 'Queries the resource quotas and the used resources.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111560',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZA9EPX',
+ ],
+ '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ '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",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnRefreshTaskById' => [
+ 'summary' => 'Queries the status of purge or prefetch tasks by task ID.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111538',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnBCJPGN',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'TaskId',
+ '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**',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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**',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 429 => [
+ [
+ 'errorCode' => 'TooManyRequests',
+ 'errorMessage' => 'The server is busy. Please try again later.',
+ ],
+ ],
+ ],
+ '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' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'RefreshDcdnObjectCacheByCacheTag' => [
+ 'summary' => 'Purges the cache based on cache tags that you configured.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '216660',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn4QVGXU',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'DomainName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'example.com ',
+ ],
+ ],
+ [
+ 'name' => 'CacheTag',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'tag1,tag2',
+ 'maxLength' => 16384,
+ ],
+ ],
+ [
+ 'name' => 'Force',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 429 => [
+ [
+ 'errorCode' => 'TooManyRequests',
+ 'errorMessage' => 'Too many requests, please try again later',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '193439',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn75UYDO',
+ ],
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Domain',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'example.com',
+ ],
+ ],
+ [
+ 'name' => 'CacheTag',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'tag1,tag2',
+ ],
+ ],
+ [
+ 'name' => 'MergeDomainName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'a.test.com,b.test.com',
+ ],
+ ],
+ [
+ 'name' => 'Force',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ '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. Separate multiple accelerated domain names with commas (,).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ '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' => '2019-03-01T00: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' => '2019-03-02T00: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 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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DataModule' => [
+ 'description' => 'The proportions of HTTP status codes at each time interval.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'TimeStamp' => [
+ 'description' => 'The timestamp of the data returned.'."\n",
+ 'type' => 'string',
+ 'example' => '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"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"
+ ."\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|',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnDomainHttpCodeDataByLayer' => [
+ 'summary' => 'Queries HTTP status codes by protocol.',
+ '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 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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DataModule' => [
+ 'description' => 'The distribution of HTTP status codes at each time interval.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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 \\"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"
+ ."\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|',
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ '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"
+ ."\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',
+ ],
+ ],
+ [
+ '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' => '2015-12-05T12:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The end of the time range to query. The end time must be later than the start time.'."\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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'RegionProportionData' => [
+ 'description' => 'The proportions of requests that were initiated from each region.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'InvalidDomain.NotFound',
+ 'errorMessage' => 'The specified domain does not exist.',
+ ],
+ ],
+ ],
+ '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",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnRegionAndIsp' => [
+ 'summary' => 'Queries the list of Internet service providers (ISPs) and regions.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111540',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZ2GXIC',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '2387C335-932C-4E1E-862C-1C4363B6DE72',
+ ],
+ 'Regions' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Region' => [
+ 'description' => 'The list of regions.'."\n",
+ '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' => '辽宁省',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'Isps' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Isp' => [
+ 'description' => 'The list of ISPs.',
+ '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' => '联通',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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",
+ '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',
+ ],
+ '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 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',
+ ],
+ ],
+ [
+ 'name' => 'StartTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The beginning of the time range to query. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2019-12-05T12:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The end of the time range to query. Specify the time in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
+ ."\n"
+ .'> The end time must be later than the start time.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2019-12-06T12:00:00Z',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'IspProportionData' => [
+ 'description' => 'The access statistics by ISP.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'InvalidDomain.NotFound',
+ 'errorMessage' => 'The specified domain does not exist.',
+ ],
+ ],
+ ],
+ '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",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnDomainHitRateData' => [
+ 'summary' => 'Queries the byte hit ratios for an 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 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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ '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",
+ '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ '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"
+ ."\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"
+ ."\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",
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnVIK4DM',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ [
+ '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' => '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DataModule' => [
+ 'description' => 'The QPS returned at each time interval.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"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"
+ ."\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|',
+ 'requestParamsDescription' => '> You can call this operation up to 100 times per second per account.'."\n",
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnDomainQpsDataByLayer' => [
+ 'summary' => 'Queries the number of queries per second (QPS) of accelerated domain names by protocol.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnVIK4DM',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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 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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DataModule' => [
+ 'description' => 'The QPS returned at each time interval.'."\n",
+ '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ '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"
+ ."\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|',
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn6V3WP1',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ [
+ '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' => '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 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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ 'BpsDataPerInterval' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DataModule' => [
+ 'description' => 'The bandwidth data returned at each interval.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-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|',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnDomainBpsDataByLayer' => [
+ 'summary' => 'Queries bandwidth data of accelerated domain names.',
+ '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. 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 ',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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.'."\n"
+ ."\n"
+ .'Default value: all.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'all',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DataModule' => [
+ 'description' => 'The bandwidth returned at each time interval.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The StartTime cannot exceed 31 days before the current time.',
+ ],
+ ],
+ ],
+ '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|',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnDomainTrafficData' => [
+ 'summary' => 'Queries the network traffic data of one or more domains.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnVIK4DM',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ [
+ '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' => '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 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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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 returned at each time interval. Unit: bytes.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"TrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"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|',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnDomainOriginBpsData' => [
+ 'summary' => 'Queries back-to-origin bandwidth for one or more accelerated domains.',
+ '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. 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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DataModule' => [
+ 'description' => 'The origin bandwidth data returned at each time interval. Unit: bit/s.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"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"
+ ."\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|',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnDomainOriginTrafficData' => [
+ 'summary' => 'Queries the back-to-origin traffic of one or more accelerated domain names.',
+ '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. 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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'Interval',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DataModule' => [
+ 'description' => 'The amount of back-to-origin traffic returned at each time interval. Unit: bytes.'."\n",
+ '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',
+ ],
+ 'TimeStamp' => [
+ 'description' => 'The timestamp of the data returned.'."\n",
+ 'type' => 'string',
+ 'example' => '2017-12-10T21:00:00Z',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"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 |',
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnVIK4DM',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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' => '2018-03-01T06: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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DataModule' => [
+ 'description' => 'The HTTP status code.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ ],
+ ],
+ '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"
+ ."\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|',
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnVIK4DM',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ [
+ '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' => '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DataModule' => [
+ 'description' => 'The bandwidth data returned at each interval.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"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"
+ ."\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|',
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnVIK4DM',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ [
+ '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"
+ .'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',
+ ],
+ ],
+ [
+ '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 **Operation Description**.',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '300',
+ ],
+ ],
+ [
+ 'name' => 'IspNameEn',
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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 returned at each time interval. Unit: bytes.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"TrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"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|',
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ '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',
+ ],
+ ],
+ [
+ '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' => 'telecom',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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:26: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' => '2018-01-02T11:27:00Z',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '32DC9806-E9F9-4490-BBDC-B3A9E32FCC1D',
+ ],
+ 'Data' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'QpsModel' => [
+ 'description' => 'The information about the backup set.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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 \\"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"
+ ."\n"
+ .'**Time granularity**'."\n"
+ ."\n"
+ .'The time granularity varies with the time range specified by the StartTime and EndTime parameters. The following table describes the time period within which historical data is available and the data delay.'."\n"
+ ."\n"
+ .'|Time granularity|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' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnDomainRealTimeTrafficData' => [
+ 'summary' => 'Queries the traffic monitoring data of an accelerated domain name. Data is collected every minute.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DataModule' => [
+ 'description' => 'The amount of back-to-origin traffic returned at each interval.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"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"
+ ."\n"
+ .'**Time granularity**'."\n"
+ ."\n"
+ .'The time granularity varies with the time range specified by the StartTime and EndTime parameters. The following table describes the time period within which historical data is available and the data delay.'."\n"
+ ."\n"
+ .'|Time granularity|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' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnDomainRealTimeBpsData' => [
+ 'summary' => 'Queries the real-time network bandwidth of a domain name.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'B49E6DDA-F413-422B-B58E-2FA23F286726',
+ ],
+ 'Data' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'BpsModel' => [
+ 'description' => 'The returned data.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Bps' => [
+ 'description' => 'The bandwidth. Unit: bit/s.'."\n",
+ 'type' => 'number',
+ 'format' => 'float',
+ 'example' => '16710625.733333332',
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"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"
+ ."\n"
+ .'**Time granularity**'."\n"
+ ."\n"
+ .'The time granularity varies with the time range specified by the StartTime and EndTime parameters. The following table describes the time period within which historical data is available and the data delay.'."\n"
+ ."\n"
+ .'|Time granularity|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|',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnDomainRealTimeByteHitRateData' => [
+ 'summary' => 'Queries byte hit ratios at a time granularity of 1 minute.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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' => [
+ 'ByteHitRateDataModel' => [
+ 'description' => 'The list of byte hit ratios.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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 \\"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"
+ ."\n"
+ .'**Time granularity**'."\n"
+ ."\n"
+ .'The time granularity varies with the time range specified by the StartTime and EndTime parameters. The following table describes the time period within which historical data is available and the data delay.'."\n"
+ ."\n"
+ .'| Time granularity | 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' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnDomainRealTimeReqHitRateData' => [
+ 'summary' => 'Queries the request hit rates with a time granularity of 1 minute.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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 \\"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|',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnDomainRealTimeHttpCodeData' => [
+ 'summary' => 'Queries the total number and proportions of HTTP status codes returned from one or more accelerated domain names.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ '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',
+ ],
+ ],
+ [
+ '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' => '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ 'RealTimeHttpCodeData' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'UsageData' => [
+ 'description' => 'The proportions of the HTTP status codes.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'TimeStamp' => [
+ 'description' => 'The timestamp of the returned data.'."\n",
+ 'type' => 'string',
+ 'example' => '2017-12-10T20:00:00Z',
+ ],
+ 'Value' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'RealTimeCodeProportionData' => [
+ 'description' => 'The information about the HTTP status code returned.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"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"
+ ."\n"
+ .'**Time granularity**'."\n"
+ ."\n"
+ .'The time granularity varies with the time range specified by the StartTime and EndTime parameters. The following table describes the time period within which historical data is available and the data delay.'."\n"
+ ."\n"
+ .'|Time granularity|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|',
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ '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',
+ ],
+ ],
+ [
+ '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',
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'IspNameEn',
+ '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',
+ ],
+ ],
+ [
+ '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',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ '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.',
+ '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|',
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DataModule' => [
+ 'description' => 'The origin bandwidth data returned at each time interval. Unit: bit/s.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"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"
+ ."\n"
+ .'**Time granularity**'."\n"
+ ."\n"
+ .'The time granularity varies with the time range specified by the StartTime and EndTime parameters. The following table describes the time period within which historical data is available and the data delay.'."\n"
+ ."\n"
+ .'| Time granularity | 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 |',
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DataModule' => [
+ 'description' => 'The amount of origin traffic returned at each time interval. Unit: bytes.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"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"
+ ."\n"
+ .'**Time granularity**'."\n"
+ ."\n"
+ .'The time granularity varies with the time range specified by the StartTime and EndTime parameters. The following table describes the time period within which historical data is available and the data delay.'."\n"
+ ."\n"
+ .'|Time granularity|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' => ' ',
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ 'RealTimeSrcHttpCodeData' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'UsageData' => [
+ 'description' => 'The proportions of HTTP status codes at each time interval.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'TimeStamp' => [
+ 'description' => 'The timestamp of the returned data.'."\n",
+ 'type' => 'string',
+ 'example' => '2019-11-30T05:40:00Z',
+ ],
+ 'Value' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'RealTimeSrcCodeProportionData' => [
+ 'description' => 'The proportions of the HTTP status codes.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"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"
+ ."\n"
+ .'**Time granularity**'."\n"
+ ."\n"
+ .'The time granularity varies with the time range specified by the StartTime and EndTime parameters. The following table describes the time period within which historical data is available and the data delay.'."\n"
+ ."\n"
+ .'|Time granularity|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' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'CreateDcdnSubTask' => [
+ 'summary' => 'Creates a custom operations report.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZZCERX',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ReportIds',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => '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' => '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'TimeParseFailed',
+ 'errorMessage' => 'Failed to parse the time parameter.',
+ ],
+ [
+ 'errorCode' => 'SubscriptionAlreadyExists',
+ 'errorMessage' => 'The subscription already exists.',
+ ],
+ [
+ 'errorCode' => 'SubscriptionNotFound',
+ 'errorMessage' => 'The subscription is not found.',
+ ],
+ [
+ 'errorCode' => 'NameAlreadyExists',
+ 'errorMessage' => 'The name already exists.',
+ ],
+ [
+ 'errorCode' => 'DeliverExceedLimit',
+ 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.',
+ ],
+ ],
+ ],
+ '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.',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnSubList' => [
+ 'summary' => 'Queries custom operations reports.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111551',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnVIK4DM',
+ 'FEATUREdcdn2Z4HOI',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Content' => [
+ 'description' => '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'TimeParseFailed',
+ 'errorMessage' => 'Failed to parse the time parameter.',
+ ],
+ [
+ 'errorCode' => 'SubscriptionAlreadyExists',
+ 'errorMessage' => 'The subscription already exists.',
+ ],
+ [
+ 'errorCode' => 'SubscriptionNotFound',
+ 'errorMessage' => 'The subscription is not found.',
+ ],
+ [
+ 'errorCode' => 'NameAlreadyExists',
+ 'errorMessage' => 'The name already exists.',
+ ],
+ [
+ 'errorCode' => 'DeliverExceedLimit',
+ 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.',
+ ],
+ ],
+ ],
+ '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.',
+ '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.|',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnReport' => [
+ 'summary' => 'Queries the content of an operations report.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnVIK4DM',
+ 'FEATUREdcdn2Z4HOI',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Content' => [
+ 'description' => 'The content of the operations report.'."\n",
+ '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'TimeParseFailed',
+ 'errorMessage' => 'Failed to parse the time parameter.',
+ ],
+ [
+ 'errorCode' => 'SubscriptionAlreadyExists',
+ 'errorMessage' => 'The subscription already exists.',
+ ],
+ [
+ 'errorCode' => 'SubscriptionNotFound',
+ 'errorMessage' => 'The subscription is not found.',
+ ],
+ [
+ 'errorCode' => 'NameAlreadyExists',
+ 'errorMessage' => 'The name already exists.',
+ ],
+ [
+ 'errorCode' => 'DeliverExceedLimit',
+ 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.',
+ ],
+ ],
+ ],
+ '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",
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnReportList' => [
+ 'summary' => 'Queries custom reports.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'ReportId',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ '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.',
+ '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.|',
+ 'extraInfo' => ' ',
+ ],
+ 'UpdateDcdnSubTask' => [
+ 'summary' => 'Updates one or more operations reports.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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":"<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",
+ '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',
+ ],
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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' => ' ',
+ ],
+ '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZZCERX',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ [
+ '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":\\["[email protected]","[email protected]"]}}'."\n",
+ ],
+ ],
+ [
+ '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",
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'DeliverId' => [
+ 'description' => 'The ID of the change tracking task.'."\n",
+ 'type' => 'string',
+ 'example' => '92',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'TimeParseFailed',
+ 'errorMessage' => 'Failed to parse the time parameter.',
+ ],
+ [
+ 'errorCode' => 'SubscriptionNotFound',
+ 'errorMessage' => 'The subscription is not found.',
+ ],
+ [
+ 'errorCode' => 'NameAlreadyExists',
+ 'errorMessage' => 'The name already exists.',
+ ],
+ [
+ 'errorCode' => 'DeliverExceedLimit',
+ 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.',
+ ],
+ ],
+ ],
+ '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.|',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnDeliverList' => [
+ 'summary' => 'Queries all tracking tasks of operations reports.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111485',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnVIK4DM',
+ 'FEATUREdcdn2Z4HOI',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'DeliverId',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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": \\["[email protected]","[email protected]"],"copy":\\["[email protected]","[email protected]"]}}}]}'."\n",
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'TimeParseFailed',
+ 'errorMessage' => 'Failed to parse the time parameter.',
+ ],
+ [
+ 'errorCode' => 'SubscriptionAlreadyExists',
+ 'errorMessage' => 'The subscription already exists.',
+ ],
+ [
+ 'errorCode' => 'SubscriptionNotFound',
+ 'errorMessage' => 'The subscription is not found.',
+ ],
+ [
+ 'errorCode' => 'NameAlreadyExists',
+ 'errorMessage' => 'The name already exists.',
+ ],
+ [
+ 'errorCode' => 'DeliverExceedLimit',
+ 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.',
+ ],
+ ],
+ ],
+ '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\\\\\\": [\\\\\\"[email protected]\\\\\\",\\\\\\"[email protected]\\\\\\"],\\\\\\"copy\\\\\\":[\\\\\\"[email protected]\\\\\\",\\\\\\"[email protected]\\\\\\"]}}}]}\\",\\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>[email protected]</to>\\n <to>[email protected]</to>\\n <copy>[email protected]</copy>\\n <copy>[email protected]</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.',
+ '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",
+ 'extraInfo' => ' ',
+ ],
+ 'UpdateDcdnDeliverTask' => [
+ 'summary' => 'Updates a tracking task by task ID.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ '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' => 'Name',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The name of the tracking task.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Domain name report'."\n",
+ ],
+ ],
+ [
+ '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' => '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' => '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":\\["[email protected]","[email protected]"]}}'."\n",
+ ],
+ ],
+ [
+ '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",
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'TimeParseFailed',
+ 'errorMessage' => 'Failed to parse the time parameter.',
+ ],
+ [
+ 'errorCode' => 'SubscriptionAlreadyExists',
+ 'errorMessage' => 'The subscription already exists.',
+ ],
+ [
+ 'errorCode' => 'SubscriptionNotFound',
+ 'errorMessage' => 'The subscription is not found.',
+ ],
+ [
+ 'errorCode' => 'NameAlreadyExists',
+ 'errorMessage' => 'The name already exists.',
+ ],
+ [
+ 'errorCode' => 'DeliverExceedLimit',
+ 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.',
+ ],
+ ],
+ ],
+ '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"
+ ."\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"
+ ."\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"
+ ."\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",
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DeleteDcdnDeliverTask' => [
+ 'summary' => 'Deletes tracking tasks by task ID.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnVIK4DM',
+ 'FEATUREdcdn2Z4HOI',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'DeliverId',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'TimeParseFailed',
+ 'errorMessage' => 'Failed to parse the time parameter.',
+ ],
+ [
+ 'errorCode' => 'SubscriptionAlreadyExists',
+ 'errorMessage' => 'The subscription already exists.',
+ ],
+ [
+ 'errorCode' => 'SubscriptionNotFound',
+ 'errorMessage' => 'The subscription is not found.',
+ ],
+ [
+ 'errorCode' => 'NameAlreadyExists',
+ 'errorMessage' => 'The name already exists.',
+ ],
+ [
+ 'errorCode' => 'DeliverExceedLimit',
+ 'errorMessage' => 'The maximum number of subscribed tasks is exceeded.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDcdnDeliverTaskResponse>\\r\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</DeleteDcdnDeliverTaskResponse>","errorExample":""}]',
+ 'title' => 'DeleteDcdnDeliverTask',
+ 'description' => '> The maximum number of times that each user can call this operation per second is 3.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnDomainLog' => [
+ 'summary' => 'Queries the address where you can download the raw access log data of a 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 that you want to query. You can specify only one domain name in each request.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'example.com',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ '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',
+ ],
+ ],
+ [
+ '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' => '2021-11-07T17: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' => '2021-11-07T18:00:00Z',
+ ],
+ ],
+ ],
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DomainLogDetail' => [
+ 'description' => 'The log information.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'LogCount' => [
+ 'description' => 'The total number of entries returned on the current page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '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',
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The StartTime cannot exceed 31 days before the current time.',
+ ],
+ ],
+ ],
+ '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&amp;OSSAccessKeyId=LTAIviCc6zy8****&amp;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&amp;OSSAccessKeyId=LTAIviCc6zy8****&amp;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&amp;OSSAccessKeyId=LTAIviCc6zy8****&amp;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&amp;OSSAccessKeyId=LTAIviCc6zy8****&amp;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"
+ ."\n"
+ .'* If you do not set the **StartTime** or **EndTime** parameter, the request returns the data collected in the last 24 hours. If you set both these parameters, the request returns the data collected within the specified time range.********'."\n"
+ ."\n"
+ .'* You can call this operation up to 100 times per second per account.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnWafLogs' => [
+ 'summary' => 'Queries the download URL of offline WAF logs for a domain name.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ '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,
+ 'enumValueTitles' => [],
+ '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-21T08: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",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2017-12-22T08:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'headers' => [],
+ 'schema' => [
+ '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",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '0985A362-C81E-5A56-891D-90226BEECA7C',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ '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"
+ ."\n"
+ .'* If you do not set the StartTime or EndTime parameter, the request returns the data collected in the last 24 hours. If you set both these parameters, the request returns the data collected within the specified time range.'."\n"
+ ."\n"
+ .'* The log data is collected every hour.'."\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',
+ ],
+ '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.'."\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' => 'SLSRegion',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The region to which real-time logs are delivered.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-hangzhou',
+ ],
+ ],
+ [
+ 'name' => 'SLSProject',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The name of the Log Service project.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'aliyundoc',
+ ],
+ ],
+ [
+ 'name' => 'SLSLogStore',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The name of the Log Service Logstore.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'demo',
+ ],
+ ],
+ [
+ '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' => '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'F32C57AA-7BF8-49AE-A2CC-9F42390F5A19',
+ ],
+ 'Content' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Domains' => [
+ 'description' => 'The configuration results of the domain name.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid.Parameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'Internal Exception',
+ 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.',
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ 'DescribeDcdnSLSRealtimeLogDelivery' => [
+ 'summary' => 'Queries a real-time log delivery project.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111547',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn9K10I1',
+ ],
+ ],
+ 'parameters' => [
+ [
+ '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' => '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'ProjectNotFound',
+ 'errorMessage' => 'The project provided does not belong to you.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'Internal Exception',
+ 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.',
+ ],
+ ],
+ ],
+ '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' => ' ',
+ ],
+ 'UpdateDcdnSLSRealtimeLogDelivery' => [
+ 'summary' => 'Updates a real-time log delivery project.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111621',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn9K10I1',
+ ],
+ ],
+ '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' => 'SLSRegion',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The region to which logs were delivered.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-hangzhou',
+ ],
+ ],
+ [
+ 'name' => 'SLSProject',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The name of the log file.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'example-cn',
+ ],
+ ],
+ [
+ 'name' => 'SLSLogStore',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The name of the Logstore.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'example-cn',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'F32C57AA-7BF8-49AE-A2CC-9F42390F5A19',
+ ],
+ 'Content' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Domains' => [
+ 'description' => 'The configuration results of the domain name.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ 'parameters' => [
+ [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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' => ' ',
+ ],
+ 'UpdateDcdnUserRealTimeDeliveryField' => [
+ 'summary' => 'Updates the fields in real-time log entries.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111623',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn9K10I1',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ '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',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '3EACD23C-F49F-4BF7-B9AD-C2CD3BA888C4',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameters',
+ 'errorMessage' => 'The specified parameters are invalid.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'Internal Exception',
+ 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.',
+ ],
+ ],
+ ],
+ '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' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn9K10I1',
+ ],
+ ],
+ '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 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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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' => ' ',
+ ],
+ 'CheckDcdnProjectExist' => [
+ 'summary' => 'Checks whether a real-time log delivery project exists.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111444',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn9K10I1',
+ ],
+ ],
+ 'parameters' => [
+ [
+ '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' => '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"
+ ."\n"
+ .'* **false**'."\n"
+ .'* **true**'."\n",
+ 'type' => 'string',
+ 'example' => 'false',
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 500 => [
+ [
+ 'errorCode' => 'Internal Exception',
+ 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.',
+ ],
+ ],
+ ],
+ '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' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ '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',
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'ListDcdnRealTimeDeliveryProject' => [
+ 'summary' => 'Queries information about a real-time log delivery project.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'list',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111590',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn9K10I1',
+ ],
+ ],
+ '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 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',
+ ],
+ ],
+ [
+ '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.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'example.com',
+ ],
+ ],
+ [
+ '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',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Projects' => [
+ 'description' => 'The configuration results of the domain name.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 500 => [
+ [
+ 'errorCode' => 'Internal Exception',
+ 'errorMessage' => 'The request processing has failed due to some unknown error, exception or failure.',
+ ],
+ ],
+ ],
+ '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",
+ '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' => [],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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' => ' ',
+ ],
+ 'CreateSlrAndSlsProject' => [
+ 'summary' => 'Creates a service-linked role (SLR) and a Log Service project. ',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111453',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn9K10I1',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Region',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ '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",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ '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',
+ 'abilityTreeCode' => '111561',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn9K10I1',
+ ],
+ ],
+ '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 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 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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'An internal exception occurred, please try again later.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ '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"
+ ."\n"
+ .'The minimum data granularity is 5 minutes.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2018-09-30T16:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
+ ."\n"
+ .'The end time must be later than the start time.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2018-10-31T16:00:00Z',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'ED61C6C3-8241-4187-AAA7-5157AE175CEC',
+ ],
+ 'BillHistoryData' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'BillHistoryDataItem' => [
+ 'description' => 'The billing history returned.'."\n",
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'BillingDataItem' => [
+ 'description' => 'The billable items.'."\n",
+ '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ '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",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnUserBillType' => [
+ 'summary' => 'Queries the metering method that is used in Dynamic Content Delivery Network (DCDN).',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111555',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnTP4C37',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ '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',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'C370DAF1-C838-4288-A1A0-9A87633D248E',
+ ],
+ 'BillTypeData' => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ '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',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnUserResourcePackage' => [
+ 'summary' => 'Queries information about the resource plans in your Alibaba Cloud account.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111562',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZ2GXIC',
+ ],
+ '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',
+ ],
+ ],
+ ],
+ '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' => [
+ '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",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 403 => [
+ [
+ 'errorCode' => 'DcdnServiceNotFound',
+ 'errorMessage' => 'The DCDN service is not activated.',
+ ],
+ ],
+ ],
+ '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.',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnDomainUsageData' => [
+ 'summary' => 'Queries resource usage about domain names in a billable region.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111521',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ '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',
+ ],
+ ],
+ [
+ '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 at which the data is queried is 5 minutes.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '2015-12-10T20:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-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',
+ ],
+ ],
+ [
+ 'name' => 'Field',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'Type',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'DataProtocol',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'Area',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The billable region. Valid values:'."\n"
+ ."\n"
+ .'* **CN**: Chinese mainland'."\n"
+ .'* **OverSeas**: outside the Chinese mainland'."\n"
+ .'* **AP1**: Asia Pacific 1'."\n"
+ .'* **AP2**: Asia Pacific 2'."\n"
+ .'* **AP3**: Asia Pacific 3'."\n"
+ .'* **NA**: North America'."\n"
+ .'* **SA**: South America'."\n"
+ .'* **EU**: Europe'."\n"
+ .'* **MEAA**: Middle East and Africa'."\n"
+ .'* **all**: all the preceding billable regions'."\n"
+ ."\n"
+ .'Default value: **CN**'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'CN',
+ 'default' => 'CN',
+ ],
+ ],
+ [
+ 'name' => 'Interval',
+ 'in' => 'query',
+ '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',
+ 'required' => false,
+ 'example' => '300',
+ ],
+ ],
+ ],
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DataModule' => [
+ 'description' => 'The traffic that was collected at each interval.'."\n",
+ '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**',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ '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|',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnBgpBpsData' => [
+ 'summary' => 'Queries bandwidth data for Border Gateway Protocol (BGP) accelerated domain names. Data is collected every 5 minutes.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111473',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnVIK4DM',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Isp',
+ 'in' => 'query',
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Isp',
+ 'in' => 'query',
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ '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 traffic at each time interval.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111499',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnVIK4DM',
+ ],
+ 'autoTest' => true,
+ ],
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidTimeSpan',
+ 'errorMessage' => 'The time span exceeds the limit.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ '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 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',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'UsageData' => [
+ 'description' => 'The number of PVs at each interval.'."\n",
+ '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' => '',
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ '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',
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ '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',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ '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",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnDomainTopUrlVisit' => [
+ 'summary' => 'Queries frequently requested URLs on a day.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ '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 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',
+ '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',
+ ],
+ ],
+ ],
+ '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' => '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidDomainName.Malformed',
+ 'errorMessage' => 'The specified DomainName is invalid.',
+ ],
+ ],
+ ],
+ '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",
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ '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 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',
+ ],
+ ],
+ [
+ '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' => '2015-11-29T00: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' => '2015-11-30T00:00:00Z',
+ ],
+ ],
+ ],
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'UsageData' => [
+ 'description' => 'The number of UVs at each interval.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ ],
+ ],
+ '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",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnTopDomainsByFlow' => [
+ 'summary' => 'Queries domain names ranked by network traffic. You can query data within the last 90 days.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111553',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnVIK4DM',
+ ],
+ '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',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'TopDomains' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'TopDomain' => [
+ 'description' => 'The top N domain names ranked by network traffic.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"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",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeKvUsageData' => [
+ 'summary' => 'Queries the usage data of KV storage.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NamespaceId',
+ '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****',
+ ],
+ ],
+ [
+ '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. 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',
+ ],
+ ],
+ [
+ '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' => '2022-08-10T23:59:59Z',
+ ],
+ ],
+ [
+ 'name' => 'Field',
+ 'in' => 'query',
+ 'allowEmptyValue' => false,
+ 'schema' => [
+ 'description' => 'The type of the request data. Set the value to **acc**.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'acc',
+ ],
+ ],
+ [
+ 'name' => 'AccessType',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'ResponseType',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'SplitBy',
+ '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',
+ ],
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '204191',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnX7NWEB',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ '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',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The email address.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '[email protected]',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidValue.Malformed',
+ 'errorMessage' => 'Country must be 2 characters.',
+ ],
+ ],
+ 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.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'SetDcdnDomainCSRCertificate' => [
+ 'summary' => 'Configures an SSL certificate for a specified domain name.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Certificate.MissingParameter',
+ 'errorMessage' => 'You must specify the Certificate parameter.',
+ ],
+ [
+ 'errorCode' => 'Certificate.EncodeError',
+ 'errorMessage' => 'An error occurred while encoding the certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.DecodeError',
+ 'errorMessage' => 'An error occurred while decoding the certificate.',
+ ],
+ [
+ 'errorCode' => 'Certificate.FormatError',
+ 'errorMessage' => 'The format of the certificate is invalid.',
+ ],
+ [
+ 'errorCode' => 'Certificate.MissMatch',
+ 'errorMessage' => 'The certificate does not match the domain.',
+ ],
+ [
+ 'errorCode' => 'Certificate.NoPrivateKey',
+ 'errorMessage' => 'The private key of the certificate does not exist.',
+ ],
+ ],
+ 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.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C9\\"\\n}","type":"json"}]',
+ 'title' => 'SetDcdnDomainCSRCertificate',
+ ],
+ 'DescribeDcdnSSLCertificateList' => [
+ 'summary' => 'Queries the certificates of accelerated domain names.',
+ '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 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',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The keyword that is used to query the certificate.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'taobao',
+ ],
+ ],
+ ],
+ '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",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'NotFoundCertList',
+ 'errorMessage' => 'The certList is null.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '162268',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnX7NWEB',
+ ],
+ ],
+ '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',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'A7C69682-7F88-40DD-A198-10D0309E439D',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'DomainInProtectedMode',
+ 'errorMessage' => 'The domain is in protection mode. To request permission, contact Customer Service.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'CertName.MissingParameter',
+ 'errorMessage' => 'You must specify CertName.',
+ ],
+ [
+ 'errorCode' => 'InvalidDomain.Offline',
+ 'errorMessage' => 'The domain is offline.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'DescribeDcdnHttpsDomainList' => [
+ 'summary' => 'Queries information about all certificates that belong to your account.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnX7NWEB',
+ ],
+ ],
+ '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',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The keyword that is used to search for certificates.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'cert',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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' => [
+ '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' => '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ '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",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnCertificateList' => [
+ 'summary' => 'Queries the certificates of one or more accelerated domain names.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => true,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnX7NWEB',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'FC0E34AC-0239-44A7-AB0E-800DE522C8DA',
+ ],
+ 'CertificateListModel' => [
+ 'description' => 'Details about certificates.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Count' => [
+ 'description' => 'The number of certificates.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '123',
+ ],
+ 'CertList' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'Cert' => [
+ 'description' => 'Details about each certificate.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'substitutions' => [
+ 'dcdn::2018-01-15::DescribeDcdnSSLCertificateList',
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnX7NWEB',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'SSLPub',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'SSLStatus',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether the domain name list to return contains only domain names with HTTPS enabled or disabled.'."\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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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' => '',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Certificate.FormatError',
+ 'errorMessage' => 'The format of the certificate is invalid.',
+ ],
+ [
+ 'errorCode' => 'SSLPub.MissingParameter',
+ 'errorMessage' => 'The SSLPub parameter is required.',
+ ],
+ [
+ 'errorCode' => 'Decode.Error',
+ 'errorMessage' => 'Error decoding the SSLPub or SSLPri certificate.',
+ ],
+ ],
+ 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' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnCertificateDetail' => [
+ 'summary' => 'Queries details about a certificate.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnX7NWEB',
+ ],
+ ],
+ 'parameters' => [
+ [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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' => ' ',
+ ],
+ 'DescribeDcdnDomainCertificateInfo' => [
+ 'summary' => 'Queries the certificate information about an accelerated domain name.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ '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',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidCertIdentifier.ValueNotSupported',
+ 'errorMessage' => 'The specified value of parameter CertIdentifier is not valid.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"0AEDAF20-4DDF-4165-8750-47FF9C1929C8\\"\\n}","errorExample":""},{"type":"xml","example":"<SetDcdnDomainSMCertificateResponse>\\n <RequestId>0AEDAF20-4DDF-4165-8750-47FF9C1929C8</RequestId>\\n</SetDcdnDomainSMCertificateResponse>","errorExample":""}]',
+ 'title' => 'SetDcdnDomainSMCertificate',
+ 'description' => '> You can call this operation up to 30 times per second per account.'."\n",
+ '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',
+ ],
+ ],
+ 'parameters' => [
+ [
+ '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--',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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' => ' ',
+ ],
+ 'DescribeDcdnSMCertificateList' => [
+ 'summary' => 'Queries the ShangMi (SM) certificates of an 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 whose SM certificates you want to query.'."\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' => 'DC0E34AC-0239-44A7-AB0E-800DE522C8DC',
+ ],
+ 'CertificateListModel' => [
+ 'description' => 'The type of the certificate information.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Count' => [
+ 'description' => 'The number of certificates that are returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '2',
+ ],
+ 'CertList' => [
+ 'description' => 'A list of certificates.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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",
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnX7NWEB',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ '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.',
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'TagDcdnResources' => [
+ 'summary' => 'Adds one or more tags to a resource.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ '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,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '97C68796-EB7F-4D41-9D5B-12B909D76508',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidRegionId.Malformed',
+ 'errorMessage' => 'The specified RegionId is invalid.',
+ ],
+ [
+ 'errorCode' => 'Resource.NotExist',
+ 'errorMessage' => 'The resource does not exist.',
+ ],
+ [
+ 'errorCode' => 'TagKeyIsInvalid',
+ 'errorMessage' => 'The specified TagKey is invalid.',
+ ],
+ [
+ 'errorCode' => 'TooManyTags',
+ 'errorMessage' => 'You have entered too many tags.',
+ ],
+ [
+ 'errorCode' => 'TagValueIsInvalid',
+ 'errorMessage' => 'The specified TagValue is invalid.',
+ ],
+ [
+ 'errorCode' => 'TagKeyDuplicated',
+ 'errorMessage' => 'The specified TagKey is duplicated.',
+ ],
+ [
+ 'errorCode' => 'TagIsInvalid',
+ 'errorMessage' => 'The number of Tag exceeds 20.',
+ ],
+ [
+ 'errorCode' => 'ResourceIdIsInvalid',
+ 'errorMessage' => 'The number of ResourceId exceeds 50.',
+ ],
+ [
+ 'errorCode' => 'SystemTagIsInvalid',
+ 'errorMessage' => 'The number of System Tag exceeds 50.',
+ ],
+ [
+ 'errorCode' => 'CustomTagIsInvalid',
+ 'errorMessage' => 'The number of Custom Tag exceeds 20.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"97C68796-EB7F-4D41-9D5B-12B909D76508\\"\\n}","errorExample":""},{"type":"xml","example":"<TagDcdnResourcesResponse>\\r\\n<RequestId>97C68796-EB7F-4D41-9D5B-12B909D76508</RequestId>\\r\\n</TagDcdnResourcesResponse>","errorExample":""}]',
+ 'title' => 'TagDcdnResources',
+ 'description' => '> You can call this operation up to 100 times per second per account.'."\n",
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnTagResources' => [
+ 'summary' => 'Queries the tags of one or more resources.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'ResourceId',
+ 'in' => 'query',
+ 'style' => 'repeatList',
+ 'schema' => [
+ 'description' => 'The list of resource IDs. You can specify a maximum of 50 resource IDs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The ID of the resource.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'example.com',
+ ],
+ 'required' => true,
+ 'example' => 'example.com',
+ 'maxItems' => 50,
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'query',
+ 'style' => 'repeatList',
+ 'schema' => [
+ 'description' => 'The tags. You can specify a maximum of 20 tag values.'."\n",
+ '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',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '34AB41F1-04A5-496F-8C8D-634BDBE6A9FB',
+ ],
+ 'TagResources' => [
+ 'description' => 'The tag of the instance.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'ResourceId' => [
+ 'description' => 'The ID of the resource.'."\n",
+ 'type' => 'string',
+ 'example' => 'example.com',
+ ],
+ 'Tag' => [
+ 'description' => 'The tags of the snapshot.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'description' => 'The key of the tag.'."\n",
+ 'type' => 'string',
+ 'example' => 'env',
+ ],
+ 'Value' => [
+ 'description' => 'The value of the tag.'."\n",
+ 'type' => 'string',
+ 'example' => 'product',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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",
+ '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',
+ ],
+ '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",
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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' => ' ',
+ ],
+ 'UntagDcdnResources' => [
+ 'summary' => 'Removes one or more tags from a resource.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ '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' => 'All',
+ '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',
+ ],
+ ],
+ [
+ '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.'."\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,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '97C68796-EB7F-4D41-9D5B-12B909D76508',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'TagIsInvalid',
+ 'errorMessage' => 'The number of Tag exceeds 20.',
+ ],
+ [
+ 'errorCode' => 'ResourceIdIsInvalid',
+ 'errorMessage' => 'The number of ResourceId exceeds 50.',
+ ],
+ ],
+ ],
+ '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",
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn2JMMUY',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'FunctionNames',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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 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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'FunctionArg' => [
+ 'description' => 'The list of features.'."\n",
+ '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ ],
+ 'ConfigId' => [
+ 'description' => 'The ID of the configuration.'."\n",
+ 'type' => 'string',
+ 'example' => '5003576',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s.ValueNotSupported',
+ 'errorMessage' => 'FunctionName [%s] is not supported.',
+ ],
+ ],
+ ],
+ '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",
+ '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn2JMMUY',
+ ],
+ ],
+ 'parameters' => [
+ [
+ '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',
+ ],
+ ],
+ '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' => ' ',
+ ],
+ 'DescribeUserDcdnIpaStatus' => [
+ 'summary' => 'Whether IPA is enabled and whether you have overdue payments for your IPA are queried.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111577',
+ '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' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111529',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZA9EPX',
+ ],
+ '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'LockReason' => [
+ 'description' => 'The lock status of secure DCDN.'."\n",
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 403 => [
+ [
+ 'errorCode' => 'DcdnIpaServiceNotFound',
+ 'errorMessage' => 'The DCDN IPA service has not been activated.',
+ ],
+ ],
+ ],
+ '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",
+ 'extraInfo' => ' ',
+ ],
+ 'UpdateDcdnIpaDomain' => [
+ 'summary' => 'Modifies a domain name that is accelerated by IP Application Accelerator (IPA). ',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ '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**',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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' => ' ',
+ ],
+ 'DeleteDcdnIpaDomain' => [
+ 'summary' => 'Deletes an accelerated domain name from IP Application Accelerator (IPA).',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZ2GXIC',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'DomainName',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '94E3559F-7B6A-4A5E-AFFD-44E2A208A249',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidDomainName.Malformed',
+ 'errorMessage' => 'The 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",
+ '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',
+ ],
+ ],
+ 'parameters' => [
+ [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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' => ' ',
+ ],
+ 'AddDcdnIpaDomain' => [
+ 'summary' => 'Adds a domain name to IPA. You can specify only one domain name in each request.',
+ '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 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',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '0AEDAF20-4DDF-4165-8750-47FF9C1929C9',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidDomainName.Malformed',
+ 'errorMessage' => 'The specified DomainName is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidSource.Content.Malformed',
+ 'errorMessage' => 'The specified Source Content is invalid.',
+ ],
+ [
+ 'errorCode' => 'MissingSource.Content',
+ 'errorMessage' => 'The Source Content must be specified.',
+ ],
+ [
+ 'errorCode' => 'MissingSource.Type',
+ 'errorMessage' => 'The Source Type must be specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidSource.Type.Malformed',
+ 'errorMessage' => 'The specified Source Type is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidSource.Priority.Malformed',
+ 'errorMessage' => 'The specified Source Priority is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidScope.Malformed',
+ 'errorMessage' => 'The specified Scope is invalid.',
+ ],
+ [
+ 'errorCode' => 'SourceIp.Exceed',
+ 'errorMessage' => 'The maximum number of back-to-origin IP addresses is exceeded.',
+ ],
+ [
+ 'errorCode' => 'InvalidCertificate',
+ 'errorMessage' => 'The specified certificate format is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidCertificate.TooLong',
+ 'errorMessage' => 'The maximum length of the certificate is exceeded.',
+ ],
+ [
+ 'errorCode' => 'CheckSourceHealthFailed',
+ 'errorMessage' => 'Error checking the security. Provide the valid origin site information.',
+ ],
+ [
+ 'errorCode' => 'ExtensiveAndAllBothExist',
+ 'errorMessage' => 'A wildcard domain name and a domain name with an all. prefix cannot be both specified.',
+ ],
+ [
+ 'errorCode' => 'CdnTypeNotSupportExtensiveDomain',
+ 'errorMessage' => 'Wildcard domain names are not supported.',
+ ],
+ [
+ 'errorCode' => 'ExtensiveAndSpecificDomainConflict',
+ 'errorMessage' => 'The wildcard domain name overlaps a domain name at the same level.',
+ ],
+ [
+ 'errorCode' => 'InvalidResourceGroupId.Malformed',
+ 'errorMessage' => 'The specified ResourceGroupId is invalid.',
+ ],
+ [
+ 'errorCode' => 'DomainReserved',
+ 'errorMessage' => 'The root domain of your domain is reserved by another account. Submit a ticket to contact customer support.',
+ ],
+ [
+ 'errorCode' => 'InvalidDomainNameLevel',
+ 'errorMessage' => 'The alicdn.com domain supports a maximum of three levels of domain.',
+ ],
+ [
+ 'errorCode' => '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.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ 'parameters' => [
+ [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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' => ' ',
+ ],
+ '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZ2GXIC',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'ResourceGroupId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the resource group.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'abcd1234abcd****',
+ ],
+ ],
+ [
+ 'name' => 'FuncId',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'FuncFilter',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'Tag',
+ 'in' => 'query',
+ 'style' => 'repeatList',
+ 'schema' => [
+ 'description' => 'The tags of the command.'."\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,
+ ],
+ 'required' => false,
+ 'maxItems' => 20,
+ ],
+ ],
+ ],
+ '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',
+ ],
+ '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 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',
+ ],
+ '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.'."\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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ '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",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnIpaDomainDetail' => [
+ 'summary' => 'Queries the basic configuration information about an accelerated domain name.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZ2GXIC',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'DomainName',
+ '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",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'example.com',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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",
+ 'type' => 'object',
+ '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' => [
+ 'type' => 'object',
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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",
+ 'extraInfo' => ' ',
+ ],
+ 'DeleteDcdnIpaSpecificConfig' => [
+ 'summary' => 'Deletes specific configurations of an accelerated domain name from IP Application Accelerator (IPA).',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ '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**',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s.ValueNotSupported',
+ 'errorMessage' => 'FunctionName [%s] is not supported.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'DcdnIpaServiceNotFound',
+ 'errorMessage' => 'The DCDN IPA service has not been activated.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteDcdnIpaSpecificConfigResponse>\\r\\n <RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</DeleteDcdnIpaSpecificConfigResponse>","errorExample":""}]',
+ 'title' => 'DeleteDcdnIpaSpecificConfig',
+ 'description' => '> You can call this operation up to 10 times per second per account.'."\n",
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnDomainProperty' => [
+ 'summary' => 'Queries the protocol type of IP Application Accelerator (IPA).',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZ2GXIC',
+ ],
+ ],
+ '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 call.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'example.com',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 404 => [
+ [
+ 'errorCode' => 'InvalidDomain.NotFound',
+ 'errorMessage' => 'The specified domain does not exist.',
+ ],
+ ],
+ ],
+ '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",
+ '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',
+ ],
+ '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.'."\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',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to implement padding with zeros. 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"
+ ."\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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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' => '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' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'DataModule' => [
+ 'description' => 'The bandwidth data returned at each interval.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ '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",
+ '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',
+ ],
+ '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.'."\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',
+ ],
+ ],
+ [
+ '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 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"
+ ."\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"
+ ."\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"
+ ."\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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2017-12-10T21:00:00Z\\",\\n \\"StartTime\\": \\"2017-12-10T20:00:00Z\\",\\n \\"RequestId\\": \\"B955107D-E658-4E77-B913-E0AC3D31693E\\",\\n \\"DomainName\\": \\"example.com\\",\\n \\"DataInterval\\": \\"300\\",\\n \\"TrafficDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"IpaTraffic\\": 423304182,\\n \\"TimeStamp\\": \\"2017-12-10T20:00:00Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainIpaTrafficDataResponse>\\r\\n\\t<DomainName>example.com</DomainName>\\r\\n\\t<DataInterval>300</DataInterval>\\r\\n\\t<TrafficDataPerInterval>\\r\\n\\t\\t<DataModule>\\r\\n\\t\\t\\t<TimeStamp>2017-12-10T20:00:00Z</TimeStamp>\\r\\n\\t\\t\\t<IpaTraffic>423304182</IpaTraffic>\\r\\n\\t\\t</DataModule>\\r\\n\\t</TrafficDataPerInterval>\\r\\n\\t<RequestId>B955107D-E658-4E77-B913-E0AC3D31693E</RequestId>\\r\\n\\t<StartTime>2017-12-10T20:00:00Z</StartTime>\\r\\n\\t<EndTime>2017-12-10T21:00:00Z</EndTime>\\r\\n</DescribeDcdnDomainIpaTrafficDataResponse>","errorExample":""}]',
+ 'title' => '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' => ' ',
+ ],
+ 'DescribeDcdnDomainIpaConnData' => [
+ 'summary' => 'Queries the number of IPA user connections.',
+ '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 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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'SplitBy',
+ '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",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'domain',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidTimeRange',
+ 'errorMessage' => 'The time span between the StartTime and the EndTime cannot exceed 31 days.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"EndTime\\": \\"2015-02-22T15:00:00Z\\",\\n \\"StartTime\\": \\"2015-02-21T15:00:00Z\\",\\n \\"RequestId\\": \\"A2A1EEF8-043E-43A1-807C-BEAC18EA1807\\",\\n \\"ConnectionDataPerInterval\\": {\\n \\"DataModule\\": [\\n {\\n \\"TimeStamp\\": \\"2022-02-21T15:00:00+08:00\\",\\n \\"Domain\\": \\"example1.com\\",\\n \\"Connections\\": 189095\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<DescribeDcdnDomainIpaConnDataResponse>\\n<RequestId>A2A1EEF8-043E-43A1-807C-BEAC18EA1807</RequestId>\\n<StartTime>2015-02-21T15:00:00Z</StartTime>\\n<EndTime>2015-02-22T15:00:00Z</EndTime>\\n<ConnectionDataPerInterval>\\n <TimeStamp>2022-02-21T15:00:00+08:00</TimeStamp>\\n <domain>example1.com</domain>\\n <Connections>189095</Connections>\\n</ConnectionDataPerInterval>\\n<ConnectionDataPerInterval>\\n <TimeStamp>2022-02-21T15:05:00+08:00</TimeStamp>\\n <domain>example2.com</domain>\\n <Connections>194044</Connections>\\n</ConnectionDataPerInterval>\\n</DescribeDcdnDomainIpaConnDataResponse>","errorExample":""}]',
+ 'title' => '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",
+ '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',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ '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',
+ ],
+ ],
+ ],
+ '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' => '04F0F334-1335-436C-A1D7-6C044FE73368',
+ ],
+ 'Cidr' => [
+ 'description' => 'The back-to-origin IPv4 and IPv6 CIDR blocks.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '具体IP段信息。',
+ 'type' => 'string',
+ 'example' => '1.1.1.0/24',
+ ],
+ 'example' => '["1.1.1.0/24","2.2.2.0/24","1111:2222:3333:4444:5555:0:0:0/80"]',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 404 => [
+ [
+ 'errorCode' => 'InvalidDomain.NotFound',
+ 'errorMessage' => 'The domain does not exist, or it does not belong to you.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ '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",
+ ],
+ 'CreateRoutine' => [
+ 'summary' => 'Creates a routine.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111452',
+ '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' => 'Description',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The description of the routine.'."\n",
+ '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"}}',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'EdgeRoutine.GeneralError',
+ 'errorMessage' => 'A server error occurred: %s',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"Status\\": \\"OK\\"\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<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',
+ ],
+ '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 among the routines that belong to the same Alibaba Cloud account.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'test',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'EdgeRoutine.GeneralError',
+ 'errorMessage' => 'A server error occurred: %s',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"Status\\": \\"OK\\"\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteRoutineResponse>\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\n<Content>\\n <Status>OK</Status>\\n</Content>\\n</DeleteRoutineResponse>","errorExample":""}]',
+ 'title' => 'DeleteRoutine',
+ 'description' => '> You can call this operation up to 100 times per second per account.'."\n",
+ 'extraInfo' => ' ',
+ ],
+ 'DeleteRoutineCodeRevision' => [
+ 'summary' => 'Deletes the code of the specified version from a routine.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ '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',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'EdgeRoutine.GeneralError',
+ 'errorMessage' => 'A server error occurred: %s',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"Status\\": \\"OK\\"\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<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' => ' ',
+ ],
+ 'DeleteRoutineConfEnvs' => [
+ 'summary' => 'Deletes canary release environments from a routine.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111469',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn75UYDO',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Name',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => '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"]',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'EdgeRoutine.GeneralError',
+ 'errorMessage' => 'A server error occurred: %s',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"Status\\": \\"OK\\"\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<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' => ' ',
+ ],
+ '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Content' => [
+ 'description' => 'The metadata of the routine. The following table describes the fields.'."\n",
+ 'type' => 'object',
+ 'example' => '',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '4DBA68F5-04A9-406B-B1E4-F2CB635E103F',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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\\": \\"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",
+ '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.|',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeRoutineCanaryEnvs' => [
+ 'summary' => 'Queries the canary release environments that are supported by ER.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Content' => [
+ 'description' => 'The canary release environments that are supported.'."\n",
+ 'type' => 'object',
+ 'example' => 'presetCanaryShanghai',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'CDCD94C0-F7FE-412F-B8F8-7E3C610C78E5',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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\\": \\"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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ '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 JavaScript code that you want to query.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '1611151912787121550',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Content' => [
+ 'description' => 'The information about the JavaScript code version.'."\n",
+ 'type' => 'object',
+ 'example' => '',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'D24F0C48-1B27-4C58-8B84-1A0C001A514E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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\\": \\"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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeRoutineUserInfo' => [
+ 'summary' => 'Queries the subdomains and routines that belong to your Alibaba Cloud account.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Content' => [
+ 'description' => 'The content returned by calling the operation.'."\n",
+ 'type' => 'object',
+ 'example' => '',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '691DEEE5-4BDB-47F3-930E-F57176427717',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ '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",
+ '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.|',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeUserErStatus' => [
+ 'summary' => 'Queries whether EdgeRoutine (ER) is activated or has an overdue payment.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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' => ' ',
+ ],
+ 'EditRoutineConf' => [
+ 'summary' => 'Modifies the configurations of a routine.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111585',
+ '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-slc',
+ ],
+ ],
+ [
+ 'name' => 'Description',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The description of the routine.'."\n",
+ '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","AllowedHosts":["test-a.alicdn.com","test-b.alicdn.com"]},"production":{"SpecName":"50ms","AllowedHosts":["test-c.alicdn.com","test-d.alicdn.com"]},"presetCanaryZhejiang":{"SpecName":"100ms","AllowedHosts":["test-e.alicdn.com","test-f.alicdn.com"]},"presetCanaryBeijing":{"SpecName":"5ms","AllowedHosts":["test-g.alicdn.com","test-h.alicdn.com"]},"presetCanaryNotExist":{"SpecName":"5ms","CodeRev":"1622446907645949975","AllowedHosts":["error hosts"]}}',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Content' => [
+ 'description' => 'The description of the execution errors and the version number of the latest environment configurations.'."\n",
+ 'type' => 'object',
+ 'example' => '',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'BAECB354-6D42-42C1-87DA-C9992EF1E7C8',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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\\": \\"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' => ' ',
+ ],
+ 'SetRoutineSubdomain' => [
+ 'summary' => 'Configures a subdomain for a routine.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ '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"]',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'EdgeRoutine.GeneralError',
+ 'errorMessage' => 'A server error occurred: %s',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Content\\": {\\n \\"Status\\": \\"OK\\"\\n },\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<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' => ' ',
+ ],
+ 'UploadRoutineCode' => [
+ 'summary' => 'Uploads code to EdgeRoutine (ER).',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111624',
+ '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' => 'CodeDescription',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The description of the code version.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'Hello World',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Content' => [
+ 'description' => 'The content returned, such as the code version number and information about the code upload.'."\n",
+ 'type' => 'object',
+ 'example' => '',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'DFA2027F-86C0-4421-9593-581A7993696C',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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\\": \\"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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111625',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn75UYDO',
+ ],
+ ],
+ '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' => 'CodeDescription',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The description of the version.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'desc',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Content' => [
+ 'description' => 'The parameters required by the code.'."\n",
+ 'type' => 'object',
+ 'example' => '',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'DFA2027F-86C0-4421-9593-581A7993696C',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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\\": \\"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' => ' ',
+ ],
+ 'PublishRoutineCodeRevision' => [
+ 'summary' => 'Publishes a specified version of routine code to an environment.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111599',
+ '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 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"]',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Content' => [
+ 'description' => 'The version of the routine code that is published to the specified environment.'."\n",
+ 'type' => 'object',
+ 'example' => '"CodeRevision": "1620876959997924701"',
+ ],
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'A513734D-D17B-411E-864D-XXXX',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'EdgeRoutine.GeneralError',
+ 'errorMessage' => 'A server error occurred: %s',
+ ],
+ ],
+ ],
+ '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' => ' ',
+ ],
+ '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111446',
+ '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' => 'CodeDescription',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The description of the code version.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'Hello World',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'EdgeRoutine.GeneralError',
+ 'errorMessage' => 'A server error occurred: %s',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn75UYDO',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'RoutineID',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the routine.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'routine1.test',
+ ],
+ ],
+ [
+ 'name' => 'Spec',
+ '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',
+ ],
+ ],
+ [
+ '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',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'SplitBy',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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 \\"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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'EdgeRoutine.GeneralError',
+ 'errorMessage' => 'A server error occurred: %s',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'EdgeRoutine.GeneralError',
+ 'errorMessage' => 'A server error occurred: %s',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Content\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"RequestId\\": \\"FC0E34AC-0239-44A7-AB0E-800DE522C8DA\\"\\n}","type":"json"}]',
+ 'title' => 'DescribeRoutineRelatedDomains',
+ ],
+ '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '193439',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn75UYDO',
+ ],
+ ],
+ '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',
+ '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',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ '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.',
+ ],
+ 'SetDcdnDomainStagingConfig' => [
+ 'summary' => 'Sets or modifies the domain name configuration in the canary release environment.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ '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\\"}]',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidFunctionName.ValueNotSupported',
+ 'errorMessage' => '%s',
+ ],
+ [
+ 'errorCode' => 'InvalidArgName.ValueNotSupported',
+ 'errorMessage' => '%s',
+ ],
+ [
+ 'errorCode' => 'InvalidArgValue.Malformed',
+ 'errorMessage' => '%s',
+ ],
+ [
+ 'errorCode' => 'InvalidRule.Malformed',
+ 'errorMessage' => '%s',
+ ],
+ [
+ 'errorCode' => 'ConfigurationConflicts',
+ 'errorMessage' => 'The staging environment has a configuration in effect. You cannot modify the production environment configuration.',
+ ],
+ [
+ 'errorCode' => '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.',
+ ],
+ ],
+ ],
+ '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' => ' ',
+ ],
+ 'DescribeDcdnDomainStagingConfig' => [
+ 'summary' => 'Queries the environment configuration in the canary release environment.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ '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',
+ ],
+ ],
+ ],
+ '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",
+ '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",
+ '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid%s.ValueNotSupported',
+ 'errorMessage' => 'FunctionName [%s] is not supported.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"C80705BF-0F76-41FA-BAD1-5B59296A4E59\\",\\n \\"DomainConfigs\\": [\\n {\\n \\"Status\\": \\"success\\",\\n \\"ConfigId\\": \\"6295\\",\\n \\"FunctionName\\": \\"aliauth\\",\\n \\"FunctionArgs\\": [\\n {\\n \\"ArgName\\": \\"auth_type\\",\\n \\"ArgValue\\": \\"req_auth\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<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' => ' ',
+ ],
+ 'DeleteDcdnSpecificStagingConfig' => [
+ 'summary' => 'Deletes the configurations of an accelerated domain name in the canary release environment.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ '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 call.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'example.com',
+ ],
+ ],
+ [
+ 'name' => 'ConfigId',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'none',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'StagingConfig.Failed',
+ 'errorMessage' => 'The rules for the staging environment are being configured. Try again later.',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'StagingConfig.NotFound',
+ 'errorMessage' => 'The staging configuration does not exist.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<PublishDcdnStagingConfigToProductionResponse>\\r\\n<RequestId>04F0F334-1335-436C-A1D7-6C044FE73368</RequestId>\\r\\n</PublishDcdnStagingConfigToProductionResponse>\\r\\n","errorExample":""}]',
+ 'title' => 'PublishDcdnStagingConfigToProduction',
+ 'description' => '> You can call this operation up to 30 times per second per account.'."\n",
+ 'extraInfo' => ' ',
+ ],
+ '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ '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 call.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'example.com',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '04F0F334-1335-436C-A1D7-6C044FE73368',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 404 => [
+ [
+ 'errorCode' => 'StagingConfig.NotFound',
+ 'errorMessage' => 'The staging configuration does not exist.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"04F0F334-1335-436C-A1D7-6C044FE73368\\"\\n}","errorExample":""},{"type":"xml","example":"<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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111550',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn33QGRH',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '213943',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Namespace',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'test_namespace'."\n",
+ ],
+ ],
+ [
+ 'name' => 'Url',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'https://xxxobject.oss-cn-reginon.aliyuncs.com/9d91_xxxxxxxxxxx_158bb6e0f97c477791209bb46bd599f7',
+ 'isFileTransferUrl' => true,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response',
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'EEEBE525-F576-1196-8DAF-2D70CA3F4D2F',
+ ],
+ 'FailKeys' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'test_key1',
+ ],
+ ],
+ 'SuccessKeys' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'example' => 'test_key1',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'InvalidNameSpace.NotFound',
+ 'errorMessage' => 'The specified namespace does not exist.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'DescribeKvRealTimeQpsData' => [
+ 'summary' => 'kv存储实时Qps监控数据',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '172111',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ 'autoTest' => true,
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'NamespaceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '534167033424646***',
+ ],
+ ],
+ [
+ 'name' => 'StartTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2022-08-10T16:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2022-08-10T15:59:59Z',
+ ],
+ ],
+ [
+ 'name' => 'AccessType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'get',
+ 'enum' => [],
+ ],
+ ],
+ [
+ 'name' => 'SplitBy',
+ 'in' => 'query',
+ 'allowEmptyValue' => true,
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'type',
+ 'enum' => [
+ 'type',
+ 'namespace',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'Interval',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '60',
+ 'enum' => [
+ '60',
+ '300',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response',
+ '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',
+ ],
+ 'KvQpsData' => [
+ 'description' => '',
+ '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',
+ ],
+ ],
+ ],
+ ],
+ 'AggregateData' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '213942',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Namespace',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'test_namesapce',
+ ],
+ ],
+ [
+ 'name' => 'Key',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'test_key',
+ ],
+ ],
+ [
+ 'name' => 'Url',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'https://xxxobject.oss-cn-reginon.aliyuncs.com/9d91_xxxxxxxxxxx_158bb6e0f97c477791209bb46bd599f7',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ [
+ [
+ '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.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Length\\": 4,\\n \\"Value\\": \\"test\\",\\n \\"RequestId\\": \\"EEEBE525-F576-1196-8DAF-2D70CA3F4D2F\\"\\n}","type":"json"}]',
+ ],
+ 'BatchDeleteDcdnKv' => [
+ 'summary' => 'Deletes key-value pairs from a namespace at a time based on key names.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '213944',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Namespace',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '',
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'test_namespace',
+ ],
+ ],
+ [
+ 'name' => 'Keys',
+ 'in' => 'formData',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => '',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test_key1',
+ ],
+ 'required' => true,
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'InvalidNameSpace.NotFound',
+ 'errorMessage' => 'The specified namespace does not exist.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '213941',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ '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,
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'InvalidNameSpace.NotFound',
+ 'errorMessage' => 'The specified namespace does not exist.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'GetDcdnKvDetail' => [
+ 'summary' => 'Queries the value and time to live (TTL) of a key.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ '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',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ [
+ [
+ '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.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'BatchPutDcdnKv' => [
+ 'summary' => 'Configures multiple key-value (KV) pairs for a namespace.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '189479',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Namespace',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '',
+ 'description' => 'The name of the namespace.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'ns1',
+ ],
+ ],
+ [
+ 'name' => 'KvList',
+ '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,
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'InvalidNameSpace.NotFound',
+ 'errorMessage' => 'The specified namespace does not exist.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'DescribeDcdnKvNamespace' => [
+ 'summary' => 'Queries the information about a namespace.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '121114',
+ '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_-]+$',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid.Parameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidAccount.Malformed',
+ 'errorMessage' => 'The specified account is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidNameSpace.Malformed',
+ 'errorMessage' => 'The specified namespace is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidKey.Malformed',
+ 'errorMessage' => 'The specified key is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidKey.ExceedsMaximum',
+ 'errorMessage' => 'The size of the key cannot exceed 512 bytes.',
+ ],
+ [
+ 'errorCode' => 'InvalidValue.ExceedsMaximum',
+ 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'InvalidKey.ExceedsCapacity',
+ 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidParameters',
+ 'errorMessage' => 'The specified authentication parameters are invalid.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidTime',
+ 'errorMessage' => 'The specified authentication time is invalid.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidToken',
+ 'errorMessage' => 'Token authentication failed.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidResource',
+ 'errorMessage' => 'Resource authentication failed.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'InvalidAccount.NotFound',
+ 'errorMessage' => 'The specified account does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidNameSpace.NotFound',
+ 'errorMessage' => 'The specified namespace does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidKey.NotFound',
+ 'errorMessage' => 'The specified key does not exist.',
+ ],
+ ],
+ 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.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'PutDcdnKvNamespace' => [
+ 'summary' => 'Adds namespaces to your account.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ '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_-]+$',
+ ],
+ ],
+ ],
+ '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,
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid.Parameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidAccount.Malformed',
+ 'errorMessage' => 'The specified account is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidNameSpace.Malformed',
+ 'errorMessage' => 'The specified namespace is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidKey.Malformed',
+ 'errorMessage' => 'The specified key is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidKey.ExceedsMaximum',
+ 'errorMessage' => 'The size of the key cannot exceed 512 bytes.',
+ ],
+ [
+ 'errorCode' => 'InvalidValue.ExceedsMaximum',
+ 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'InvalidKey.ExceedsCapacity',
+ 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidParameters',
+ 'errorMessage' => 'The specified authentication parameters are invalid.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidTime',
+ 'errorMessage' => 'The specified authentication time is invalid.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidToken',
+ 'errorMessage' => 'Token authentication failed.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidResource',
+ 'errorMessage' => 'Resource authentication failed.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'InvalidAccount.NotFound',
+ 'errorMessage' => 'The specified account does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidNameSpace.NotFound',
+ 'errorMessage' => 'The specified namespace does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidKey.NotFound',
+ 'errorMessage' => 'The specified key does not exist.',
+ ],
+ ],
+ 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.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'DeleteDcdnKvNamespace' => [
+ 'summary' => 'Deletes a namespace that belongs to your account.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ '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_-]+$',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid.Parameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidAccount.Malformed',
+ 'errorMessage' => 'The specified account is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidNameSpace.Malformed',
+ 'errorMessage' => 'The specified namespace is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidKey.Malformed',
+ 'errorMessage' => 'The specified key is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidKey.ExceedsMaximum',
+ 'errorMessage' => 'The size of the key cannot exceed 512 bytes.',
+ ],
+ [
+ 'errorCode' => 'InvalidValue.ExceedsMaximum',
+ 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'InvalidKey.ExceedsCapacity',
+ 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidParameters',
+ 'errorMessage' => 'The specified authentication parameters are invalid.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidTime',
+ 'errorMessage' => 'The specified authentication time is invalid.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidToken',
+ 'errorMessage' => 'Token authentication failed.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidResource',
+ 'errorMessage' => 'Resource authentication failed.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'InvalidAccount.NotFound',
+ 'errorMessage' => 'The specified account does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidNameSpace.NotFound',
+ 'errorMessage' => 'The specified namespace does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidKey.NotFound',
+ 'errorMessage' => 'The specified key does not exist.',
+ ],
+ ],
+ 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.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C。\\"\\n}","type":"json"}]',
+ 'title' => 'DeleteDcdnKvNamespace',
+ ],
+ 'DescribeDcdnKvAccount' => [
+ 'summary' => 'Queries the information about the key-value pairs that belong to your account.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '121116',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ [
+ [
+ '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.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'DescribeDcdnKvAccountStatus' => [
+ 'summary' => 'Queries the KV status of an account.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '138504',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ 'parameters' => [],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ [
+ [
+ '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.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Status\\": \\"online\\",\\n \\"RequestId\\": \\"5C1E43DC-9E51-4771-82C0-7D5ECEB547A1\\"\\n}","type":"json"}]',
+ 'title' => 'DescribeDcdnKvAccountStatus',
+ ],
+ 'GetDcdnKv' => [
+ 'summary' => 'Queries the value of a key in a key-value pair.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ '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',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ [
+ [
+ '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.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Value\\": \\"value1\\",\\n \\"RequestId\\": \\"D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C\\"\\n}","type":"json"}]',
+ 'title' => 'GetDcdnKv',
+ ],
+ 'ListDcdnKv' => [
+ 'summary' => 'Traverses the values of keys in a namespace.',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ '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-',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid.Parameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidAccount.Malformed',
+ 'errorMessage' => 'The specified account is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidNameSpace.Malformed',
+ 'errorMessage' => 'The specified namespace is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidKey.Malformed',
+ 'errorMessage' => 'The specified key is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidKey.ExceedsMaximum',
+ 'errorMessage' => 'The size of the key cannot exceed 512 bytes.',
+ ],
+ [
+ 'errorCode' => 'InvalidValue.ExceedsMaximum',
+ 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'InvalidKey.ExceedsCapacity',
+ 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidParameters',
+ 'errorMessage' => 'The specified authentication parameters are invalid.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidTime',
+ 'errorMessage' => 'The specified authentication time is invalid.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidToken',
+ 'errorMessage' => 'Token authentication failed.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidResource',
+ 'errorMessage' => 'Resource authentication failed.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'InvalidAccount.NotFound',
+ 'errorMessage' => 'The specified account does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidNameSpace.NotFound',
+ 'errorMessage' => 'The specified namespace does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidKey.NotFound',
+ 'errorMessage' => 'The specified key does not exist.',
+ ],
+ ],
+ 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.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'PutDcdnKv' => [
+ 'summary' => 'Sets key-value pairs in a namespace.',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '121110',
+ '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 key. The key can be up to 512 characters in length, and cannot contain spaces.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'key1',
+ ],
+ ],
+ [
+ 'name' => 'Value',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'Expiration',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The time when the key expires.Example: "1690081381".',
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '1690081381',
+ ],
+ ],
+ [
+ 'name' => 'ExpirationTtl',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The time when the key expires.Example: "3600".',
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '3600',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ [
+ [
+ '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.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Length\\": 5,\\n \\"Value\\": \\"value1\\",\\n \\"RequestId\\": \\"96ED3127-EC7A-57C5-AFA6-A689B24B2530\\"\\n}","type":"json"}]',
+ 'title' => 'PutDcdnKv',
+ ],
+ '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '121108',
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'D61E4801-EAFF-4A63-AAE1-FBF6CE1CFD1C',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid.Parameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidAccount.Malformed',
+ 'errorMessage' => 'The specified account is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidNameSpace.Malformed',
+ 'errorMessage' => 'The specified namespace is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidKey.Malformed',
+ 'errorMessage' => 'The specified key is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidKey.ExceedsMaximum',
+ 'errorMessage' => 'The size of the key cannot exceed 512 bytes.',
+ ],
+ [
+ 'errorCode' => 'InvalidValue.ExceedsMaximum',
+ 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'InvalidKey.ExceedsCapacity',
+ 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidParameters',
+ 'errorMessage' => 'The specified authentication parameters are invalid.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidTime',
+ 'errorMessage' => 'The specified authentication time is invalid.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidToken',
+ 'errorMessage' => 'Token authentication failed.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidResource',
+ 'errorMessage' => 'Resource authentication failed.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'InvalidAccount.NotFound',
+ 'errorMessage' => 'The specified account does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidNameSpace.NotFound',
+ 'errorMessage' => 'The specified namespace does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidKey.NotFound',
+ 'errorMessage' => 'The specified key does not exist.',
+ ],
+ ],
+ 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.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '194812',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'Invalid.Parameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidAccount.Malformed',
+ 'errorMessage' => 'The specified account is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidNameSpace.Malformed',
+ 'errorMessage' => 'The specified namespace is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidKey.Malformed',
+ 'errorMessage' => 'The specified key is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidKey.ExceedsMaximum',
+ 'errorMessage' => 'The size of the key cannot exceed 512 bytes.',
+ ],
+ [
+ 'errorCode' => 'InvalidValue.ExceedsMaximum',
+ 'errorMessage' => 'The size of the value cannot exceed 2,000,000 bytes.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'InvalidKey.ExceedsCapacity',
+ 'errorMessage' => 'The maximum capacity of a single namespace cannot exceed 1 GB.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidParameters',
+ 'errorMessage' => 'The specified authentication parameters are invalid.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidTime',
+ 'errorMessage' => 'The specified authentication time is invalid.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidToken',
+ 'errorMessage' => 'Token authentication failed.',
+ ],
+ [
+ 'errorCode' => 'Unauthorized.InvalidResource',
+ 'errorMessage' => 'Resource authentication failed.',
+ ],
+ ],
+ [
+ [
+ 'errorCode' => 'InvalidAccount.NotFound',
+ 'errorMessage' => 'The specified account does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidNameSpace.NotFound',
+ 'errorMessage' => 'The specified namespace does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidKey.NotFound',
+ 'errorMessage' => 'The specified key does not exist.',
+ ],
+ ],
+ 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.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Data',
+ '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',
+ ],
+ ],
+ [
+ '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',
+ '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',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ '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' => '',
+ ],
+ ],
+ ],
+ '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' => ' ',
+ ],
+ '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ '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',
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'Lang',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The language. Valid values: en and zh. Default value: en'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'zh',
+ 'enum' => [
+ 'zh',
+ 'en',
+ ],
+ ],
+ ],
+ ],
+ '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",
+ '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",
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Language',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The language. Valid values: zh, en, and jp.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'zh',
+ 'enum' => [
+ 'zh',
+ 'en',
+ 'jp',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'BFFCDFAD-DACC-484E-9BE6-0AF3B3A0DD23',
+ ],
+ 'InfoList' => [
+ 'type' => 'object',
+ 'itemNode' => true,
+ 'properties' => [
+ 'InfoItem' => [
+ 'description' => 'The information about the country or region.'."\n",
+ '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",
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'You must specify ArgValue.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ ],
+ ],
+ '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",
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111544',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZA9EPX',
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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",
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnUserConfigs' => [
+ 'summary' => 'Queries the configurations of security features.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111557',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZ2GXIC',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidArgValue.Malformed',
+ 'errorMessage' => 'The specified ArgValue is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidArgName.ValueNotSupported',
+ 'errorMessage' => '%s',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn2JMMUY',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ ],
+ 406 => [
+ [
+ 'errorCode' => 'InvalidKey.QuotaFull',
+ 'errorMessage' => 'The maximum number of keys is exceeded.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'An internal error occurred; please try again later.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ '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&amp;OSSAccessKeyId=xxxxxxxxxx&amp;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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '176189',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnSU2QP6',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'IPList',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'StartTime',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ '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',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ ],
+ 406 => [
+ [
+ 'errorCode' => 'InvalidKey.QuotaFull',
+ 'errorMessage' => 'The maximum number of keys is exceeded.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'An internal error occurred; please try again later.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'IPList',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'OperationType',
+ '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',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'BlockInterval',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'UpdateType',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvaildParameter',
+ 'errorMessage' => 'The specified parameters are invalid.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => 'OperationDeniedAccount',
+ 'errorMessage' => 'You are not authorized to perform this operation.',
+ ],
+ ],
+ 406 => [
+ [
+ 'errorCode' => 'InvalidKey.QuotaFull',
+ 'errorMessage' => 'The maximum number of keys is exceeded.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn33QGRH',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Lang',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The access language. Default value: en. Valid values:'."\n"
+ ."\n"
+ .'* **en**: English'."\n"
+ .'* **zh**: Chinese'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'en',
+ 'enum' => [
+ 'zh',
+ 'en',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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\\"}]',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ '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",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnDomainCcActivityLog' => [
+ 'summary' => 'Queries logs of rate limiting.',
+ '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 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',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'TriggerObject',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The trigger of rate limiting by which you want to query data.'."\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"
+ ."\n"
+ .'If you leave this parameter empty, events that triggered rate limiting based on all rules are queried.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '10.10.10.10',
+ ],
+ ],
+ [
+ 'name' => 'RuleName',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ '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',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingTimeParameter',
+ 'errorMessage' => 'The StartTime and EndTime must be both specified.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.Malformed',
+ 'errorMessage' => 'The specified StartTime parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Malformed',
+ 'errorMessage' => 'The specified EndTime is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidEndTime.Mismatch',
+ 'errorMessage' => 'The specified EndTime is earlier than the StartTime.',
+ ],
+ [
+ 'errorCode' => 'InvalidStartTime.ValueNotSupported',
+ 'errorMessage' => 'The specified StartTime is invalid.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"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"
+ ."\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"
+ ."\n"
+ .'* You can query data collected over the last 30 days.'."\n"
+ ."\n"
+ .'* You can call the RefreshObjectCaches operation up to 50 times per second per account.'."\n",
+ 'requestParamsDescription' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnSecSpecInfo' => [
+ 'summary' => 'Queries the version of secure Dynamic Route for CDN (DCDN) and the security rules.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidVersion.NotFound',
+ 'errorMessage' => 'The version does not exist.',
+ ],
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ ],
+ ],
+ '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",
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ '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' => 'TraceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The ID of the trace.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '800e749616838513398137319e',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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==',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'An internal error occurred; please try again later.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"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',
+ ],
+ '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F2542B96-B535-5BF9-8EEE-1CF11B20CCA8\\",\\n \\"AppKey\\": \\"examp1eapp_key_xxxiuMWTX4Gw\\"\\n}","type":"json"}]',
+ 'title' => 'DescribeDcdnWafBotAppKey',
+ 'parameters' => [],
+ ],
+ 'DescribeDdosAllEventList' => [
+ 'summary' => 'Queries attack events.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ 'parameters' => [
+ [
+ '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.'."\n",
+ '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. 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',
+ ],
+ ],
+ [
+ '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' => 'PageNumber',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ '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',
+ ],
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'An internal error occurred; please try again later.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '143162',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZA9EPX',
+ ],
+ '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnO1ZP9O',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'An internal error occurred; please try again later.',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Edition\\": \\"insurance\\",\\n \\"RequestId\\": \\"DEA8E7BE-33C6-56F5-AC56-74D50547CF34\\",\\n \\"Enable\\": \\"on\\",\\n \\"ProtectedArea\\": \\"global\\",\\n \\"BandwidthLimit\\": \\"40Gbps\\",\\n \\"QpsLimit\\": \\"100\\",\\n \\"SpecInfos\\": [\\n {\\n \\"Rule\\": \\"version_defense_num\\",\\n \\"Configs\\": [\\n {\\n \\"Value\\": \\"1\\",\\n \\"Config\\": \\"total_defense_num\\",\\n \\"Expr\\": \\"equal\\"\\n }\\n ]\\n }\\n ],\\n \\"IsSpecialPort\\": \\"no\\"\\n}","type":"json"}]',
+ 'title' => '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'RegionId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The region where WAF is enabled.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn-hangzhou',
+ 'enum' => [
+ 'cn-hangzhou',
+ 'ap-southeast-1',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'DomainName',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'ResourceGroupId',
+ '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' => '/',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'InvalidDomainName',
+ 'errorMessage' => 'The specified DomainName is invalid.',
+ ],
+ ],
+ 404 => [
+ [
+ 'errorCode' => 'InvalidDomain.NotFound',
+ 'errorMessage' => 'The specified domain does not exist.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnV3G3FZ',
+ 'FEATUREdcdnSU2QP6',
+ ],
+ ],
+ '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' => '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' => '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 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 \\"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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnV3YEJ8',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'PolicyId',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the protection policy.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => true,
+ 'example' => '1000001',
+ ],
+ ],
+ [
+ '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"}',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'An internal error occurred; please try again later.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ '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' => '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' => 'RuleName',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The new name of the protection rule.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test',
+ ],
+ ],
+ [
+ '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\\"}}\'',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'CB1A380B-09F0-41BB-3C2B-72F8FD6DA2FE',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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",
+ ],
+ 'BatchModifyDcdnWafRules' => [
+ 'summary' => 'Modifies multiple Web Application Firewall (WAF) protection rules. Only Bot management rules can be modified.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnV3YEJ8',
+ ],
+ ],
+ '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"}]',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'CB1A380B-09F0-41BB-XXXX-72F8FD6DA2FE',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 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-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.',
+ ],
+ 'BatchSetDcdnWafDomainConfigs' => [
+ 'summary' => 'Sets the protection status of multiple domain names at a time.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZ2GXIC',
+ ],
+ ],
+ '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' => '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'CB1A380B-09F0-41BB-3C82-72F8FD6DA2FE',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'An internal error occurred; please try again later.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ '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' => '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' => 'PolicyStatus',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The new status of the protection policy. Valid values:'."\n"
+ ."\n"
+ .'* **on**'."\n"
+ .'* **off**'."\n"
+ ."\n"
+ .'> You must specify PolicyName or PolicyStatus.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'on',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'CB1A380B-09F0-41BB-C730-72F8FD6DA2FE',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 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-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",
+ ],
+ 'ModifyDcdnWafPolicyDomains' => [
+ 'summary' => 'Changes the accelerated domain names that are bound to a protection policy.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ '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' => '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' => 'BindDomains',
+ 'in' => 'formData',
+ '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"
+ ."\n"
+ .'> You can configure either **BindDomains** or **UnbindDomains**.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'example.com,example2.com',
+ ],
+ ],
+ [
+ 'name' => 'UnbindDomains',
+ 'in' => 'formData',
+ '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",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'example3.com',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'CB1A380B-09F0-41BB-2B35-72F8FD6DA2FE',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ [
+ 'errorCode' => 'Policy.NotExist',
+ 'errorMessage' => 'The specified policy does not exist.',
+ ],
+ [
+ 'errorCode' => 'DomainBindAndUnbind.Overlapped',
+ 'errorMessage' => 'The specified bind and unbind domain names overlap.',
+ ],
+ [
+ 'errorCode' => 'Domain.Bound.DefaultAndCustom',
+ 'errorMessage' => 'The specified domain name is bound to both default and custom policies.',
+ ],
+ [
+ 'errorCode' => 'DefenseScene.MultiPolicies.NotSupport',
+ 'errorMessage' => 'The specified defense scene does not support multiple policies bound to the same domain name.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => '%s.NotSupport',
+ 'errorMessage' => 'The specified resource type %s is not supported.',
+ ],
+ [
+ 'errorCode' => '%s.OverQuota',
+ 'errorMessage' => 'The quantity of %s exceeds the quota.',
+ ],
+ ],
+ 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' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '194960',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZ2GXIC',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '5CC228B4-7A67-4016-9C9F-4A4133494A91',
+ ],
+ ],
+ '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnSU2QP6',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'CB1A380B-09F0-41BB-B084-72F8FD6DA2FE',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 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-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",
+ ],
+ 'BatchDeleteDcdnWafRules' => [
+ 'summary' => 'Deletes multiple Web Application Firewall (WAF) protection rules at a time.',
+ '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 (,).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => '20000001,20000002',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => 'CB1A380B-09F0-41BB-802B-72F8FD6DA2FE',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ ],
+ 403 => [
+ [
+ 'errorCode' => '%s.NotSupport',
+ 'errorMessage' => 'The specified resource type %s is not supported.',
+ ],
+ [
+ 'errorCode' => '%s.OverQuota',
+ 'errorMessage' => 'The quantity of %s exceeds the quota.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'An internal error occurred; please try again later.',
+ ],
+ ],
+ ],
+ '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' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ 'parameters' => [
+ [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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",
+ ],
+ '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '133321',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnSU2QP6',
+ ],
+ ],
+ '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',
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified 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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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. |',
+ ],
+ 'DescribeDcdnWafPolicy' => [
+ 'summary' => 'Queries the details of a protection policy.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ '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' => '1000001',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ ],
+ ],
+ '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' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnBQ0J3E',
+ ],
+ ],
+ 'parameters' => [
+ [
+ '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}}',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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|',
+ ],
+ 'ModifyDcdnWafGroup' => [
+ 'summary' => 'Modifies a custom Web Application Firewall (WAF) rule group.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '162579',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnL8HX1L',
+ ],
+ ],
+ '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\\"}',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'An internal error occurred; please try again later.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"79B78B62-9006-5D6A-9DAB-303E134CD7AA\\"\\n}","type":"json"}]',
+ 'title' => 'ModifyDcdnWafGroup',
+ ],
+ 'DescribeDcdnWafRule' => [
+ 'summary' => 'Queries the details of a specified protection rule.',
+ 'methods' => [
+ 'get',
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'RuleId',
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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}}',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'DefenseScene',
+ '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",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'custom_acl',
+ ],
+ ],
+ [
+ 'name' => 'DomainNameLike',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The protected domain name. Fuzzy search is supported.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'example.com',
+ ],
+ ],
+ [
+ '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',
+ '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',
+ ],
+ ],
+ ],
+ '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,
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidParameter',
+ 'errorMessage' => 'The specified parameter is invalid.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'DefenseScenes',
+ '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.',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'custom_acl',
+ ],
+ ],
+ [
+ 'name' => 'Language',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The language of the returned information. Valid values:'."\n"
+ ."\n"
+ .'* en: English'."\n"
+ .'* cn: Simplified Chinese'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'cn',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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' => '',
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ '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",
+ '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' => [],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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",
+ ],
+ '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',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '133730',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnZA9EPX',
+ ],
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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' => ' ',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ ],
+ 'DescribeDcdnWafUsageData' => [
+ 'summary' => 'The number of used SeCUs.',
+ '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 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',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The end of the time range to query. Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.'."\n"
+ ."\n"
+ .'> The end time must be later than the start time.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2018-10-01T16:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'Interval',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The number of used SeCUs.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '300',
+ ],
+ ],
+ [
+ 'name' => 'SplitBy',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The WAF information about the accelerated domain name.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'domain',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '162567',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnL8HX1L',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Language',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'QueryArgs',
+ '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"}',
+ ],
+ ],
+ [
+ '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' => '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',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ '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' => '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' => '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' => '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' => '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' => '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',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'readAndWrite',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnSU2QP6',
+ ],
+ ],
+ 'parameters' => [
+ [
+ '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.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test',
+ ],
+ ],
+ [
+ 'name' => 'TemplateId',
+ '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',
+ ],
+ ],
+ [
+ 'name' => 'Subscribe',
+ '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' => [],
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 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.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"675F4820-400E-5929-8B03-2C031A5D5391\\",\\n \\"Id\\": 30000166\\n}","type":"json"}]',
+ 'title' => 'CreateDcdnWafGroup',
+ ],
+ 'DeleteDcdnWafGroup' => [
+ 'summary' => 'Deletes a custom WAF rule group.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnSU2QP6',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Id',
+ 'in' => 'formData',
+ 'schema' => [
+ 'description' => 'The ID of the custom WAF rule group.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '30000135',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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.',
+ ],
+ ],
+ 500 => [
+ [
+ 'errorCode' => 'InternalError',
+ 'errorMessage' => 'An internal error occurred; please try again later.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ '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"}',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 404 => [
+ [
+ 'errorCode' => 'InvalidDomain.NotFound',
+ 'errorMessage' => 'The domain does not exist, or it does not belong to you.',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'none',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ '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",
+ ],
+ ],
+ [
+ 'name' => 'Available',
+ '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',
+ ],
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'MissingParameter',
+ 'errorMessage' => 'The specified value of parameter "DomainName" can not be empty.',
+ ],
+ [
+ 'errorCode' => 'InvalidDomain.NotFound',
+ 'errorMessage' => 'The domain provided is offline or not exist.',
+ ],
+ [
+ 'errorCode' => 'IllegalOperation',
+ 'errorMessage' => 'Illegal domain operate is not permitted.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ '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",
+ ],
+ 'DescribeDcdnIpInfo' => [
+ 'summary' => 'Queries whether an IP address belongs to a POP.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '111531',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdn33QGRH',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ '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",
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'InvalidIP.ValueNotSupported',
+ 'errorMessage' => 'The specified value of parameter IP is not supported.',
+ ],
+ ],
+ ],
+ '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' => ' ',
+ ],
+ 'DescribeDcdnL2Vips' => [
+ 'summary' => 'Queries the origin CIDR blocks by domain name. The CIDR blocks include IPv4 and IPv6 CIDR blocks.',
+ 'methods' => [
+ 'post',
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnGMYWU5',
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ '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',
+ ],
+ 'DescribeDcdnL2Ips' => [
+ 'summary' => 'Queries CIDR blocks of Dynamic Content Delivery Network (DCDN) points of presence (POPs).',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '162185',
+ 'abilityTreeNodes' => [
+ 'FEATUREdcdnL8HX1L',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'publicInformation',
+ ],
+ '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',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ [
+ 'errorCode' => 'UserWithoutConfLabel',
+ 'errorMessage' => 'the user has not configured the required label information, such as L2IpGroup.',
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ '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' => [],
+ ],
+ ],
+ 'endpoints' => [
+ [
+ 'regionId' => 'ap-northeast-1',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-northeast-2-pop',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-south-1',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-southeast-1',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-southeast-2',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-southeast-3',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-southeast-5',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-beijing',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-beijing-finance-1',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-beijing-finance-pop',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-beijing-gov-1',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-beijing-nu16-b01',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-chengdu',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-edge-1',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-fujian',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-haidian-cm12-c01',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-hangzhou',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-hangzhou-bj-b01',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-hangzhou-finance',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-hangzhou-internal-prod-1',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-hangzhou-internal-test-1',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-hangzhou-internal-test-2',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-hangzhou-internal-test-3',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-hangzhou-test-306',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-hongkong',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-hongkong-finance-pop',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-huhehaote',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-north-2-gov-1',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-qingdao',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-qingdao-nebula',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shanghai',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shanghai-et15-b01',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shanghai-et2-b01',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shanghai-finance-1',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shanghai-inner',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shanghai-internal-test-1',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shenzhen',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shenzhen-finance-1',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shenzhen-inner',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shenzhen-st4-d01',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shenzhen-su18-b01',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-wuhan',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-yushanfang',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-zhangbei-na61-b01',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-zhangjiakou',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-zhangjiakou-na62-a01',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-zhengzhou-nebula-1',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'eu-central-1',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'eu-west-1',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'eu-west-1-oxs',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'me-east-1',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'rus-west-1-pop',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'us-east-1',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'us-west-1',
+ 'endpoint' => 'dcdn.aliyuncs.com',
+ ],
+ ],
+];