diff options
Diffstat (limited to 'data/en_us/waf-openapi/2021-10-01/api-docs.php')
| -rw-r--r-- | data/en_us/waf-openapi/2021-10-01/api-docs.php | 41500 |
1 files changed, 41500 insertions, 0 deletions
diff --git a/data/en_us/waf-openapi/2021-10-01/api-docs.php b/data/en_us/waf-openapi/2021-10-01/api-docs.php new file mode 100644 index 0000000..7d08d66 --- /dev/null +++ b/data/en_us/waf-openapi/2021-10-01/api-docs.php @@ -0,0 +1,41500 @@ +<?php return [ + 'version' => '1.0', + 'info' => [ + 'style' => 'RPC', + 'product' => 'waf-openapi', + 'version' => '2021-10-01', + ], + 'directories' => [ + [ + 'id' => 395372, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreatePostpaidInstance', + 'DescribeInstance', + 'ReleaseInstance', + ], + ], + [ + 'id' => 395376, + 'title' => null, + 'type' => 'directory', + 'children' => [ + [ + 'id' => 395377, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DescribeAbnormalCloudResources', + 'ReCreateCloudResource', + 'SyncProductInstance', + 'DescribeCloudResources', + 'DescribeProductInstances', + 'DescribeResourceSupportRegions', + 'DescribeResourceRegionId', + 'DescribeResourceInstanceCerts', + 'CreateCloudResource', + 'ModifyCloudResource', + 'DeleteCloudResource', + 'DescribeCloudResourceAccessedPorts', + 'DescribeCloudResourceAccessPortDetails', + 'ModifyCloudResourceCert', + 'DescribeCloudResourceList', + 'ModifyCloudResourceDefaultCert', + 'DeleteCloudResourceExtensionCert', + 'CreateCloudResourceExtensionCert', + ], + ], + [ + 'id' => 395396, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DescribeDomainUsedPorts', + 'CreateDomain', + 'ModifyDomain', + 'DeleteDomain', + 'DescribeDomains', + 'DescribeDomainDetail', + 'DescribePunishedDomains', + 'ModifyDomainPunishStatus', + 'DescribeCertDetail', + 'DescribeCerts', + 'DescribeDomainDNSRecord', + 'DescribeWafSourceIpSegment', + 'DescribeResourcePort', + 'DescribeDDoSStatus', + 'CreateSM2Cert', + 'DescribeCnameCount', + 'DescribeDefaultHttps', + 'ModifyDefaultHttps', + 'CreateCerts', + 'VerifyDomainOwner', + 'DescribeVerifyContent', + 'ModifyDomainCert', + ], + ], + [ + 'id' => 395419, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DescribeHybridCloudResources', + 'DescribeHybridCloudProtectableCount', + ], + ], + ], + ], + [ + 'id' => 395422, + 'title' => null, + 'type' => 'directory', + 'children' => [ + [ + 'id' => 395423, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateDefenseResource', + 'DeleteDefenseResource', + 'CreateDefenseResourceGroup', + 'ModifyDefenseResourceGroup', + 'DeleteDefenseResourceGroup', + 'DescribeDefenseResourceGroup', + 'DescribeDefenseResourceGroups', + 'DescribeDefenseResourceGroupNames', + 'DescribeDefenseResource', + 'DescribeDefenseResources', + 'DescribeDefenseResourceNames', + 'DescribeDefenseResourceOwnerUid', + 'ModifyDefenseResourceXff', + 'DescribePauseProtectionStatus', + 'DescribeDefenseGroupValidResources', + ], + ], + [ + 'id' => 395439, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateDefenseTemplate', + 'ModifyDefenseTemplate', + 'ModifyDefenseTemplateStatus', + 'CopyDefenseTemplate', + 'DeleteDefenseTemplate', + 'DescribeDefenseTemplate', + 'DescribeDefenseTemplates', + 'ModifyTemplateResources', + 'DescribeTemplateResources', + 'DescribeTemplateResourceCount', + 'DescribeDefenseTemplateValidResources', + 'DescribeDefenseTemplateValidGroups', + 'DescribeDefenseResourceTemplates', + 'CreateDefenseRule', + 'ModifyDefenseRule', + 'ModifyDefenseRuleStatus', + 'DeleteDefenseRule', + 'DescribeDefenseRules', + 'DescribeDefenseRule', + 'ModifyDefenseRuleCache', + 'DeleteDefenseRuleBlockIp', + 'DescribeRelatedDefenseRules', + 'DescribeIpAbroadCountryInfos', + 'DescribeRuleGroups', + 'ModifyDefenseSceneConfig', + 'DescribeDefenseSceneConfig', + 'DescribeDefenseRuleStatistics', + 'DescribeBaseSystemRules', + 'DescribeCustomBaseRuleCompileResult', + 'DescribeBotRuleLabels', + 'DescribeBotAppKey', + ], + ], + [ + 'id' => 395471, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateMajorProtectionBlackIp', + 'ModifyMajorProtectionBlackIp', + 'DeleteMajorProtectionBlackIp', + 'ClearMajorProtectionBlackIp', + 'DescribeMajorProtectionBlackIps', + ], + ], + [ + 'id' => 395477, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'AddAddress', + 'DescribeAddresses', + 'DeleteAddress', + 'ClearAddress', + ], + ], + ], + ], + [ + 'id' => 395482, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DeleteApisecAbnormals', + 'ModifyApisecAbnormals', + 'DescribeApisecAssetTrend', + 'DescribeApisecAbnormalDomainStatistic', + 'DescribeApisecEventDomainStatistic', + 'DescribeApisecSensitiveDomainStatistic', + 'ModifyApisecEvents', + 'DeleteApisecEvents', + 'ModifyApisecLogDeliveryStatus', + 'CreateApiExport', + 'DescribeApiExports', + 'DescribeApisecAbnormals', + 'DescribeApisecApiResources', + 'ModifyApisecStatus', + 'ModifyApisecModuleStatus', + 'ModifyApisecApiResource', + 'DescribeUserEventType', + 'DescribeUserEventTrend', + 'DescribeUserAsset', + 'DescribeUserApiRequest', + 'DescribeUserAbnormalType', + 'DescribeUserAbnormalTrend', + 'DescribeSensitiveStatistic', + 'DescribeSensitiveRequests', + 'DescribeSensitiveRequestLog', + 'DescribeSensitiveOutboundTrend', + 'DescribeSensitiveOutboundStatistic', + 'DescribeSensitiveOutboundDistribution', + 'DescribeSensitiveDetectionResult', + 'DescribeSensitiveApiStatistic', + 'DescribeFreeUserEvents', + 'DescribeFreeUserEventTypes', + 'DescribeFreeUserEventCount', + 'DescribeFreeUserAssetCount', + 'DescribeApisecUserOperations', + 'DescribeApisecSuggestions', + 'DescribeApisecStatistics', + 'DescribeApisecRules', + 'DescribeApisecProtectionResources', + 'DescribeApisecProtectionGroups', + 'DescribeApisecMatchedHosts', + 'DescribeApisecEvents', + 'DescribeApisecEventDetail', + 'DescribeApisecLogDeliveries', + 'DescribeApisecSlsLogStores', + 'DescribeApisecSlsProjects', + 'ModifyApisecLogDelivery', + 'DescribeApisecExamples', + ], + ], + [ + 'id' => 395531, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DescribeNetworkFlowTimeSeriesMetric', + 'DescribeSecurityEventTopNMetric', + 'DescribeSecurityEventTimeSeriesMetric', + 'DescribeSecurityEventLogs', + 'DescribeNetworkFlowTopNMetric', + 'DescribeFlowChart', + 'DescribePeakTrend', + 'DescribeResponseCodeTrendGraph', + 'DescribeVisitUas', + 'DescribeVisitTopIp', + 'DescribeRuleHitsTopResource', + 'DescribeRuleHitsTopRuleId', + 'DescribeRuleHitsTopTuleType', + 'DescribeRuleHitsTopUrl', + 'DescribeRuleHitsTopClientIp', + 'DescribeFlowTopResource', + 'DescribeRuleHitsTopUa', + 'DescribeFlowTopUrl', + 'DescribeThreatEventDetail', + 'DescribeThreatEvent', + 'DescribeThreatEventTopMetric', + 'DescribeAlarmList', + 'DescribeAlarmBanner', + ], + ], + [ + 'id' => 395555, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DescribeUserLogFieldConfig', + 'ModifyUserLogFieldConfig', + 'DescribeCommonLogFields', + 'ModifyUserWafLogStatus', + 'DescribeUserWafLogStatus', + 'DescribeUserSlsLogRegions', + 'DescribeSlsAuthStatus', + 'DescribeSlsLogStoreStatus', + 'DescribeSlsLogStore', + 'ModifyResourceLogStatus', + 'DescribeResourceLogStatus', + 'CreateLogDeliveryConfig', + 'ModifyLogDeliveryConfig', + 'DeleteLogDeliveryConfig', + 'DescribeLogDeliveryConfig', + 'DescribeLogDeliveryConfigs', + 'ModifyResourceLogFieldConfig', + 'DescribeResourceLogFieldConfig', + 'ModifyResourceLogDeliveryStatus', + 'DescribeResourceLogDeliveryStatus', + ], + ], + [ + 'id' => 395576, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DescribeHybridCloudClusterServers', + 'DescribeHybridCloudBasicMonitor', + 'CreateHybridCloudCluster', + 'DescribeHybridCloudServerRegions', + 'DescribeHybridCloudUnassignedMachines', + 'ModifyHybridCloudClusterBypassStatus', + 'DescribeHybridCloudUser', + 'DescribeHybridCloudGroups', + 'CreateHybridCloudGroup', + 'DescribeHybridCloudClusterRule', + 'DescribeHybridCloudClusters', + 'ModifyHybridCloudClusterRule', + 'ModifyHybridCloudGroup', + 'ModifyHybridCloudGroupExpansionServer', + 'ModifyHybridCloudGroupShrinkServer', + 'ModifyHybridCloudSdkPullinStatus', + 'ModifyHybridCloudServer', + 'DeleteHybridCloudClusterRule', + 'CreateHybridCloudClusterRule', + 'DescribeHybridCloudClusterRules', + 'DescribeHybridCloudProcessMonitor', + 'DescribeHybridCloudResourceDetail', + 'DescribeHybridCloudSdkServers', + 'DescribeHybridCloudSupportRegions', + 'DescribeHybridCloudUnsupportPorts', + 'DeleteHybridCloudGroup', + 'ModifyHybridCloudCluster', + ], + ], + [ + 'id' => 395604, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'CreateMemberAccounts', + 'ModifyMemberAccount', + 'DeleteMemberAccount', + 'DescribeAccountDelegatedStatus', + 'DescribeMemberAccounts', + ], + ], + [ + 'id' => 395610, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'ChangeResourceGroup', + ], + ], + [ + 'id' => 395612, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'ListTagKeys', + 'UntagResources', + 'ListTagResources', + 'ListTagValues', + 'TagResources', + ], + ], + [ + 'id' => 395618, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'DescribeChargeResult', + 'DescribeChargeModule', + ], + ], + [ + 'id' => 395621, + 'title' => null, + 'type' => 'directory', + 'children' => [ + 'ModifyPauseProtectionStatus', + 'CreatePocFunction', + 'DescribePocFunctions', + 'DescribeRoleAuthStatus', + 'InitializeWafOperationRole', + ], + ], + ], + 'components' => [ + 'schemas' => [], + ], + 'apis' => [ + 'CreatePostpaidInstance' => [ + 'summary' => 'Creates a pay-as-you-go Web Application Firewall (WAF) 3.0 instance.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '166793', + 'abilityTreeNodes' => [ + 'FEATUREwafHU8RSD', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm4gh****wela', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '73A4E786-8235-50C0-9631-87C8****4A36', + ], + 'InstanceId' => [ + 'title' => '实例ID', + 'description' => 'The ID of the WAF instance.'."\n", + 'type' => 'string', + 'example' => 'waf_v2_public_cn-x0r****gr1i', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"73A4E786-8235-50C0-9631-87C8****4A36\\",\\n \\"InstanceId\\": \\"waf_v2_public_cn-x0r****gr1i\\"\\n}","type":"json"}]', + 'title' => 'CreatePostpaidInstance', + ], + 'DescribeInstance' => [ + 'summary' => 'Queries the details of a Web Application Firewall (WAF) instance within the current Alibaba Cloud account.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '107334', + 'abilityTreeNodes' => [ + 'FEATUREwafHU8RSD', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => 'The status of the WAF instance. Valid values:'."\n" + ."\n" + .'* **1:** The WAF instance is in a normal state.'."\n" + .'* **2:** The WAF instance has expired.'."\n" + .'* **3:** The WAF instance has been released.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'Details' => [ + 'title' => '实例详情', + 'description' => 'The details of the WAF instance.'."\n", + 'type' => 'object', + 'properties' => [ + 'DefenseObjectInGroupMaxCount' => [ + 'title' => '一个防护组内最大包含对象数量', + 'description' => 'The maximum number of protected objects that can be included in a protected object group.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '100', + ], + 'Tamperproof' => [ + 'description' => 'Indicates whether the website tamper-proofing module is supported. Valid values:'."\n" + ."\n" + .'* **true:** The website tamper-proofing module is supported.'."\n" + .'* **false:** The website tamper-proofing module is not supported.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'BotApp' => [ + 'description' => 'Indicates whether bot management for app protection is supported. Valid values:'."\n" + ."\n" + .'* **true:** Bot management for app protection is supported.'."\n" + .'* **false:** Bot management for app protection is not supported.'."\n", + 'type' => 'string', + 'example' => 'true', + ], + 'IpBlacklistRuleInTemplateMaxCount' => [ + 'title' => 'IP黑名单模板包含规则数', + 'description' => 'The maximum number of rules that can be included in an IP address blacklist rule template.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '100', + ], + 'WhitelistRuleCondition' => [ + 'title' => '白名单规则匹配条件', + 'description' => 'The match fields that can be used in a whitelist rule. For more information, see **Match condition parameters** in the "**Parameters of whitelist rules (whitelist)**" section in the [CreateDefenseRule](~~CreateDefenseRule~~) topic.'."\n", + 'type' => 'string', + 'example' => 'URL', + ], + 'CustomRuleCondition' => [ + 'title' => '自定义规则匹配条件', + 'description' => 'The match conditions that can be used in a custom rule. For more information, see **Match condition parameters** in the "**Parameters of custom rules (custom_acl)**" section in the [CreateDefenseRule](~~CreateDefenseRule~~) topic.'."\n", + 'type' => 'string', + 'example' => 'URL', + ], + 'CustomResponse' => [ + 'title' => '支持自定义响应', + 'description' => 'Indicates whether the custom response module is supported. Valid values:'."\n" + ."\n" + .'* **true:** The custom response module is supported.'."\n" + .'* **false:** The custom response module is not supported.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'HttpPorts' => [ + 'title' => 'HTTP端口可用范围', + 'description' => 'The HTTP port range that is supported. For more information, see [View supported ports](~~385578~~).'."\n", + 'type' => 'string', + 'example' => '80', + ], + 'Gslb' => [ + 'title' => 'Gslb', + 'description' => 'Indicates whether global server load balancing (GSLB) is supported. Valid values:'."\n" + ."\n" + .'* **true:** GSLB is supported.'."\n" + .'* **false:** GSLB is not supported.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'Ipv6' => [ + 'title' => 'Ipv6', + 'description' => 'Indicates whether IPv6 is supported. Valid values:'."\n" + ."\n" + .'* **true:** IPv6 is supported.'."\n" + .'* **false:** IPv6 is not supported.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'Bot' => [ + 'description' => 'Indicates whether the bot management module is supported. Valid values:'."\n" + ."\n" + .'* **true:** The bot management module is supported.'."\n" + .'* **false:** The bot management module is not supported.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'CustomRule' => [ + 'title' => '支持自定义规则', + 'description' => 'Indicates whether the custom rule module is supported. Valid values:'."\n" + ."\n" + .'* **true:** The custom rule module is supported.'."\n" + .'* **false:** The custom rule module is not supported.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'IpBlacklist' => [ + 'title' => '支持IP黑名单', + 'description' => 'Indicates whether the IP address blacklist module is supported. Valid values:'."\n" + ."\n" + .'* **true:** The IP address blacklist module is supported.'."\n" + .'* **false:** The IP address blacklist module is not supported.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'CnameResourceMaxCount' => [ + 'title' => '最大可添加CNAME数', + 'description' => 'The maximum number of CNAMEs that can be added.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1000', + ], + 'BackendMaxCount' => [ + 'title' => '最大回源数', + 'description' => 'The maximum number of back-to-origin IP addresses that can be configured.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20', + ], + 'ExclusiveIp' => [ + 'title' => '独享IP', + 'description' => 'Indicates whether exclusive IP addresses are supported. Valid values:'."\n" + ."\n" + .'* **true:** Exclusive IP addresses are supported.'."\n" + .'* **false:** Exclusive IP addresses are not supported.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'CustomResponseRuleInTemplateMaxCount' => [ + 'title' => '自定义响应模板包含规则数', + 'description' => 'The maximum number of rules that can be included in a custom response rule template.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '100', + ], + 'IpBlacklistIpInRuleMaxCount' => [ + 'title' => 'IP黑名单规则包含IP数', + 'description' => 'The maximum number of IP addresses that can be added to an IP address blacklist rule.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '200', + ], + 'AclRuleMaxIpCount' => [ + 'description' => 'The maximum number of IP addresses that can be added to the match content of a match condition. For more information, see [Match conditions](~~374354~~).'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '100', + ], + 'BotTemplateMaxCount' => [ + 'description' => 'The maximum number of bot management rule templates that can be configured.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '50', + ], + 'DefenseGroupMaxCount' => [ + 'title' => '最大防护组数量', + 'description' => 'The maximum number of protected object groups that can be configured.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '100', + ], + 'VastIpBlacklistInFileMaxCount' => [ + 'title' => '海量IP单次上传文件IP的最大数量', + 'description' => 'The maximum number of IP addresses or CIDR blocks that can be added to an IP address blacklist in a batch.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2,000', + ], + 'AntiScanTemplateMaxCount' => [ + 'title' => '扫描防护模板数', + 'description' => 'The maximum number of scan protection rule templates that can be configured.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20', + ], + 'WhitelistLogical' => [ + 'title' => '白名单规则匹配条件', + 'description' => 'The logical operators that can be used in a whitelist rule. For more information, see **Match condition parameters** in the "**Parameters of whitelist rules (whitelist)**" section in the [CreateDefenseRule](~~CreateDefenseRule~~) topic.'."\n", + 'type' => 'string', + 'example' => 'contain', + ], + 'CustomRuleTemplateMaxCount' => [ + 'title' => '自定义规则模板数', + 'description' => 'The maximum number of custom rule templates that can be configured.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20', + ], + 'TamperproofTemplateMaxCount' => [ + 'description' => 'The maximum number of website tamper-proofing rule templates that can be configured.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '50', + ], + 'IpBlacklistTemplateMaxCount' => [ + 'title' => '/黑名单模板数', + 'description' => 'The maximum number of IP address blacklist rule templates that can be configured.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20', + ], + 'HttpsPorts' => [ + 'title' => 'HTTPS端口可用范围', + 'description' => 'The HTTPS port range that is supported. For more information, see [View supported ports](~~385578~~).'."\n", + 'type' => 'string', + 'example' => '443', + ], + 'DlpTemplateMaxCount' => [ + 'description' => 'The maximum number of data leakage prevention rule templates that can be configured.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '50', + ], + 'CustomRuleRatelimitor' => [ + 'title' => '自定义规则限速对象', + 'description' => 'The statistical object for rate limiting in a custom rule.'."\n", + 'type' => 'string', + 'example' => 'header', + ], + 'DefenseObjectMaxCount' => [ + 'title' => '最大防护对象数量', + 'description' => 'The maximum number of protected objects that can be configured.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20,000', + ], + 'Dlp' => [ + 'description' => 'Indicates whether the data leakage prevention module is supported. Valid values:'."\n" + ."\n" + .'* **true:** The data leakage prevention module is supported.'."\n" + .'* **false:** The data leakage prevention module is not supported.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'DefenseObjectInTemplateMaxCount' => [ + 'title' => '一个模板内关联对象的最大数量', + 'description' => 'The maximum number of protected objects to which a protection rule template can be applied.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '100', + ], + 'CustomRuleAction' => [ + 'title' => '包含字符串', + 'description' => 'The action that can be included in a custom rule.'."\n", + 'type' => 'string', + 'example' => 'block', + ], + 'TamperproofRuleInTemplateMaxCount' => [ + 'description' => 'The maximum number of rules that can be included in a website tamper-proofing rule template.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '50', + ], + 'DlpRuleInTemplateMaxCount' => [ + 'description' => 'The maximum number of rules that can be included in a data leakage prevention rule template.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '50', + ], + 'WhitelistTemplateMaxCount' => [ + 'title' => '白名单模板数', + 'description' => 'The maximum number of whitelist rule templates that can be configured.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20', + ], + 'MajorProtection' => [ + 'title' => '是否支持重保', + 'description' => 'Indicates whether major event protection is supported. Valid values:'."\n" + ."\n" + .'* **true:** Major event protection is supported.'."\n" + .'* **false:** Major event protection is not supported.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'BaseWafGroupRuleTemplateMaxCount' => [ + 'title' => '基础防护规则最大数量', + 'description' => 'The maximum number of basic protection rule templates that can be configured.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20', + ], + 'BotWeb' => [ + 'description' => 'Indicates whether bot management for website protection is supported. Valid values:'."\n" + ."\n" + .'* **true:** Bot management for website protection is supported.'."\n" + .'* **false:** Bot management for website protection is not supported.'."\n", + 'type' => 'string', + 'example' => 'true', + ], + 'CustomRuleInTemplateMaxCount' => [ + 'title' => '自定义规则模板包含规则数', + 'description' => 'The maximum number of rules that can be included in a custom rule template.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '100', + ], + 'VastIpBlacklistInOperationMaxCount' => [ + 'title' => '海量IP单次页面操作的最大数量', + 'description' => 'The maximum number of IP addresses or CIDR blocks that can be added to an IP address blacklist on a page.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '500', + ], + 'WhitelistRuleInTemplateMaxCount' => [ + 'title' => '白名单模板包含规则数', + 'description' => 'The maximum number of rules that can be included in a whitelist rule template.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '100', + ], + 'AntiScan' => [ + 'title' => '支持扫描防护', + 'description' => 'Indicates whether the scan protection module is supported. Valid values:'."\n" + ."\n" + .'* **true:** The scan protection module is supported.'."\n" + .'* **false:** The scan protection module is not supported.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'CustomResponseTemplateMaxCount' => [ + 'title' => '自定义响应模板数', + 'description' => 'The maximum number of custom response rule templates that can be configured.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20', + ], + 'BaseWafGroupRuleInTemplateMaxCount' => [ + 'title' => '基础防护规则', + 'description' => 'The maximum number of protection rules that can be included in a basic protection rule template.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '100', + ], + 'MajorProtectionTemplateMaxCount' => [ + 'title' => '重保模板的最大数量', + 'description' => 'The maximum number of major event protection rule templates that can be configured.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20', + ], + 'BaseWafGroup' => [ + 'title' => '基础防护', + 'description' => 'Indicates whether the basic protection rule module is supported. Valid values:'."\n" + ."\n" + .'* **true:** The basic protection rule module is supported.'."\n" + .'* **false:** The basic protection rule module is not supported.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'Whitelist' => [ + 'title' => '是否支持白名单', + 'description' => 'Indicates whether the whitelist module is supported. Valid values:'."\n" + ."\n" + .'* **true:** The whitelist module is supported.'."\n" + .'* **false:** The whitelist module is not supported.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'LogService' => [ + 'title' => '日志服务是否开启', + 'description' => 'Indicates whether the log collection feature is supported. Valid values:'."\n" + ."\n" + .'* **true:** The log collection feature is supported.'."\n" + .'* **false:** The log collection feature is not supported.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'VastIpBlacklistMaxCount' => [ + 'title' => '海量IP的最大数量(单用户)', + 'description' => 'The maximum number of IP addresses or CIDR blocks that can be added to an IP address blacklist per Alibaba Cloud account.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '50,000', + ], + 'FreeQps' => [ + 'title' => '包年包月版本默认QPS规格。', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1000', + ], + 'ExtendQps' => [ + 'title' => '包年包月版本扩展QPS。', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10000', + ], + 'ElasticQps' => [ + 'title' => '包年包月版本的弹性后付费QPS。', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2000', + ], + 'QpsBillingCap' => [ + 'title' => '按量付费版本的QPS阈值保护。', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2000', + ], + ], + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE', + ], + 'EndTime' => [ + 'description' => 'The expiration time of the WAF instance.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '4809859200000', + ], + 'InstanceId' => [ + 'title' => '实例ID', + 'description' => 'The ID of the WAF instance.'."\n", + 'type' => 'string', + 'example' => 'waf-cn-xxx', + ], + 'InDebt' => [ + 'description' => 'Indicates whether the WAF instance has overdue payments. Valid values:'."\n" + ."\n" + .'* **0**: The WAF instance does not have overdue payments.'."\n" + .'* **1**: The WAF instance has overdue payments.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'StartTime' => [ + 'description' => 'The purchase time of the WAF instance. The time is in the UNIX timestamp format. The time is displayed in UTC. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1668496310000', + ], + 'RegionId' => [ + 'title' => 'RegionId', + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'PayType' => [ + 'description' => 'The billing method of the WAF instance. Valid values:'."\n" + ."\n" + .'* **POSTPAY:** The WAF instance uses the pay-as-you-go billing method.'."\n" + .'* **PREPAY:** The WAF instance uses the subscription billing method.'."\n", + 'type' => 'string', + 'example' => 'POSTPAY', + ], + 'Edition' => [ + 'title' => '套餐', + 'description' => 'The edition of the WAF instance.'."\n", + 'type' => 'string', + 'example' => 'default_version', + ], + 'ProcessStatus' => [ + 'type' => 'string', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Status\\": 1,\\n \\"Details\\": {\\n \\"DefenseObjectInGroupMaxCount\\": 100,\\n \\"Tamperproof\\": true,\\n \\"BotApp\\": \\"true\\",\\n \\"IpBlacklistRuleInTemplateMaxCount\\": 100,\\n \\"WhitelistRuleCondition\\": \\"URL\\",\\n \\"CustomRuleCondition\\": \\"URL\\",\\n \\"CustomResponse\\": true,\\n \\"HttpPorts\\": \\"80\\",\\n \\"Gslb\\": true,\\n \\"Ipv6\\": true,\\n \\"Bot\\": true,\\n \\"CustomRule\\": true,\\n \\"IpBlacklist\\": true,\\n \\"CnameResourceMaxCount\\": 1000,\\n \\"BackendMaxCount\\": 20,\\n \\"ExclusiveIp\\": true,\\n \\"CustomResponseRuleInTemplateMaxCount\\": 100,\\n \\"IpBlacklistIpInRuleMaxCount\\": 200,\\n \\"AclRuleMaxIpCount\\": 100,\\n \\"BotTemplateMaxCount\\": 50,\\n \\"DefenseGroupMaxCount\\": 100,\\n \\"VastIpBlacklistInFileMaxCount\\": 0,\\n \\"AntiScanTemplateMaxCount\\": 20,\\n \\"WhitelistLogical\\": \\"contain\\",\\n \\"CustomRuleTemplateMaxCount\\": 20,\\n \\"TamperproofTemplateMaxCount\\": 50,\\n \\"IpBlacklistTemplateMaxCount\\": 20,\\n \\"HttpsPorts\\": \\"443\\",\\n \\"DlpTemplateMaxCount\\": 50,\\n \\"CustomRuleRatelimitor\\": \\"header\\",\\n \\"DefenseObjectMaxCount\\": 0,\\n \\"Dlp\\": true,\\n \\"DefenseObjectInTemplateMaxCount\\": 100,\\n \\"CustomRuleAction\\": \\"block\\",\\n \\"TamperproofRuleInTemplateMaxCount\\": 50,\\n \\"DlpRuleInTemplateMaxCount\\": 50,\\n \\"WhitelistTemplateMaxCount\\": 20,\\n \\"MajorProtection\\": true,\\n \\"BaseWafGroupRuleTemplateMaxCount\\": 20,\\n \\"BotWeb\\": \\"true\\",\\n \\"CustomRuleInTemplateMaxCount\\": 100,\\n \\"VastIpBlacklistInOperationMaxCount\\": 500,\\n \\"WhitelistRuleInTemplateMaxCount\\": 100,\\n \\"AntiScan\\": true,\\n \\"CustomResponseTemplateMaxCount\\": 20,\\n \\"BaseWafGroupRuleInTemplateMaxCount\\": 100,\\n \\"MajorProtectionTemplateMaxCount\\": 20,\\n \\"BaseWafGroup\\": true,\\n \\"Whitelist\\": true,\\n \\"LogService\\": true,\\n \\"VastIpBlacklistMaxCount\\": 0,\\n \\"FreeQps\\": 1000,\\n \\"ExtendQps\\": 10000,\\n \\"ElasticQps\\": 2000,\\n \\"QpsBillingCap\\": 2000\\n },\\n \\"RequestId\\": \\"66A98669-CC6E-4F3E-80A6-3014697B11AE\\",\\n \\"EndTime\\": 4809859200000,\\n \\"InstanceId\\": \\"waf-cn-xxx\\",\\n \\"InDebt\\": \\"1\\",\\n \\"StartTime\\": 1668496310000,\\n \\"RegionId\\": \\"cn-hangzhou\\",\\n \\"PayType\\": \\"POSTPAY\\",\\n \\"Edition\\": \\"default_version\\",\\n \\"ProcessStatus\\": \\"order_pending_payment\\"\\n}","type":"json"}]', + 'title' => 'DescribeInstance', + ], + 'ReleaseInstance' => [ + 'summary' => 'Releases a Web Application Firewall (WAF) 3.0 instance.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '115002', + 'abilityTreeNodes' => [ + 'FEATUREwafHU8RSD', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> Obtain the ID of the WAF instance by calling the [DescribeInstance](~~433756~~) operation.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-***', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '65626467-8002-5022-9F5F-***', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"65626467-8002-5022-9F5F-***\\"\\n}","type":"json"}]', + 'title' => 'ReleaseInstance', + ], + 'DescribeAbnormalCloudResources' => [ + 'summary' => '查询异常的云产品接入资源', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '265430', + 'abilityTreeNodes' => [ + 'FEATUREwafOV749M', + 'FEATUREwafCMMRA4', + 'FEATUREwafMF0FT6', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-***', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the request', + 'type' => 'string', + 'example' => '66A98669-CC6E-4F3E-80A6-***', + ], + 'AbnormalCloudResources' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ResourceInstanceId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'lb-***', + ], + 'ResourceInstancePort' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '80', + ], + 'ResourceInstanceName' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'test-name', + ], + 'ResourceProduct' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'clb7', + ], + 'Reason' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'CertExpired', + ], + 'Details' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'CertExpired', + ], + 'CertName' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'test-name', + ], + 'ProductCertId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '123-cn-hangzhou', + ], + 'ProductCertName' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'test-name', + ], + 'ProductDomainExtension' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'www.test.com', + ], + 'AppliedType' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'default', + ], + 'CommonName' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'www.test.com'."\n", + ], + 'ExpireTime' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1735009193', + ], + ], + ], + ], + 'CloudResourceId' => [ + 'type' => 'string', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Pullin.CertNotExist', + 'errorMessage' => 'Certificate does not exist in SSL Certificate Center, certificate type:%s, certificate ID:%s.', + ], + [ + 'errorCode' => 'Waf.Pullin.ResourceNotExist', + 'errorMessage' => 'The accessed resource already exists. Resource:%s.', + ], + [ + 'errorCode' => 'Waf.Pullin.AlreadyAccessed', + 'errorMessage' => 'The cloud product has been accessed. Instance ID:%s, Port:%s, Product Type:%s.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"66A98669-CC6E-4F3E-80A6-***\\",\\n \\"AbnormalCloudResources\\": [\\n {\\n \\"ResourceInstanceId\\": \\"lb-***\\",\\n \\"ResourceInstancePort\\": 80,\\n \\"ResourceInstanceName\\": \\"test-name\\",\\n \\"ResourceProduct\\": \\"clb7\\",\\n \\"Reason\\": \\"CertExpired\\",\\n \\"Details\\": [\\n {\\n \\"Code\\": \\"CertExpired\\",\\n \\"CertName\\": \\"test-name\\",\\n \\"ProductCertId\\": \\"123-cn-hangzhou\\",\\n \\"ProductCertName\\": \\"test-cert-name\\",\\n \\"ProductDomainExtension\\": \\"www.test.com\\",\\n \\"AppliedType\\": \\"default\\",\\n \\"CommonName\\": \\"www.test.com\\\\n\\",\\n \\"ExpireTime\\": 1735009193\\n }\\n ],\\n \\"CloudResourceId\\": \\"lb-***-80-clb7\\"\\n }\\n ]\\n}","type":"json"}]', + ], + 'ReCreateCloudResource' => [ + 'summary' => '重新接入云产品', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '264065', + 'abilityTreeNodes' => [ + 'FEATUREwafOV749M', + 'FEATUREwafCMMRA4', + 'FEATUREwafMF0FT6', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-***', + ], + ], + [ + 'name' => 'ResourceInstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'lb-bp1*****jqnnqk5uj2p', + 'deprecated' => true, + ], + ], + [ + 'name' => 'Port', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '443', + 'deprecated' => true, + ], + ], + [ + 'name' => 'ResourceProduct', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'clb7', + 'enum' => [ + 'clb7', + ], + 'deprecated' => true, + ], + ], + [ + 'name' => 'CloudResourceId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the request', + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19****5EB0', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Pullin.CertNotExist', + 'errorMessage' => 'Certificate does not exist in SSL Certificate Center, certificate type:%s, certificate ID:%s.', + ], + [ + 'errorCode' => 'Waf.Pullin.ResourceNotExist', + 'errorMessage' => 'The accessed resource already exists. Resource:%s.', + ], + [ + 'errorCode' => 'Waf.Pullin.AlreadyAccessed', + 'errorMessage' => 'The cloud product has been accessed. Instance ID:%s, Port:%s, Product Type:%s.', + ], + [ + 'errorCode' => 'Waf.Pullin.CertExpired', + 'errorMessage' => 'Certificate expired, certificate ID:%s .', + ], + [ + 'errorCode' => 'Waf.Pullin.CloudProductParamNotMatch', + 'errorMessage' => 'The value of the cloud product, port, instance, and input parameter to which the resource ID of the cloud product is connected to WAF does not match.', + ], + [ + 'errorCode' => 'Waf.Pullin.CloudResourceInvalid', + 'errorMessage' => 'CloudResourceId parameter is illegal.', + ], + [ + 'errorCode' => 'Waf.Pullin.CloudProductParamEmpty', + 'errorMessage' => 'The resource Id of the cloud product accessing WAF is null or null values exist in the three input parameters of the cloud product name, port, and cloud product instance.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19****5EB0\\"\\n}","type":"json"}]', + ], + 'SyncProductInstance' => [ + 'summary' => 'Synchronizes Elastic Compute Service (ECS), Classic Load Balancer (CLB), and Network Load Balancer (NLB) instances to Web Application Firewall (WAF).', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '143827', + 'abilityTreeNodes' => [ + 'FEATUREwafHU8RSD', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-zsk****fb09', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm4co****f5qa', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '45BA2382-7C3F-5B29-9A83-C3BCE586****', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"45BA2382-7C3F-5B29-9A83-C3BCE586****\\"\\n}","type":"json"}]', + 'title' => 'SyncProductInstance', + 'description' => 'SyncProductInstance is an asynchronous operation. You can call the [DescribeProductInstances](~~2743168~~) operation to query the status of the task.'."\n", + ], + 'DescribeCloudResources' => [ + 'summary' => 'Queries cloud service resources that are added to Web Application Firewall (WAF).', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '112176', + 'abilityTreeNodes' => [ + 'FEATUREwafJ7PT1V', + 'FEATUREwafOV749M', + 'FEATUREwafCMMRA4', + 'FEATUREwafM61JTL', + 'FEATUREwafFJZ9SV', + 'FEATUREwafL6Q7OZ', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-lbj****cn0c', + 'default' => '', + ], + ], + [ + 'name' => 'ResourceInstanceId', + 'in' => 'query', + 'schema' => [ + 'title' => '资源的实例ID', + 'description' => 'The ID of the resource.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'alb-43glijk0fr****gths', + ], + ], + [ + 'name' => 'ResourceName', + 'in' => 'query', + 'schema' => [ + 'title' => '资源的实例名称', + 'description' => 'The name of the resource.'."\n", + 'type' => 'string', + 'deprecated' => true, + 'required' => false, + 'example' => 'alb-name', + ], + ], + [ + 'name' => 'ResourceRegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '资源归属RegionId', + 'description' => 'The region ID of the resource. For information about region IDs, see the following table.'."\n" + ."\n" + .'> Different cloud services are available in different regions. The specified cloud service must be available in the specified region.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-beijing', + ], + ], + [ + 'name' => 'ResourceProduct', + 'in' => 'query', + 'schema' => [ + 'title' => '资源所属产品', + 'description' => 'The cloud service to which the resource belongs. If you do not specify this parameter, the system automatically returns the Application Load Balancer (ALB), Microservices Engine (MSE), Function Compute, and Serverless App Engine (SAE) resources that are added to WAF. Valid values:'."\n" + ."\n" + .'* **alb**: ALB.'."\n" + .'* **mse**: MSE.'."\n" + .'* **fc**: Function Compute.'."\n" + .'* **sae**: SAE.'."\n" + .'* **ecs**: Elastic Compute Service (ECS).'."\n" + .'* **clb4**: Layer 4 Classic Load Balancer (CLB).'."\n" + .'* **clb7**: Layer 7 CLB.'."\n" + .'* **nlb**: Network Load Balancer (NLB).'."\n" + ."\n" + .'> Different cloud services are available in different regions. The specified cloud service must be available in the specified region.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'alb', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '100', + 'minimum' => '10', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'ResourceRouteName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The route name. You can use this parameter if you set ResourceProduct to mse.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'mse-default-traffic', + ], + ], + [ + 'name' => 'ResourceDomain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name. You can use this parameter if you set ResourceProduct to fc or sae.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'fc-domain-test', + ], + ], + [ + 'name' => 'ResourceFunction', + 'in' => 'query', + 'schema' => [ + 'description' => 'The function name. You can use this parameter if you set ResourceProduct to fc.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'fc-test', + ], + ], + [ + 'name' => 'OwnerUserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud account to which the resource belongs.', + 'type' => 'string', + 'required' => false, + 'example' => '11769793******', + ], + ], + [ + 'name' => 'ResourceInstanceName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the instance that is added to WAF.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test-name', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm4gh****wela', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of cloud service resources returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '121', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C327F81A-CCE2-5B21-817C-F93E29C5****', + ], + 'CloudResources' => [ + 'description' => 'The cloud service resources that are added to WAF.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The cloud service resource.'."\n", + 'type' => 'object', + 'properties' => [ + 'ResourceRouteName' => [ + 'description' => 'The route name. This parameter has a value only if the value of ResourceProduct is mse.'."\n", + 'type' => 'string', + 'example' => 'test-route-name', + ], + 'ResourceRegionId' => [ + 'title' => 'RegionId', + 'description' => 'The region ID of the resource.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'ResourceFunction' => [ + 'description' => 'The function name. This parameter has a value only if the value of ResourceProduct is fc.'."\n", + 'type' => 'string', + 'example' => 'test-resource-function', + ], + 'ResourceName' => [ + 'title' => '实例名称', + 'description' => 'The name of the resource.'."\n", + 'type' => 'string', + 'deprecated' => true, + 'example' => 'test-resource-name', + ], + 'ResourceInstance' => [ + 'description' => 'The ID of the resource.'."\n", + 'type' => 'string', + 'deprecated' => true, + 'example' => 'alb-ffff****', + 'title' => '', + ], + 'ResourceProduct' => [ + 'description' => 'The cloud service to which the resource belongs. Valid values:'."\n" + ."\n" + .'* **alb**: ALB.'."\n" + .'* **mse**: MSE.'."\n" + .'* **fc**: Function Compute.'."\n" + .'* **sae**: SAE.'."\n" + .'* **ecs**: ECS.'."\n" + .'* **clb4**: Layer 4 CLB.'."\n" + .'* **clb7**: Layer 7 CLB.'."\n", + 'type' => 'string', + 'example' => 'alb', + ], + 'ResourceService' => [ + 'description' => 'The service name. This parameter has a value only if the value of ResourceProduct is fc.'."\n", + 'type' => 'string', + 'example' => 'test-resource-service', + ], + 'ResourceDomain' => [ + 'description' => 'The domain name. This parameter has a value only if the value of ResourceProduct is fc or sae.'."\n", + 'type' => 'string', + 'example' => 'test-resource-domain', + ], + 'OwnerUserId' => [ + 'description' => 'The ID of the Alibaba Cloud account to which the resource belongs.', + 'type' => 'string', + 'example' => '11769793******', + ], + 'HttpPortCount' => [ + 'description' => 'The number of the HTTP ports that are added to WAF.'."\n" + ."\n" + .'> This parameter is returned only if the cloud service is ECS or CLB.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'HttpsPortCount' => [ + 'description' => 'The number of the HTTPS ports that are added to WAF.'."\n" + ."\n" + .'> This parameter is returned only if the cloud service is ECS or CLB.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'ResourceInstanceIp' => [ + 'description' => 'The IP address of the instance that is added to WAF.'."\n", + 'type' => 'string', + 'example' => '1.1.1.1', + ], + 'ResourceInstanceId' => [ + 'description' => 'The ID of the instance that is added to WAF.'."\n", + 'type' => 'string', + 'example' => 'lb-uf60ub45fr9b***', + ], + 'ResourceInstanceName' => [ + 'description' => 'The name of the instance that is added to WAF.'."\n", + 'type' => 'string', + 'example' => 'test-name', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 121,\\n \\"RequestId\\": \\"C327F81A-CCE2-5B21-817C-F93E29C5****\\",\\n \\"CloudResources\\": [\\n {\\n \\"ResourceRouteName\\": \\"test-route-name\\",\\n \\"ResourceRegionId\\": \\"cn-hangzhou\\",\\n \\"ResourceFunction\\": \\"test-resource-function\\",\\n \\"ResourceName\\": \\"test-resource-name\\",\\n \\"ResourceInstance\\": \\"alb-ffff****\\",\\n \\"ResourceProduct\\": \\"alb\\",\\n \\"ResourceService\\": \\"test-resource-service\\",\\n \\"ResourceDomain\\": \\"test-resource-domain\\",\\n \\"OwnerUserId\\": \\"11769793******\\",\\n \\"HttpPortCount\\": 1,\\n \\"HttpsPortCount\\": 1,\\n \\"ResourceInstanceIp\\": \\"1.1.1.1\\",\\n \\"ResourceInstanceId\\": \\"lb-uf60ub45fr9b***\\",\\n \\"ResourceInstanceName\\": \\"test-name\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeCloudResources', + 'requestParamsDescription' => '|Region ID|Region name|Supported service|'."\n" + .'|---|---|---|'."\n" + .'|cn-hangzhou|China (Hangzhou)|SAE,ALB,FC,MSE,ECS,CLB|'."\n" + .'|cn-shanghai|China (Shanghai)|SAE,ALB,FC,MSE,ECS,CLB|'."\n" + .'|cn-shenzhen|China (Shenzhen)|SAE,ALB,FC,MSE,ECS,CLB|'."\n" + .'|cn-beijing|China (Beijing)|SAE,ALB,FC,MSE,ECS,CLB|'."\n" + .'|cn-zhangjiakou|China (Zhangjiakou)|SAE,ALB,FC,MSE,ECS,CLB|'."\n" + .'|cn-chengdu|China (Chengdu)|ALB,ECS,CLB|'."\n" + .'|cn-qingdao|China (Qingdao)|ALB,ECS,CLB|'."\n" + .'|cn-guangzhou|China (Guangzhou)|ALB|'."\n" + .'|cn-wulanchabu|China (Ulanqab)|ALB|'."\n" + .'|cn-hongkong|China (Hong Kong)|ALB,MSE,ECS,CLB|'."\n" + .'|cn-fuzhou|China (Fuzhou - Local Region)|ALB|'."\n" + .'|ap-southeast-6|Philippines (Manila)|ALB|'."\n" + .'|ap-southeast-5|Indonesia (Jakarta)|ALB,ECS,CLB|'."\n" + .'|ap-northeast-1|Japan (Tokyo)|ALB|'."\n" + .'|ap-southeast-3|Malaysia (Kuala Lumpur)|ALB,MSE,ECS,CLB|'."\n" + .'|ap-southeast-1|Singapore|ALB,MSE|'."\n" + .'|eu-central-1|Germany (Frankfurt)|ALB|'."\n" + .'|us-west-1|US (Silicon Valley)|ALB|'."\n" + .'|us-east-1|US (Virginia)|ALB|', + ], + 'DescribeProductInstances' => [ + 'summary' => 'Queries the cloud service instances to be added to Web Application Firewall (WAF) in transparent proxy mode.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '144614', + 'abilityTreeNodes' => [ + 'FEATUREwafOV749M', + 'FEATUREwafCMMRA4', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-zxu****9d02', + ], + ], + [ + 'name' => 'ResourceInstanceId', + 'in' => 'query', + 'schema' => [ + 'title' => '资源的实例ID', + 'description' => 'The ID of the instance.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'lb-2zeugkfj81jvo****4tqm', + ], + ], + [ + 'name' => 'ResourceName', + 'in' => 'query', + 'schema' => [ + 'title' => '资源的实例名称', + 'description' => 'The name of the instance.'."\n", + 'type' => 'string', + 'deprecated' => true, + 'required' => false, + 'example' => 'exampleResourceName', + ], + ], + [ + 'name' => 'ResourceRegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '资源归属RegionId', + 'description' => 'The region ID of the instance. Valid values:'."\n" + ."\n" + .'* **cn-chengdu**: China (Chengdu).'."\n" + .'* **cn-beijing**: China (Beijing).'."\n" + .'* **cn-zhangjiakou**: China (Zhangjiakou).'."\n" + .'* **cn-hangzhou**: China (Hangzhou).'."\n" + .'* **cn-shanghai**: China (Shanghai).'."\n" + .'* **cn-shenzhen**: China (Shenzhen).'."\n" + .'* **cn-qingdao**: China (Qingdao).'."\n" + .'* **cn-hongkong**: China (Hong Kong).'."\n" + .'* **ap-southeast-3**: Malaysia (Kuala Lumpur).'."\n" + .'* **ap-southeast-5**: Indonesia (Jakarta).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceProduct', + 'in' => 'query', + 'schema' => [ + 'title' => '资源所属产品', + 'description' => 'The cloud service to which the instance belongs. Valid values:'."\n" + ."\n" + .'* **clb4**: Layer 4 Classic Load Balancer (CLB).'."\n" + .'* **clb7**: Layer 7 CLB.'."\n" + .'* **ecs**: Elastic Compute Service (ECS).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'clb7', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '100', + 'minimum' => '10', + 'example' => '10', + ], + ], + [ + 'name' => 'ResourceIp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The public IP address of the instance.'."\n", + 'type' => 'string', + 'deprecated' => true, + 'required' => false, + 'example' => '1.X.X.1', + ], + ], + [ + 'name' => 'OwnerUserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud account to which the resource belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1704********9107', + ], + ], + [ + 'name' => 'ResourceInstanceIp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IP address of the instance that is added to WAF.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1.X.X.1', + ], + ], + [ + 'name' => 'ResourceInstanceName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the instance that is added to WAF.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'demoInstanceName', + ], + ], + [ + 'name' => 'ResourceInstanceAccessStatus', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'enum' => [ + 'all', + 'part', + 'non', + 'any', + ], + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aekz6ql****5uzi', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'FDCBAE1E-2B3F-5C13-AD20-844B9473****', + ], + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '100', + ], + 'ProductInstances' => [ + 'description' => 'The information about the instances.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the instance.'."\n", + 'type' => 'object', + 'properties' => [ + 'ResourceInstanceId' => [ + 'title' => '实例ID', + 'description' => 'The ID of the instance.'."\n", + 'type' => 'string', + 'example' => 'i-2ze1tm4pvghp****cluv', + ], + 'ResourceName' => [ + 'title' => '实例名称', + 'description' => 'The name of the instance.'."\n", + 'type' => 'string', + 'deprecated' => true, + 'example' => 'ecs-test', + ], + 'ResourceRegionId' => [ + 'title' => 'RegionId', + 'description' => 'The region ID of the instance. Valid values:'."\n" + ."\n" + .'* **cn-chengdu**: China (Chengdu).'."\n" + .'* **cn-beijing**: China (Beijing).'."\n" + .'* **cn-zhangjiakou**: China (Zhangjiakou).'."\n" + .'* **cn-hangzhou**: China (Hangzhou).'."\n" + .'* **cn-shanghai**: China (Shanghai).'."\n" + .'* **cn-shenzhen**: China (Shenzhen).'."\n" + .'* **cn-qingdao**: China (Qingdao).'."\n" + .'* **cn-hongkong**: China (Hong Kong).'."\n" + .'* **ap-southeast-3**: Malaysia (Kuala Lumpur).'."\n" + .'* **ap-southeast-5**: Indonesia (Jakarta).'."\n", + 'type' => 'string', + 'example' => 'cn-beijing', + ], + 'ResourceProduct' => [ + 'description' => 'The cloud service to which the instance belongs. Valid values:'."\n" + ."\n" + .'* **clb4**: Layer 4 CLB.'."\n" + .'* **clb7**: Layer 7 CLB.'."\n" + .'* **ecs**: ECS.'."\n", + 'type' => 'string', + 'example' => 'clb4', + ], + 'ResourcePorts' => [ + 'description' => 'The information about the ports.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Port' => [ + 'description' => 'The port number.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '443', + ], + 'Protocol' => [ + 'description' => 'The protocol type. Valid values:'."\n" + ."\n" + .'* **http**'."\n" + .'* **https**'."\n", + 'type' => 'string', + 'example' => 'https', + ], + 'Certificates' => [ + 'description' => 'The information about the certificates.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'CertificateName' => [ + 'description' => 'The name of the certificate.'."\n", + 'type' => 'string', + 'example' => 'trafficxxxx.cn', + ], + 'CertificateId' => [ + 'description' => 'The ID of the certificate.'."\n", + 'type' => 'string', + 'example' => '10106183', + ], + 'Domain' => [ + 'type' => 'string', + ], + 'AppliedType' => [ + 'type' => 'string', + ], + ], + ], + ], + ], + ], + ], + 'ResourceIp' => [ + 'description' => 'The public IP address of the instance.'."\n", + 'type' => 'string', + 'deprecated' => true, + 'example' => '1.X.X.1', + ], + 'OwnerUserId' => [ + 'description' => 'The ID of the Alibaba Cloud account to which the resource belongs.', + 'type' => 'string', + 'example' => '1704********9107', + ], + 'ResourceInstanceIp' => [ + 'description' => 'The IP address of the instance that is added to WAF.'."\n", + 'type' => 'string', + 'example' => '1.X.X.1', + ], + 'ResourceInstanceName' => [ + 'description' => 'The name of the instance that is added to WAF.'."\n", + 'type' => 'string', + 'example' => 'demoInstanceName', + ], + 'AccessPorts' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'integer', + 'format' => 'int32', + ], + ], + 'ResourceInstanceAccessStatus' => [ + 'type' => 'string', + ], + 'AccessPortAndProtocols' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Port' => [ + 'type' => 'integer', + 'format' => 'int32', + ], + 'Protocol' => [ + 'type' => 'string', + ], + 'CertificateIds' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'string', + ], + ], + ], + ], + ], + 'AccessInstanceId' => [ + 'type' => 'string', + ], + 'ResourceInstanceEdition' => [ + 'type' => 'string', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"FDCBAE1E-2B3F-5C13-AD20-844B9473****\\",\\n \\"TotalCount\\": 100,\\n \\"ProductInstances\\": [\\n {\\n \\"ResourceInstanceId\\": \\"i-2ze1tm4pvghp****cluv\\",\\n \\"ResourceName\\": \\"ecs-test\\",\\n \\"ResourceRegionId\\": \\"cn-beijing\\",\\n \\"ResourceProduct\\": \\"clb4\\",\\n \\"ResourcePorts\\": [\\n {\\n \\"Port\\": 443,\\n \\"Protocol\\": \\"https\\",\\n \\"Certificates\\": [\\n {\\n \\"CertificateName\\": \\"demoCertName\\",\\n \\"CertificateId\\": \\"1234567\\",\\n \\"Domain\\": \\"www.test.com\\",\\n \\"AppliedType\\": \\"default\\"\\n }\\n ]\\n }\\n ],\\n \\"ResourceIp\\": \\"1.X.X.1\\",\\n \\"OwnerUserId\\": \\"1704********9107\\",\\n \\"ResourceInstanceIp\\": \\"1.X.X.1\\",\\n \\"ResourceInstanceName\\": \\"demoInstanceName\\",\\n \\"AccessPorts\\": [\\n 80\\n ],\\n \\"ResourceInstanceAccessStatus\\": \\"all\\",\\n \\"AccessPortAndProtocols\\": [\\n {\\n \\"Port\\": 443,\\n \\"Protocol\\": \\"http\\",\\n \\"CertificateIds\\": [\\n \\"5379758\\"\\n ]\\n }\\n ],\\n \\"AccessInstanceId\\": \\"i-2ze1tm4pvghp****cluv\\\\n\\",\\n \\"ResourceInstanceEdition\\": \\"ecs.e-c1m1.large\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeProductInstances', + ], + 'DescribeResourceSupportRegions' => [ + 'summary' => 'Queries the region IDs of the Classic Load Balancer (CLB) and Elastic Compute Service (ECS) instances that are added to Web Application Firewall (WAF) in cloud native mode.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '144618', + 'abilityTreeNodes' => [ + 'FEATUREwafHU8RSD', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'ResourceProduct', + 'in' => 'query', + 'schema' => [ + 'description' => 'The cloud service. Valid values:'."\n" + ."\n" + .'* **clb4**: Layer 4 CLB.'."\n" + .'* **clb7**: Layer 7 CLB.'."\n" + .'* **ecs**: ECS.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'clb7', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aekzpks****kdjq', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The result of the request.'."\n", + 'type' => 'object', + 'properties' => [ + 'SupportRegions' => [ + 'description' => 'An array of region IDs of the CLB and ECS instances that are added to WAF in cloud native mode.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the regions.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '58FD****-3D56-5DE8-91E0-96A26BABFFDD', + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"SupportRegions\\": [\\n \\"cn-hangzhou\\"\\n ],\\n \\"RequestId\\": \\"58FDF266-3D56-5DE8-91E0-96A26BAB****\\"\\n}","type":"json"}]', + 'title' => 'DescribeResourceSupportRegions', + ], + 'DescribeResourceRegionId' => [ + 'summary' => 'Queries the region IDs of the resources that are added to Web Application Firewall (WAF) by using the SDK integration mode. The resources refer to Application Load Balancer (ALB) and Microservices Engine (MSE) instances.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '112185', + 'abilityTreeNodes' => [ + 'FEATUREwafHU8RSD', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aek2lrm****6pnq', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'F5905D3F-F674-5177-9E48-466DD3B8****', + ], + 'ResourceRegionIds' => [ + 'description' => 'The region IDs of the resources that are added to Web Application Firewall (WAF) by using the SDK integration mode.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The region ID. For information about the corresponding region names of the region IDs, see [Regions and zones](https://www.alibabacloud.com/help/en/cloud-migration-guide-for-beginners/latest/regions-and-zones?spm=a2c63.l28256.0.0.6d821b76nPrm0F).', + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F5905D3F-F674-5177-9E48-466DD3B8****\\",\\n \\"ResourceRegionIds\\": [\\n \\"cn-hangzhou\\"\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeResourceRegionId', + ], + 'DescribeResourceInstanceCerts' => [ + 'summary' => 'Queries the certificates that are used in cloud service instances. The certificates returned include the certificates within the delegated administrator account and the certificates within members to which specific instances belong. For example, the delegated administrator account has certificate 1, instance lb-xx-1 belongs to member B, and member B has certificate 2. If you specify instance lb-xx-1 in the request, certificate 1 and certificate 2 are returned.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '212899', + 'abilityTreeNodes' => [ + 'FEATUREwafOV749M', + ], + ], + 'parameters' => [ + [ + 'name' => 'ResourceInstanceId', + 'in' => 'query', + 'schema' => [ + 'title' => '域名', + 'description' => 'The ID of the instance.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'lb-bp1*****jqnnqk5uj2p', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '1000', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-*', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-***-6B19160D5EB0', + ], + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'Certs' => [ + 'description' => 'The certificates.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Domain' => [ + 'description' => 'The domain name for which the certificate is issued.'."\n", + 'type' => 'string', + 'example' => 'waf.aliyundemo.com', + ], + 'CertName' => [ + 'description' => 'The name of the certificate.'."\n", + 'type' => 'string', + 'example' => 'demoCertName', + ], + 'CertIdentifier' => [ + 'description' => 'The globally unique ID of the certificate. The value is in the "Certificate ID-cn-hangzhou" format. For example, if the ID of the certificate is 123, the value of CertIdentifier is 123-cn-hangzhou.'."\n", + 'type' => 'string', + 'example' => '123-cn-hangzhou', + ], + 'CommonName' => [ + 'description' => 'The common name.'."\n", + 'type' => 'string', + 'example' => '*.aliyundemo.com', + ], + 'IsChainCompleted' => [ + 'description' => 'Indicates whether the certificate chain is complete.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'AfterDate' => [ + 'description' => 'The time when the certificate expires.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1708415521211', + ], + 'BeforeDate' => [ + 'description' => 'The time when the certificate was issued.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1708415521211', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-***-6B19160D5EB0\\",\\n \\"TotalCount\\": 1,\\n \\"Certs\\": [\\n {\\n \\"Domain\\": \\"waf.aliyundemo.com\\",\\n \\"CertName\\": \\"waf-cert-name\\",\\n \\"CertIdentifier\\": \\"123-cn-hangzhou\\",\\n \\"CommonName\\": \\"www.aliyundemo.com\\",\\n \\"IsChainCompleted\\": true,\\n \\"AfterDate\\": 1708415521211,\\n \\"BeforeDate\\": 1708415521211\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeResourceInstanceCerts', + ], + 'CreateCloudResource' => [ + 'summary' => 'Adds a service to Web Application Firewall (WAF). This operation is supported for only the Elastic Compute Service (ECS) and Classic Load Balancer (CLB) services.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '226535', + 'abilityTreeNodes' => [ + 'FEATUREwafOV749M', + 'FEATUREwafCMMRA4', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-***', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'Listen', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The listener configurations.'."\n", + 'type' => 'object', + 'properties' => [ + 'TLSVersion' => [ + 'description' => 'The Transport Layer Security (TLS) version that you want to add. This parameter is available only if you specify **HttpsPorts**. Valid values:'."\n" + ."\n" + .'* **tlsv1**'."\n" + .'* **tlsv1.1**'."\n" + .'* **tlsv1.2**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tlsv1', + ], + 'EnableTLSv3' => [ + 'description' => 'Specifies whether to support TLS 1.3. This parameter is available only if you specify **HttpsPorts**. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + 'CipherSuite' => [ + 'description' => 'The type of the cipher suites that you want to add. This parameter is available only if you specify **HttpsPorts**. Valid values:'."\n" + ."\n" + .'* **1**: all cipher suites.'."\n" + .'* **2**: strong cipher suites. This value is available only if you set **TLSVersion** to **tlsv1.2**.'."\n" + .'* **99**: custom cipher suites.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + 'CustomCiphers' => [ + 'description' => 'The custom cipher suites that you want to add. This parameter is available only if you set **CipherSuite** to **99**.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The custom cipher suite that you want to add. This parameter is available only if you set **CipherSuite** to **99**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384', + ], + 'required' => false, + ], + 'ResourceProduct' => [ + 'description' => 'The type of the cloud service that you want to add. Valid values:'."\n" + ."\n" + .'* **clb4**: Layer 4 CLB.'."\n" + .'* **clb7**: Layer 7 CLB.'."\n" + .'* **ecs**: ECS.'."\n" + .'* **nlb**: Network Load Balancer (NLB).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'clb4', + 'enum' => [ + 'ecs', + 'clb4', + 'clb7', + 'nlb', + ], + ], + 'ResourceInstanceId' => [ + 'description' => 'The instance ID of the cloud service.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'lb-bp1*****', + ], + 'Port' => [ + 'description' => 'The port of the cloud service.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '80', + ], + 'Protocol' => [ + 'description' => 'The protocol type. Valid values:'."\n" + ."\n" + .'* **http**'."\n" + .'* **https**'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'http', + 'enum' => [ + 'http', + 'https', + ], + ], + 'Certificates' => [ + 'description' => 'The certificates.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The certificate.'."\n", + 'type' => 'object', + 'properties' => [ + 'CertificateId' => [ + 'description' => 'The ID of the certificate that you want to add.'."\n" + ."\n" + .'> You can call the [DescribeCertificates](~~160783~~) operation to query the IDs of all SSL certificates that are associated with a domain name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123-cn-hangzhou', + ], + 'AppliedType' => [ + 'description' => 'The type of the certificate. Valid values:'."\n" + ."\n" + .'* **default**: default certificate.'."\n" + .'* **extension**: additional certificate.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'default', + ], + ], + 'required' => false, + ], + 'required' => false, + ], + 'Http2Enabled' => [ + 'description' => 'Specifies whether to enable HTTP/2. This parameter is available only if you specify **HttpsPorts**. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + 'ResourceRegionId' => [ + 'type' => 'string', + ], + ], + 'required' => true, + ], + ], + [ + 'name' => 'Redirect', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The forwarding configurations.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestHeaders' => [ + 'description' => 'The custom header fields. Specify the value in the \\[**{"k":"*key*","v":"*value*"}**] format. ***key*** specifies the key of a custom header field. ***value*** specifies the value of a custom header field.'."\n" + ."\n" + .'> If a request contains a custom header field, WAF overwrites the original value of the field with the specified value.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The custom header field. Specify the value in the \\[**{"k":"*key*","v":"*value*"}**] format. ***key*** specifies the key of a custom header field. ***value*** specifies the value of a custom header field.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of the custom header field.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'key1', + ], + 'Value' => [ + 'description' => 'The value of the custom header field.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'value1', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 5, + ], + 'XffHeaderMode' => [ + 'description' => 'The method that is used to obtain the originating IP address of a client. Valid values:'."\n" + ."\n" + .'* **0**: No Layer 7 proxies are deployed in front of WAF.'."\n" + .'* **1**: WAF reads the first value of the X-Forwarded-For (XFF) header field as the originating IP address of the client.'."\n" + .'* **2**: WAF reads the value of a custom header field as the originating IP address of the client.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + 'XffHeaders' => [ + 'description' => 'The custom header fields that are used to obtain the originating IP address of a client. Specify the value in the **\\["header1","header2",...]** format.'."\n" + ."\n" + .'> This parameter is required only if you set **XffHeaderMode** to 2.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The custom header field that is used to obtain the originating IP address of a client. Specify the value in the **\\["header1","header2",...]** format.'."\n" + ."\n" + .'> This parameter is required only if you set **XffHeaderMode** to 2.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'header1', + ], + 'required' => false, + ], + 'ReadTimeout' => [ + 'description' => 'The timeout period of read connections. Unit: seconds. Valid values: 1 to 3600.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '3600', + 'minimum' => '1', + 'example' => '1', + 'default' => '120', + ], + 'WriteTimeout' => [ + 'description' => 'The timeout period of write connections. Unit: seconds. Valid values: 1 to 3600.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '3600', + 'minimum' => '1', + 'example' => '1', + 'default' => '120', + ], + 'Keepalive' => [ + 'description' => 'Specifies whether to enable the persistent connection feature. Valid values:'."\n" + ."\n" + .'* **true** (default)'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + 'default' => 'true', + ], + 'KeepaliveRequests' => [ + 'description' => 'The number of reused persistent connections. Valid values: 60 to 1000.'."\n" + ."\n" + .'> This parameter specifies the number of persistent connections that can be reused after you enable the persistent connection feature.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '1000', + 'minimum' => '60', + 'example' => '1000', + 'default' => '1000', + ], + 'KeepaliveTimeout' => [ + 'description' => 'The timeout period of idle persistent connections. Valid values: 10 to 3600. Default value: 3600. Unit: seconds.'."\n" + ."\n" + .'> This parameter specifies the period of time after which an idle persistent connection is closed.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '3600', + 'minimum' => '10', + 'example' => '15', + 'default' => '3600', + ], + 'XffProto' => [ + 'description' => 'Specifies whether to use the X-Forward-For-Proto header field to pass the protocol used by WAF to forward requests to the origin server. Valid values:'."\n" + ."\n" + .'* **true** (default)'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + 'MaxBodySize' => [ + 'title' => '最大请求体大小', + 'type' => 'integer', + 'format' => 'int32', + 'maximum' => '10', + 'minimum' => '2', + 'example' => '5', + ], + ], + 'required' => false, + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '标签列表,最多包含20个子项', + 'description' => 'The tags. You can specify up to 20 tags.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'title' => '标签键', + 'description' => 'The key of the tag.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TagKey1', + ], + 'Value' => [ + 'title' => '标签值', + 'description' => 'The value of the tag.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TagValue1', + ], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'OwnerUserId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud account to which the resource belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '66A98669-ER12-WE34-23PO-301469*****E', + ], + 'CloudResourceId' => [ + 'description' => 'The ID of the resource that is added to WAF. The ID is automatically generated.'."\n", + 'type' => 'string', + 'example' => 'lb-***', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Pullin.CertNotExist', + 'errorMessage' => 'Certificate does not exist in SSL Certificate Center, certificate type:%s, certificate ID:%s.', + ], + [ + 'errorCode' => 'Waf.Pullin.CertExpired', + 'errorMessage' => 'Certificate expired, certificate ID:%s .', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"66A98669-ER12-WE34-23PO-301469*****E\\",\\n \\"CloudResourceId\\": \\"lb-***\\"\\n}","type":"json"}]', + 'title' => 'CreateCloudResource', + ], + 'ModifyCloudResource' => [ + 'summary' => 'Modifies the configurations of a service that is added to Web Application Firewall (WAF).', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '226537', + 'abilityTreeNodes' => [ + 'FEATUREwafOV749M', + 'FEATUREwafCMMRA4', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-***', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'Listen', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The listener configurations.'."\n", + 'type' => 'object', + 'properties' => [ + 'TLSVersion' => [ + 'description' => 'The Transport Layer Security (TLS) version that you want to add. This parameter is available only if you specify **HttpsPorts**. Valid values:'."\n" + ."\n" + .'* **tlsv1**'."\n" + .'* **tlsv1.1**'."\n" + .'* **tlsv1.2**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tlsv1.2', + ], + 'EnableTLSv3' => [ + 'description' => 'Specifies whether to support TLS 1.3. This parameter is available only if you specify **HttpsPorts**. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + 'CipherSuite' => [ + 'description' => 'The type of the cipher suites that you want to add. This parameter is available only if you specify **HttpsPorts**. Valid values:'."\n" + ."\n" + .'* **1**: all cipher suites.'."\n" + .'* **2**: strong cipher suites. This value is available only if you set **TLSVersion** to **tlsv1.2**.'."\n" + .'* **99**: custom cipher suites.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + 'CustomCiphers' => [ + 'description' => 'The custom cipher suites that you want to add.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The custom cipher suite that you want to add. This parameter is available only if you set **CipherSuite** to **99**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-GCM-SHA384', + ], + 'required' => false, + ], + 'ResourceProduct' => [ + 'description' => 'The type of the cloud service. Valid values:'."\n" + ."\n" + .'* **clb4**: Layer 4 Classic Load Balancer (CLB).'."\n" + .'* **clb7**: Layer 7 CLB.'."\n" + .'* **ecs**: Elastic Compute Service (ECS).'."\n" + .'* **nlb**: Network Load Balancer (NLB).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'clb7', + 'enum' => [ + 'ecs', + 'clb4', + 'clb7', + 'nlb', + ], + 'deprecated' => true, + ], + 'ResourceInstanceId' => [ + 'description' => 'The ID of the cloud service instance that is added to WAF.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'lb-***', + 'deprecated' => true, + ], + 'Port' => [ + 'description' => 'The port of the cloud service instance that is added to WAF.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '80', + 'deprecated' => true, + ], + 'Protocol' => [ + 'description' => 'The protocol type. Valid values:'."\n" + ."\n" + .'* **http**'."\n" + .'* **https**'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'http', + 'enum' => [ + 'http', + 'https', + ], + ], + 'Certificates' => [ + 'description' => 'The certificates.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The certificate.'."\n", + 'type' => 'object', + 'properties' => [ + 'CertificateId' => [ + 'description' => 'The ID of the certificate.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123-cn-hangzhou', + ], + 'AppliedType' => [ + 'description' => 'The type of the certificate. Valid values:'."\n" + ."\n" + .'* **default**: default certificate.'."\n" + .'* **extension**: additional certificate.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'default', + ], + ], + 'required' => false, + ], + 'required' => false, + ], + 'Http2Enabled' => [ + 'description' => 'Specifies whether to enable HTTP/2. This parameter is available only if you specify **HttpsPorts**. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + 'required' => true, + ], + ], + [ + 'name' => 'Redirect', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The forwarding configurations.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestHeaders' => [ + 'description' => 'The custom header fields, which are key-value pairs. The fields are used to mark requests that pass through WAF.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The custom header field. Specify the value in the \\[**{"k":"*key*","v":"*value*"}**] format. ***key*** specifies the key of a custom header field. ***value*** specifies the value of a custom header field.'."\n" + ."\n" + .'> If a request contains a custom header field, WAF overwrites the original value of the field with the specified value.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of the custom header field.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'key1', + ], + 'Value' => [ + 'description' => 'The value of the custom header field.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'value1', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 5, + ], + 'XffHeaderMode' => [ + 'description' => 'The method that is used to obtain the originating IP address of a client. Valid values:'."\n" + ."\n" + .'* **0**: No Layer 7 proxies are deployed in front of WAF.'."\n" + .'* **1**: WAF reads the first value of the X-Forwarded-For (XFF) header field as the originating IP address of the client.'."\n" + .'* **2**: WAF reads the value of a custom header field as the originating IP address of the client.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + ], + 'XffHeaders' => [ + 'description' => 'The custom header fields that are used to obtain the originating IP address of a client. Specify the value in the \\["header1","header2",...] format.'."\n" + ."\n" + .'> This parameter is required only if you set **XffHeaderMode** to 2.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The custom header field that is used to obtain the originating IP address of a client. Specify the value in the \\["header1","header2",...] format.'."\n" + ."\n" + .'> This parameter is required only if you set **XffHeaderMode** to 2.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'header1', + 'pattern' => '^[^\';<>=|\\(\\)]+$', + ], + 'required' => false, + ], + 'ReadTimeout' => [ + 'description' => 'The timeout period of read connections. Unit: seconds. Valid values: 1 to 3600.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '3600', + 'minimum' => '1', + 'example' => '1', + 'default' => '120', + ], + 'WriteTimeout' => [ + 'description' => 'The timeout period of write connections. Unit: seconds. Valid values: 1 to 3600.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '3600', + 'minimum' => '1', + 'example' => '1', + 'default' => '120', + ], + 'Keepalive' => [ + 'description' => 'Specifies whether to enable the persistent connection feature. Valid values:'."\n" + ."\n" + .'* **true** (default)'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + 'default' => 'true', + ], + 'KeepaliveRequests' => [ + 'description' => 'The number of reused persistent connections. Valid values: 60 to 1000.'."\n" + ."\n" + .'> This parameter specifies the number of persistent connections that can be reused after you enable the persistent connection feature.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '1000', + 'minimum' => '60', + 'example' => '1000', + 'default' => '1000', + ], + 'KeepaliveTimeout' => [ + 'description' => 'The timeout period of idle persistent connections. Valid values: 10 to 3600. Default value: 3600. Unit: seconds.'."\n" + ."\n" + .'> This parameter specifies the period of time after which an idle persistent connection is closed.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '3600', + 'minimum' => '10', + 'example' => '15', + 'default' => '3600', + ], + 'XffProto' => [ + 'description' => 'Specifies whether to use the X-Forward-For-Proto header field to pass the protocol used by WAF to forward requests to the origin server. Valid values:'."\n" + ."\n" + .'* **true** (default)'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + 'MaxBodySize' => [ + 'title' => '最大请求大小', + 'type' => 'integer', + 'format' => 'int32', + 'maximum' => '10', + 'minimum' => '2', + 'example' => '5', + ], + ], + 'required' => false, + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'CloudResourceId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-***', + ], + 'CloudResource' => [ + 'description' => 'The ID of the resource that is added to WAF.'."\n", + 'type' => 'string', + 'example' => 'lb-xxx-80-clb7', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Pullin.CertExpired', + 'errorMessage' => 'Certificate expired, certificate ID:%s .', + ], + [ + 'errorCode' => 'Waf.Pullin.CertNotExist', + 'errorMessage' => 'Certificate does not exist in SSL Certificate Center, certificate type:%s, certificate ID:%s.', + ], + [ + 'errorCode' => 'Waf.Pullin.OnlyBeOneDefaultCert', + 'errorMessage' => 'There can be only one default certificate.', + ], + [ + 'errorCode' => 'Waf.Control.CloudProductInfoNotMartch', + 'errorMessage' => 'The value of the cloud product, port, instance, and input parameter to which the resource ID of the cloud product is connected to WAF does not match.', + ], + [ + 'errorCode' => 'Waf.Control.CloudProductInfoEmpty', + 'errorMessage' => 'The resource Id of the cloud product accessing WAF is null or null values exist in the three input parameters of the cloud product name, port, and cloud product instance.', + ], + [ + 'errorCode' => 'Waf.Control.DefenseResourceEmpty', + 'errorMessage' => 'CloudResourceId parameter is illegal.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-***\\",\\n \\"CloudResource\\": \\"lb-xxx-80-clb7\\"\\n}","type":"json"}]', + 'title' => 'ModifyCloudResource', + ], + 'DeleteCloudResource' => [ + 'summary' => 'Removes a service from Web Application Firewall (WAF). This operation is supported for only the Elastic Compute Service (ECS) and Classic Load Balancer (CLB) services.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '226538', + 'abilityTreeNodes' => [ + 'FEATUREwafOV749M', + 'FEATUREwafCMMRA4', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-***', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'ResourceProduct', + 'in' => 'query', + 'schema' => [ + 'description' => 'The cloud service. Valid values:'."\n" + ."\n" + .'* **clb4**: Layer 4 CLB.'."\n" + .'* **clb7**: Layer 7 CLB.'."\n" + .'* **ecs**: ECS.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'clb7', + 'deprecated' => true, + ], + ], + [ + 'name' => 'ResourceInstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the instance.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'lb-bp1*****jqnnqk5uj2p', + 'deprecated' => true, + ], + ], + [ + 'name' => 'Port', + 'in' => 'query', + 'schema' => [ + 'description' => 'The port of the resource that is added to WAF.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '443', + 'deprecated' => true, + ], + ], + [ + 'name' => 'CloudResourceId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-***', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Control.DefenseResourceEmpty', + 'errorMessage' => 'CloudResourceId parameter is illegal.', + ], + [ + 'errorCode' => 'Waf.Control.CloudProductInfoEmpty', + 'errorMessage' => 'The resource Id of the cloud product accessing WAF is null or null values exist in the three input parameters of the cloud product name, port, and cloud product instance.', + ], + [ + 'errorCode' => 'Waf.Control.CloudProductInfoNotMartch', + 'errorMessage' => 'The value of the cloud product, port, instance, and input parameter to which the resource ID of the cloud product is connected to WAF does not match.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-***\\"\\n}","type":"json"}]', + 'title' => 'DeleteCloudResource', + ], + 'DescribeCloudResourceAccessedPorts' => [ + 'summary' => 'Queries the ports of the cloud service that is added to Web Application Firewall (WAF). This operation is supported for only Elastic Compute Service (ECS) and Classic Load Balancer (CLB).', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '226564', + 'abilityTreeNodes' => [ + 'FEATUREwafOV749M', + 'FEATUREwafCMMRA4', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-tl32ast****', + 'default' => '', + ], + ], + [ + 'name' => 'ResourceInstanceId', + 'in' => 'query', + 'schema' => [ + 'title' => '资源的实例ID', + 'description' => 'The instance ID of the resource.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'lb-bp1*****jqnnqk5uj2p', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aekzwwkpn****5i', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C1823E96-EF4B-5BD2-9E02-1D18****3ED8', + ], + 'Http' => [ + 'description' => 'The HTTP ports.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The HTTP port.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '[80]', + ], + ], + 'Https' => [ + 'description' => 'The HTTPS ports.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The HTTPS port.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '[443]', + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C1823E96-EF4B-5BD2-9E02-1D18****3ED8\\",\\n \\"Http\\": [\\n 0\\n ],\\n \\"Https\\": [\\n 0\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeCloudResourceAccessedPorts', + ], + 'DescribeCloudResourceAccessPortDetails' => [ + 'summary' => 'Queries the port details of a cloud service instance that is added to Web Application Firewall (WAF). This operation is supported only for Elastic Compute Service (ECS), Classic Load Balancer (CLB), and Network Load Balancer (NLB) instances.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '226583', + 'abilityTreeNodes' => [ + 'FEATUREwafOV749M', + 'FEATUREwafCMMRA4', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-tl32ast****', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'ResourceInstanceId', + 'in' => 'query', + 'schema' => [ + 'title' => '资源的实例ID', + 'description' => 'The instance ID of the resource.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'lb-2zeugkfj81jvo****4tqm', + ], + ], + [ + 'name' => 'Port', + 'in' => 'query', + 'schema' => [ + 'description' => 'The port of the cloud service that is added to WAF.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '443', + ], + ], + [ + 'name' => 'Protocol', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the protocol. Valid values:'."\n" + ."\n" + .'* **http**'."\n" + .'* **https**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'https', + 'enum' => [ + 'http', + 'https', + ], + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'ResourceProduct', + 'in' => 'query', + 'schema' => [ + 'description' => 'The cloud service. Valid values:'."\n" + ."\n" + .'* **clb4**: Layer 4 CLB.'."\n" + .'* **clb7**: Layer 7 CLB.'."\n" + .'* **ecs**: ECS.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'clb7', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '2EFCFE18-78F8-5079-B312-07***48B', + ], + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'AccessPortDetails' => [ + 'description' => 'The details of the ports of cloud services that are added to WAF.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The details of the port of the cloud service that is added to WAF.'."\n", + 'type' => 'object', + 'properties' => [ + 'Protocol' => [ + 'description' => 'The type of the protocol. Valid values:'."\n" + ."\n" + .'* **http**'."\n" + .'* **https**'."\n", + 'type' => 'string', + 'example' => 'https', + ], + 'Port' => [ + 'description' => 'The port of the cloud service that is added to WAF.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '443', + ], + 'Certificates' => [ + 'description' => 'The certificates that are associated with the ports of cloud services.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the certificate that is associated with the port of the cloud service.'."\n", + 'type' => 'object', + 'properties' => [ + 'CertificateName' => [ + 'description' => 'The name of the certificate.'."\n", + 'type' => 'string', + 'example' => 'cert-name1', + ], + 'CertificateId' => [ + 'description' => 'The ID of the certificate.'."\n", + 'type' => 'string', + 'example' => '123-cn-hangzhou', + ], + 'AppliedType' => [ + 'description' => 'The type of the HTTPS certificate. Valid values:'."\n" + ."\n" + .'* **default**: default certificate.'."\n" + .'* **extension**: additional certificate.'."\n", + 'type' => 'string', + 'example' => 'default', + ], + ], + ], + ], + 'XffHeaderMode' => [ + 'description' => 'The method that WAF uses to obtain the originating IP address of a client. Valid values:'."\n" + ."\n" + .'* **0**: No Layer 7 proxies are deployed in front of WAF.'."\n" + .'* **1**: WAF reads the first value of the X-Forwarded-For (XFF) header field as the originating IP address of the client.'."\n" + .'* **2**: WAF reads the value of a custom header field as the originating IP address of the client.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'XffHeaders' => [ + 'description' => 'The custom header field that is used to obtain the originating IP address of a client. Specify the value in the \\["header1","header2",...] format.'."\n" + ."\n" + .'> This parameter is required only if you set **XffHeaderMode** to 2.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The custom header field that is used to obtain the originating IP address of a client. Specify the value in the \\["header1","header2",...] format.'."\n" + ."\n" + .'> This parameter is required only if you set **XffHeaderMode** to 2.'."\n", + 'type' => 'string', + 'example' => 'header1', + ], + ], + 'LogHeaders' => [ + 'description' => 'The custom header field that you want to use to label requests that are processed by WAF.'."\n" + ."\n" + .'> This parameter is returned only when the traffic marking feature is enabled for the domain name.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The custom header field that you want to use to label requests that are processed by WAF.'."\n" + ."\n" + .'> This parameter is returned only when the traffic marking feature is enabled for the domain name.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of the custom header field.'."\n", + 'type' => 'string', + 'example' => 'key1', + ], + 'Value' => [ + 'description' => 'The value of the custom header field.'."\n", + 'type' => 'string', + 'example' => 'value1', + ], + ], + ], + ], + 'Status' => [ + 'description' => 'The status of the domain name. Valid values:'."\n" + ."\n" + .'* **1**: indicates that the port is available.'."\n" + .'* **2**: indicates that the port is being created.'."\n" + .'* **3**: indicates that the port is being modified.'."\n" + .'* **4**: indicates that the port is being released.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'TLSVersion' => [ + 'description' => 'The version of the Transport Layer Security (TLS) protocol. Valid values:'."\n" + ."\n" + .'* **tlsv1**'."\n" + .'* **tlsv1.1**'."\n" + .'* **tlsv1.2**'."\n", + 'type' => 'string', + 'example' => 'tlsv1', + ], + 'EnableTLSv3' => [ + 'description' => 'Indicates whether to support TLS 1.3. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'CipherSuite' => [ + 'description' => 'The type of the cipher suites. Valid values:'."\n" + ."\n" + .'* **1**: all cipher suites.'."\n" + .'* **2**: strong cipher suites.'."\n" + .'* **99**: custom cipher suites.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'CustomCiphers' => [ + 'description' => 'The custom cipher suites that you want to add. This parameter is available only if you set **CipherSuite** to **99**.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The custom cipher suite.'."\n", + 'type' => 'string', + 'example' => 'ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384', + ], + ], + 'ReadTimeout' => [ + 'description' => 'The timeout period for read connections. Unit: seconds. Valid values: 1 to 3600.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'WriteTimeout' => [ + 'description' => 'The timeout period for write connections. Unit: seconds. Valid values: 1 to 3600.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'Keepalive' => [ + 'description' => 'Indicates whether to enable the persistent connection feature. Valid values:'."\n" + ."\n" + .'* **true** (default)'."\n" + .'* **false:**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'KeepaliveRequests' => [ + 'description' => 'The number of reused persistent connections. Valid values: 60 to 1000.'."\n" + ."\n" + .'> This parameter specifies the number of requests that reuse persistent connections after you enable the persistent connection feature.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1000', + ], + 'KeepaliveTimeout' => [ + 'description' => 'The timeout period for idle persistent connections. Valid values: 10 to 3600. Default value: 15. Unit: seconds.'."\n" + ."\n" + .'> If no new requests are initiated over the idle persistent connection within the specified timeout period, the connection is closed.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + 'Http2Enabled' => [ + 'description' => 'Indicates whether to enable HTTP/2. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'True', + ], + 'XffProto' => [ + 'description' => 'Indicates whether to use the X-Forward-For-Proto header to identify the protocol used by WAF to forward requests to the origin server. Valid values:'."\n" + ."\n" + .'* **true** (default)'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'OwnerUserId' => [ + 'description' => 'The ID of the Alibaba Cloud account to which the resource belongs.'."\n", + 'type' => 'string', + 'example' => '123', + ], + 'SubStatus' => [ + 'type' => 'string', + ], + 'SubStatusDetails' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'CertName' => [ + 'type' => 'string', + ], + 'Domain' => [ + 'type' => 'string', + ], + 'CertId' => [ + 'type' => 'string', + ], + 'AppliedType' => [ + 'type' => 'string', + ], + 'ProductCertName' => [ + 'type' => 'string', + ], + 'ProductCertId' => [ + 'type' => 'string', + ], + 'CommonName' => [ + 'type' => 'string', + ], + 'ReasonCode' => [ + 'type' => 'string', + ], + 'ExpireTime' => [ + 'type' => 'integer', + 'format' => 'int64', + ], + ], + ], + ], + 'CloudResourceId' => [ + 'type' => 'string', + ], + 'MaxBodySize' => [ + 'title' => '最大请求体大小。取值范围:2~10,默认值:2,单位:G。', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Instance.ValidFaild', + 'errorMessage' => 'WAF instance check failed. Check whether the instance ID is correct.', + ], + [ + 'errorCode' => 'Waf.Pullin.CloudProductParamEmpty', + 'errorMessage' => 'The resource Id of the cloud product accessing WAF is null or null values exist in the three input parameters of the cloud product name, port, and cloud product instance.', + ], + [ + 'errorCode' => 'Waf.Pullin.CloudResourceInvalid', + 'errorMessage' => 'CloudResourceId parameter is illegal.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2EFCFE18-78F8-5079-B312-07***48B\\",\\n \\"TotalCount\\": 10,\\n \\"AccessPortDetails\\": [\\n {\\n \\"Protocol\\": \\"https\\",\\n \\"Port\\": 443,\\n \\"Certificates\\": [\\n {\\n \\"CertificateName\\": \\"cert-name1\\",\\n \\"CertificateId\\": \\"123-cn-hangzhou\\",\\n \\"AppliedType\\": \\"default\\"\\n }\\n ],\\n \\"XffHeaderMode\\": 0,\\n \\"XffHeaders\\": [\\n \\"header1\\"\\n ],\\n \\"LogHeaders\\": [\\n {\\n \\"Key\\": \\"key1\\",\\n \\"Value\\": \\"value1\\"\\n }\\n ],\\n \\"Status\\": 1,\\n \\"TLSVersion\\": \\"tlsv1\\",\\n \\"EnableTLSv3\\": true,\\n \\"CipherSuite\\": 1,\\n \\"CustomCiphers\\": [\\n \\"ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384\\"\\n ],\\n \\"ReadTimeout\\": 5,\\n \\"WriteTimeout\\": 1,\\n \\"Keepalive\\": true,\\n \\"KeepaliveRequests\\": 1000,\\n \\"KeepaliveTimeout\\": 10,\\n \\"Http2Enabled\\": true,\\n \\"XffProto\\": true,\\n \\"OwnerUserId\\": \\"123\\",\\n \\"SubStatus\\": \\"InvalidCert\\",\\n \\"SubStatusDetails\\": [\\n {\\n \\"CertName\\": \\"test-name\\",\\n \\"Domain\\": \\"test.aliyun.com\\",\\n \\"CertId\\": \\"123-cn-hangzhou\\",\\n \\"AppliedType\\": \\"default\\",\\n \\"ProductCertName\\": \\"test-name\\",\\n \\"ProductCertId\\": \\"123\\",\\n \\"CommonName\\": \\"test.aliyun.com\\",\\n \\"ReasonCode\\": \\"CertNotExistInCertCenter\\",\\n \\"ExpireTime\\": 1746328456000\\n }\\n ],\\n \\"CloudResourceId\\": \\"i-bp1**************7ey-80-ecs\\",\\n \\"MaxBodySize\\": 2\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeCloudResourceAccessPortDetails', + ], + 'ModifyCloudResourceCert' => [ + 'summary' => '修改云产品接入的证书', + 'path' => '', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafOV749M', + 'FEATUREwafCMMRA4', + 'FEATUREwafMF0FT6', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-***', + ], + ], + [ + 'name' => 'ResourceProduct', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'clb4', + 'enum' => [ + 'ecs', + 'clb4', + 'nlb', + ], + 'deprecated' => true, + ], + ], + [ + 'name' => 'ResourceInstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'lb-bp1*****jqnnqk5uj2p', + 'deprecated' => true, + ], + ], + [ + 'name' => 'Port', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '65534', + 'minimum' => '1', + 'example' => '443', + 'deprecated' => true, + ], + ], + [ + 'name' => 'Certificates', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'CertificateId' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '232***-cn-hangzhou', + ], + 'AppliedType' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'default', + 'enum' => [ + 'default', + 'extension', + ], + ], + ], + 'required' => true, + ], + 'required' => true, + 'maxItems' => 100, + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'CloudResourceId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the request', + 'type' => 'string', + 'example' => 'A47D2DC0-7151-51EF-BFB7-***', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Pullin.CertNotExist', + 'errorMessage' => 'Certificate does not exist in SSL Certificate Center, certificate type:%s, certificate ID:%s.', + ], + [ + 'errorCode' => 'Waf.Pullin.OnlyBeOneDefaultCert', + 'errorMessage' => 'There can be only one default certificate.', + ], + [ + 'errorCode' => 'Waf.Pullin.MaxCertCountLimit', + 'errorMessage' => 'The number of selected certificate IDs exceeds the maximum number in the system.', + ], + [ + 'errorCode' => 'Waf.Pullin.CertExpired', + 'errorMessage' => 'Certificate expired, certificate ID:%s .', + ], + [ + 'errorCode' => 'Waf.Pullin.CloudResourceInvalid', + 'errorMessage' => 'CloudResourceId parameter is illegal.', + ], + [ + 'errorCode' => 'Waf.Pullin.CloudProductParamEmpty', + 'errorMessage' => 'The resource Id of the cloud product accessing WAF is null or null values exist in the three input parameters of the cloud product name, port, and cloud product instance.', + ], + [ + 'errorCode' => 'Waf.Pullin.CloudProductParamNotMatch', + 'errorMessage' => 'The value of the cloud product, port, instance, and input parameter to which the resource ID of the cloud product is connected to WAF does not match.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A47D2DC0-7151-51EF-BFB7-***\\"\\n}","type":"json"}]', + ], + 'DescribeCloudResourceList' => [ + 'summary' => '查询云产品接入资源列表', + 'path' => '', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '226583', + 'abilityTreeNodes' => [ + 'FEATUREwafOV749M', + 'FEATUREwafCMMRA4', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-cn-0xldbqt****', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'OwnerUserId', + 'in' => 'query', + 'schema' => [ + 'title' => '资源归属用户 UID', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '1111111111', + ], + ], + [ + 'name' => 'ResourceInstanceId', + 'in' => 'query', + 'schema' => [ + 'title' => '资源的实例ID', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'i-8vbdlsd********81e22', + ], + ], + [ + 'name' => 'Port', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '80', + ], + ], + [ + 'name' => 'ResourceProduct', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'ecs', + ], + ], + [ + 'name' => 'CloudResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'i-8vbdlsd********81e22-80-ecs', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'AAAAAGBgV9tolsLfijC4wam2htS*****D/46H3X2wIS', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'F35F45B0-5D6B-4238-BE02-A62D****E840', + ], + 'NextToken' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'AAAAAGBgV9tolsLfijC4wam2htS*****D/46H3X2wIS', + ], + 'TotalCount' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '118', + ], + 'MaxResults' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '20', + ], + 'CloudResourceList' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Protocol' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'http', + ], + 'Port' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '80', + ], + 'ResourceRegionId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'ResourceInstanceId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'i-8vbdlsd********81e22', + ], + 'ResourceProduct' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'ecs', + ], + 'CloudResourceId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'i-8vbdlsd********81e22-80-ecs', + ], + 'ResourceManagerResourceGroupId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'rg-aek2uo2****lbka', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Instance.ValidFaild', + 'errorMessage' => 'WAF instance check failed. Check whether the instance ID is correct.', + ], + [ + 'errorCode' => 'Waf.Pullin.CloudProductParamEmpty', + 'errorMessage' => 'The resource Id of the cloud product accessing WAF is null or null values exist in the three input parameters of the cloud product name, port, and cloud product instance.', + ], + [ + 'errorCode' => 'Waf.Pullin.CloudResourceInvalid', + 'errorMessage' => 'CloudResourceId parameter is illegal.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F35F45B0-5D6B-4238-BE02-A62D****E840\\",\\n \\"NextToken\\": \\"AAAAAGBgV9tolsLfijC4wam2htS*****D/46H3X2wIS\\",\\n \\"TotalCount\\": 118,\\n \\"MaxResults\\": 20,\\n \\"CloudResourceList\\": [\\n {\\n \\"Protocol\\": \\"http\\",\\n \\"Port\\": 80,\\n \\"ResourceRegionId\\": \\"cn-hangzhou\\",\\n \\"ResourceInstanceId\\": \\"i-8vbdlsd********81e22\\",\\n \\"ResourceProduct\\": \\"ecs\\",\\n \\"CloudResourceId\\": \\"i-8vbdlsd********81e22-80-ecs\\",\\n \\"ResourceManagerResourceGroupId\\": \\"rg-aek2uo2****lbka\\"\\n }\\n ]\\n}","type":"json"}]', + ], + 'ModifyCloudResourceDefaultCert' => [ + 'summary' => '修改云产品接入的默认证书', + 'path' => '', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafOV749M', + 'FEATUREwafCMMRA4', + 'FEATUREwafMF0FT6', + ], + ], + 'parameters' => [ + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-kf74****', + ], + ], + [ + 'name' => 'CloudResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'lb-***-80-clb7', + ], + ], + [ + 'name' => 'CertId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '123-cn-hangzhou', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the request', + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-***', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-***\\"\\n}","type":"json"}]', + ], + 'DeleteCloudResourceExtensionCert' => [ + 'summary' => '删除云产品接入的扩展证书', + 'path' => '', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafOV749M', + 'FEATUREwafCMMRA4', + 'FEATUREwafMF0FT6', + ], + ], + 'parameters' => [ + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepay_public_intl-sg-***', + ], + ], + [ + 'name' => 'CloudResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'lb-bp*********k5uj2p-443-clb7', + ], + ], + [ + 'name' => 'CertId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '123-cn-hangzhou', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the request', + 'type' => 'string', + 'example' => '56B40D30-4960-4F19-B7D5-***', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"56B40D30-4960-4F19-B7D5-***\\"\\n}","type":"json"}]', + ], + 'CreateCloudResourceExtensionCert' => [ + 'summary' => '添加云产品接入的扩展证书', + 'path' => '', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafOV749M', + 'FEATUREwafCMMRA4', + 'FEATUREwafMF0FT6', + ], + ], + 'parameters' => [ + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-***', + ], + ], + [ + 'name' => 'CloudResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'lb-bp*********k5uj2p-443-clb7', + ], + ], + [ + 'name' => 'CertId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '123-cn-hangzhou', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the request', + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19****5EB0', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19****5EB0\\"\\n}","type":"json"}]', + ], + 'DescribeDomainUsedPorts' => [ + 'summary' => '查询域名已使用的端口', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '217316', + 'abilityTreeNodes' => [ + 'FEATUREwafD36LCH', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-cn-0xldbqt****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'D7861F61-5B61-*-A47C-*', + ], + 'UsedPorts' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '80', + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-*-A47C-*\\",\\n \\"UsedPorts\\": [\\n 80\\n ]\\n}","type":"json"}]', + ], + 'CreateDomain' => [ + 'summary' => 'Adds a domain name to Web Application Firewall (WAF).', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106298', + 'abilityTreeNodes' => [ + 'FEATUREwafD36LCH', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name that you want to add to WAF.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'www.aliyundoc.com', + ], + ], + [ + 'name' => 'Listen', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The listener configurations.'."\n", + 'type' => 'object', + 'properties' => [ + 'HttpsPorts' => [ + 'description' => 'The HTTPS listener ports.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The HTTPS listener port. Specify the value in the \\[**port1,port2,...,portN**] format.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '[443,8443]', + ], + 'required' => false, + ], + 'HttpPorts' => [ + 'description' => 'The HTTP listener ports.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The HTTP listener port. Specify the value in the \\[**port1,port2,...**] format.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '[80,81]', + ], + 'required' => false, + ], + 'Http2Enabled' => [ + 'description' => 'Specifies whether to enable HTTP/2. This parameter is available only if you specify **HttpsPorts**. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", + 'type' => 'boolean', + 'required' => false, + 'enumValueTitles' => [], + 'example' => 'true', + ], + 'CertId' => [ + 'description' => 'The ID of the certificate that you want to add. This parameter is available only if you specify **HttpsPorts**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123', + ], + 'SM2Enabled' => [ + 'description' => 'Specifies whether to add an SM certificate.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + 'default' => 'false', + ], + 'SM2CertId' => [ + 'description' => 'The ID of the SM certificate that you want to add. This parameter is available only if you set SM2Enabled to true.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123-cn-hangzhou', + ], + 'SM2AccessOnly' => [ + 'description' => 'Specifies whether to allow access only from SM certificate-based clients. This parameter is available only if you set SM2Enabled to true.'."\n" + ."\n" + .'* true'."\n" + .'* false'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + 'default' => 'false', + ], + 'TLSVersion' => [ + 'description' => 'The Transport Layer Security (TLS) version that you want to add. This parameter is available only if you specify **HttpsPorts**. Valid values:'."\n" + ."\n" + .'* **tlsv1**'."\n" + .'* **tlsv1.1**'."\n" + .'* **tlsv1.2**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tlsv1', + ], + 'EnableTLSv3' => [ + 'description' => 'Specifies whether to support TLS 1.3. This parameter is available only if you specify **HttpsPorts**. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + 'CipherSuite' => [ + 'description' => 'The type of the cipher suites that you want to add. This parameter is available only if you specify **HttpsPorts**. Valid values:'."\n" + ."\n" + .'* **1**: all cipher suites.'."\n" + .'* **2**: strong cipher suites. This value is available only if you set **TLSVersion** to **tlsv1.2**.'."\n" + .'* **99**: custom cipher suites.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + 'CustomCiphers' => [ + 'description' => 'The custom cipher suites that you want to add.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The custom cipher suite that you want to add. This parameter is available only if you set **CipherSuite** to **99**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["xxx","ffas"]', + ], + 'required' => false, + ], + 'FocusHttps' => [ + 'description' => 'Specifies whether to enable force redirect from HTTP to HTTPS for received requests. This parameter is available only if you specify HttpsPorts and leave HttpPorts empty. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + 'XffHeaderMode' => [ + 'description' => 'The method that is used to obtain the originating IP address of a client. Valid values:'."\n" + ."\n" + .'* **0** (default): Client traffic is not filtered by a Layer 7 proxy before the traffic reaches WAF.'."\n" + .'* **1**: WAF reads the first value of the X-Forwarded-For (XFF) header field as the originating IP address of the client.'."\n" + .'* **2**: WAF reads the value of a custom header field as the originating IP address of the client.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + 'XffHeaders' => [ + 'description' => 'The custom header fields that are used to obtain the originating IP address of a client.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The custom header field that is used to obtain the originating IP address of a client. Specify the value in the **\\["header1","header2",...]** format.'."\n" + ."\n" + .'> This parameter is required only if you set **XffHeaderMode** to 2.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["Client-ip","cip"]', + ], + 'required' => false, + ], + 'IPv6Enabled' => [ + 'description' => 'Specifies whether to enable IPv6 protection. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + 'ProtectionResource' => [ + 'description' => 'The type of the protection resource. Valid values:'."\n" + ."\n" + .'* **share** (default): a shared cluster.'."\n" + .'* **gslb**: shared cluster-based intelligent load balancing.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'share', + 'default' => 'share', + ], + 'ExclusiveIp' => [ + 'description' => 'Specifies whether to enable the exclusive IP address feature. This parameter is available only if you set **IPv6Enabled** to **false** and **ProtectionResource** to **share**. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + 'required' => true, + ], + ], + [ + 'name' => 'Redirect', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The forwarding configurations.'."\n", + 'type' => 'object', + 'properties' => [ + 'Backends' => [ + 'description' => 'The IP addresses or domain names of the origin server.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The IP address or domain name of the origin server. You cannot specify both IP addresses and domain names. If you specify domain names, the domain names can be resolved only to IPv4 addresses.'."\n" + ."\n" + .'* If you specify IP addresses, specify the value in the **\\["ip1","ip2",...]** format. You can enter up to 20 IP addresses.'."\n" + .'* If you specify domain names, specify the value in the **\\["domain"]** format. You can enter up to 20 domain names.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '['."\n" + .' "1.1.XX.XX",'."\n" + .' "2.2.XX.XX"'."\n" + .']', + ], + 'required' => false, + ], + 'Loadbalance' => [ + 'description' => 'The load balancing algorithm that you want to use to forward requests to the origin server. Valid values:'."\n" + ."\n" + .'* **iphash**'."\n" + .'* **roundRobin**'."\n" + .'* **leastTime**: This value is available only if you set **ProtectionResource** to **gslb**.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'roundRobin', + 'default' => 'iphash', + ], + 'FocusHttpBackend' => [ + 'description' => 'Specifies whether to enable force redirect from HTTPS to HTTP for back-to-origin requests. This parameter is available only if you specify **HttpsPorts**. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + 'SniEnabled' => [ + 'description' => 'Specifies whether to enable the Server Name Indication (SNI) feature for back-to-origin requests. This parameter is available only if you specify **HttpsPorts**. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + 'SniHost' => [ + 'description' => 'The custom value of the SNI field. If you do not specify this parameter, the value of the **Host** header field is automatically used. In most cases, you do not need to specify a custom value for the SNI field. However, if you want WAF to use an SNI field whose value is different from the value of the Host header field in back-to-origin requests, you can specify a custom value for the SNI field.'."\n" + ."\n" + .'> This parameter is required only if you set **SniEnabled** to **true**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'www.aliyundoc.com', + ], + 'RequestHeaders' => [ + 'description' => 'The custom header fields, which are key-value pairs. The fields are used to mark requests that pass through WAF.'."\n" + ."\n" + .'When a request passes through WAF, WAF automatically adds the custom header fields to the request to mark the request. This way, the backend service can identify requests that are processed by WAF.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The custom header field. Specify the value in the \\[**{"k":"*key*","v":"*value*"}**] format. ***key*** specifies the key of a custom header field. ***value*** specifies the value of a custom header field.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of the custom header field.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'aaa', + ], + 'Value' => [ + 'description' => 'The value of the custom header field.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'bbb', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 5, + ], + 'ConnectTimeout' => [ + 'description' => 'The timeout period of connections. Unit: seconds. Valid values: 1 to 3600.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '3600', + 'minimum' => '1', + 'example' => '120', + 'default' => '5', + ], + 'ReadTimeout' => [ + 'description' => 'The timeout period of read connections. Unit: seconds. Valid values: 1 to 3600.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '3600', + 'minimum' => '1', + 'example' => '200', + 'default' => '120', + ], + 'WriteTimeout' => [ + 'description' => 'The timeout period of write connections. Unit: seconds. Valid values: 1 to 3600.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '3600', + 'minimum' => '1', + 'example' => '200', + 'default' => '120', + ], + 'CnameEnabled' => [ + 'description' => 'Specifies whether to enable the public cloud disaster recovery feature. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + 'RoutingRules' => [ + 'description' => 'The forwarding rules for the hybrid cloud mode. The value is a string that consists of JSON arrays. Each element in a JSON array is a JSON struct that contains the following fields:'."\n" + ."\n" + .'* **rs**: the back-to-origin IP addresses or CNAMEs. Data type: array.'."\n" + .'* **location**: the name of the protection node. Data type: string.'."\n" + .'* **locationId**: the ID of the protection node. Data type: long.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '['."\n" + .' {'."\n" + .' "rs": ['."\n" + .' "1.1.XX.XX"'."\n" + .' ],'."\n" + .' "locationId": 535,'."\n" + .' "location": "test1111"'."\n" + .' }'."\n" + .']', + ], + 'Keepalive' => [ + 'description' => 'Specifies whether to enable the persistent connection feature. Valid values:'."\n" + ."\n" + .'* **true** (default)'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + 'default' => 'true', + ], + 'Retry' => [ + 'description' => 'Specifies whether WAF retries if WAF fails to forward requests to the origin server. Valid values:'."\n" + ."\n" + .'* **true** (default)'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + 'default' => 'true', + ], + 'KeepaliveRequests' => [ + 'description' => 'The number of reused persistent connections. Valid values: 60 to 1000.'."\n" + ."\n" + .'> This parameter specifies the number of persistent connections that can be reused after you enable the persistent connection feature.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '1000', + 'minimum' => '60', + 'example' => '1000', + 'default' => '1000', + ], + 'KeepaliveTimeout' => [ + 'description' => 'The timeout period of idle persistent connections. Valid values: 1 to 60. Default value: 15. Unit: seconds.'."\n" + ."\n" + .'> This parameter specifies the period of time after which an idle persistent connection is closed.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '3600', + 'minimum' => '10', + 'example' => '15', + 'default' => '15', + ], + 'XffProto' => [ + 'description' => 'Specifies whether to use the X-Forward-For-Proto header field to pass the protocol used by WAF to forward requests to the origin server. Valid values:'."\n" + ."\n" + .'* **true** (default)'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + 'default' => 'true', + ], + 'BackupBackends' => [ + 'description' => 'The secondary IP addresses or domain names of the origin server.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The secondary IP address or domain name of the origin server. You cannot specify both IP addresses and domain names. If you specify domain names, the domain names can be resolved only to IPv4 addresses.'."\n" + ."\n" + .'* If you specify IP addresses, specify the value in the **\\["ip1","ip2",...]** format. You can enter up to 20 IP addresses.'."\n" + .'* If you specify domain names, specify the value in the **\\["domain"]** format. You can enter up to 20 domain names.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '['."\n" + .' "1.1.XX.XX",'."\n" + .' "2.2.XX.XX"'."\n" + .']', + ], + 'required' => false, + ], + 'XClientIp' => [ + 'type' => 'boolean', + ], + 'XTrueIp' => [ + 'type' => 'boolean', + ], + 'WebServerType' => [ + 'type' => 'boolean', + ], + 'WLProxyClientIp' => [ + 'type' => 'boolean', + ], + 'MaxBodySize' => [ + 'title' => '最大请求体大小。取值范围:2~10,默认值:2,单位:G。'."\n" + ."\n", + 'type' => 'integer', + 'format' => 'int32', + 'maximum' => '10', + 'minimum' => '2', + 'example' => '2', + ], + 'Http2Origin' => [ + 'title' => 'HTTP2回源', + 'type' => 'boolean', + ], + 'Http2OriginMaxConcurrency' => [ + 'title' => 'HTTP2回源并发连接数', + 'type' => 'integer', + 'format' => 'int32', + 'maximum' => '512', + 'minimum' => '1', + 'example' => '128', + ], + 'BackendPorts' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ListenPort' => [ + 'type' => 'integer', + 'format' => 'int32', + ], + 'BackendPort' => [ + 'type' => 'integer', + 'format' => 'int32', + ], + 'Protocol' => [ + 'type' => 'string', + ], + ], + ], + ], + ], + 'required' => true, + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + 'title' => '', + ], + ], + [ + 'name' => 'AccessType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The mode in which you want to add the domain name to WAF. Valid values:'."\n" + ."\n" + .'* **share:** adds the domain name to WAF in CNAME record mode. This is the default value.'."\n" + .'* **hybrid_cloud_cname:** adds the domain name to WAF in hybrid cloud reverse proxy mode.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'share', + 'default' => 'share', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '标签列表,最多包含20个子项', + 'description' => 'The tags. You can specify up to 20 tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag. You can specify up to 20 tags.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'title' => '标签键', + 'description' => 'The key of the tag.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Tagkey1', + ], + 'Value' => [ + 'title' => '标签值', + 'description' => 'The value of the tag.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TagValue1', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D****', + ], + 'DomainInfo' => [ + 'description' => 'The information about the domain name that is added.'."\n", + 'type' => 'object', + 'properties' => [ + 'Cname' => [ + 'description' => 'The CNAME that is assigned by WAF to the domain name.'."\n", + 'type' => 'string', + 'example' => 'xxxxxwww.****.com', + ], + 'Domain' => [ + 'description' => 'The domain name that you added to WAF.'."\n", + 'type' => 'string', + 'example' => 'www.aliyundoc.com', + ], + 'DomainId' => [ + 'description' => 'The name of the protected object that is generated.'."\n", + 'type' => 'string', + 'example' => 'www.aliyundoc.com-waf', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Pullin.ResourceExsit', + 'errorMessage' => 'Access resource already exists, resource:%s.', + ], + [ + 'errorCode' => 'Waf.Pullin.BusinessViolation', + 'errorMessage' => 'The web services are suspected of violating regulations. If you have any questions, please submit a work order. Violating resource: %s.', + ], + [ + 'errorCode' => 'Waf.Pullin.Http2OriginMustOnHttp2Enable', + 'errorMessage' => 'When HTTP2 origin is enabled, HTTP2 listening must be enabled.', + ], + [ + 'errorCode' => 'Waf.Pullin.Http2OriginMustOnKeepaliveEnable', + 'errorMessage' => 'When the HTTP2 origin is turned on, the keepalive must be turned on.', + ], + [ + 'errorCode' => 'Waf.Pullin.Http2OriginEnabledFocusHttpBackendForbidden', + 'errorMessage' => 'When HTTP2 origin is enabled, HTTP origin cannot be enabled.', + ], + [ + 'errorCode' => 'Waf.Pullin.BatchDnsScheduleCheckFailed', + 'errorMessage' => 'Batch dns scheduling is in progress, and access related operations are prohibited.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\",\\n \\"DomainInfo\\": {\\n \\"Cname\\": \\"xxxxxwww.****.com\\",\\n \\"Domain\\": \\"www.aliyundoc.com\\",\\n \\"DomainId\\": \\"www.aliyundoc.com-waf\\"\\n }\\n}","type":"json"}]', + 'title' => 'CreateDomain', + ], + 'ModifyDomain' => [ + 'summary' => 'Modifies the configurations of a domain name that is added to Web Application Firewall (WAF) in CNAME record mode.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '114036', + 'abilityTreeNodes' => [ + 'FEATUREwafD36LCH', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name whose access configurations you want to modify.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'www.aliyundoc.com', + ], + ], + [ + 'name' => 'DomainId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + [ + 'name' => 'Listen', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The listener configurations.'."\n", + 'type' => 'object', + 'properties' => [ + 'HttpsPorts' => [ + 'description' => 'The HTTPS listener ports. Specify the value in the \\[**port1,port2,...**] format.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The HTTPS listener port.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '443', + ], + 'required' => false, + ], + 'HttpPorts' => [ + 'description' => 'The HTTP listener ports. Specify the value in the \\[**port1,port2,...**] format.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The HTTP listener port.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '80', + ], + 'required' => false, + ], + 'Http2Enabled' => [ + 'description' => 'Specifies whether to enable HTTP/2. This parameter is available only if you specify **HttpsPorts**. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + 'CertId' => [ + 'description' => 'The ID of the certificate that you want to add.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123', + ], + 'SM2Enabled' => [ + 'description' => 'Specifies whether to add an SM certificate.'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + 'SM2CertId' => [ + 'description' => 'The ID of the SM certificate that you want to add. This parameter is available only if you set SM2Enabled to true.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '123-cn-hangzhou', + ], + 'SM2AccessOnly' => [ + 'description' => 'Specifies whether to allow access only from SM certificate-based clients. This parameter is available only if you set SM2Enabled to true.'."\n" + ."\n" + .'* true'."\n" + .'* false'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + 'TLSVersion' => [ + 'description' => 'The Transport Layer Security (TLS) version that you want to add. This parameter is available only if you specify **HttpsPorts**. Valid values:'."\n" + ."\n" + .'* **tlsv1**'."\n" + .'* **tlsv1.1**'."\n" + .'* **tlsv1.2**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'tlsv1', + ], + 'EnableTLSv3' => [ + 'description' => 'Specifies whether to support TLS 1.3. This parameter is available only if you specify **HttpsPorts**. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + 'CipherSuite' => [ + 'description' => 'The type of the cipher suites that you want to add. This parameter is available only if you specify **HttpsPorts**. Valid values:'."\n" + ."\n" + .'* **1**: all cipher suites.'."\n" + .'* **2**: strong cipher suites. This value is available only if you set **TLSVersion** to **tlsv1.2**.'."\n" + .'* **99**: custom cipher suites.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + ], + 'CustomCiphers' => [ + 'description' => 'The custom cipher suites that you want to add. This parameter is available only if you set **CipherSuite** to **99**.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The custom cipher suite that you want to add.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '["xxx","ffas"]', + ], + 'required' => false, + ], + 'FocusHttps' => [ + 'description' => 'Specifies whether to enable force redirect from HTTP to HTTPS for received requests. This parameter is available only if you specify **HttpsPorts** and leave **HttpPorts** empty. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + 'XffHeaderMode' => [ + 'description' => 'The method that is used to obtain the originating IP address of a client. Valid values:'."\n" + ."\n" + .'* **0** (default): Client traffic is not filtered by a Layer 7 proxy before the traffic reaches WAF.'."\n" + .'* **1**: WAF reads the first value of the X-Forwarded-For (XFF) header field as the originating IP address of the client.'."\n" + .'* **2**: WAF reads the value of a custom header field as the originating IP address of the client.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'enumValueTitles' => [], + 'example' => '2', + 'enum' => [ + '0', + '1', + '2', + ], + ], + 'XffHeaders' => [ + 'description' => 'The custom header fields that are used to obtain the originating IP address of a client. Specify the value in the **\\["header1","header2",...]** format.'."\n" + ."\n" + .'> This parameter is required only if you set **XffHeaderMode** to 2.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The custom header field that is used to obtain the originating IP address of a client.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Client-ip', + ], + 'required' => false, + ], + 'IPv6Enabled' => [ + 'description' => 'Specifies whether to enable IPv6 protection. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + 'ProtectionResource' => [ + 'description' => 'The type of the protection resource. Valid values:'."\n" + ."\n" + .'* **share** (default): a shared cluster.'."\n" + .'* **gslb**: shared cluster-based intelligent load balancing.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'share', + 'default' => 'share', + ], + 'ExclusiveIp' => [ + 'description' => 'Specifies whether to enable the exclusive IP address feature. This parameter is available only if you set **IPv6Enabled** to false and **ProtectionResource** to **share**. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + 'required' => true, + ], + ], + [ + 'name' => 'Redirect', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The forwarding configurations.'."\n", + 'type' => 'object', + 'properties' => [ + 'Backends' => [ + 'description' => 'The IP addresses or domain names of the origin server. You cannot specify both IP addresses and domain names. If you specify domain names, the domain names can be resolved only to IPv4 addresses.'."\n" + ."\n" + .'* If you specify IP addresses, specify the value in the **\\["ip1","ip2",...]** format. You can enter up to 20 IP addresses.'."\n" + .'* If you specify domain names, specify the value in the **\\["domain"]** format. You can enter up to 20 domain names.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The IP address or domain name of the origin server.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1.1.XX.XX', + ], + 'required' => false, + ], + 'Loadbalance' => [ + 'description' => 'The load balancing algorithm that you want to use to forward requests to the origin server. Valid values:'."\n" + ."\n" + .'* **iphash**'."\n" + .'* **roundRobin**'."\n" + .'* **leastTime**: This value is available only if you set **ProtectionResource** to **gslb**.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'iphash', + 'default' => 'iphash', + ], + 'FocusHttpBackend' => [ + 'description' => 'Specifies whether to enable force redirect from HTTPS to HTTP for back-to-origin requests. This parameter is available only if you specify **HttpsPorts**. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + 'SniEnabled' => [ + 'description' => 'Specifies whether to enable the Server Name Indication (SNI) feature for back-to-origin requests. This parameter is available only if you specify **HttpsPorts**. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + 'SniHost' => [ + 'description' => 'The custom value of the SNI field. If you do not specify this parameter, the value of the **Host** header field is automatically used. In most cases, you do not need to specify a custom value for the SNI field. However, if you want WAF to use an SNI field whose value is different from the value of the Host header field in back-to-origin requests, you can specify a custom value for the SNI field.'."\n" + ."\n" + .'> This parameter is required only if you set **SniEnabled** to true.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'www.aliyundoc.com', + ], + 'RequestHeaders' => [ + 'description' => 'The custom header fields, which are key-value pairs. The fields are used to mark requests that pass through WAF.'."\n" + ."\n" + .'When a request passes through WAF, WAF automatically adds the custom header fields to the request to mark the request. This way, the backend service can identify requests that are processed by WAF.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The custom header field. Specify the value in the \\[**{"k":"*key*","v":"*value*"}**] format. ***key*** specifies the key of a custom header field. ***value*** specifies the value of a custom header field.'."\n" + ."\n" + .'> If a request contains a custom header field, WAF overwrites the original value of the field with the specified value.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The key of the custom header field.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'aaa', + ], + 'Value' => [ + 'description' => 'The value of the custom header field.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'bbb', + ], + ], + 'required' => false, + ], + 'required' => false, + ], + 'ConnectTimeout' => [ + 'description' => 'The timeout period of connections. Unit: seconds. Valid values: 1 to 3600.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '3600', + 'minimum' => '1', + 'example' => '120', + 'default' => '5', + ], + 'ReadTimeout' => [ + 'description' => 'The timeout period of read connections. Unit: seconds. Valid values: 1 to 3600.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '3600', + 'minimum' => '1', + 'example' => '200', + 'default' => '120', + ], + 'WriteTimeout' => [ + 'description' => 'The timeout period of write connections. Unit: seconds. Valid values: 1 to 3600.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '3600', + 'minimum' => '1', + 'example' => '200', + 'default' => '120', + ], + 'CnameEnabled' => [ + 'description' => 'Specifies whether to enable the public cloud disaster recovery feature. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false** (default)'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + 'RoutingRules' => [ + 'description' => 'The forwarding rules for the hybrid cloud mode. The value is a string that consists of JSON arrays. Each element in a JSON array is a JSON struct that contains the following fields:'."\n" + ."\n" + .'* **rs**: the back-to-origin IP addresses or CNAMEs. Data type: array.'."\n" + .'* **location**: the name of the protection node. Data type: string.'."\n" + .'* **locationId**: the ID of the protection node. Data type: long.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '['."\n" + .' {'."\n" + .' "rs": ['."\n" + .' "1.1.XX.XX"'."\n" + .' ],'."\n" + .' "locationId": 535,'."\n" + .' "location": "test1111"'."\n" + .' }'."\n" + .']'."\n", + ], + 'Keepalive' => [ + 'description' => 'Specifies whether to enable the persistent connection feature. Valid values:'."\n" + ."\n" + .'* **true** (default)'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + 'default' => 'true', + ], + 'Retry' => [ + 'description' => 'Specifies whether WAF retries if WAF fails to forward requests to the origin server. Valid values:'."\n" + ."\n" + .'* **true** (default)'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + 'default' => 'true', + ], + 'KeepaliveRequests' => [ + 'description' => 'The number of reused persistent connections. Valid values: 60 to 1000.'."\n" + ."\n" + .'> This parameter specifies the number of persistent connections that can be reused after you enable the persistent connection feature.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '1000', + 'minimum' => '60', + 'example' => '1000', + 'default' => '1000', + ], + 'KeepaliveTimeout' => [ + 'description' => 'The timeout period of idle persistent connections. Valid values: 1 to 60. Default value: 15. Unit: seconds.'."\n" + ."\n" + .'> This parameter specifies the period of time after which an idle persistent connection is closed.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '3600', + 'minimum' => '10', + 'example' => '15', + 'default' => '15', + ], + 'XffProto' => [ + 'description' => 'Specifies whether to use the X-Forward-For-Proto header field to pass the protocol used by WAF to forward requests to the origin server. Valid values:'."\n" + ."\n" + .'* **true** (default)'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + 'default' => 'true', + ], + 'BackupBackends' => [ + 'description' => 'The secondary IP addresses or domain names of the origin server.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The secondary IP address or domain name of the origin server. You cannot specify both IP addresses and domain names. If you specify domain names, the domain names can be resolved only to IPv4 addresses.'."\n" + ."\n" + .'* If you specify IP addresses, specify the value in the **\\["ip1","ip2",...]** format. You can enter up to 20 IP addresses.'."\n" + .'* If you specify domain names, specify the value in the **\\["domain"]** format. You can enter up to 20 domain names.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '['."\n" + .' "1.1.XX.XX",'."\n" + .' "2.2.XX.XX"'."\n" + .']', + ], + 'required' => false, + ], + 'XClientIp' => [ + 'type' => 'boolean', + ], + 'XTrueIp' => [ + 'type' => 'boolean', + ], + 'WebServerType' => [ + 'type' => 'boolean', + ], + 'WLProxyClientIp' => [ + 'type' => 'boolean', + ], + 'MaxBodySize' => [ + 'title' => '最大请求体大小。取值范围:2~10,默认值:2,单位:G。', + 'type' => 'integer', + 'format' => 'int32', + 'maximum' => '10', + 'minimum' => '2', + 'example' => '2', + ], + 'Http2Origin' => [ + 'title' => 'HTTP2回源', + 'type' => 'boolean', + ], + 'Http2OriginMaxConcurrency' => [ + 'title' => 'HTTP2回源并发连接数', + 'type' => 'integer', + 'format' => 'int32', + 'maximum' => '512', + 'minimum' => '1', + 'example' => '128', + ], + 'BackendPorts' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ListenPort' => [ + 'type' => 'integer', + 'format' => 'int32', + ], + 'BackendPort' => [ + 'type' => 'integer', + 'format' => 'int32', + ], + 'Protocol' => [ + 'type' => 'string', + ], + ], + ], + ], + ], + 'required' => true, + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'AccessType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The mode in which you want to add the domain name to WAF. Set the value to share.'."\n" + ."\n" + .'* **share:** adds the domain name to WAF in CNAME record mode. This is the default value.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'share', + 'default' => 'share', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D5EB0', + ], + 'DomainInfo' => [ + 'description' => 'The information about the domain name.'."\n", + 'type' => 'object', + 'properties' => [ + 'Cname' => [ + 'description' => 'The CNAME that is assigned by WAF to the domain name.'."\n", + 'type' => 'string', + 'example' => 'xxxxxcvdaf.****.com', + ], + 'Domain' => [ + 'description' => 'The domain name whose access configurations you modified.'."\n", + 'type' => 'string', + 'example' => 'www.aliyundoc.com', + ], + 'DomainId' => [ + 'description' => 'The ID of the domain name.'."\n", + 'type' => 'string', + 'example' => 'www.aliyundoc.com-waf', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Pullin.BusinessViolation', + 'errorMessage' => 'The web services are suspected of violating regulations. If you have any questions, please submit a work order. Violating resource: %s.', + ], + [ + 'errorCode' => 'Waf.Control.DomainAndDomainIdBothEmpty', + 'errorMessage' => 'domain and domainId cannot be empty at the same time.', + ], + [ + 'errorCode' => 'Waf.Control.DomainAndDomainIdNotMatch', + 'errorMessage' => 'domain and domainId do not match.', + ], + [ + 'errorCode' => 'Waf.Control.DomainIdIsIllegal', + 'errorMessage' => 'The input parameter, the domainId is illegal.', + ], + [ + 'errorCode' => 'Waf.Pullin.BackupBackendConflict', + 'errorMessage' => 'The backup backend configuration conflicts.', + ], + [ + 'errorCode' => 'Waf.Pullin.BackendPortIncompatible', + 'errorMessage' => 'The back-to-source port is incompatible with the listening port, listening protocol:%s, listening port:%s, back-to-source port:%s.', + ], + [ + 'errorCode' => 'Waf.Pullin.Http2OriginMustOnKeepaliveEnable', + 'errorMessage' => 'When the HTTP2 origin is turned on, the keepalive must be turned on.', + ], + [ + 'errorCode' => 'Waf.Pullin.Http2OriginEnabledFocusHttpBackendForbidden', + 'errorMessage' => 'When HTTP2 origin is enabled, HTTP origin cannot be enabled.', + ], + [ + 'errorCode' => 'Waf.Pullin.BatchDnsScheduleCheckFailed', + 'errorMessage' => 'Batch dns scheduling is in progress, and access related operations are prohibited.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D****\\",\\n \\"DomainInfo\\": {\\n \\"Cname\\": \\"xxxxxcvdaf.****.com\\",\\n \\"Domain\\": \\"www.aliyundoc.com\\",\\n \\"DomainId\\": \\"www.aliyundoc.com-waf\\"\\n }\\n}","type":"json"}]', + 'title' => 'ModifyDomain', + ], + 'DeleteDomain' => [ + 'summary' => 'Deletes a domain name that is added to Web Application Firewall (WAF).', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106552', + 'abilityTreeNodes' => [ + 'FEATUREwafD36LCH', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name that you want to delete.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'www.aliyundoc.com', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'AccessType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The mode in which the domain name is added to WAF. Valid values:'."\n" + ."\n" + .'* **share:** CNAME record mode. This is the default value.'."\n" + .'* **hybrid_cloud_cname:** hybrid cloud reverse proxy mode.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'share', + 'default' => 'share', + ], + ], + [ + 'name' => 'DomainId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the domain name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'www.aliyundoc.com-waf', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D5EB0', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Control.DomainAndDomainIdBothEmpty', + 'errorMessage' => 'domain and domainId cannot be empty at the same time.', + ], + [ + 'errorCode' => 'Waf.Control.DomainAndDomainIdNotMatch', + 'errorMessage' => 'domain and domainId do not match.', + ], + [ + 'errorCode' => 'Waf.Control.DomainIdIsIllegal', + 'errorMessage' => 'The input parameter, the domainId is illegal.', + ], + [ + 'errorCode' => 'Waf.Pullin.BatchDnsScheduleCheckFailed', + 'errorMessage' => 'Batch dns scheduling is in progress, and access related operations are prohibited.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\"\\n}","type":"json"}]', + 'title' => 'DeleteDomain', + ], + 'DescribeDomains' => [ + 'summary' => 'Queries the domain names that are added to Web Application Firewall (WAF).', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '112189', + 'abilityTreeNodes' => [ + 'FEATUREwafD36LCH', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number of the page to return. Default value: 1.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'title' => '域名', + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'www.aliyundoc.com', + ], + ], + [ + 'name' => 'Backend', + 'in' => 'query', + 'schema' => [ + 'title' => '回源地址', + 'description' => 'An array of HTTPS listener ports.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1.1.XX.XX', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '50', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'DomainId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tag of the resource. You can specify up to 20 tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The tag key.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TagKey1', + ], + 'Value' => [ + 'description' => 'The tag value.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TagValue1', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'ABF68BB3-2C48-5FA4-9750-D5FE55700E36', + ], + 'TotalCount' => [ + 'description' => 'The total number of returned entries.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '146', + ], + 'Domains' => [ + 'description' => 'The domain names that are added to WAF in CNAME record mode.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Domain' => [ + 'title' => '域名', + 'description' => 'The domain name that is added to WAF in CNAME record mode.'."\n", + 'type' => 'string', + 'example' => 'www.aliyundoc.com', + ], + 'Status' => [ + 'title' => '域名状态', + 'description' => 'The status of the domain name. Valid values:'."\n" + ."\n" + .'* **1:** The domain name is in a normal state.'."\n" + .'* **2:** The domain name is being created.'."\n" + .'* **3:** The domain name is being modified.'."\n" + .'* **4:** The domain name is being released.'."\n" + .'* **5:** WAF no longer forwards traffic that is sent to the domain name.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'Cname' => [ + 'title' => 'CNAME', + 'description' => 'The CNAME assigned by WAF to the domain name.'."\n", + 'type' => 'string', + 'example' => 'xxxxxcvdaf.****.com', + ], + 'ListenPorts' => [ + 'description' => 'The configurations of the listeners.'."\n", + 'type' => 'object', + 'properties' => [ + 'Http' => [ + 'description' => 'The HTTP listener ports.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The HTTP listener port.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '80', + ], + ], + 'Https' => [ + 'description' => 'The HTTPS listener ports.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The HTTPS listener port.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '443', + ], + ], + ], + ], + 'Backeds' => [ + 'description' => 'The back-to-origin settings.'."\n", + 'type' => 'object', + 'properties' => [ + 'Http' => [ + 'description' => 'The HTTP addresses of the origin server.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Backend' => [ + 'description' => 'The HTTP address of the origin server.'."\n", + 'type' => 'string', + 'example' => '1.1.XX.XX', + ], + ], + ], + ], + 'Https' => [ + 'description' => 'The HTTPS addresses of the origin server.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Backend' => [ + 'description' => 'The HTTPS address of the origin server.'."\n", + 'type' => 'string', + 'example' => '1.1.XX.XX', + ], + ], + ], + ], + ], + ], + 'ResourceManagerResourceGroupId' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'example' => 'rg-acfmvtc5z52****', + ], + 'DomainId' => [ + 'type' => 'string', + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Pullin.DomainAndDomainIdBothEmpty', + 'errorMessage' => 'domain and domainId cannot be empty at the same time.', + ], + [ + 'errorCode' => 'Waf.Pullin.DomainAndDomainIdNotMatch', + 'errorMessage' => 'domain and domainId do not match.', + ], + [ + 'errorCode' => 'Waf.Pullin.DomainIdIsIllegal', + 'errorMessage' => 'The input parameter, the domainId is illegal.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"ABF68BB3-2C48-5FA4-9750-D5FE55700E36\\",\\n \\"TotalCount\\": 146,\\n \\"Domains\\": [\\n {\\n \\"Domain\\": \\"www.aliyundoc.com\\",\\n \\"Status\\": 1,\\n \\"Cname\\": \\"xxxxxcvdaf.****.com\\",\\n \\"ListenPorts\\": {\\n \\"Http\\": [\\n 80\\n ],\\n \\"Https\\": [\\n 443\\n ]\\n },\\n \\"Backeds\\": {\\n \\"Http\\": [\\n {\\n \\"Backend\\": \\"1.1.XX.XX\\"\\n }\\n ],\\n \\"Https\\": [\\n {\\n \\"Backend\\": \\"1.1.XX.XX\\"\\n }\\n ]\\n },\\n \\"ResourceManagerResourceGroupId\\": \\"rg-acfmvtc5z52****\\",\\n \\"DomainId\\": \\"www.aliyundoc.com-waf\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeDomains', + ], + 'DescribeDomainDetail' => [ + 'summary' => 'Queries the details of a domain name that is added to Web Application Firewall (WAF).', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '113957', + 'abilityTreeNodes' => [ + 'FEATUREwafD36LCH', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'DomainId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'title' => '域名', + 'description' => 'The domain name that you want to query.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'www.aliyundoc.com', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'BAEF9CA9-66A0-533E-BD09-5D5D7AA8****', + ], + 'Domain' => [ + 'title' => '域名', + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'example' => 'www.aliyundoc.com', + ], + 'DomainId' => [ + 'title' => '域名ID', + 'type' => 'string', + ], + 'Status' => [ + 'title' => '状态', + 'description' => 'The status of the domain name. Valid values:'."\n" + ."\n" + .'* **1:** The domain name is in a normal state.'."\n" + .'* **2:** The domain name is being created.'."\n" + .'* **3:** The domain name is being modified.'."\n" + .'* **4:** The domain name is being released.'."\n" + .'* **5:** WAF no longer forwards traffic of the domain name.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'Cname' => [ + 'description' => 'The CNAME that is assigned by WAF to the domain name.'."\n", + 'type' => 'string', + 'example' => 'xxxxxcvdaf.****.com', + ], + 'Listen' => [ + 'title' => '监听配置', + 'description' => 'The configurations of the listeners.'."\n", + 'type' => 'object', + 'properties' => [ + 'HttpPorts' => [ + 'title' => 'HTTP端口', + 'description' => 'An array of HTTP listener ports.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The HTTP listener port.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '80', + ], + ], + 'HttpsPorts' => [ + 'title' => 'HTTPS端口', + 'description' => 'An array of HTTPS listener ports.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The HTTPS listener port.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '443'."\n", + ], + ], + 'Http2Enabled' => [ + 'title' => '是否开启HTTP2', + 'description' => 'Indicates whether HTTP/2 is enabled. Valid values:'."\n" + ."\n" + .'* **true:** HTTP/2 is enabled.'."\n" + .'* **false:** HTTP/2 is disabled.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'CertId' => [ + 'title' => '', + 'description' => 'The ID of the certificate.'."\n", + 'type' => 'string', + 'format' => 'int64', + 'example' => '123', + ], + 'TLSVersion' => [ + 'title' => 'TLS版本', + 'description' => 'The version of the Transport Layer Security (TLS) protocol. Valid values:'."\n" + ."\n" + .'* **tlsv1**'."\n" + .'* **tlsv1.1**'."\n" + .'* **tlsv1.2**'."\n", + 'type' => 'string', + 'example' => 'tlsv1.2', + ], + 'EnableTLSv3' => [ + 'title' => '是否支持TLS1.3', + 'description' => 'Indicates whether TLS 1.3 is supported. Valid values:'."\n" + ."\n" + .'* **true:** TLS 1.3 is supported.'."\n" + .'* **false:** TLS 1.3 is not supported.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'CipherSuite' => [ + 'description' => 'The type of the cipher suites. Valid values:'."\n" + ."\n" + .'* **1:** all cipher suites.'."\n" + .'* **2:** strong cipher suites.'."\n" + .'* **99:** custom cipher suites.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2', + ], + 'CustomCiphers' => [ + 'description' => 'An array of custom cipher suites.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The custom cipher suite.'."\n", + 'type' => 'string', + 'example' => 'xxx', + ], + ], + 'FocusHttps' => [ + 'description' => 'Indicates whether HTTP to HTTPS redirection is enabled for the domain name. Valid values:'."\n" + ."\n" + .'* **true:** HTTP to HTTPS redirection is enabled.'."\n" + .'* **false:** HTTP to HTTPS redirection is disabled.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'SM2Enabled' => [ + 'description' => 'Indicates whether SM certificate-based verification is enabled. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'SM2CertId' => [ + 'description' => 'The ID of the SM certificate that is added. This parameter is returned only if the value of SM2Enabled is true.'."\n", + 'type' => 'string', + 'example' => '123-cn-hangzhou', + ], + 'SM2AccessOnly' => [ + 'description' => 'Indicates whether only SM certificate-based clients can access the domain name. This parameter is returned only if the value of SM2Enabled is true. Valid values:'."\n" + ."\n" + .'* true'."\n" + .'* false'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'XffHeaderMode' => [ + 'description' => 'The method that WAF uses to obtain the actual IP address of a client. Valid values:'."\n" + ."\n" + .'* **0:** No Layer 7 proxies are deployed in front of WAF.'."\n" + .'* **1:** WAF reads the first value of the X-Forwarded-For (XFF) header field as the actual IP address of the client.'."\n" + .'* **2:** WAF reads the value of a custom header field as the actual IP address of the client.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2', + ], + 'XffHeaders' => [ + 'description' => 'An array of custom header fields that are used to obtain the actual IP address of a client.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The custom header field that is used to obtain the actual IP address of a client.'."\n", + 'type' => 'string', + 'example' => 'Client-ip', + ], + ], + 'IPv6Enabled' => [ + 'title' => '是否开启IPv6', + 'description' => 'Indicates whether IPv6 is enabled. Valid values:'."\n" + ."\n" + .'* **true:** IPv6 is enabled.'."\n" + .'* **false:** IPv6 is disabled.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'ProtectionResource' => [ + 'title' => '防护资源', + 'description' => 'The type of protection resource that is used. Valid values:'."\n" + ."\n" + .'* **share:** shared cluster.'."\n" + .'* **gslb:** shared cluster-based intelligent load balancing.'."\n", + 'type' => 'string', + 'example' => 'share', + ], + 'ExclusiveIp' => [ + 'title' => '是否开启独享IP', + 'description' => 'Indicates whether an exclusive IP address is enabled. Valid values:'."\n" + ."\n" + .'* **true:** An exclusive IP address is enabled for the domain name.'."\n" + .'* **false:** No exclusive IP addresses are enabled for the domain name.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + ], + ], + 'Redirect' => [ + 'title' => '转发配置', + 'description' => 'The configurations of the forwarding rule.'."\n", + 'type' => 'object', + 'properties' => [ + 'Backends' => [ + 'description' => 'An array of addresses of origin servers.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The IP addresses or domain names of origin servers.'."\n", + 'type' => 'object', + 'properties' => [ + 'Backend' => [ + 'description' => 'The IP address or domain name of the origin server.'."\n", + 'type' => 'string', + 'example' => '1.1.XX.XX', + ], + ], + ], + 'deprecated' => true, + ], + 'Loadbalance' => [ + 'title' => '负载均衡算法', + 'description' => 'The load balancing algorithm that is used when WAF forwards requests to the origin server. Valid values:'."\n" + ."\n" + .'* **ip_hash:** the IP hash algorithm.'."\n" + .'* **roundRobin:** the round-robin algorithm.'."\n" + .'* **leastTime:** the least response time algorithm.'."\n", + 'type' => 'string', + 'example' => 'iphash', + ], + 'FocusHttpBackend' => [ + 'description' => 'Indicates whether HTTPS to HTTP redirection is enabled for back-to-origin requests of the domain name. Valid values:'."\n" + ."\n" + .'* **true:** HTTPS to HTTP redirection for back-to-origin requests of the domain name is enabled.'."\n" + .'* **false:** HTTPS to HTTP redirection for back-to-origin requests of the domain name is disabled.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'SniEnabled' => [ + 'title' => 'SNI', + 'description' => 'Indicates whether origin Server Name Indication (SNI) is enabled. Valid values:'."\n" + ."\n" + .'* **true:** Origin SNI is enabled.'."\n" + .'* **false:** Origin SNI is disabled. This is the default value.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'SniHost' => [ + 'description' => 'The value of the custom SNI field.'."\n", + 'type' => 'string', + 'example' => 'www.aliyundoc.com', + ], + 'RequestHeaders' => [ + 'description' => 'An array of key-value pairs that are used to mark the requests that pass through the WAF instance.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The key-value pair that is used to mark the requests that pass through the WAF instance.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The custom header field.'."\n", + 'type' => 'string', + 'example' => 'aaa', + ], + 'Value' => [ + 'description' => 'The value of the custom header field.'."\n", + 'type' => 'string', + 'example' => 'bbb', + ], + ], + ], + ], + 'ConnectTimeout' => [ + 'description' => 'The timeout period of the connection. Unit: seconds. Valid values: 5 to 120.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '120', + ], + 'WriteTimeout' => [ + 'description' => 'The write timeout period. Unit: seconds. Valid values: 5 to 1800.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '200', + ], + 'ReadTimeout' => [ + 'description' => 'The read timeout period. Unit: seconds. Valid values: 5 to 1800.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '200', + ], + 'Keepalive' => [ + 'description' => 'Indicates whether the persistent connection feature is enabled. Valid values:'."\n" + ."\n" + .'* **true:** The persistent connection feature is enabled. This is the default value.'."\n" + .'* **false:** The persistent connection feature is disabled.'."\n", + 'type' => 'boolean', + 'example' => 'true', + 'default' => 'true', + ], + 'Retry' => [ + 'description' => 'Indicates whether WAF retries when requests fail to be forwarded to the origin server. Valid values:'."\n" + ."\n" + .'* **true:** WAF retries. This is the default value.'."\n" + .'* **false:** WAF does not retry.', + 'type' => 'boolean', + 'example' => 'true', + 'default' => 'true', + ], + 'KeepaliveRequests' => [ + 'description' => 'The number of reused persistent connections. Valid values: 60 to 1000.'."\n" + ."\n" + .'> This parameter specifies the number of reused persistent connections when you enable the persistent connection feature.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1000', + 'default' => '100', + ], + 'KeepaliveTimeout' => [ + 'description' => 'The timeout period of persistent connections that are in the Idle state. Valid values: 1 to 60. Default value: 15. Unit: seconds.'."\n" + ."\n" + .'> This parameter specifies the period of time during which a reused persistent connection is allowed to remain in the Idle state before the persistent connection is released.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '15', + 'default' => '15', + ], + 'XffProto' => [ + 'description' => 'Indicates whether the X-Forward-For-Proto header is used to identify the protocol used by WAF to forward requests to the origin server. Valid values:'."\n" + ."\n" + .'* **true** (default)'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'BackupBackends' => [ + 'description' => 'An array of HTTPS listener ports.', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Backend' => [ + 'description' => 'The back-to-origin IP address or domain name.', + 'type' => 'string', + 'example' => '['."\n" + .' "1.1.XX.XX",'."\n" + .' "2.2.XX.XX"'."\n" + .']'."\n", + ], + ], + ], + 'deprecated' => true, + ], + 'XClientIp' => [ + 'type' => 'boolean', + 'default' => 'false', + ], + 'XTrueIp' => [ + 'type' => 'boolean', + 'default' => 'false', + ], + 'WebServerType' => [ + 'type' => 'boolean', + 'default' => 'false', + ], + 'WLProxyClientIp' => [ + 'type' => 'boolean', + 'default' => 'false', + ], + 'MaxBodySize' => [ + 'title' => '最大请求体大小。取值范围:2~10,默认值:2,单位:G。', + 'type' => 'integer', + 'format' => 'int32', + 'maximum' => '10', + 'minimum' => '2', + 'example' => '2', + ], + 'Http2Origin' => [ + 'title' => 'HTTP2回源', + 'type' => 'boolean', + ], + 'Http2OriginMaxConcurrency' => [ + 'title' => 'HTTP2回源并发连接数', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '128', + ], + 'BackendList' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'string', + ], + ], + 'BackUpBackendList' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'string', + ], + ], + 'BackendPorts' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ListenPort' => [ + 'type' => 'integer', + 'format' => 'int32', + ], + 'BackendPort' => [ + 'type' => 'integer', + 'format' => 'int32', + ], + 'Protocol' => [ + 'type' => 'string', + ], + ], + ], + ], + ], + ], + 'ResourceManagerResourceGroupId' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'example' => 'rg-acfm***q', + ], + 'CertDetail' => [ + 'description' => 'The details of the SSL certificate.'."\n", + 'type' => 'object', + 'properties' => [ + 'Name' => [ + 'description' => 'The name of the SSL certificate.'."\n", + 'type' => 'string', + 'example' => 'test-cert-name', + ], + 'Id' => [ + 'description' => 'The ID of the SSL certificate.'."\n", + 'type' => 'string', + 'example' => '123-cn-hangzhou', + ], + 'StartTime' => [ + 'description' => 'The beginning of the validity period of the SSL certificate. The value is in the UNIX timestamp format. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1677772800000', + ], + 'EndTime' => [ + 'description' => 'The end of the validity period of the SSL certificate. The value is in the UNIX timestamp format. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1685590400000', + ], + 'CommonName' => [ + 'description' => 'The domain name of your website.'."\n", + 'type' => 'string', + 'example' => 'test.aliyundoc.com', + ], + 'Sans' => [ + 'description' => 'All domain names that are bound to the certificate.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'All domain names that are bound to the certificate.'."\n", + 'type' => 'string', + 'example' => 'www.aliyundoc.com', + ], + ], + ], + ], + 'SM2CertDetail' => [ + 'description' => 'The information about the SM certificate.'."\n", + 'type' => 'object', + 'properties' => [ + 'Name' => [ + 'description' => 'The name of the SSL certificate.'."\n", + 'type' => 'string', + 'example' => 'test-sm2-cert-name', + ], + 'Id' => [ + 'description' => 'The ID of the SSL certificate.'."\n", + 'type' => 'string', + 'example' => '123-cn-hangzhou', + ], + 'StartTime' => [ + 'description' => 'The beginning of the validity period of the SSL certificate. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1657551525000', + ], + 'EndTime' => [ + 'description' => 'The end of the validity period of the SSL certificate. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1665590400000', + ], + 'CommonName' => [ + 'description' => 'The domain name of your website.'."\n", + 'type' => 'string', + 'example' => 'test.aliyundoc.com'."\n", + ], + 'Sans' => [ + 'description' => 'All domain names that are bound to the certificate.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'All domain names that are bound to the certificate.'."\n", + 'type' => 'string', + 'example' => 'www.aliyundoc.com'."\n", + ], + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Pullin.DomainAndDomainIdBothEmpty', + 'errorMessage' => 'domain and domainId cannot be empty at the same time.', + ], + [ + 'errorCode' => 'Waf.Pullin.DomainAndDomainIdNotMatch', + 'errorMessage' => 'domain and domainId do not match.', + ], + [ + 'errorCode' => 'Waf.Pullin.DomainIdIsIllegal', + 'errorMessage' => 'The input parameter, the domainId is illegal.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BAEF9CA9-66A0-533E-BD09-5D5D7AA8****\\",\\n \\"Domain\\": \\"www.aliyundoc.com\\",\\n \\"DomainId\\": \\"www.aliyundoc.com-waf\\",\\n \\"Status\\": 1,\\n \\"Cname\\": \\"xxxxxcvdaf.****.com\\",\\n \\"Listen\\": {\\n \\"HttpPorts\\": [\\n 80\\n ],\\n \\"HttpsPorts\\": [\\n 443\\n ],\\n \\"Http2Enabled\\": true,\\n \\"CertId\\": \\"123\\",\\n \\"TLSVersion\\": \\"tlsv1.2\\",\\n \\"EnableTLSv3\\": true,\\n \\"CipherSuite\\": 2,\\n \\"CustomCiphers\\": [\\n \\"xxx\\"\\n ],\\n \\"FocusHttps\\": true,\\n \\"SM2Enabled\\": true,\\n \\"SM2CertId\\": \\"123-cn-hangzhou\\",\\n \\"SM2AccessOnly\\": true,\\n \\"XffHeaderMode\\": 2,\\n \\"XffHeaders\\": [\\n \\"Client-ip\\"\\n ],\\n \\"IPv6Enabled\\": true,\\n \\"ProtectionResource\\": \\"share\\",\\n \\"ExclusiveIp\\": true,\\n \\"HstsIncludeSubDomain\\": true,\\n \\"HstsPreload\\": false,\\n \\"HstsMaxAge\\": 365000\\n },\\n \\"Redirect\\": {\\n \\"Backends\\": [\\n {\\n \\"Backend\\": \\"1.1.XX.XX\\"\\n }\\n ],\\n \\"Loadbalance\\": \\"iphash\\",\\n \\"FocusHttpBackend\\": true,\\n \\"SniEnabled\\": true,\\n \\"SniHost\\": \\"www.aliyundoc.com\\",\\n \\"RequestHeaders\\": [\\n {\\n \\"Key\\": \\"aaa\\",\\n \\"Value\\": \\"bbb\\"\\n }\\n ],\\n \\"ConnectTimeout\\": 120,\\n \\"WriteTimeout\\": 200,\\n \\"ReadTimeout\\": 200,\\n \\"Keepalive\\": true,\\n \\"Retry\\": true,\\n \\"KeepaliveRequests\\": 1000,\\n \\"KeepaliveTimeout\\": 15,\\n \\"XffProto\\": true,\\n \\"BackupBackends\\": [\\n {\\n \\"Backend\\": \\"[\\\\n \\\\\\"1.1.XX.XX\\\\\\",\\\\n \\\\\\"2.2.XX.XX\\\\\\"\\\\n]\\\\n\\"\\n }\\n ],\\n \\"XClientIp\\": true,\\n \\"XTrueIp\\": true,\\n \\"WebServerType\\": true,\\n \\"WLProxyClientIp\\": true,\\n \\"MaxBodySize\\": 2,\\n \\"Http2Origin\\": true,\\n \\"Http2OriginMaxConcurrency\\": 128,\\n \\"ProxyProtocol\\": false,\\n \\"BackendList\\": [\\n \\"1.1.XX.XX\\"\\n ],\\n \\"BackUpBackendList\\": [\\n \\"2.2.XX.XX\\"\\n ],\\n \\"BackendPorts\\": [\\n {\\n \\"ListenPort\\": 80,\\n \\"BackendPort\\": 80,\\n \\"Protocol\\": \\"http\\"\\n }\\n ]\\n },\\n \\"ResourceManagerResourceGroupId\\": \\"rg-acfm***q\\",\\n \\"CertDetail\\": {\\n \\"Name\\": \\"test-cert-name\\",\\n \\"Id\\": \\"123-cn-hangzhou\\",\\n \\"StartTime\\": 1677772800000,\\n \\"EndTime\\": 1685590400000,\\n \\"CommonName\\": \\"test.aliyundoc.com\\",\\n \\"Sans\\": [\\n \\"www.aliyundoc.com\\"\\n ]\\n },\\n \\"SM2CertDetail\\": {\\n \\"Name\\": \\"test-sm2-cert-name\\",\\n \\"Id\\": \\"123-cn-hangzhou\\",\\n \\"StartTime\\": 1657551525000,\\n \\"EndTime\\": 1665590400000,\\n \\"CommonName\\": \\"test.aliyundoc.com\\\\n\\",\\n \\"Sans\\": [\\n \\"www.aliyundoc.com\\\\n\\"\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'DescribeDomainDetail', + ], + 'DescribePunishedDomains' => [ + 'summary' => 'Queries a list of domain names that are added to Web Application Firewall (WAF) and penalized for failing to obtain an Internet Content Provider (ICP) filing.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '124498', + 'abilityTreeNodes' => [ + 'FEATUREwafD36LCH', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-uqm****qa07', + ], + ], + [ + 'name' => 'Domains', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The domain names that are added to WAF.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The domain name that is added to WAF.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'demo.xxxaliyundoc.com', + ], + 'required' => false, + 'maxItems' => 100, + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'PunishType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of punishment. Valid values:'."\n" + ."\n" + .'* **beian** (default): the filing center.'."\n" + .'* **punishCenter**: the punishment center.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'beian', + 'default' => 'beian', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aekz7nc****aata', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'B1F4D802-55A1-5D53-A247-7E79****85E7', + ], + 'PunishedDomains' => [ + 'description' => 'The domain names that are penalized for failing to obtain an ICP filing.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The domain name that is penalized for failing to obtain an ICP filing.'."\n", + 'type' => 'string', + 'example' => 'demo.xxxaliyundoc.com'."\n", + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"B1F4D802-55A1-5D53-A247-7E79****85E7\\",\\n \\"PunishedDomains\\": [\\n \\"demo.xxxaliyundoc.com\\\\n\\"\\n ]\\n}","type":"json"}]', + 'title' => 'DescribePunishedDomains', + ], + 'ModifyDomainPunishStatus' => [ + 'summary' => 'Re-adds a domain name that is penalized for failing to obtain an Internet Content Provider (ICP) filing to Web Application Firewall (WAF).', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '124497', + 'abilityTreeNodes' => [ + 'FEATUREwafD36LCH', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-zxu****0g02', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name that is penalized for failing to obtain an ICP filing.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.xxxxaliyundoc.com', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: Outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '70E65A35-22B8-567C-B0A0-A2E9****20AE', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Pullin.DomainNotBeianOrInBlackList', + 'errorMessage' => 'The domain does not have an ICP filling or has been blacklisted.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"70E65A35-22B8-567C-B0A0-A2E9****20AE\\"\\n}","type":"json"}]', + 'title' => 'ModifyDomainPunishStatus', + ], + 'DescribeCertDetail' => [ + 'summary' => 'Queries the details of a certificate, such as the certificate name, expiration time, issuance time, and associated domain name.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '167806', + 'abilityTreeNodes' => [ + 'FEATUREwafOV749M', + 'FEATUREwafCMMRA4', + 'FEATUREwafMF0FT6', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the Web Application Firewall (WAF) instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-uax****3k0e', + ], + ], + [ + 'name' => 'CertIdentifier', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the certificate.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '123-cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '3C115DBE-8E53-5A12-9CAF-FD3F****CDF6', + ], + 'CertDetail' => [ + 'description' => 'The details of the certificate.'."\n", + 'type' => 'object', + 'properties' => [ + 'Domain' => [ + 'description' => 'The domain name that is associated with the certificate.'."\n", + 'type' => 'string', + 'example' => 'demo.xxxaliyun.com', + ], + 'CertName' => [ + 'description' => 'The name of the certificate.'."\n", + 'type' => 'string', + 'example' => 'testCertName', + ], + 'CertIdentifier' => [ + 'description' => 'The ID of the certificate.'."\n", + 'type' => 'string', + 'example' => '123-cn-hangzhou', + ], + 'CommonName' => [ + 'description' => 'The primary domain name, which is a common name.'."\n", + 'type' => 'string', + 'example' => '*.xxxaliyun.com'."\n", + ], + 'AfterDate' => [ + 'description' => 'The time when the certificate expires. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1976256736582', + ], + 'BeforeDate' => [ + 'description' => 'The time when the certificate was issued. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1976256736582', + ], + 'Sans' => [ + 'description' => 'The other domain names that are associated with the certificate.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The domain name that is associated with the certificate.'."\n", + 'type' => 'string', + 'example' => 'demo.yyyaliyun.com', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Pullin.InvalidCertIdentifier', + 'errorMessage' => 'Invalid certificate ID, certificate ID:%s.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"3C115DBE-8E53-5A12-9CAF-FD3F****CDF6\\",\\n \\"CertDetail\\": {\\n \\"Domain\\": \\"demo.xxxaliyun.com\\",\\n \\"CertName\\": \\"testCertName\\",\\n \\"CertIdentifier\\": \\"123-cn-hangzhou\\",\\n \\"CommonName\\": \\"*.xxxaliyun.com\\\\n\\",\\n \\"AfterDate\\": 1976256736582,\\n \\"BeforeDate\\": 1976256736582,\\n \\"Sans\\": [\\n \\"demo.yyyaliyun.com\\"\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'DescribeCertDetail', + ], + 'DescribeCerts' => [ + 'summary' => 'Queries the certificates issued for your domain names that are added to Web Application Firewall (WAF).', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafD36LCH', + ], + ], + 'parameters' => [ + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'title' => '域名', + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.aliyun.com', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Valid values: 1 to 100. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '1000', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: Outside the Chinese mainland.', + 'type' => 'string', + 'required' => false, + 'example' => 'ap-southeast-1', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-5yd****tb02', + ], + ], + [ + 'name' => 'Algorithm', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the encryption algorithm. Valid values:'."\n" + ."\n" + .'* **NotSM2**: The encryption algorithm is not the SM2 algorithm. This is the default value.'."\n" + .'* **SM2**: The encryption algorithm is the SM2 algorithm.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'SM2', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfmoiy****p2oq', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '19511B0D-5AE0-5600-BB8A-DC2C8345****', + ], + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '8', + ], + 'Certs' => [ + 'description' => 'The certificates.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the certificate.'."\n", + 'type' => 'object', + 'properties' => [ + 'Domain' => [ + 'description' => 'The domain that is supported by the certificate.'."\n", + 'type' => 'string', + 'example' => 'www.example.com '."\n", + ], + 'CertName' => [ + 'description' => 'The name of the certificate.'."\n", + 'type' => 'string', + 'example' => 'waf1234', + ], + 'CertIdentifier' => [ + 'description' => 'The globally unique ID of the certificate. The value follows a "\\<Certificate ID>-ap-southeast-1" format. For example, if the ID of the certificate is 123, the value of the CertIdentifier parameter is 123-ap-southeast-1.'."\n", + 'type' => 'string', + 'example' => '123-ap-southeast-1', + ], + 'CommonName' => [ + 'description' => 'The common name.'."\n", + 'type' => 'string', + 'example' => '*.example.com ', + ], + 'IsChainCompleted' => [ + 'description' => 'Indicates whether the certificate chain is complete. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'AfterDate' => [ + 'description' => 'The expiration time.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1976256736582', + ], + 'BeforeDate' => [ + 'description' => 'The effective time.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1976256836582', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"19511B0D-5AE0-5600-BB8A-DC2C8345****\\",\\n \\"TotalCount\\": 8,\\n \\"Certs\\": [\\n {\\n \\"Domain\\": \\"www.example.com\\\\t\\\\n\\",\\n \\"CertName\\": \\"waf1234\\",\\n \\"CertIdentifier\\": \\"12345-cn-hangzhou\\",\\n \\"CommonName\\": \\"*.example.com\\\\t\\",\\n \\"IsChainCompleted\\": true,\\n \\"AfterDate\\": 1976256736582,\\n \\"BeforeDate\\": 1976256836582\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeCerts', + ], + 'DescribeDomainDNSRecord' => [ + 'summary' => 'Checks whether the Domain Name System (DNS) settings of a domain name are properly configured.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '179230', + 'abilityTreeNodes' => [ + 'FEATUREwafD36LCH', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-nwy****is02', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name whose DNS settings you want to check.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'xxx.aliyundoc.com', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D827FCFE-90A7-4330-9326-D33C8B4C****', + ], + 'DNSStatus' => [ + 'description' => 'The status of the DNS settings. Valid values:'."\n" + ."\n" + .'* **cnameMatched**: The DNS settings are properly configured.'."\n" + .'* **vipMatched**: An A record maps the domain name to the WAF virtual IP address (VIP).'."\n" + .'* **wafVip**: An A record maps the domain name to another WAF VIP.'."\n" + .'* **unRecord**: The domain name does not have a DNS record.'."\n" + .'* **unUsed**: The domain name is not pointed to WAF.'."\n" + .'* **checkTimeout**: The check times out.'."\n", + 'type' => 'string', + 'example' => 'cnameMatched', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D827FCFE-90A7-4330-9326-D33C8B4C****\\",\\n \\"DNSStatus\\": \\"cnameMatched\\"\\n}","type":"json"}]', + 'title' => 'DescribeDomainDNSRecord', + ], + 'DescribeWafSourceIpSegment' => [ + 'summary' => 'Queries the back-to-origin CIDR blocks of a Web Application Firewall (WAF) instance.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '115641', + 'abilityTreeNodes' => [ + 'FEATUREwafD36LCH', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-*****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '9087ADDC-9047-4D02-82A7-33021B58083C', + ], + 'WafSourceIp' => [ + 'description' => 'The back-to-origin CIDR blocks that are used by the protection cluster.'."\n", + 'type' => 'object', + 'properties' => [ + 'IPv6' => [ + 'description' => 'An array of back-to-origin IPv6 CIDR blocks.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The back-to-origin IPv6 CIDR block.'."\n", + 'type' => 'string', + 'example' => '2408:XXXX:3c:4800::/56', + ], + ], + 'IPv4' => [ + 'description' => 'An array of back-to-origin IPv4 CIDR blocks.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The back-to-origin IPv4 CIDR block.'."\n", + 'type' => 'string', + 'example' => '101.200.XX.XX/24', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9087ADDC-9047-4D02-82A7-33021B58083C\\",\\n \\"WafSourceIp\\": {\\n \\"IPv6\\": [\\n \\"2408:XXXX:3c:4800::/56\\"\\n ],\\n \\"IPv4\\": [\\n \\"101.200.XX.XX/24\\"\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'DescribeWafSourceIpSegment', + ], + 'DescribeResourcePort' => [ + 'summary' => 'Queries the ports of a cloud service instance that are added to Web Application Firewall (WAF).', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafHU8RSD', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'ResourceInstanceId', + 'in' => 'query', + 'schema' => [ + 'title' => '资源的实例ID', + 'description' => 'The ID of the cloud service instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '8vb40vj87znu3ai7l5lv4-80****'."\n", + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE', + ], + 'ResourcePorts' => [ + 'description' => 'An array of HTTP and HTTPS listener ports that are added to the WAF instance.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The HTTP or HTTPS listener port.'."\n", + 'type' => 'string', + 'example' => '80', + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"66A98669-CC6E-4F3E-80A6-3014697B11AE\\",\\n \\"ResourcePorts\\": [\\n \\"80\\"\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeResourcePort', + ], + 'DescribeDDoSStatus' => [ + 'summary' => 'Checks whether DDoS attacks occur on specific domain names protected by a Web Application Firewall (WAF) instance.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '194498', + 'abilityTreeNodes' => [ + 'FEATUREwafD36LCH', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance that you want to query.'."\n" + ."\n" + .'> You can call the [DescribeInstanceInfo](~~140857~~) operation to query the ID of the WAF instance.'."\n", + 'example' => 'waf_v3prepaid_public_cn-***', + 'required' => true, + 'type' => 'string', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'example' => 'cn-hangzhou', + 'required' => false, + 'type' => 'string', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'example' => 'rg-acfm***q', + 'required' => false, + 'type' => 'string', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'example' => 'D7861F61-5B61-46CE-A47C-***', + 'type' => 'string', + ], + 'DDoSStatus' => [ + 'description' => 'Indicates whether DDoS attacks occur on specific domain names.'."\n", + 'items' => [ + 'description' => '', + 'properties' => [ + 'Status' => [ + 'description' => 'Indicates whether DDoS attacks occur on specific domain names. Valid value:'."\n" + ."\n" + .'* **doing**: DDoS attacks occur on specific domain names.'."\n", + 'example' => 'doing', + 'type' => 'string', + ], + 'EventType' => [ + 'description' => 'The type of events that are triggered by DDoS attacks. Valid values:'."\n" + ."\n" + .'* defense: traffic scrubbing events.'."\n" + .'* blackhole: blackhole filtering events.'."\n", + 'example' => 'blackhole', + 'type' => 'string', + ], + ], + 'type' => 'object', + ], + 'type' => 'array', + ], + ], + 'type' => 'object', + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-***\\",\\n \\"DDoSStatus\\": [\\n {\\n \\"Status\\": \\"doing\\",\\n \\"EventType\\": \\"blackhole\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeDDoSStatus', + ], + 'CreateSM2Cert' => [ + 'summary' => 'Uploads a ShangMi (SM) certificate for a domain name that is added to Web Application Firewall (WAF) in CNAME record mode.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafD36LCH', + ], + ], + 'parameters' => [ + [ + 'name' => 'CertName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the SM certificate.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test-sm2', + ], + ], + [ + 'name' => 'EncryptCertificate', + 'in' => 'query', + 'schema' => [ + 'description' => 'The content of the SM certificate.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '-----BEGIN CERTIFICATE-----'."\n" + .'***'."\n" + .'-----END CERTIFICATE-----', + ], + ], + [ + 'name' => 'EncryptPrivateKey', + 'in' => 'query', + 'schema' => [ + 'description' => 'The private key of the SM certificate.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '-----BEGIN PRIVATE KEY-----'."\n" + .'***'."\n" + .'-----END PRIVATE KEY-----', + ], + ], + [ + 'name' => 'SignCertificate', + 'in' => 'query', + 'schema' => [ + 'description' => 'The content of the signing certificate for the SM certificate.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '-----BEGIN CERTIFICATE-----'."\n" + .'***'."\n" + .'-----END CERTIFICATE-----', + ], + ], + [ + 'name' => 'SignPrivateKey', + 'in' => 'query', + 'schema' => [ + 'description' => 'The private key of the signing certificate for the SM certificate.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '-----BEGIN PRIVATE KEY-----'."\n" + .'***'."\n" + .'-----END PRIVATE KEY-----', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-***', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-***', + ], + 'CertIdentifier' => [ + 'description' => 'The ID of the certificate.'."\n", + 'type' => 'string', + 'example' => '***-cn-hangzhou', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-***\\",\\n \\"CertIdentifier\\": \\"***-cn-hangzhou\\"\\n}","type":"json"}]', + 'title' => 'CreateSM2Cert', + ], + 'DescribeCnameCount' => [ + 'summary' => 'Queries the total number of domain names that are added to Web Application Firewall (WAF) in CNAME record mode and hybrid cloud reverse proxy mode.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafHU8RSD', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-***', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '阿里云资源组ID。', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'F35F45B0-5D6B-4238-BE02-A62D****E840', + ], + 'CnameCount' => [ + 'description' => 'The information about the number of domain names that are added to WAF in CNAME record mode and hybrid cloud reverse proxy mode.'."\n", + 'type' => 'object', + 'properties' => [ + 'Total' => [ + 'description' => 'The total number of domain names that are added to WAF in CNAME record mode and hybrid cloud reverse proxy mode.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'HybridCloudCname' => [ + 'description' => 'The number of domain names that are added to WAF in hybrid cloud reverse proxy mode.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'Cname' => [ + 'description' => 'The number of domain names that are added to WAF in CNAME record mode.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F35F45B0-5D6B-4238-BE02-A62D****E840\\",\\n \\"CnameCount\\": {\\n \\"Total\\": 1,\\n \\"HybridCloudCname\\": 1,\\n \\"Cname\\": 1\\n }\\n}","type":"json"}]', + 'title' => 'DescribeCnameCount', + ], + 'DescribeDefaultHttps' => [ + 'summary' => 'Queries the default SSL and Transport Layer Security (TLS) settings.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '226995', + 'abilityTreeNodes' => [ + 'FEATUREwafD36LCH', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'title' => '实例ID', + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-7pp26f1****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'F35F45B0-5D6B-4238-BE02-A62D****E840', + ], + 'DefaultHttps' => [ + 'description' => 'The default SSL and TLS settings.'."\n", + 'type' => 'object', + 'properties' => [ + 'CustomCiphers' => [ + 'description' => 'The custom cipher suite.'."\n", + 'type' => 'string', + 'example' => 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384', + ], + 'TLSVersion' => [ + 'description' => 'The version of the TLS protocol. Valid values:'."\n" + ."\n" + .'* **tlsv1**'."\n" + .'* **tlsv1.1**'."\n" + .'* **tlsv1.2**'."\n", + 'type' => 'string', + 'example' => 'tlsv1', + ], + 'CertId' => [ + 'description' => 'The certificate ID.'."\n", + 'type' => 'string', + 'example' => '123-cn-hangzhou', + ], + 'CipherSuite' => [ + 'description' => 'The type of the cipher suites. Valid values:'."\n" + ."\n" + .'* **1**: all cipher suites.'."\n" + .'* **2**: strong cipher suites.'."\n" + .'* **99**: custom cipher suites.'."\n", + 'type' => 'string', + 'example' => '1', + ], + 'EnableTLSv3' => [ + 'description' => 'Indicates whether TLS 1.3 is supported. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F35F45B0-5D6B-4238-BE02-A62D****E840\\",\\n \\"DefaultHttps\\": {\\n \\"CustomCiphers\\": \\"ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384\\",\\n \\"TLSVersion\\": \\"tlsv1\\",\\n \\"CertId\\": \\"123-cn-hangzhou\\",\\n \\"CipherSuite\\": \\"1\\",\\n \\"EnableTLSv3\\": true\\n }\\n}","type":"json"}]', + 'title' => 'DescribeDefaultHttps', + ], + 'ModifyDefaultHttps' => [ + 'summary' => 'Modifies the default Secure Sockets Layer (SSL) and Transport Layer Security (TLS) settings.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '226996', + 'abilityTreeNodes' => [ + 'FEATUREwafD36LCH', + ], + ], + 'parameters' => [ + [ + 'name' => 'CertId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the certificate.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '123-cn-hangzhou', + ], + ], + [ + 'name' => 'TLSVersion', + 'in' => 'query', + 'schema' => [ + 'description' => 'The version of the TLS protocol. Valid values:'."\n" + ."\n" + .'* **tlsv1**'."\n" + .'* **tlsv1.1**'."\n" + .'* **tlsv1.2**'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'tlsv1', + 'enum' => [ + 'tlsv1', + 'tlsv1.1', + 'tlsv1.2', + 'tlsv1.3', + ], + ], + ], + [ + 'name' => 'CipherSuite', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the cipher suites. Valid values:'."\n" + ."\n" + .'* **1**: all cipher suites.'."\n" + .'* **2**: strong cipher suites.'."\n" + .'* **99**: custom cipher suites.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + 'default' => '1', + 'enum' => [ + '1', + '2', + '99', + ], + ], + ], + [ + 'name' => 'CustomCiphers', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The custom cipher suites that you want to add. This parameter is available only if you set **CipherSuite** to **99**.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The custom cipher suite.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384', + 'enum' => [ + 'ECDHE-ECDSA-AES128-GCM-SHA256', + 'ECDHE-ECDSA-AES256-GCM-SHA384', + 'ECDHE-ECDSA-AES128-SHA256', + 'ECDHE-ECDSA-AES256-SHA384', + 'ECDHE-RSA-AES128-GCM-SHA256', + 'ECDHE-RSA-AES256-GCM-SHA384', + 'ECDHE-RSA-AES128-SHA256', + 'ECDHE-RSA-AES256-SHA384', + 'AES128-GCM-SHA256', + 'AES256-GCM-SHA384', + 'AES128-SHA256', + 'AES256-SHA256', + 'ECDHE-ECDSA-AES128-SHA', + 'ECDHE-ECDSA-AES256-SHA', + 'ECDHE-RSA-AES128-SHA', + 'ECDHE-RSA-AES256-SHA', + 'AES128-SHA', + 'AES256-SHA', + 'DES-CBC3-SHA', + 'RSA+3DES', + '!aNULL', + '!eNULL', + '!LOW', + '!MD5', + '!EXP', + '!DSS', + '!PSK', + '!SRP', + '!kECDH', + '!CAMELLIA', + '!IDEA', + '!SEED', + ], + ], + 'required' => false, + 'maxItems' => 100, + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-***', + ], + ], + [ + 'name' => 'EnableTLSv3', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to support TLS 1.3. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '阿里云资源组ID。', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '276D7566-31C9-4192-9DD1-***', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Pullin.InvalidCertIdentifier', + 'errorMessage' => 'Invalid certificate ID, certificate ID:%s.', + ], + [ + 'errorCode' => 'Waf.Pullin.CertNotExist', + 'errorMessage' => 'Certificate does not exist in SSL Certificate Center, certificate ID:%s.', + ], + [ + 'errorCode' => 'Waf.Pullin.CertEmptyCN', + 'errorMessage' => 'The common name of the certificate is empty, certificate ID:%s.', + ], + [ + 'errorCode' => 'Waf.Pullin.CertExpired', + 'errorMessage' => 'Certificate expired, certificate ID:%s .', + ], + [ + 'errorCode' => 'Waf.Pullin.InvalidTLS', + 'errorMessage' => 'invalid TLS,TLS:%s .', + ], + [ + 'errorCode' => 'Waf.Pullin.InvalidEnableTLSv3', + 'errorMessage' => 'invalid EnableTLSv3:%s .', + ], + [ + 'errorCode' => 'Waf.Pullin.InvalidCipherSuit', + 'errorMessage' => 'Invalid CipherSuit,CipherSuit:%s.', + ], + [ + 'errorCode' => 'Waf.Pullin.InvalidCustomCiphers', + 'errorMessage' => 'Invalid InvalidCustomCiphers, CustomCiphers:%s .', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"276D7566-31C9-4192-9DD1-***\\"\\n}","type":"json"}]', + 'title' => 'ModifyDefaultHttps', + ], + 'CreateCerts' => [ + 'summary' => 'Uploads a certificate that uses an internationally accepted algorithm for a domain name added to Web Application Firewall (WAF) in CNAME record mode.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '167792', + 'abilityTreeNodes' => [ + 'FEATUREwafD36LCH', + ], + ], + 'parameters' => [ + [ + 'name' => 'CertName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the certificate.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'testrsa1', + ], + ], + [ + 'name' => 'CertContent', + 'in' => 'query', + 'schema' => [ + 'description' => 'The content of the certificate.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '-----BEGIN CERTIFICATE----- 62EcYPWd2****s6MTXcJSfN9Z7rZ9fmxWr2BFN2XbahgnsSXM48ixZJ4krc+1M+j2kcubVpsE2cgHdj4v8H6jUz9Ji4mr7vMNS6dXv8PUkl/qoDeNGCNdyTS5NIL5ir+g92cL8IGOkjgvhlqt9vc65Cgb4mL+n5+DV9uOyTZTW/MojmlgfUekC2xiXa54nxJf17Y1TADGSbyJbsC0Q9nIrHsPl8YKkvRWvIAqYxXZ7wRwWWmv4TMxFhWRiNY7yZIo2ZUhl02S****gIEeg== -----END CERTIFICATE----- ', + ], + ], + [ + 'name' => 'CertKey', + 'in' => 'query', + 'schema' => [ + 'description' => 'The private key that corresponds to the certificate.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '-----BEGIN RSA PRIVATE KEY----- DADTPZoOHd9WtZ3U****RgNQmioPQn2bqdKHop+B/dn/4VZL7Jt8zSDGM9sTMThLyvsmLQKBgQCr+ujntC1kN6pGBj2Fw2l/EA/W3rYEce2tyhjgmG7rZ+A/jVE9fld5sQra6ZdwBcQJaiygoIYoaMF2EjRwc0qwHaluq0C15f6ujSoHh2e+D5zdmkTg/3NKNjqNv6xA2gYpinVDzFdZ9Zujxvuh9o4Vqf0YF8****K5G04RtKadOw== -----END RSA PRIVATE KEY----- ', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-20p****nw01', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '5BBA38B1-07AE-559F-8766-AB50****C300', + ], + 'CertIdentifier' => [ + 'description' => 'The ID of the certificate.'."\n", + 'type' => 'string', + 'example' => '123456-cn-hangzhou', + ], + ], + 'description' => '', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5BBA38B1-07AE-559F-8766-AB50****C300\\",\\n \\"CertIdentifier\\": \\"123456-cn-hangzhou\\"\\n}","type":"json"}]', + 'title' => 'CreateCerts', + ], + 'VerifyDomainOwner' => [ + 'summary' => 'Verifies the ownership of a domain name.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '178142', + 'abilityTreeNodes' => [ + 'FEATUREwafD36LCH', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-*****', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name of which you want to verify the ownership.'."\n" + ."\n" + .'You can specify this parameter to check whether a domain name is added to WAF. Fuzzy match is supported.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'VerifyType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The verification method. Valid values:'."\n" + ."\n" + .'* **dnsCheck**: DNS verification'."\n" + .'* **fileCheck**: file verification'."\n", + 'type' => 'string', + 'required' => true, + 'enumValueTitles' => [ + 'fileCheck' => '', + 'dnsCheck' => '', + ], + 'example' => 'dnsCheck', + ], + ], + [ + 'name' => 'Protocol', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protocol type that is used for file verification. Specify this parameter when you set VerifyType to fileCheck. Valid values:'."\n" + ."\n" + .'* **HTTP**'."\n" + .'* **HTTPS**'."\n", + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [ + 'HTTPS' => 'HTTPS', + 'HTTP' => 'HTTP', + ], + 'example' => 'HTTP', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'F35F45B0-5D6B-4238-BE02-A62D****E840', + ], + 'VerifyResult' => [ + 'description' => 'The verification result.'."\n", + 'type' => 'object', + 'properties' => [ + 'FailCode' => [ + 'description' => 'The reasons why the verification fails. Valid values:'."\n" + ."\n" + .'* DnsTxtVerifyFailed: The DNS TXT record and the domain name do not match.'."\n" + .'* DnsServerError: The DNS server is abnormal.'."\n" + .'* VerifyFileNotExist: The verification file does not exist.'."\n" + .'* VerifyDomainNotAccess: The access to the domain name failed.'."\n" + .'* FileContentVerifyFailed: The content of the verification file and the domain name do not match.'."\n", + 'type' => 'string', + 'example' => 'DnsTxtVerifyFailed', + ], + 'Result' => [ + 'description' => 'The verification result. Valid values:'."\n" + ."\n" + .'* **true**: The verification succeeds.'."\n" + .'* **false**: The verification fails.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F35F45B0-5D6B-4238-BE02-A62D****E840\\",\\n \\"VerifyResult\\": {\\n \\"FailCode\\": \\"DnsTxtVerifyFailed\\",\\n \\"Result\\": true\\n }\\n}","type":"json"}]', + 'title' => 'VerifyDomainOwner', + ], + 'DescribeVerifyContent' => [ + 'summary' => '查询归属校验内容', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '178150', + 'abilityTreeNodes' => [ + 'FEATUREwafD36LCH', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-***', + ], + ], + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'example.com', + ], + ], + [ + 'name' => 'AccessOrigin', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'share', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'DnsContent' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RR' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'verification', + ], + 'Type' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'TXT', + ], + 'Value' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'verify_0a246ca99d504ba087472d***', + ], + ], + ], + 'FileContent' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'TopDomain' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'aliyundemo.com', + ], + 'VerifyPath' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'http://xxx.xxx.com//xxx.html', + ], + 'FileName' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'xxx.html', + ], + 'Value' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'verify_0a246ca99d504ba08***', + ], + 'DownloadUrl' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'http://oss.xxx.com//xxx.html', + ], + ], + ], + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-***', + ], + 'VerifyResult' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'true', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DnsContent\\": {\\n \\"RR\\": \\"verification\\",\\n \\"Type\\": \\"TXT\\",\\n \\"Value\\": \\"verify_0a246ca99d504ba087472d***\\"\\n },\\n \\"FileContent\\": {\\n \\"TopDomain\\": \\"aliyundemo.com\\",\\n \\"VerifyPath\\": \\"http://xxx.xxx.com//xxx.html\\",\\n \\"FileName\\": \\"xxx.html\\",\\n \\"Value\\": \\"verify_0a246ca99d504ba08***\\",\\n \\"DownloadUrl\\": \\"http://oss.xxx.com//xxx.html\\"\\n },\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-***\\",\\n \\"VerifyResult\\": true\\n}","type":"json"}]', + ], + 'ModifyDomainCert' => [ + 'summary' => '修改域名的证书', + 'path' => '', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafD36LCH', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-ww**b06', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'www.example.com', + ], + ], + [ + 'name' => 'CertId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '123-cn-hangzhou', + ], + ], + [ + 'name' => 'TLSVersion', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'tlsv1', + 'enum' => [ + 'tlsv1', + 'tlsv1.1', + 'tlsv1.2', + 'tlsv1.3', + ], + ], + ], + [ + 'name' => 'CipherSuite', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '1', + 'enum' => [ + '1', + '2', + '99', + ], + ], + ], + [ + 'name' => 'CustomCiphers', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'ECDHE-ECDSA-AES256-SHA384', + 'enum' => [ + 'ECDHE-ECDSA-AES128-GCM-SHA256', + 'ECDHE-ECDSA-AES256-GCM-SHA384', + 'ECDHE-ECDSA-AES128-SHA256', + 'ECDHE-ECDSA-AES256-SHA384', + 'ECDHE-RSA-AES128-GCM-SHA256', + 'ECDHE-RSA-AES256-GCM-SHA384', + 'ECDHE-RSA-AES128-SHA256', + 'ECDHE-RSA-AES256-SHA384', + 'AES128-GCM-SHA256', + 'AES256-GCM-SHA384', + 'AES128-SHA256', + 'AES256-SHA256', + 'ECDHE-ECDSA-AES128-SHA', + 'ECDHE-ECDSA-AES256-SHA', + 'ECDHE-RSA-AES128-SHA', + 'ECDHE-RSA-AES256-SHA', + 'AES128-SHA', + 'AES256-SHA', + 'DES-CBC3-SHA', + ], + ], + 'required' => false, + 'maxItems' => 100, + ], + ], + [ + 'name' => 'EnableTLSv3', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the request', + 'type' => 'string', + 'example' => '03E3B4DD-2BE7-5D9D-80E8-***', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Pullin.MustListenHTTPS', + 'errorMessage' => 'The domain name must listen to the HTTPS protocol. Domain:%s.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"03E3B4DD-2BE7-5D9D-80E8-***\\"\\n}","type":"json"}]', + ], + 'DescribeHybridCloudResources' => [ + 'summary' => 'Queries the domain names that are added to a Web Application Firewall (WAF) instance in hybrid cloud mode.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '156993', + 'abilityTreeNodes' => [ + 'FEATUREwafSBJ1DO', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-***********', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'title' => '域名', + 'description' => 'The domain name that you want to query.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'www.aliyundoc.com', + ], + ], + [ + 'name' => 'Backend', + 'in' => 'query', + 'schema' => [ + 'title' => '回源地址', + 'description' => 'The back-to-origin IP address or domain name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1.1.XX.XX', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '50', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'CnameEnabled', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether the public cloud disaster recovery feature is enabled for the domain name. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfmvtc5z52****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Domains' => [ + 'description' => 'The domain names.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The access configurations of the domain name.'."\n", + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'title' => '域名状态', + 'description' => 'The status of the domain name. Valid values:'."\n" + ."\n" + .'* **1:** The domain name is in a normal state.'."\n" + .'* **2:** The domain name is being created.'."\n" + .'* **3:** The domain name is being modified.'."\n" + .'* **4:** The domain name is being released.'."\n" + .'* **5:** WAF no longer forwards the traffic of the domain name.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'ResourceManagerResourceGroupId' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'example' => 'rg-acfmvtc5z52****', + ], + 'Uid' => [ + 'description' => 'The user ID.'."\n", + 'type' => 'string', + 'example' => '130715431409****', + ], + 'Listen' => [ + 'description' => 'The listeners.'."\n", + 'type' => 'object', + 'properties' => [ + 'HttpsPorts' => [ + 'description' => 'The HTTPS listener ports.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The HTTPS listener port.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '443', + ], + ], + 'ProtectionResource' => [ + 'description' => 'The type of the protection resource. Valid values:'."\n" + ."\n" + .'* **share:** shared cluster.'."\n" + .'* **gslb:** shared cluster-based intelligent load balancing.'."\n", + 'type' => 'string', + 'example' => 'share', + ], + 'CustomCiphers' => [ + 'description' => 'The custom cipher suites.'."\n" + ."\n" + .'> This parameter is returned only if the value of **CipherSuite** is **99**.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The custom cipher suite.'."\n", + 'type' => 'string', + 'example' => 'ECDHE-ECDSA-AES128-GCM-SHA256', + ], + ], + 'TLSVersion' => [ + 'description' => 'The version of the Transport Layer Security (TLS) protocol. Valid values:'."\n" + ."\n" + .'* **tlsv1**'."\n" + .'* **tlsv1.1**'."\n" + .'* **tlsv1.2**'."\n", + 'type' => 'string', + 'example' => 'tlsv1.2', + ], + 'Http2Enabled' => [ + 'description' => 'Indicates whether HTTP/2 is enabled. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'CertId' => [ + 'description' => 'The ID of the certificate.'."\n", + 'type' => 'string', + 'example' => '72***76-cn-hangzhou', + ], + 'CipherSuite' => [ + 'description' => 'The types of cipher suites that are added. Valid values:'."\n" + ."\n" + .'* **1:** all cipher suites.'."\n" + .'* **2:** strong cipher suites.'."\n" + .'* **99:** custom cipher suites.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'EnableTLSv3' => [ + 'description' => 'Indicates whether TLS 1.3 is supported. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'IPv6Enabled' => [ + 'description' => 'Specifies whether to enable IPv6. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**', + 'type' => 'boolean', + 'example' => 'false', + ], + 'FocusHttps' => [ + 'description' => 'Indicates whether the HTTP to HTTPS redirection feature is enabled for the domain name. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'XffHeaders' => [ + 'description' => 'The custom header fields that are used to obtain the actual IP addresses of clients. The value is in the \\["header1","header2",...] format.'."\n" + ."\n" + .'> This parameter is returned only if the value of **XffHeaderMode** is 2.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The custom header field that is used to obtain the actual IP address of a client.'."\n", + 'type' => 'string', + 'example' => 'Client-ip', + ], + ], + 'XffHeaderMode' => [ + 'description' => 'The method that is used to obtain the actual IP address of a client. Valid values:'."\n" + ."\n" + .'* **0**: No Layer 7 proxies are deployed in front of WAF.'."\n" + .'* **1**: WAF reads the first value of the X-Forwarded-For (XFF) header field as the actual IP address of the client.'."\n" + .'* **2**: WAF reads the value of a custom header field as the actual IP address of the client.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'ExclusiveIp' => [ + 'description' => 'Indicates whether exclusive IP addresses are supported. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'HttpPorts' => [ + 'description' => 'The HTTP listener ports.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The HTTP listener port.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '80', + ], + ], + ], + ], + 'Id' => [ + 'description' => 'The access ID.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'enumValueTitles' => [], + 'example' => '1', + ], + 'Redirect' => [ + 'description' => 'The configurations of the forwarding rule.'."\n", + 'type' => 'object', + 'properties' => [ + 'ConnectTimeout' => [ + 'description' => 'The timeout period for connections. Unit: seconds. Valid values: 5 to 120.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '120', + ], + 'Keepalive' => [ + 'description' => 'Indicates whether the persistent connection feature is enabled. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'SniEnabled' => [ + 'description' => 'Indicates whether the origin Server Name Indication (SNI) feature is enabled. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'CnameEnabled' => [ + 'description' => 'Indicates whether the public cloud disaster recovery feature is enabled. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'KeepaliveTimeout' => [ + 'description' => 'The timeout period for persistent connections that are in the Idle state. Unit: seconds. Valid values: 1 to 60. Default value: 15.'."\n" + ."\n" + .'> This parameter indicates the period of time during which a reused persistent connection can remain in the Idle state before the persistent connection is released.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '15', + ], + 'ReadTimeout' => [ + 'description' => 'The timeout period for read connections. Unit: seconds. Valid values: 5 to 1800.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '200', + ], + 'Backends' => [ + 'description' => 'The IP addresses or domain names of the origin server.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The IP address or domain name of the origin server.'."\n", + 'type' => 'string', + 'example' => '1.1.XX.XX', + ], + ], + 'SniHost' => [ + 'description' => 'The value of the custom SNI field. If the parameter is left empty, the value of the **Host** field in the request header is automatically used as the value of the SNI field.'."\n" + ."\n" + .'> This parameter is returned only if the value of **SniEnabled** is **true**.'."\n", + 'type' => 'string', + 'example' => 'www.aliyundoc.com', + ], + 'FocusHttpBackend' => [ + 'description' => 'Indicates whether the HTTPS to HTTP redirection feature is enabled for back-to-origin requests. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'WriteTimeout' => [ + 'description' => 'The timeout period for write connections. Unit: seconds. Valid values: 5 to 1800.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '200', + ], + 'RoutingRules' => [ + 'description' => 'The forwarding rules that are configured for the domain name. This parameter is a string that consists of JSON arrays. Each element in a JSON array is a JSON struct that contains the following fields:'."\n" + ."\n" + .'* **rs**: the back-to-origin IP addresses or CNAMEs. The value is of the ARRAY type.'."\n" + .'* **location**: the name of the protection node. The value is of the STRING type.'."\n" + .'* **locationId**: the ID of the protection node. The value is of the LONG type.'."\n", + 'type' => 'string', + 'example' => '['."\n" + .' {'."\n" + .' "rs": ['."\n" + .' "1.1.XX.XX"'."\n" + .' ],'."\n" + .' "locationId": 535,'."\n" + .' "location": "test1111"'."\n" + .' }'."\n" + .']', + ], + 'Retry' => [ + 'description' => 'Indicates whether WAF retries forwarding requests if requests fail to be forwarded to the origin server. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'RequestHeaders' => [ + 'description' => 'The key-value pair that is used to label requests that pass through WAF.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The key-value pair that is used to mark the requests that pass through the WAF instance.'."\n", + 'type' => 'object', + 'properties' => [ + 'Value' => [ + 'description' => 'The value of the custom header field.'."\n", + 'type' => 'string', + 'example' => 'bbb', + ], + 'Key' => [ + 'description' => 'The key of the custom header field.'."\n", + 'type' => 'string', + 'example' => 'aaa', + ], + ], + ], + ], + 'KeepaliveRequests' => [ + 'description' => 'The number of reused persistent connections. Valid values: 60 to 1000.'."\n" + ."\n" + .'> This parameter indicates the number of reused persistent connections after the persistent connection feature is enabled.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1000', + ], + 'Loadbalance' => [ + 'description' => 'The load balancing algorithm that is used to forward requests to the origin server. Valid values:'."\n" + ."\n" + .'* **iphash**'."\n" + .'* **roundRobin**'."\n" + .'* **leastTime**'."\n", + 'type' => 'string', + 'example' => 'iphash', + ], + ], + ], + 'Domain' => [ + 'title' => '域名', + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'example' => 'www.aliyundoc.com', + ], + 'Cname' => [ + 'title' => 'CNAME', + 'description' => 'The CNAME assigned by WAF.'."\n" + ."\n" + .'> This parameter is returned only if the value of **CnameEnabled** is true.'."\n", + 'type' => 'string', + 'example' => '50fqmu1ci7g0xtiyxnrhgx6qdhmn****.yundunwaf5.com', + ], + ], + ], + ], + 'TotalCount' => [ + 'description' => 'The total number of entries that are returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '24', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '98D2AA9A-5959-5CCD-83E3-B6606232A2BE', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Domains\\": [\\n {\\n \\"Status\\": 1,\\n \\"ResourceManagerResourceGroupId\\": \\"rg-acfmvtc5z52****\\",\\n \\"Uid\\": \\"130715431409****\\",\\n \\"Listen\\": {\\n \\"HttpsPorts\\": [\\n 443\\n ],\\n \\"ProtectionResource\\": \\"share\\",\\n \\"CustomCiphers\\": [\\n \\"ECDHE-ECDSA-AES128-GCM-SHA256\\"\\n ],\\n \\"TLSVersion\\": \\"tlsv1.2\\",\\n \\"Http2Enabled\\": false,\\n \\"CertId\\": \\"72***76-cn-hangzhou\\",\\n \\"CipherSuite\\": 1,\\n \\"EnableTLSv3\\": true,\\n \\"IPv6Enabled\\": false,\\n \\"FocusHttps\\": false,\\n \\"XffHeaders\\": [\\n \\"Client-ip\\"\\n ],\\n \\"XffHeaderMode\\": 0,\\n \\"ExclusiveIp\\": true,\\n \\"HttpPorts\\": [\\n 80\\n ]\\n },\\n \\"Id\\": 12345,\\n \\"Redirect\\": {\\n \\"ConnectTimeout\\": 120,\\n \\"Keepalive\\": true,\\n \\"SniEnabled\\": true,\\n \\"CnameEnabled\\": true,\\n \\"KeepaliveTimeout\\": 15,\\n \\"ReadTimeout\\": 200,\\n \\"Backends\\": [\\n \\"1.1.XX.XX\\"\\n ],\\n \\"SniHost\\": \\"www.aliyundoc.com\\",\\n \\"FocusHttpBackend\\": true,\\n \\"WriteTimeout\\": 200,\\n \\"RoutingRules\\": \\"[\\\\n {\\\\n \\\\\\"rs\\\\\\": [\\\\n \\\\\\"1.1.XX.XX\\\\\\"\\\\n ],\\\\n \\\\\\"locationId\\\\\\": 535,\\\\n \\\\\\"location\\\\\\": \\\\\\"test1111\\\\\\"\\\\n }\\\\n]\\",\\n \\"Retry\\": true,\\n \\"RequestHeaders\\": [\\n {\\n \\"Value\\": \\"bbb\\",\\n \\"Key\\": \\"aaa\\"\\n }\\n ],\\n \\"KeepaliveRequests\\": 1000,\\n \\"Loadbalance\\": \\"iphash\\"\\n },\\n \\"Domain\\": \\"www.aliyundoc.com\\",\\n \\"Cname\\": \\"50fqmu1ci7g0xtiyxnrhgx6qdhmn****.yundunwaf5.com\\"\\n }\\n ],\\n \\"TotalCount\\": 24,\\n \\"RequestId\\": \\"98D2AA9A-5959-5CCD-83E3-B6606232A2BE\\"\\n}","type":"json"}]', + 'title' => 'DescribeHybridCloudResources', + ], + 'DescribeHybridCloudProtectableCount' => [ + 'summary' => 'Queries the number of protection nodes that can be added to a hybrid cloud cluster.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-4xl3fdi4u01**fe23', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '阿里云资源组ID。', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '6087EA47-C10F-5A0A-A405-DB5B241**B1', + ], + 'ProtectableCount' => [ + 'description' => 'The number of protection nodes that can be added to the hybrid cloud cluster.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6087EA47-C10F-5A0A-A405-DB5B241**B1\\",\\n \\"ProtectableCount\\": 1\\n}","type":"json"}]', + 'title' => 'DescribeHybridCloudProtectableCount', + ], + 'CreateDefenseResource' => [ + 'summary' => '创建防护对象', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106302', + 'abilityTreeNodes' => [ + 'FEATUREwafNZKQ0J', + ], + ], + 'parameters' => [ + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'title' => '防护对象名称', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'abctest.com', + ], + ], + [ + 'name' => 'Product', + 'in' => 'query', + 'schema' => [ + 'title' => '云产品名称。例如 alb,clb等', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'ecs', + ], + ], + [ + 'name' => 'ResourceGroup', + 'in' => 'query', + 'schema' => [ + 'title' => '防护对象加入防护组的名称,可选。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '', + ], + ], + [ + 'name' => 'ResourceOrigin', + 'in' => 'query', + 'schema' => [ + 'title' => '防护对象来源, custom:来自用户自定义 access: 来自接入', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'custom', + 'default' => 'custom', + ], + ], + [ + 'name' => 'Pattern', + 'in' => 'query', + 'schema' => [ + 'title' => '防护对象的防护形式', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'domain', + ], + ], + [ + 'name' => 'Detail', + 'in' => 'query', + 'schema' => [ + 'title' => '防护对象的具体描述信息,Map中不同的键值对表示防护对象不同的属性', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '{\\"domain\\": \\"zhhclb4test096-05111.test.com\\"}', + ], + ], + [ + 'name' => 'XffStatus', + 'in' => 'query', + 'schema' => [ + 'title' => '防护对象是否开启xff代理,默认为0 0=未开启 1=开启', + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + ], + ], + [ + 'name' => 'CustomHeaders', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'title' => '自定义xff头用来去真实的客户端源IP,当xff=1且该字段为空时表示取xff头中第一个IP作为客户端源IP', + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'x-forwarded-for', + ], + 'required' => false, + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'title' => '防护对象1domain 描述信息。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-4xl*******', + ], + ], + [ + 'name' => 'OwnerUserId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '123221XXX', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '标签列表,最多包含20个子项', + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'title' => '标签键', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'demoTagKey', + ], + 'Value' => [ + 'title' => '标签值', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'TagValue1', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '1738C613-D054-5191-888B-DC0CF4C3A4A0', + ], + 'Resource' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'cdX.XXX-call.cn-alb', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Pullin.ResourceExsit', + 'errorMessage' => 'Access resource already exists, resource:%s.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"1738C613-D054-5191-888B-DC0CF4C3A4A0\\",\\n \\"Resource\\": \\"cdX.XXX-call.cn-alb\\"\\n}","type":"json"}]', + ], + 'DeleteDefenseResource' => [ + 'summary' => '删除单个防护对象', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106306', + 'abilityTreeNodes' => [ + 'FEATUREwafNZKQ0J', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-9lb*******', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'title' => '防护对象名称', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'zhh*****-2034.test.top-clb7', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '745F051D-95FD-57EC-9DC1-79BB4883C6A4', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"745F051D-95FD-57EC-9DC1-79BB4883C6A4\\"\\n}","type":"json"}]', + ], + 'CreateDefenseResourceGroup' => [ + 'summary' => 'Creates a protected object group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106349', + 'abilityTreeNodes' => [ + 'FEATUREwafHQWDCC', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'GroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the protected object group that you want to create.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'group221', + ], + ], + [ + 'name' => 'AddList', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protected objects that you want to add to the protected object group. You can add multiple protected objects to a protected object group at the same time. You can specify multiple protected objects. Separate them with commas (,).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test1.aliyundoc.com,test2.aliyundoc.com'."\n", + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the protected object group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test_domain', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: Outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '5D69B341-4F97-58E7-9E16-1B17FE7A9E98', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5D69B341-4F97-58E7-9E16-1B17FE7A9E98\\"\\n}","type":"json"}]', + 'title' => 'CreateDefenseResourceGroup', + ], + 'ModifyDefenseResourceGroup' => [ + 'summary' => 'Modifies the configurations of a protected object group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106353', + 'abilityTreeNodes' => [ + 'FEATUREwafHQWDCC', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'GroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the protected object group whose configurations you want to modify.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'test01', + ], + ], + [ + 'name' => 'AddList', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protected objects that you want to add to the protected object group. Separate the protected objects with commas (,). If you leave this parameter empty, no protected objects are added to the protected object group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test1.aliyundoc.com,test2.aliyundoc.com', + ], + ], + [ + 'name' => 'DeleteList', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protected objects that you want to remove from the protected object group. Separate the protected objects with commas (,). If you leave this parameter empty, no protected objects are removed from the protected object group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test14.waf.com,test24.waf.com', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the protected object group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The result of the request.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '2CC1AFDE-BB31-5A2F-906E-92FCBDDE6B75', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2CC1AFDE-BB31-5A2F-906E-92FCBDDE6B75\\"\\n}","type":"json"}]', + 'title' => 'ModifyDefenseResourceGroup', + ], + 'DeleteDefenseResourceGroup' => [ + 'summary' => 'Deletes a protected object group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106355', + 'abilityTreeNodes' => [ + 'FEATUREwafHQWDCC', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'GroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the protected object group that you want to delete.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'group221', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The result of the request.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '25BE1169-9AE4-5D7D-8293-C33242ABB549', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"25BE1169-9AE4-5D7D-8293-C33242ABB549\\"\\n}","type":"json"}]', + 'title' => 'DeleteDefenseResourceGroup', + ], + 'DescribeDefenseResourceGroup' => [ + 'summary' => 'Queries the information about a protected object group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafHQWDCC', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'GroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the protected object group whose information you want to query.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'group221', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'Group' => [ + 'description' => 'The information about the protected object group.'."\n", + 'type' => 'object', + 'properties' => [ + 'GroupName' => [ + 'description' => 'The name of the protected object group.'."\n", + 'type' => 'string', + 'example' => 'group1', + ], + 'GmtCreate' => [ + 'description' => 'The time when the protected object group was created.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '23242312312', + ], + 'ResourceList' => [ + 'description' => 'The protected objects in the protected object group. The protected objects are separated with commas (,).'."\n", + 'type' => 'string', + 'example' => 'test1.aliyundoc.com,test2.aliyundoc.com', + ], + 'Description' => [ + 'description' => 'The description of the protected object group.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'GmtModified' => [ + 'description' => 'The most recent time when the protected object group was modified.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '23242312312', + ], + ], + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'E67D21C6-5376-5F94-B745-70E08D03E3CB', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Group\\": {\\n \\"GroupName\\": \\"group1\\",\\n \\"GmtCreate\\": 23242312312,\\n \\"ResourceList\\": \\"test1.aliyundoc.com,test2.aliyundoc.com\\",\\n \\"Description\\": \\"test\\",\\n \\"GmtModified\\": 23242312312\\n },\\n \\"RequestId\\": \\"E67D21C6-5376-5F94-B745-70E08D03E3CB\\"\\n}","type":"json"}]', + 'title' => 'DescribeDefenseResourceGroup', + ], + 'DescribeDefenseResourceGroups' => [ + 'summary' => 'Performs a pagination query to retrieve the information about protected object groups.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafHQWDCC', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-wwo36****0i', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfmxc7lf****eq', + ], + ], + [ + 'name' => 'GroupNameLike', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the protected object group that you want to query. Fuzzy queries are supported.', + 'type' => 'string', + 'required' => false, + 'example' => 'demoGroupName', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **20**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '20', + 'default' => '20', + ], + ], + [ + 'name' => 'GroupNames', + 'in' => 'query', + 'schema' => [ + 'description' => 'The names of the protected object groups that you want to query. Separate multiple names with commas (,).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'groupName1,groupName2', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'BFEC5C77-049B-5E88-A5B6-CB0C****B66E', + ], + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'Groups' => [ + 'description' => 'The list of protected object groups.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Description' => [ + 'description' => 'The description of the protected object group.'."\n", + 'type' => 'string', + 'example' => 'This is test description', + ], + 'GmtCreate' => [ + 'description' => 'The time when the protected object group was created. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1624343180000', + ], + 'GmtModified' => [ + 'description' => 'The most recent time when the protected object group was modified. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1701656305000', + ], + 'GroupName' => [ + 'description' => 'The name of the protected object group.'."\n", + 'type' => 'string', + 'example' => 'apptest', + ], + 'ResourceList' => [ + 'description' => 'The names of the protected objects that are added to the protected object group. Separate multiple protected objects with commas (,).'."\n", + 'type' => 'string', + 'example' => 'example02.aliyun-waf,example01.aliyun-waf', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BFEC5C77-049B-5E88-A5B6-CB0C****B66E\\",\\n \\"TotalCount\\": 10,\\n \\"Groups\\": [\\n {\\n \\"Description\\": \\"This is test description\\",\\n \\"GmtCreate\\": 1624343180000,\\n \\"GmtModified\\": 1701656305000,\\n \\"GroupName\\": \\"apptest\\",\\n \\"ResourceList\\": \\"example02.aliyun-waf,example01.aliyun-waf\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeDefenseResourceGroups', + ], + 'DescribeDefenseResourceGroupNames' => [ + 'summary' => 'Queries the names of protected object groups.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafHQWDCC', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-lbj****cc03', + ], + ], + [ + 'name' => 'GroupNameLike', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the protected object group. Fuzzy queries are supported.', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [], + 'example' => 'example-group', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **20**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + 'default' => '20', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aekzwwk****cv5i', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '8', + ], + 'GroupNames' => [ + 'description' => 'The names of the protected object groups.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The name of the protected object group.'."\n", + 'type' => 'string', + 'example' => 'example-group-name', + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '59DA4258-2F32-5095-B283-57AC****70B3', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 8,\\n \\"GroupNames\\": [\\n \\"example-group-name\\"\\n ],\\n \\"RequestId\\": \\"59DA4258-2F32-5095-B283-57AC****70B3\\"\\n}","type":"json"}]', + 'title' => 'DescribeDefenseResourceGroupNames', + ], + 'DescribeDefenseResource' => [ + 'summary' => 'Queries the information about a protected object.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106335', + 'abilityTreeNodes' => [ + 'FEATUREwafNZKQ0J', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-4xl****i60i', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'title' => '防护对象名称', + 'description' => 'The name of the protected object that you want to query. Only exact queries are supported.', + 'type' => 'string', + 'required' => true, + 'example' => 'example.aliyundoc.com-waf ', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: The Chinese mainland.'."\n" + .'* **ap-southeast-1**: Outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '439AADF2-368C-5E98-B14E-3086****0573', + ], + 'Resource' => [ + 'description' => 'The protected object.'."\n", + 'type' => 'object', + 'properties' => [ + 'GmtCreate' => [ + 'description' => 'The time when the protected object was created. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1607493144000', + ], + 'GmtModified' => [ + 'description' => 'The time when the protected object was modified. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1691720010000', + ], + 'Product' => [ + 'description' => 'The name of the cloud service.'."\n", + 'type' => 'string', + 'example' => 'alb', + ], + 'Resource' => [ + 'description' => 'The name of the protected object.'."\n", + 'type' => 'string', + 'example' => 'alb-rencs***'."\n", + ], + 'ResourceGroup' => [ + 'description' => 'The name of the protected object group to which the protected object belongs.'."\n", + 'type' => 'string', + 'example' => 'example_resource_group', + ], + 'Detail' => [ + 'description' => 'The details of the protected object. Different key-value pairs indicate different attributes of the protected object.'."\n", + 'type' => 'object', + 'example' => '{'."\n" + .'"product": "waf",'."\n" + .' "domain": "demo.aliyundoc****.com"'."\n" + .'}', + ], + 'Pattern' => [ + 'description' => 'The pattern used for the protected object.'."\n", + 'type' => 'string', + 'example' => 'domain', + ], + 'XffStatus' => [ + 'description' => 'Indicates whether a Layer 7 proxy is deployed in front of WAF, such as Anti-DDoS Proxy and Alibaba Cloud CDN. Valid values:'."\n" + ."\n" + .'* **0**: No Layer 7 proxy is deployed.'."\n" + .'* **1**: A Layer 7 proxy is deployed.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'CustomHeaders' => [ + 'description' => 'The custom header fields.'."\n" + ."\n" + .'> If the value of XffStatus is 1, the first IP address in the specified header field is used as the originating IP address of the client to prevent X-Forwarded-For (XFF) forgery. If you specify multiple header fields, WAF reads the values of the header fields in sequence until the originating IP address is obtained. If the originating IP address cannot be obtained, the first IP address in the XFF header field is used as the originating IP address of the client.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The custom header field.'."\n", + 'type' => 'string', + 'example' => 'x-forwarded-for', + ], + ], + 'ResourceOrigin' => [ + 'description' => 'The origin of the protected object. Valid values:'."\n" + ."\n" + .'* **custom**'."\n" + .'* **access**'."\n", + 'type' => 'string', + 'example' => 'custom', + ], + 'Description' => [ + 'description' => 'The description of the protected object.'."\n", + 'type' => 'string', + 'example' => 'This is Description', + ], + 'ResourceManagerResourceGroupId' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'example' => 'rg-acfmoiy****p2oq', + ], + 'AcwCookieStatus' => [ + 'description' => 'The status of the tracking cookie.'."\n" + ."\n" + .'* **0**: disabled.'."\n" + .'* **1**: enabled.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'AcwSecureStatus' => [ + 'description' => 'The status of the secure attribute of the tracking cookie.'."\n" + ."\n" + .'* **0**: disabled.'."\n" + .'* **1**: enabled.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'AcwV3SecureStatus' => [ + 'description' => 'The status of the secure attribute of the slider CAPTCHA cookie.'."\n" + ."\n" + .'* **0**: disabled.'."\n" + .'* **1**: enabled.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'OwnerUserId' => [ + 'description' => 'The user ID (UID) of the Alibaba Cloud account to which the protected object belongs.', + 'type' => 'string', + 'example' => '170457******9107', + ], + 'ResponseHeaders' => [ + 'description' => 'The response header.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The response header.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'Specifies the key for a custom response header.'."\n", + 'type' => 'string', + 'example' => 'Header-Key'."\n", + ], + 'Value' => [ + 'description' => 'Specifies the value for a custom response header.'."\n", + 'type' => 'string', + 'example' => 'Header-Value'."\n", + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"439AADF2-368C-5E98-B14E-3086****0573\\",\\n \\"Resource\\": {\\n \\"GmtCreate\\": 1607493144000,\\n \\"GmtModified\\": 1691720010000,\\n \\"Product\\": \\"alb\\",\\n \\"Resource\\": \\"alb-rencs***\\\\n\\",\\n \\"ResourceGroup\\": \\"example_resource_group\\",\\n \\"Detail\\": {\\n \\"product\\": \\"waf\\",\\n \\"domain\\": \\"demo.aliyundoc****.com\\"\\n },\\n \\"Pattern\\": \\"domain\\",\\n \\"XffStatus\\": 0,\\n \\"CustomHeaders\\": [\\n \\"x-forwarded-for\\"\\n ],\\n \\"ResourceOrigin\\": \\"custom\\",\\n \\"Description\\": \\"This is Description\\",\\n \\"ResourceManagerResourceGroupId\\": \\"rg-acfmoiy****p2oq\\",\\n \\"AcwCookieStatus\\": 0,\\n \\"AcwSecureStatus\\": 0,\\n \\"AcwV3SecureStatus\\": 0,\\n \\"OwnerUserId\\": \\"170457******9107\\",\\n \\"ResponseHeaders\\": [\\n {\\n \\"Key\\": \\"Header-Key\\\\n\\",\\n \\"Value\\": \\"Header-Value\\\\n\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'DescribeDefenseResource', + ], + 'DescribeDefenseResources' => [ + 'summary' => 'Queries protected objects by page.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106336', + 'abilityTreeNodes' => [ + 'FEATUREwafNZKQ0J', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number of the paginated results Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of results per page. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + 'default' => '20', + ], + ], + [ + 'name' => 'Query', + 'in' => 'query', + 'schema' => [ + 'description' => 'The query conditions. Specify the value of this parameter as a string in the JSON format.'."\n" + ."\n" + .'> The results vary based on the query condition. For more information, see the "**Query parameters**" section in this topic.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{\\"product\\":\\"waf\\"}', + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The tag of the resource. You can specify up to 20 tags.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Value' => [ + 'description' => 'The tag value.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TagValue1', + ], + 'Key' => [ + 'description' => 'The tag key.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Tagkey1', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: The Chinese mainland.'."\n" + .'* **ap-southeast-1**: Outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of entries that are returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '73', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '618F2626-DB27-5187-8C6C-4E61A491DF29', + ], + 'Resources' => [ + 'description' => 'The protected objects.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'Details of the protected object.'."\n", + 'type' => 'object', + 'properties' => [ + 'Pattern' => [ + 'description' => 'The protection pattern.'."\n", + 'type' => 'string', + 'example' => 'domain', + ], + 'Description' => [ + 'description' => 'The description of the protected object.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'XffStatus' => [ + 'description' => 'Indicates whether the X-Forwarded-For (XFF) header is used.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'GmtModified' => [ + 'description' => 'The most recent modification time of the protected object. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1665633032000', + ], + 'Resource' => [ + 'description' => 'The name of the protected object.'."\n", + 'type' => 'string', + 'example' => 'alb-rencs***', + ], + 'AcwV3SecureStatus' => [ + 'description' => 'The status of the secure attribute of the slider CAPTCHA cookie.'."\n" + ."\n" + .'* **0**: disabled. This is the default value.'."\n" + .'* **1**: enabled.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'Product' => [ + 'description' => 'The name of the cloud service.'."\n", + 'type' => 'string', + 'example' => 'alb', + ], + 'AcwCookieStatus' => [ + 'description' => 'The status of the tracking cookie.'."\n" + ."\n" + .'* **0**: disabled'."\n" + .'* **1**: enabled. This is the default value.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'AcwSecureStatus' => [ + 'description' => 'The status of the secure attribute of the tracking cookie.'."\n" + ."\n" + .'* **0**: disabled. This is the default value.'."\n" + .'* **1**: enabled.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'ResourceManagerResourceGroupId' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'example' => 'rg-acfm***q', + ], + 'GmtCreate' => [ + 'description' => 'The creation time of the protected object. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1652149203187', + ], + 'OwnerUserId' => [ + 'description' => 'The Alibaba Cloud account to which the protected object belongs. You can specify this parameter to query protected objects that belong to a specific Alibaba Cloud account. Exact match is supported.', + 'type' => 'string', + 'example' => '135*********46', + ], + 'ResourceOrigin' => [ + 'description' => 'The origin of the protected object.'."\n", + 'type' => 'string', + 'example' => 'custom', + ], + 'ResourceGroup' => [ + 'description' => 'The name of the protected object group to which the protected object belongs.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'Detail' => [ + 'description' => 'The description of the protected object. Different key-value pairs in a map indicate different properties of the protected object.'."\n", + 'type' => 'object', + ], + 'CustomHeaders' => [ + 'description' => 'The custom header fields that are used to identify the originating IP addresses of clients. If the value of XffStatus is 1 and CustomHeaders is left empty, the first IP addresses in the XFF header fields are used as the originating IP addresses of clients.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the custom header.'."\n", + 'type' => 'string', + 'example' => 'afbfbajf', + ], + ], + 'ResponseHeaders' => [ + 'description' => 'The response header.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The response header.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'Specifies the key for a custom response header.'."\n", + 'type' => 'string', + 'example' => 'Header-Key', + ], + 'Value' => [ + 'description' => 'Specifies the value for a custom response header.'."\n", + 'type' => 'string', + 'example' => 'Header-Value', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 73,\\n \\"RequestId\\": \\"618F2626-DB27-5187-8C6C-4E61A491****\\",\\n \\"Resources\\": [\\n {\\n \\"Pattern\\": \\"domain\\",\\n \\"Description\\": \\"test\\",\\n \\"XffStatus\\": 1,\\n \\"GmtModified\\": 1665633032000,\\n \\"Resource\\": \\"alb-rencs***\\",\\n \\"AcwV3SecureStatus\\": 0,\\n \\"Product\\": \\"alb\\",\\n \\"AcwCookieStatus\\": 1,\\n \\"AcwSecureStatus\\": 0,\\n \\"ResourceManagerResourceGroupId\\": \\"rg-acfm***q\\",\\n \\"GmtCreate\\": 1652149203187,\\n \\"OwnerUserId\\": \\"135*********46\\",\\n \\"ResourceOrigin\\": \\"custom\\",\\n \\"ResourceGroup\\": \\"test\\",\\n \\"Detail\\": {\\n \\"domain\\": \\"eou.eleme.cn\\",\\n \\"uri\\": \\"/\\"\\n },\\n \\"CustomHeaders\\": [\\n \\"afbfbajf\\"\\n ],\\n \\"ResponseHeaders\\": [\\n {\\n \\"Key\\": \\"Header-Key\\",\\n \\"Value\\": \\"Header-Value\\"\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeDefenseResources', + 'requestParamsDescription' => '### Query'."\n" + ."\n" + .'##### Parameters'."\n" + ."\n" + .'|Parameter|Type|Required|Example|Description|'."\n" + .'|---|---|---|---|---|'."\n" + .'|product|String|No|waf|The type of the protected object that you want to query. Valid values:\\- **waf**: a protected object that is added by using the CNAME record or hybrid cloud mode.\\- **alb**: an Application Load Balancer (ALB) instance.\\- **clb**: a Classic Load Balancer (CLB) instance.\\- **ecs**: an Elastic Compute Service (ECS) instance.\\- **mse**: a Microservices Engine (MSE) instance.\\-**fc**: a custom domain name bound to a web application in Function Compute.|'."\n" + .'|resourceLike|String|No|example.aliyundoc.c|The name of the protected object that you want to query. Fuzzy match is supported.|'."\n" + .'|resource|String|No|example.aliyundoc.com-waf|The name of the protected object that you want to query. Exact match is supported.|'."\n" + .'|resourceIn|String|No|example1.aliyundoc.com,example2.aliyundoc.com|The protected objects that you want to query. You can specify this parameter to query multiple protected objects. Separate multiple protected objects with commas (,).|'."\n" + .'|instanceId|String|No|alb-nifa24\\*\\*\\*\\*|The instance ID of the protected object that you want to query. Exact match is supported.|'."\n" + .'|domain|String|No|example.aliyundoc.com|The domain name of the protected object that you want to query. Exact match is supported.|'."\n" + .'|resourceGroup|String|No|group1|The protected object group to which the protected object belongs.|'."\n" + .'|inGroup|Boolean|No|true|Specifies whether the protected object is added to a protected object group.|'."\n" + .'|ownerUserId|String|No|135\\*\\*\\*\\*\\*\\*\\*\\*23|The Alibaba Cloud account to which the protected object belongs. You can specify this parameter to query protected objects that belong to a specific Alibaba Cloud account. Exact match is supported.|'."\n" + .'|orderBy|String|No|resource|The method that you want to use to sort protected objects. Valid values:\\- **resource**: sorts protected objects by name.\\- **gmtModified**: sorts protected objects by modification time.|'."\n" + .'|desc|Boolean|No|true|Specifies whether to sort protected objects in ascending or descending order. Valid values:\\- **false**: sorts protected objects in ascending order.\\- **true**: sorts protected objects in descending order.|'."\n" + ."\n" + .'##### Example'."\n" + ."\n" + .'```json'."\n" + .'{'."\n" + .' "product ": "waf",'."\n" + .' "resource": "example.aliyundoc.com-waf",'."\n" + .' "domain": "example.aliyundoc.com",'."\n" + .' "resourceLike ": "example.aliyundoc.c",'."\n" + .' "InstaneId": "waf_cn****",'."\n" + .' "resourceIn": "example1.aliyundoc.com,example2.aliyundoc.com",'."\n" + .' "ownerUserId": "135**********41"'."\n" + .'}'."\n" + .'```', + ], + 'DescribeDefenseResourceNames' => [ + 'summary' => 'Performs a pagination query to retrieve the names of protected objects.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafNZKQ0J', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-9lb****5s03', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aekzd4c****pdwy', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the protected object that you want to query.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'example.xxxxaliyundoc.com', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **20**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + 'default' => '20', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'C1823E96-EF4B-5BD2-9E02-1D18****3ED8', + ], + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '75', + ], + 'Resources' => [ + 'description' => 'The names of the protected objects.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The name of the protected object.'."\n", + 'type' => 'string', + 'example' => 'example.aliyundoc.com-waf', + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C1823E96-EF4B-5BD2-9E02-1D18****3ED8\\",\\n \\"TotalCount\\": 75,\\n \\"Resources\\": [\\n \\"example.aliyundoc.com-waf\\"\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeDefenseResourceNames', + ], + 'DescribeDefenseResourceOwnerUid' => [ + 'summary' => '查询防护对象和所属资源的关系', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '213063', + 'abilityTreeNodes' => [ + 'FEATUREwafNZKQ0J', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn********60f', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'ResourceNames', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'a.com-waf,b.com-waf', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '7326952B-B83B-5B7C-84FA-77F3E17310A2', + ], + 'OwnerInfos' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ResourceName' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'a.com-waf', + ], + 'OwnerUserId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '125************21', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7326952B-B83B-5B7C-84FA-77F3E17310A2\\",\\n \\"OwnerInfos\\": [\\n {\\n \\"ResourceName\\": \\"a.com-waf\\",\\n \\"OwnerUserId\\": \\"125************21\\"\\n }\\n ]\\n}","type":"json"}]', + ], + 'ModifyDefenseResourceXff' => [ + 'summary' => 'Modifies the cookie settings of a protected object and the method to identify the originating IP addresses of clients.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '144829', + 'abilityTreeNodes' => [ + 'FEATUREwafNZKQ0J', + ], + ], + 'parameters' => [ + [ + 'name' => 'XffStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether a Layer 7 proxy is deployed in front of WAF. Layer 7 proxies include Anti-DDoS Proxy and Alibaba Cloud CDN. Valid values:'."\n" + ."\n" + .'* **0**: No Layer 7 proxies are deployed. This is the default value.'."\n" + .'* **1**: A Layer 7 proxy is deployed.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '0', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-wwo3c****07', + ], + ], + [ + 'name' => 'CustomHeaders', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The custom header fields.'."\n" + ."\n" + .'> The first IP address in the specified custom header field is used as the originating IP address of the client to prevent X-Forwarded-For forgery. If you specify multiple header fields, WAF reads the values of the header fields in sequence until the originating IP address is obtained. If the originating IP address cannot be obtained, the first IP address in the X-Forwarded-For header is used as the originating IP address of the client.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The custom header field.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'x-forwarded-for', + ], + 'required' => false, + 'maxItems' => 5, + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the protected object.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'alb-4pxu81fgagx3****mz-alb', + ], + ], + [ + 'name' => 'AcwCookieStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the tracking cookie.'."\n" + ."\n" + .'* **0**: disabled'."\n" + .'* **1**: enabled. This is the default value.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + ], + ], + [ + 'name' => 'AcwSecureStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the secure attribute of the tracking cookie.'."\n" + ."\n" + .'* **0**: disabled. This is the default value.'."\n" + .'* **1**: enabled.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + ], + ], + [ + 'name' => 'AcwV3SecureStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the secure attribute of the slider CAPTCHA cookie.'."\n" + ."\n" + .'* **0**: disabled. This is the default value.'."\n" + .'* **1**: enabled.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '0', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResponseHeaders', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The response header.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The response header.'."\n", + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'Specifies the key for a custom response header.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Header-Key'."\n", + 'maxLength' => 50, + ], + 'Value' => [ + 'description' => 'Specifies the value for a custom response header.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Header-Value'."\n", + 'maxLength' => 50, + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 5, + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm2kie2****wq', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '6C094583-9B3F-5BD8-8748-DC638E****BF', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Pullin.AbnormalStatus', + 'errorMessage' => 'The status of the access resource is abnormal. Resource:%s.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"6C094583-9B3F-5BD8-8748-DC638E48****\\"\\n}","type":"json"}]', + 'title' => 'ModifyDefenseResourceXff', + ], + 'DescribePauseProtectionStatus' => [ + 'summary' => 'Queries the protection status of Web Application Firewall (WAF).', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '222987', + 'abilityTreeNodes' => [ + 'FEATUREwafNZKQ0J', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-tl32ast****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-****-46CE-A47C-6B19****5EB0', + ], + 'PauseStatus' => [ + 'description' => 'Indicates whether WAF protection is paused.'."\n" + ."\n" + .'* **0**: indicates that WAF protection is not paused. This is the default value.'."\n" + .'* **1**: indicates that WAF protection is paused.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-****-46CE-A47C-6B19****5EB0\\",\\n \\"PauseStatus\\": 0\\n}","type":"json"}]', + 'title' => 'DescribePauseProtectionStatus', + ], + 'DescribeDefenseGroupValidResources' => [ + 'summary' => '分页查询可以被防护组绑定的防护对象列表', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafHQWDCC', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-zxu****jc01', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'example.aliyun-waf', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + 'default' => '20', + ], + ], + [ + 'name' => 'GroupName', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'group221', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aek2lrm****6pnq', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '12', + ], + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'A57BA089-3B28-5C82-8331-7B94****4978', + ], + 'Resources' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'example.aliyun-waf'."\n", + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 12,\\n \\"RequestId\\": \\"A57BA089-3B28-5C82-8331-7B94****4978\\",\\n \\"Resources\\": [\\n \\"example.aliyun-waf\\\\n\\"\\n ]\\n}","type":"json"}]', + ], + 'CreateDefenseTemplate' => [ + 'summary' => 'Creates a protection rule template.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106370', + 'abilityTreeNodes' => [ + 'FEATUREwaf1LM6V0', + 'FEATUREwafI1HM4C', + 'FEATUREwafCU29M8', + 'FEATUREwafBWO4L0', + 'FEATUREwaf9JXZCD', + 'FEATUREwaf6XNOII', + 'FEATUREwafQ73SIK', + 'FEATUREwafAFURH8', + 'FEATUREwafS64FX9', + 'FEATUREwafOVI09M', + 'FEATUREwafIFHX6M', + 'FEATUREwafF105ZO', + 'FEATUREwaf16U367', + 'FEATUREwafQHH3HH', + 'FEATUREwaf10VDFG', + 'FEATUREwafRM5KJ7', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'TemplateName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the protection rule template.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'test221', + ], + ], + [ + 'name' => 'TemplateType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the protection rule template. Valid values:'."\n" + ."\n" + .'* **user_default:** default template.'."\n" + .'* **user_custom:** custom template.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'user_default', + ], + ], + [ + 'name' => 'TemplateStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the protection rule template. Valid values:'."\n" + ."\n" + .'* **0:** disabled.'."\n" + .'* **1:** enabled.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'DefenseScene', + 'in' => 'query', + 'schema' => [ + 'description' => 'The scenario in which you want to use the protection rule template. For more information, see the description of the **DefenseScene** parameter in the [CreateDefenseRule](~~CreateDefenseRule~~) topic.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_group', + ], + ], + [ + 'name' => 'TemplateOrigin', + 'in' => 'query', + 'schema' => [ + 'description' => 'The origin of the protection rule template that you want to create. Set the value to **custom**. The value specifies that the protection rule template is a custom template.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'custom', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the protection rule template.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Test'."\n", + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'UnbindResources', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'string', + ], + 'maxItems' => 200, + ], + ], + [ + 'name' => 'UnbindResourceGroups', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'string', + ], + 'maxItems' => 200, + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'F48ABDF7-D777-5F26-892A-57349765D7A9', + ], + 'TemplateId' => [ + 'description' => 'The ID of the protection rule template.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2212', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F48ABDF7-D777-5F26-892A-57349765D7A9\\",\\n \\"TemplateId\\": 2212\\n}","type":"json"}]', + 'title' => 'CreateDefenseTemplate', + ], + 'ModifyDefenseTemplate' => [ + 'summary' => 'Modifies the configurations of a protection rule template.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '112175', + 'abilityTreeNodes' => [ + 'FEATUREwaf10VDFG', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'TemplateName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the protection rule template whose configurations you want to modify.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'test', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protection rule template whose configurations you want to modify.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '7392', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the protection rule template whose configurations you want to modify.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '1A68C85D-7467-5BB1-9A7E-2E8A5D96D88A', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"1A68C85D-7467-5BB1-9A7E-2E8A5D96D88A\\"\\n}","type":"json"}]', + 'title' => 'ModifyDefenseTemplate', + ], + 'ModifyDefenseTemplateStatus' => [ + 'summary' => 'Changes the status of a protection rule template.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106371', + 'abilityTreeNodes' => [ + 'FEATUREwaf10VDFG', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protection rule template whose status you want to change.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '2249', + ], + ], + [ + 'name' => 'TemplateStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new status of the protection rule template. Valid values:'."\n" + ."\n" + .'* **0:** disabled.'."\n" + .'* **1:** enabled.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '58007AE3-65D9-57BA-ABB4-1A544015FB50', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"58007AE3-65D9-57BA-ABB4-1A544015FB50\\"\\n}","type":"json"}]', + 'title' => 'ModifyDefenseTemplateStatus', + ], + 'CopyDefenseTemplate' => [ + 'summary' => 'Creates a new protection template from the copy.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-lbj****x10g', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protection template that you want to copy.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '12345', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19****5EB0', + ], + 'TemplateId' => [ + 'description' => 'The ID of the new protection template.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '12346', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19****5EB0\\",\\n \\"TemplateId\\": 12346\\n}","type":"json"}]', + 'title' => 'CopyDefenseTemplate', + ], + 'DeleteDefenseTemplate' => [ + 'summary' => 'Deletes a protection rule template.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106372', + 'abilityTreeNodes' => [ + 'FEATUREwaf10VDFG', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protection rule template that you want to delete.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '3155', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'E2DE6F11-6FED-5909-95F2-2520B58C5BC7', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"E2DE6F11-6FED-5909-95F2-2520B58C5BC7\\"\\n}","type":"json"}]', + 'title' => 'DeleteDefenseTemplate', + ], + 'DescribeDefenseTemplate' => [ + 'summary' => 'Queries a protection rule template.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106373', + 'abilityTreeNodes' => [ + 'FEATUREwaf10VDFG', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protection rule template.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1333', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: Outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D5EB0', + ], + 'Template' => [ + 'description' => 'The information about the template.'."\n", + 'type' => 'object', + 'properties' => [ + 'Description' => [ + 'description' => 'The description of the protection rule template.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'TemplateOrigin' => [ + 'description' => 'The origin of the protection rule template. If the value of this parameter is custom, the protection rule template is created by the user.'."\n", + 'type' => 'string', + 'example' => 'custom', + ], + 'DefenseSubScene' => [ + 'description' => 'The sub-scenario in which the template is used. Valid values:'."\n" + ."\n" + .'* **web**: The template is a bot management template that is used for website protection.'."\n" + .'* **app**: The template is a bot management template that is used for app protection.'."\n" + .'* **basic**: The template is a bot management template that is used for basic protection.'."\n", + 'type' => 'string', + 'example' => 'app', + ], + 'DefenseScene' => [ + 'description' => 'The scenario in which the template is used. For more information, see the description of the **DefenseScene** parameter in the [CreateDefenseRule](~~CreateDefenseRule~~) topic.'."\n", + 'type' => 'string', + 'example' => 'waf_group', + ], + 'GmtModified' => [ + 'description' => 'The most recent time when the protection rule template was modified.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1665283642000', + ], + 'TemplateName' => [ + 'description' => 'The name of the protection rule template.'."\n", + 'type' => 'string', + 'example' => 'test0621', + ], + 'TemplateType' => [ + 'description' => 'The type of the protection rule template. Valid values:'."\n" + ."\n" + .'* **user_default:** default template.'."\n" + .'* **user_custom:** custom template.'."\n", + 'type' => 'string', + 'example' => 'user_default', + ], + 'TemplateId' => [ + 'description' => 'The ID of the protection rule template.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10097', + ], + 'TemplateStatus' => [ + 'description' => 'The status of the protection rule template. Valid values:'."\n" + ."\n" + .'* **0:** disabled.'."\n" + .'* **1:** enabled.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\",\\n \\"Template\\": {\\n \\"Description\\": \\"test\\",\\n \\"TemplateOrigin\\": \\"custom\\",\\n \\"DefenseSubScene\\": \\"app\\",\\n \\"DefenseScene\\": \\"waf_group\\",\\n \\"GmtModified\\": 1665283642000,\\n \\"TemplateName\\": \\"test0621\\",\\n \\"TemplateType\\": \\"user_default\\",\\n \\"TemplateId\\": 10097,\\n \\"TemplateStatus\\": 1\\n }\\n}","type":"json"}]', + 'title' => 'DescribeDefenseTemplate', + ], + 'DescribeDefenseTemplates' => [ + 'summary' => 'Performs a paging query to retrieve protection templates.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106374', + 'abilityTreeNodes' => [ + 'FEATUREwaf1LM6V0', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'TemplateIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IDs of the protection templates that you want to query. Separate multiple template IDs with commas (,).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '189731,189539,189538,189531,189540,189542,189541', + ], + ], + [ + 'name' => 'TemplateName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the protection template.', + 'type' => 'string', + 'required' => false, + 'example' => 'testTemplateName', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-pe33b****03', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protection template.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '12345', + ], + ], + [ + 'name' => 'TemplateType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the protection template. Valid values:'."\n" + ."\n" + .'* **user_default**: default template.'."\n" + .'* **user_custom**: custom template.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'user_default', + ], + ], + [ + 'name' => 'DefenseScene', + 'in' => 'query', + 'schema' => [ + 'description' => 'The scenario in which the protection template is used.'."\n" + ."\n" + .'* **waf_group**: basic protection.'."\n" + .'* **antiscan**: scan protection.'."\n" + .'* **ip_blacklist**: IP address blacklist.'."\n" + .'* **custom_acl**: custom rule.'."\n" + .'* **whitelist**: whitelist.'."\n" + .'* **region_block**: region blacklist.'."\n" + .'* **custom_response**: custom response.'."\n" + .'* **cc**: HTTP flood protection.'."\n" + .'* **tamperproof**: website tamper-proofing.'."\n" + .'* **dlp**: data leakage prevention.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'region_block', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the protected object or protected object group.'."\n" + ."\n" + .'> If you specify ResourceType, you must specify this parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'xxxqiu.cc-ecs', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the protected resource. Valid values:'."\n" + ."\n" + .'* **single**: protected object. This is the default value.'."\n" + .'* **group**: protected object group.'."\n" + ."\n" + .'> If you specify Resource, you must specify this parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'single', + 'enum' => [ + 'single', + 'group', + 'asset', + ], + ], + ], + [ + 'name' => 'DefenseSubScene', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sub-scenario in which the protection template is used. Valid values:'."\n" + ."\n" + .'* **web**: bot management for website protection.'."\n" + .'* **app**: bot management for app protection.'."\n" + .'* **basic**: bot management for basic protection.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'basic', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **20**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + 'default' => '20', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfmvyknl****fa', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '4F26D2F1-E288-5104-8518-05E240E3****', + ], + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '100', + ], + 'Templates' => [ + 'description' => 'The protection templates.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'DefenseScene' => [ + 'description' => 'The scenario in which the protection template is used.'."\n" + ."\n" + .'* **waf_group**: basic protection.'."\n" + .'* **antiscan**: scan protection.'."\n" + .'* **ip_blacklist**: IP address blacklist.'."\n" + .'* **custom_acl**: custom rule.'."\n" + .'* **whitelist**: whitelist.'."\n" + .'* **region_block**: region blacklist.'."\n" + .'* **custom_response**: custom response.'."\n" + .'* **cc**: HTTP flood protection.'."\n" + .'* **tamperproof**: website tamper-proofing.'."\n" + .'* **dlp**: data leakage prevention.'."\n", + 'type' => 'string', + 'example' => 'whitelist', + ], + 'GmtModified' => [ + 'description' => 'The time when the protection template was created. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1683776070000', + ], + 'TemplateId' => [ + 'description' => 'The ID of the protection template.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '12345', + ], + 'TemplateName' => [ + 'description' => 'The name of the protection template.'."\n", + 'type' => 'string', + 'example' => 'testTemplateName', + ], + 'TemplateOrigin' => [ + 'description' => 'The origin of the protection template. The value custom indicates that the protection template is a custom template created by the user.'."\n", + 'type' => 'string', + 'example' => 'custom', + ], + 'TemplateStatus' => [ + 'description' => 'The status of the protection template. Valid values:'."\n" + ."\n" + .'* **0**: disabled.'."\n" + .'* **1**: enabled.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'TemplateType' => [ + 'description' => 'The type of the protection template. Valid values:'."\n" + ."\n" + .'* **user_default**: default template.'."\n" + .'* **user_custom**: custom template.'."\n", + 'type' => 'string', + 'example' => 'user_custom', + ], + 'DefenseSubScene' => [ + 'description' => 'The sub-scenario in which the protection template is used. Valid values:'."\n" + ."\n" + .'* **web**: bot management for website protection.'."\n" + .'* **app**: bot management for app protection.'."\n" + .'* **basic**: bot management for basic protection.'."\n", + 'type' => 'string', + 'example' => 'basic', + ], + 'Description' => [ + 'description' => 'The description of the protection template.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4F26D2F1-E288-5104-8518-05E240E337A4\\",\\n \\"TotalCount\\": 100,\\n \\"Templates\\": [\\n {\\n \\"DefenseScene\\": \\"whitelist\\",\\n \\"GmtModified\\": 1683776070000,\\n \\"TemplateId\\": 56477,\\n \\"TemplateName\\": \\"template-blockarea1\\",\\n \\"TemplateOrigin\\": \\"custom\\",\\n \\"TemplateStatus\\": 1,\\n \\"TemplateType\\": \\"user_custom\\",\\n \\"DefenseSubScene\\": \\"basic\\",\\n \\"Description\\": \\"示例防护模板。\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeDefenseTemplates', + ], + 'ModifyTemplateResources' => [ + 'summary' => 'Associates or disassociates a protected object or protected object group with or from a protection rule template.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106377', + 'abilityTreeNodes' => [ + 'FEATUREwaf10VDFG', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protection rule template.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '2291', + ], + ], + [ + 'name' => 'BindResources', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The protected objects that you want to associate with the template. Specify the value in the \\[**"XX1","XX2",...**] format.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The protected object that you want to associate with the template.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'abc', + ], + 'required' => false, + 'maxItems' => 200, + ], + ], + [ + 'name' => 'BindResourceGroups', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The protected object groups that you want to associate with the template. Specify the value in the \\[**"group1","group2",...**] format.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The protected object group that you want to associate with the template.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'group1', + ], + 'required' => false, + 'maxItems' => 200, + ], + ], + [ + 'name' => 'UnbindResources', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The protected objects that you want to disassociate from the template. Specify the value in the \\[**"XX1","XX2",...**] format.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The protected object that you want to disassociate from the template.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'abc', + ], + 'required' => false, + 'maxItems' => 200, + ], + ], + [ + 'name' => 'UnbindResourceGroups', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => 'The protected object groups that you want to disassociate from the template. Specify the value in the \\[**"group1","group2",...**] format.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The protected object group that you want to disassociate from the template.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'group1', + ], + 'required' => false, + 'maxItems' => 200, + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'BindAssets', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'title' => '绑定的防护资产ID,使用["XX1","XX2",……]格式。', + 'type' => 'array', + 'items' => [ + 'title' => '绑定的资产ID。', + 'type' => 'string', + 'example' => '6a266967ebe50041*****0438af3f3519', + ], + 'maxItems' => 200, + ], + ], + [ + 'name' => 'UnbindAssets', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'title' => '解除绑定的防护资产ID,使用["XX1","XX2",……]格式。', + 'type' => 'array', + 'items' => [ + 'title' => '解除绑定的防护资产ID。', + 'type' => 'string', + 'example' => '6a26696*****4193670438af3f3519', + ], + 'maxItems' => 200, + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'CF708F2F-FFB0-54D4-B1E0-B84A7CEBFB60', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"CF708F2F-FFB0-54D4-B1E0-B84A7CEB****\\"\\n}","type":"json"}]', + 'title' => 'ModifyTemplateResources', + ], + 'DescribeTemplateResources' => [ + 'summary' => 'Queries the resources that are associated to a protection rule template.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwaf10VDFG', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protection rule template.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1020', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the protected resource. Valid values:'."\n" + ."\n" + .'* **single:** protected object.'."\n" + .'* **group:** protected object group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'single', + 'enum' => [ + 'single', + 'group', + 'asset', + ], + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'type' => 'integer', + 'format' => 'int32', + 'maximum' => '500', + 'minimum' => '1', + 'default' => '500', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + [ + 'name' => 'AssetApi', + 'in' => 'query', + 'schema' => [ + 'title' => '要模糊查询的防护资产API。', + 'type' => 'string', + 'example' => 'abc.com', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'C7BC9373-3960-53B0-8968-2B13454AE18F', + ], + 'Resources' => [ + 'description' => 'An array of protected objects or protected object groups that are associated to the protection rule template.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The name of the protected object or protected object group.'."\n", + 'type' => 'string', + 'example' => 'alb-wewbb23dfset***', + ], + ], + 'TotalCount' => [ + 'type' => 'integer', + 'format' => 'int32', + ], + 'NextToken' => [ + 'type' => 'string', + ], + 'MaxResults' => [ + 'type' => 'integer', + 'format' => 'int32', + ], + 'TemplateId' => [ + 'type' => 'integer', + 'format' => 'int64', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Defense.Control.DefenseTemplateNotExist', + 'errorMessage' => 'The protection template does not exist.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C7BC9373-3960-53B0-8968-2B13454AE18F\\",\\n \\"Resources\\": [\\n \\"alb-wewbb23dfset***\\"\\n ],\\n \\"TotalCount\\": 25,\\n \\"NextToken\\": \\"AAAAABLQv******37sHZaHk4=\\",\\n \\"MaxResults\\": 20,\\n \\"TemplateId\\": 168465\\n}","type":"json"}]', + 'title' => 'DescribeTemplateResources', + ], + 'DescribeTemplateResourceCount' => [ + 'summary' => 'Queries the number of protected resources for which a protection template takes effect.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafNZKQ0J', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-lbj****gx08', + ], + ], + [ + 'name' => 'TemplateIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IDs of the protection templates that you want to query. Separate multiple template IDs with commas (,).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '12345,12346', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aekzwwkpn****5i', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'B8064433-9781-5E86-806E-C1DD****1D95', + ], + 'ResourceCount' => [ + 'description' => 'The number of protected objects or protected object groups for which the protection template takes effect.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'SingleCount' => [ + 'description' => 'The number of protected objects.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '30', + ], + 'GroupCount' => [ + 'description' => 'The number of protected object groups.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '30', + ], + 'TemplateId' => [ + 'description' => 'The ID of the protection template.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '12345', + ], + 'AssetCount' => [ + 'title' => '防护资产个数。', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '10', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"B8064433-9781-5E86-806E-C1DD****1D95\\",\\n \\"ResourceCount\\": [\\n {\\n \\"SingleCount\\": 30,\\n \\"GroupCount\\": 30,\\n \\"TemplateId\\": 12345,\\n \\"AssetCount\\": 10\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeTemplateResourceCount', + ], + 'DescribeDefenseTemplateValidResources' => [ + 'summary' => '分页查询可以被自定义模板绑定的防护对象列表', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106347', + 'abilityTreeNodes' => [ + 'FEATUREwaf10VDFG', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-27a3jyw0v04', + ], + ], + [ + 'name' => 'DefenseScene', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'whitelist', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'mgw.realperson.antdigital.com', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '2', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + 'default' => '20', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '21202', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm2thcppfv6ay', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '34', + ], + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'C54DD36B-6380-57E5-89BA-2642757C4DB8', + ], + 'Resources' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'showerroom.taikooliqiantan.com-waf', + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 34,\\n \\"RequestId\\": \\"C54DD36B-6380-57E5-89BA-2642757C4DB8\\",\\n \\"Resources\\": [\\n \\"showerroom.taikooliqiantan.com-waf\\"\\n ]\\n}","type":"json"}]', + ], + 'DescribeDefenseTemplateValidGroups' => [ + 'summary' => 'Queries the names of protected object groups for which a protection template can take effect.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwaf10VDFG', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-nwy****pf0e', + ], + ], + [ + 'name' => 'GroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the protected object group that you want to query.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'group221', + ], + ], + [ + 'name' => 'DefenseScene', + 'in' => 'query', + 'schema' => [ + 'description' => 'The scenario in which the protection template is used.'."\n" + ."\n" + .'* **waf_group**: basic protection.'."\n" + .'* **antiscan**: scan protection.'."\n" + .'* **ip_blacklist**: IP address blacklist.'."\n" + .'* **custom_acl**: custom rule.'."\n" + .'* **whitelist**: whitelist.'."\n" + .'* **region_block**: region blacklist.'."\n" + .'* **custom_response**: custom response.'."\n" + .'* **cc**: HTTP flood protection.'."\n" + .'* **tamperproof**: website tamper-proofing.'."\n" + .'* **dlp**: data leakage prevention.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'region_block', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **20**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protection template.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '12345', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm2th****v6ay', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '27', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '6EA4B39A-9C0C-5E57-993E-30B6****3AD0', + ], + 'Groups' => [ + 'description' => 'The names of the protected object groups.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The name of the protected object group.'."\n", + 'type' => 'string', + 'example' => 'group_example', + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 27,\\n \\"RequestId\\": \\"6EA4B39A-9C0C-5E57-993E-30B6****3AD0\\",\\n \\"Groups\\": [\\n \\"group_example\\"\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeDefenseTemplateValidGroups', + ], + 'DescribeDefenseResourceTemplates' => [ + 'summary' => 'Queries the protection templates that are associated with a protected object or protected object group.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106375', + 'abilityTreeNodes' => [ + 'FEATUREwafNZKQ0J', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-9lb36****0e', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the protected object or protected object group that you want to query.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'xxxxxhemicals.cn-waf', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the protected resource. Valid values:'."\n" + ."\n" + .'* **single**: protected object. This is the default value.'."\n" + .'* **group**: protected object group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'single', + 'enum' => [ + 'single', + 'group', + 'asset', + ], + ], + ], + [ + 'name' => 'RuleType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the protection rule. Valid values:'."\n" + ."\n" + .'* **defense**: defense rule. This is the default value.'."\n" + .'* **whitelist**: whitelist rule.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'whitelist', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protection rule.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '20111098', + ], + ], + [ + 'name' => 'RuleName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the rule.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'demoRuleName', + ], + ], + [ + 'name' => 'TemplateName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the protection rule template.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test221', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aek2ax2y5****pi', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '2305CEB0-BA5A-5543-A1D3-3F1D0891****', + ], + 'Templates' => [ + 'description' => 'The protection templates.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Description' => [ + 'description' => 'The description of the protection template.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'TemplateOrigin' => [ + 'description' => 'The origin of the protection template. The value custom indicates that the template is a custom template created by the user.'."\n", + 'type' => 'string', + 'example' => 'custom', + ], + 'DefenseSubScene' => [ + 'description' => 'The sub-scenario in which the template is used. Valid values:'."\n" + ."\n" + .'* **web**: bot management for website protection.'."\n" + .'* **app**: bot management for app protection.'."\n" + .'* **basic**: bot management for basic protection.'."\n", + 'type' => 'string', + 'example' => 'basic', + ], + 'DefenseScene' => [ + 'description' => 'The scenario in which the protection template is used.'."\n" + ."\n" + .'* **waf_group**: basic protection.'."\n" + .'* **antiscan**: scan protection.'."\n" + .'* **ip_blacklist**: IP address blacklist.'."\n" + .'* **custom_acl**: custom rule.'."\n" + .'* **whitelist**: whitelist.'."\n" + .'* **region_block**: region blacklist.'."\n" + .'* **custom_response**: custom response.'."\n" + .'* **cc**: HTTP flood protection.'."\n" + .'* **tamperproof**: website tamper-proofing.'."\n" + .'* **dlp**: data leakage prevention.'."\n", + 'type' => 'string', + 'example' => 'whitelist', + ], + 'GmtModified' => [ + 'description' => 'The time when the protection template was created. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1692930539000', + ], + 'TemplateName' => [ + 'description' => 'The name of the protection template.'."\n", + 'type' => 'string', + 'example' => 'TestTemplateName', + ], + 'TemplateType' => [ + 'description' => 'The type of the protection template. Valid values:'."\n" + ."\n" + .'* **user_default**: default template.'."\n" + .'* **user_custom**: custom template.'."\n", + 'type' => 'string', + 'example' => 'user_custom', + ], + 'TemplateId' => [ + 'description' => 'The ID of the protection template.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '12345', + ], + 'TemplateStatus' => [ + 'description' => 'The status of the protection template. Valid values:'."\n" + ."\n" + .'* **0**: disabled.'."\n" + .'* **1**: enabled.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2305CEB0-BA5A-5543-A1D3-3F1D08911B1C\\",\\n \\"Templates\\": [\\n {\\n \\"Description\\": \\"示例防护模板\\",\\n \\"TemplateOrigin\\": \\"custom\\",\\n \\"DefenseSubScene\\": \\"basic\\",\\n \\"DefenseScene\\": \\"whitelist\\",\\n \\"GmtModified\\": 1692930539000,\\n \\"TemplateName\\": \\"WAF扫描防护\\",\\n \\"TemplateType\\": \\"user_custom\\",\\n \\"TemplateId\\": 34328,\\n \\"TemplateStatus\\": 1\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeDefenseResourceTemplates', + ], + 'CreateDefenseRule' => [ + 'summary' => 'Creates a protection rule.', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106379', + 'abilityTreeNodes' => [ + 'FEATUREwaf1LM6V0', + 'FEATUREwafI1HM4C', + 'FEATUREwafCU29M8', + 'FEATUREwafBWO4L0', + 'FEATUREwaf9JXZCD', + 'FEATUREwaf6XNOII', + 'FEATUREwafQ73SIK', + 'FEATUREwafAFURH8', + 'FEATUREwafS64FX9', + 'FEATUREwafOVI09M', + 'FEATUREwafIFHX6M', + 'FEATUREwafF105ZO', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-****', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the rule template for which you want to create a protection rule.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1122', + ], + ], + [ + 'name' => 'DefenseScene', + 'in' => 'query', + 'schema' => [ + 'description' => 'The module to which the protection rule that you want to create belongs.'."\n" + ."\n" + .'* **waf_group:** the basic protection rule module.'."\n" + .'* **antiscan:** the scan protection module.'."\n" + .'* **ip_blacklist:** the IP address blacklist module.'."\n" + .'* **custom_acl:** the custom rule module.'."\n" + .'* **whitelist:** the whitelist module.'."\n" + .'* **region_block:** the region blacklist module.'."\n" + .'* **custom_response:** the custom response module.'."\n" + .'* **cc:** the HTTP flood protection module.'."\n" + .'* **tamperproof:** the website tamper-proofing module.'."\n" + .'* **dlp:** the data leakage prevention module.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_group', + ], + ], + [ + 'name' => 'Rules', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The configurations of the protection rule. The value is a JSON string that contains multiple parameters.'."\n" + ."\n" + .'> The parameters vary based on the **protection module**, which is specified by **DefenseScene**. For more information, see the "**Parameters of protection rules**" section in this topic.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'For more information, see the following section'."\n", + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'DefenseType', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'default' => 'template', + 'enum' => [ + 'template', + 'global', + 'resource', + ], + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned data.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '26E46541-7AAB-5565-801D-F14DBDC5F186', + ], + 'RuleIds' => [ + 'description' => 'The IDs of the protection rules. Multiple IDs are separated by commas (,).'."\n", + 'type' => 'string', + 'example' => '22215,23354,462165', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Defense.Control.DefenseWhitelistBypassRuleNotExist', + 'errorMessage' => 'The whitelist protection rule does not exist.', + ], + [ + 'errorCode' => 'Defense.Control.DefenseWhitelistConfigInvalid', + 'errorMessage' => 'The whitelist rule is misconfigured.', + ], + [ + 'errorCode' => 'Defense.Control.DefenseBookTypeInvalid', + 'errorMessage' => 'The address book type is illegal.', + ], + [ + 'errorCode' => 'Defense.Control.DefenseThreatIntelligenceConfigInvalid', + 'errorMessage' => 'Threat Intelligence Rule configuration error.', + ], + [ + 'errorCode' => 'Defense.Control.DefenseIpCountOversize', + 'errorMessage' => 'The number of IPs exceeds the limit.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"26E46541-7AAB-5565-801D-F14DBDC5****\\",\\n \\"RuleIds\\": \\"22215,23354,462165\\"\\n}","type":"json"}]', + 'title' => 'CreateDefenseRule', + 'requestParamsDescription' => '## Parameters of protection rules'."\n" + ."\n" + .'### Protection rules of the basic protection rule module (**waf\\_group**)'."\n" + ."\n" + .'#### Parameters'."\n" + ."\n" + .'|Parameter|Type|Required|Example|Description|'."\n" + .'|---|---|---|---|---|'."\n" + .'|status|Integer|Yes|1|The status of the protection rule. When you create a protection rule, you can use this parameter. When you modify a protection rule by calling the [ModifyDefenseRuleStatus](~~ModifyDefenseRuleStatus~~) operation, you must use RuleStatus. Valid values:\\- **0**: disabled.\\- **1** (default): enabled.|'."\n" + .'|action|String|Yes|block|The action that you want WAF to perform on the matched requests. Valid values:\\- **block**: blocks requests that match the protection rule.\\- **monitor**: monitors requests that match the protection rule.|'."\n" + .'|policyId|Long|No|1012|The ID of the protection rule group. Default value: 1012, which specifies the medium rule group.|'."\n" + .'|protectionType|String|No|sema|The type of the protection rule. Valid values:\\- **regular** (default): regular expression-based protection rules.\\- **sema**: semantic-based protection rules.|'."\n" + .'|config|String|No|{"nonInjectionSql":1}|The custom configuration information. The value is a JSON string. For more information, see config description.|'."\n" + ."\n" + .'**config description**'."\n" + ."\n" + .'* If **protectionType** is set to **sema**, specify the following parameter.'."\n" + ."\n" + .'|Parameter|Type|Required|Example|Description|'."\n" + .'|---|---|---|---|---|'."\n" + .'|nonInjectionSql|Integer|Yes|1|The status of non-injection attack detection. Valid values:\\- **0**: disabled.\\- **1** (default): enabled.|'."\n" + ."\n" + .'#### Example'."\n" + ."\n" + .'```json'."\n" + .'{'."\n" + .' "DefenseScene": "waf_group",'."\n" + .' "TemplateId": 322,'."\n" + .' "InstaneId": "waf_cn****",'."\n" + .' "Rules": "[{\\"status\\":1,\\"policyId\\":1012,\\"action\\":\\"block\\"},{\\"status\\":1,\\"action\\":\\"block\\",\\"protectionType\\":\\"sema\\",\\"config\\":\\"{\\\\\\"nonInjectionSql\\\\\\":1}\\"}]"'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'### Protection rules of the scan protection module (**antiscan**)'."\n" + ."\n" + .'#### Parameters'."\n" + ."\n" + .'|Parameter|Type|Required|Example|Description|'."\n" + .'|---|---|---|---|---|'."\n" + .'|protectionType|String|Yes|highfreq|The type of the protection rule. Valid values:\\- **highfreq**: high-frequency scan blocking.\\- **dirscan**: directory traversal blocking.\\- **scantools**: scanner blocking.|'."\n" + .'|status|Integer|Yes|1|The status of the protection rule. When you create a protection rule, you can use this parameter. When you modify a protection rule by calling the [ModifyDefenseRuleStatus](~~ModifyDefenseRuleStatus~~) operation, you must use RuleStatus. Valid values:\\- **0**: disabled.\\- **1** (default): enabled.|'."\n" + .'|action|String|Yes|block|The action that you want WAF to perform on the matched requests. Valid values:\\- **block**: blocks requests that match the protection rule.\\- **monitor**: monitors requests that match the protection rule.|'."\n" + .'|config|String|No|{"target":"remote\\_addr","interval":60,"ttl":180,"count":20}|The custom configuration information. The value is a JSON string. For more information, see **config description**.|'."\n" + ."\n" + .'**config description**'."\n" + ."\n" + .'* If **protectionType** is set to **highfreq**, specify the following parameters.'."\n" + ."\n" + .'|Parameter|Type|Required|Example|Description|'."\n" + .'|---|---|---|---|---|'."\n" + .'|target|String|Yes|remote\\_addr|The type of the statistical object. Valid values:\\- **remote\\_addr** (default): IP addresses.\\- **cookie.acw\\_tc**: sessions.\\- **header**: custom headers. If you use custom headers, you must specify the headers in subkey.\\- **queryarg**: custom parameters. If you use custom parameters, you must specify the parameters in subkey.\\- **cookie**: custom cookies. If you use custom cookies, you must specify the cookies in subkey.|'."\n" + .'|subKey|String|No|abc|The characteristics of the statistical object. This parameter is required only if **target** is set to **cookie**, **header**, or **queryarg**.|'."\n" + .'|interval|Integer|No|60|The detection period. Unit: seconds. Default value: 60.Valid values: 5 to 1800.|'."\n" + .'|ttl|Integer|No|1800|The blocking period. Unit: seconds. Default value: 1800.Valid values: 60 to 86400.|'."\n" + .'|count|Integer|No|20|The maximum number of times that the protection rules of the basic protection rule module can be triggered. Default value: 20.Valid values: 3 to 50000.|'."\n" + .'|ruleIdCount|Integer|No|2|The maximum number of protection rules that can be triggered. Default value: 2.Valid values: 1 to 50.|'."\n" + ."\n" + .'* If **protectionType** is set to **dirscan**, specify the following parameters.'."\n" + ."\n" + .'|Parameter|Type|Required|Example|Description|'."\n" + .'|---|---|---|---|---|'."\n" + .'|target|String|Yes|remote\\_addr|The type of the statistical object. Valid values:\\- **remote\\_addr** (default): IP addresses.\\- **cookie.acw\\_tc**: sessions.\\- **header**: custom headers.\\- **queryarg**: custom parameters.\\- **cookie**: custom cookies.|'."\n" + .'|subKey|String|No|1|The characteristics of the statistical object. This parameter is required only if target is set to **header, queryarg, or cookie**.|'."\n" + .'|interval|Integer|No|60|The detection period. Unit: seconds. Default value: 60.Valid values: 5 to 1800.|'."\n" + .'|ttl|Integer|No|1800|The blocking period. Unit: seconds. Default value: 1800.Valid values: 60 to 86400.|'."\n" + .'|count|Integer|No|20|The maximum number of times that the protection rules of the basic protection rule module can be triggered. Default value: 20.Valid values: 3 to 50000.|'."\n" + .'|weight|Float|No|2|The maximum proportion of 404 status codes allowed. Default value: 0.7.Valid values: 0.01 to 1.0. The value is accurate to two decimal places.|'."\n" + .'|uriNum|Integer|No|2|The maximum number of non-existent directories allowed. Default value: 50.Valid values: 2 to 50000.|'."\n" + ."\n" + .'#### Example'."\n" + ."\n" + .'```json'."\n" + .'{'."\n" + .' "InstanceId": "waf_v2_public_****",'."\n" + .' "TemplateId": 2222,'."\n" + .' "DefenseScene": "antiscan",'."\n" + .' "Rules": "[{\\"protectionType\\":\\"scantools\\",\\"action\\":\\"block\\",\\"status\\":1},{\\"protectionType\\":\\"dirscan\\",\\"status\\":1,\\"action\\":\\"block\\",\\"config\\":\\"{\\\\\\"target\\\\\\":\\\\\\"remote_addr\\\\\\",\\\\\\"interval\\\\\\":10,\\\\\\"ttl\\\\\\":1800,\\\\\\"weight\\\\\\":0.7,\\\\\\"uriNum\\\\\\":50,\\\\\\"count\\\\\\":50}\\"},{\\"protectionType\\":\\"highfreq\\",\\"status\\":1,\\"action\\":\\"block\\",\\"config\\":\\"{\\\\\\"target\\\\\\":\\\\\\"remote_addr\\\\\\",\\\\\\"interval\\\\\\":60,\\\\\\"ttl\\\\\\":1800,\\\\\\"count\\\\\\":20,\\\\\\"ruleIdCount\\\\\\":2}\\"}]"'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'### Protection rules of the IP address blacklist module (**ip\\_blacklist**)'."\n" + ."\n" + .'#### Parameters'."\n" + ."\n" + .'|Parameter|Type|Required|Example|Description|'."\n" + .'|---|---|---|---|---|'."\n" + .'|name|String|Yes|iptest|The name of the protection rule.|'."\n" + .'|status|Integer|Yes|1|The status of the protection rule. When you create a protection rule, you can use this parameter. When you modify a protection rule by calling the [ModifyDefenseRuleStatus](~~ModifyDefenseRuleStatus~~) operation, you must use RuleStatus. Valid values:\\- **0**: disabled.\\- **1** (default): enabled.|'."\n" + .'|action|String|Yes|block|The action that you want WAF to perform on the matched requests. Valid values:\\- **block**: blocks requests that match the protection rule.\\- **monitor**: monitors requests that match the protection rule.|'."\n" + .'|remoteAddr|Array|Yes|\\["1.1.XX.XX", "3.1.XX.XX/24"\\]|The IP addresses that you want to add to the blacklist. The value is in the \\["ip1","ip2",...\\] format.|'."\n" + ."\n" + .'#### Example'."\n" + ."\n" + .'```json'."\n" + .'{'."\n" + .' "InstanceId": "waf_v2_public_****",'."\n" + .' "TemplateId": 2222,'."\n" + .' "DefenseScene": "ip_blacklist",'."\n" + .' "Rules": "[{\\"name\\":\\"iptest1\\",\\"remoteAddr\\":[\\"1.1.1.2\\",\\"3.3.3.3/24\\"],\\"action\\":\\"monitor\\",\\"status\\":1},{\\"name\\":\\"iptest2\\",\\"remoteAddr\\":[\\"4.4.4.4\\",\\"5.5.5.5/32\\"],\\"action\\":\\"block\\",\\"status\\":1}]"'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'### Protection rules of the custom rule module (**custom\\_acl**)'."\n" + ."\n" + .'#### Parameters'."\n" + ."\n" + .'|Parameter|Type|Required|Example|Description|'."\n" + .'|---|---|---|---|---|'."\n" + .'|name|String|Yes|iptest|The name of the protection rule. You can specify a custom name.|'."\n" + .'|status|Integer|Yes|1|The status of the protection rule. When you create a protection rule, you can use this parameter. When you modify a protection rule by calling the [ModifyDefenseRuleStatus](~~ModifyDefenseRuleStatus~~) operation, you must use RuleStatus. Valid values:\\- **0**: disabled.\\- **1** (default): enabled.|'."\n" + .'|action|String|Yes|block|The action that you want WAF to perform on the matched requests. Valid values:\\- **block**: blocks requests that match the protection rule.\\- **monitor**: monitors requests that match the protection rule.\\- **js**: performs JavaScript verification on requests that match the protection rule.\\- **captcha**: performs slider CAPTCHA verification on requests that match the protection rule.\\- **captcha\\_strict**: performs strict CAPTCHA verification on requests that match the protection rule.**Note** For more information about the actions that are supported for the protection rules of the custom rule module, log on to the **WAF console**.|'."\n" + .'|conditions|Array|Yes|\\[{"key":"IP","opValue":"eq","values":"11.XX.XX.1"},{"key":"Header","subKey":"abc","opValue":"contains","values":"test"}\\]|The traffic characteristics of the protection rule. The value is a JSON string. You can configure up to five conditions in a protection rule. For more information, see **conditions description**.|'."\n" + .'|ccStatus|Integer|Yes|1|Specifies whether to enable the rate limiting feature. Valid values:\\- **0**: no.\\- **1**: yes.|'."\n" + .'|ratelimit|JSON|No|{"target":"remote\\_addr","interval":5,"threshold":2,"ttl":1800,"status":{"code":404,"count":2}}|The configuration information of the rate limiting feature. The value is a JSON string. This parameter is required only if ccStatus is set to **1**. For more information, see **ratelimit description**.|'."\n" + .'|effect|String|No|rule|The effective scope of the rate limiting feature. This parameter is required only if ccStatus is set to **1**. Valid values:\\- **service**: The rate limiting feature takes effect for all protected objects.\\- **rule**: The rate limiting feature takes effect for the current protection rule.|'."\n" + ."\n" + .'**conditions description**'."\n" + ."\n" + .'|Parameter|Type|Required|Example|Description|'."\n" + .'|---|---|---|---|---|'."\n" + .'|key|String|Yes|IP|The match field. Valid values: URL, URLPath, IP, Referer, User-Agent, Params, Cookie, Content-Type, Content-Length, X-Forwarded-For, Post-Body, Http-Method, and Header.|'."\n" + .'|subKey|String|No|abc|The child match field.**Note** Not every match field (**key**) of a protection rule contains a child match field (**subKey**). For more information about the child match fields that are supported by each match field, log on to the **WAF console**.|'."\n" + .'|opValue|String|Yes|contain|The logical operator. Valid values:\\- **not-contain**: does not contain.\\- **contain**: contains.\\- **none**: does not exist.\\- **ne**: not equal to.\\- **eq**: equal to.\\- **lt**: value less than.\\- **gt**: value greater than.\\- **len-lt**: length less than.\\- **len-eq**: length equal to.\\- **len-gt**: length greater than.\\-**not-match**: does not match.\\- **match-one**: equal to one of multiple values.\\- **all-not-match**: not equal to any value.\\- **all-not-contain**: does not contain any value.\\- **contain-one**: contains one of multiple values.\\-**not-regex**: does not match regular expressions.\\- **regex**: matches regular expressions.\\- **all-not-regex**: does not match any regular expression.\\- **regex-one**: matches one of multiple regular expressions.\\- **prefix-match**: matches by prefix.\\- **suffix-match**: matches by suffix.\\- **empty**: empty content.\\- **exists**: exists.\\- **inl**: exists in a list.**Note** When you create a protection rule, the valid values of **opValue** vary based on the value of **key**. For more information about the logical operators that are supported by each match field, log on to the **WAF console**.|'."\n" + .'|values|String|Yes|abc|The match content.**Note** The valid values of **opValue** and **values** in a match condition vary based on the value of **key**.|'."\n" + ."\n" + .'**ratelimit description**'."\n" + ."\n" + .'|Parameter|Type|Required|Example|Description|'."\n" + .'|---|---|---|---|---|'."\n" + .'|target|String|Yes|remote\\_addr|The type of the statistical object. Valid values:\\- **remote\\_addr** (default): IP addresses.\\- **cookie.acw\\_tc**: sessions.\\- **header**: custom headers. If you use custom headers, you must specify the headers in subkey.\\- **queryarg**: custom parameters. If you use custom parameters, you must specify the parameters in subkey.\\- **cookie**: custom cookies. If you use custom cookies, you must specify the cookies in subkey.|'."\n" + .'|subKey|String|No|abc|The characteristics of the statistical object. This parameter is required only if **target** is set to **cookie**, **header**, or **queryarg**.|'."\n" + .'|interval|Integer|Yes|60|The statistical period. Unit: seconds. This parameter specifies the interval at which the number of requests is counted. If you specify this parameter, you must also specify **threshold**.Valid values: 5 to 1800.|'."\n" + .'|threshold|Integer|Yes|200|The maximum number of requests that can be sent from the statistical object within the statistical period.|'."\n" + .'|ttl|Integer|Yes|1800|The validity period of the protection action. Unit: seconds.Valid values: 60 to 86400.|'."\n" + .'|status|JSON|No|{"code":404,"count":200}|The frequency of an HTTP status code. The value is a JSON string that contains the following parameters:**code**: the HTTP status code. This parameter is required. Data type: integer.**count**: the maximum number of times that the HTTP status code can be returned. If the actual number is greater than the value, the protection rule is matched. This parameter is optional. Data type: integer. Valid values: 2 to 50000. You can specify count or ratio. You cannot specify the two parameters at the same time.**ratio**: the maximum percentage of times that the HTTP status code can be returned. If the actual percentage is greater than the value, the protection rule is matched. This parameter is optional. Data type: integer. Valid values: 1 to 100. You can specify count or ratio. You cannot specify the two parameters at the same time.|'."\n" + ."\n" + .'#### Example'."\n" + ."\n" + .'```json'."\n" + .'{'."\n" + .' "InstanceId": "waf_v2_public_****",'."\n" + .' "TemplateId": 6242,'."\n" + .' "DefenseScene": "custom_acl",'."\n" + .' "Rules":"[{\\"name\\":\\"acl_test\\",\\"action\\":\\"block\\",\\"conditions\\":[{\\"key\\":\\"URL\\",\\"opValue\\":\\"contain\\",\\"values\\":\\"abc\\"}],\\"ratelimit\\":{\\"target\\":\\"remote_addr\\",\\"interval\\":5,\\"threshold\\":2,\\"ttl\\":1800,\\"status\\":{\\"code\\":404,\\"count\\":2}},\\"ccStatus\\":1,\\"effect\\":\\"rule\\",\\"status\\":1,\\"origin\\":\\"custom\\"}]"'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'### Protection rules of the whitelist module (**whitelist**)'."\n" + ."\n" + .'#### Parameters'."\n" + ."\n" + .'|Parameter|Type|Required|Example|Description|'."\n" + .'|---|---|---|---|---|'."\n" + .'|name|String|Yes|whitelistTest|The name of the protection rule.|'."\n" + .'|status|Integer|Yes|1|The status of the protection rule. When you create a protection rule, you can use this parameter. When you modify a protection rule by calling the [ModifyDefenseRuleStatus](~~ModifyDefenseRuleStatus~~) operation, you must use RuleStatus. Valid values:\\- **0**: disabled.\\- **1** (default): enabled.|'."\n" + .'|conditions|Array|Yes|\\[{"key":"IP","opValue":"eq","values":"11.XX.XX.1"},{"key":"Header","subKey":"abc","opValue":"contains","values":"test"}\\]|The traffic characteristics of the protection rule. The value is a JSON string. You can configure up to five conditions in a protection rule. For more information, see **conditions description**.|'."\n" + .'|tags|Array|Yes|\\["waf", "regular"\\]|The protection modules for which you want the protection rule to take effect. The value is in the \\["**XX1**", "**XX2**",...\\] format. Valid values:\\- **waf**: all modules.\\- **customrule**: the custom rule module.\\- **blacklist**: the IP address blacklist module.\\- **antiscan**: the scan protection module.\\- **regular**: the basic protection rule module.\\- **regular\\_rule**: the specific regular expression-based protection rules of the basic protection rule module.\\- **regular\\_type**: the specific types of regular expression-based protection rules of the basic protection rule module.\\- **major\\_protection**: the major event protection module.\\- **cc**: the HTTP flood protection module.\\- **region\\_block**: the region blacklist module.\\- **antibot\\_scene**: the bot management module.\\- **dlp**: the data leakage prevention module.\\- **tamperproof**: the website tamper-proofing module.|'."\n" + .'|regularRules|Array|No|\\[ "111111", "222222" \\]|The IDs of the regular expression-based protection rules that you want requests to bypass. The value is in the \\["**XX1**", "**XX2**",...\\] format. This parameter is required only if **tags** is set to **regular\\_rule**.|'."\n" + .'|regularTypes|Array|No|\\[ "xss", "css" \\]|The types of the regular expression-based protection rules that you want requests to bypass. The value is in the \\["**XX1**", "**XX2**",...\\] format. This parameter is required only if **tags** is set to **regular\\_type**. Valid values:\\- **sqli**: SQL injection.\\- **xss**: cross-site scripting (XSS) attack.\\- **code\\_exec**: code execution.\\- **crlf**: carriage return line feed (CRLF) injection.\\- **lfilei**: local file inclusion.\\- **rfilei**: remote file inclusion.\\- **webshell**: webshell.\\- **csrf**: cross-site request forgery (CSRF).\\- **other**: other.|'."\n" + ."\n" + .'**conditions description**'."\n" + ."\n" + .'|Parameter|Type|Required|Example|Description|'."\n" + .'|---|---|---|---|---|'."\n" + .'|key|String|Yes|IP|The match field. Valid values: **URL**, **URLPath**, **IP**, **Referer**, **User-Agent**, **Params**, **Cookie**, **Content-Type**, **Content-Length**, **X-Forwarded-For**, **Post-Body**, **Http-Method**, and **Header**.|'."\n" + .'|subKey|String|No|abc|The child match field.**Note** Not every match field (**key**) of a protection rule contains a child match field (**subKey**). For more information about the child match fields that are supported by each match field, log on to the **WAF console**.|'."\n" + .'|opValue|String|Yes|contain|The logical operator. Valid values:\\- **not-contain**: does not contain.\\- **contain**: contains.\\- **none**: does not exist.\\- **ne**: not equal to.\\- **eq**: equal to.\\- **lt**: value less than.\\- **gt**: value greater than.\\- **len-lt**: length less than.\\- **len-eq**: length equal to.\\- **len-gt**: length greater than.\\-**not-match**: does not match.\\- **match-one**: equal to one of multiple values.\\- **all-not-match**: not equal to any value.\\- **all-not-contain**: does not contain any value.\\- **contain-one**: contains one of multiple values.\\-**not-regex**: does not match regular expressions.\\- **regex**: matches regular expressions.\\- **all-not-regex**: does not match any regular expression.\\- **regex-one**: matches one of multiple regular expressions.\\- **prefix-match**: matches by prefix.\\- **suffix-match**: matches by suffix.\\- **empty**: empty content.\\- **exists**: exists.\\- **inl**: exists in a list.**Note** When you create a protection rule, the valid values of **opValue** vary based on the value of **key**. For more information about the logical operators that are supported by each match field, log on to the **WAF console**.|'."\n" + .'|values|String|Yes|abc|The match content.**Note** The valid values of **opValue** and **values** in a match condition vary based on the value of **key**.|'."\n" + ."\n" + .'#### Example'."\n" + ."\n" + .'```json'."\n" + .'{'."\n" + .' "InstanceId": "waf_v2_public_****",'."\n" + .' "TemplateId": 9242,'."\n" + .' "DefenseScene": "whitelist",'."\n" + .' "Rules":"[{\\"name\\":\\"whitelistTest\\",\\"tags\\":[\\"regular_rule\\",\\"customrule\\"],\\"status\\":1,\\"origin\\":\\"custom\\",\\"conditions\\":[{\\"key\\":\\"URL\\",\\"opValue\\":\\"contain\\",\\"values\\":\\"/test\\"},{\\"key\\":\\"Header\\",\\"opValue\\":\\"eq\\",\\"values\\":\\"ffff\\",\\"subKey\\":\\"abc\\"}],\\"regularRules\\":[\\"123444\\",\\"444444\\"]}]"'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'### Protection rules of the custom response module (**custom\\_response**)'."\n" + ."\n" + .'#### Parameters'."\n" + ."\n" + .'|Parameter|Type|Required|Example|Description|'."\n" + .'|---|---|---|---|---|'."\n" + .'|responseType|String|Yes|response\\_block|The type of the custom response. Set the value to response\\_block.|'."\n" + .'|status|Integer|Yes|1|The status of the protection rule. When you create a protection rule, you can use this parameter. When you modify a protection rule by calling the [ModifyDefenseRuleStatus](~~ModifyDefenseRuleStatus~~) operation, you must use RuleStatus. Valid values:\\- **0**: disabled.\\- **1** (default): enabled.|'."\n" + .'|config|String|Yes|{"responseCode":400,"responseHeaders":\\[{"key":"custom","value":"123"},{"key":"aaa","value":"2223"}\\],"responseContent":"HelloWorld"}|The custom configuration information. The value is a JSON string. For more information, see **config description**.|'."\n" + ."\n" + .'**config description**'."\n" + ."\n" + .'|Parameter|Type|Required|Example|Description|'."\n" + .'|---|---|---|---|---|'."\n" + .'|responseCode|Integer|Yes|400|The HTTP status code.|'."\n" + .'|responseHeaders|Array|No|\\[{"key":"custom","value":"123"},{"key":"aaaa","value":"2223"}\\]|The custom header fields in the response. The value is a JSON string. Each field is a **key**\\-**value** pair.|'."\n" + .'|responseContent|String|Yes|helloworld|The response body.|'."\n" + ."\n" + .'#### Example'."\n" + ."\n" + .'```json'."\n" + .'{'."\n" + .' "InstanceId": "waf_v2_public_****",'."\n" + .' "TemplateId": 2841,'."\n" + .' "DefenseScene": "custom_response",'."\n" + .' "Rules":"[{\\"responseType\\":\\"response_block\\",\\"config\\":\\"{\\\\\\"templateName\\\\\\":\\\\\\"aaa\\\\\\",\\\\\\"responseCode\\\\\\":\\\\\\"400\\\\\\",\\\\\\"responseContent\\\\\\":\\\\\\"helloWorld\\\\\\",\\\\\\"responseHeaders\\\\\\":[{\\\\\\"key\\\\\\":\\\\\\"test1\\\\\\",\\\\\\"value\\\\\\":\\\\\\"abc\\\\\\"}]}\\",\\"status\\":1}]"'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'### Protection rules of the region blacklist module (**region\\_block**)'."\n" + ."\n" + .'#### Parameters'."\n" + ."\n" + .'|Parameter|Type|Required|Example|Description|'."\n" + .'|---|---|---|---|---|'."\n" + .'|cnRegionList|String|No|610000,230000|The regions in China from which you want to block requests. If you set this parameter to **CN**, the requests that are sent from all IP addresses in the Chinese mainland are blocked. Separate multiple regions with commas (,). For more information about region codes, see **Codes of administrative regions in China**.|'."\n" + .'|abroadRegionList|String|No|KE,KG|The regions outside China from which you want to block requests. Separate multiple regions with commas (,). For more information about region codes, see **Codes of countries and regions outside China**.|'."\n" + .'|status|Integer|Yes|1|The status of the protection rule. When you create a protection rule, you can use this parameter. When you modify a protection rule by calling the [ModifyDefenseRuleStatus](~~ModifyDefenseRuleStatus~~) operation, you must use RuleStatus. Valid values:\\- **0**: disabled.\\- **1** (default): enabled.|'."\n" + .'|action|String|Yes|block|The action that you want WAF to perform on the matched requests. Valid values:\\- **block**: blocks requests that match the protection rule.\\- **monitor**: monitors requests that match the protection rule.|'."\n" + ."\n" + .'**Codes of administrative regions in China**'."\n" + ."\n" + .'```json'."\n" + .'{'."\n" + .' "110000": "Beijing",'."\n" + .' "120000": "Tianjin",'."\n" + .' "130000": "Hebei",'."\n" + .' "140000": "Shanxi",'."\n" + .' "150000": "Nei Mongol",'."\n" + .' "210000": "Liaoning",'."\n" + .' "220000": "Jilin",'."\n" + .' "230000": "Heilongjiang",'."\n" + .' "310000": "Shanghai",'."\n" + .' "320000": "Jiangsu",'."\n" + .' "330000": "Zhejiang",'."\n" + .' "340000": "Anhui",'."\n" + .' "350000": "Fujian",'."\n" + .' "360000": "Jiangxi",'."\n" + .' "370000": "Shandong",'."\n" + .' "410000": "Henan",'."\n" + .' "420000": "Hubei",'."\n" + .' "430000": "Hunan",'."\n" + .' "440000": "Guangdong",'."\n" + .' "450000": "Guangxi",'."\n" + .' "460000": "Hainan",'."\n" + .' "500000": "Chongqing",'."\n" + .' "510000": "Sichuan",'."\n" + .' "520000": "Guizhou",'."\n" + .' "530000": "Yunnan",'."\n" + .' "540000": "Xizang",'."\n" + .' "610000": "Shaanxi",'."\n" + .' "620000": "Gansu",'."\n" + .' "630000": "Qinghai",'."\n" + .' "640000": "Ningxia",'."\n" + .' "650000": "Xinjiang",'."\n" + .' "MO_01": "Macao (China)",'."\n" + .' "HK_01": "Hong Kong (China)",'."\n" + .' "TW_01": "Taiwan (China)",'."\n" + .' "CN": "Chinese mainland",'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'**Codes of countries and regions outside China**'."\n" + ."\n" + .'```json'."\n" + .'{'."\n" + .' "KE": "Kenya",'."\n" + .' "KG": "Kyrgyzstan",'."\n" + .' "KH": "Cambodia",'."\n" + .' "KI": "Kiribati",'."\n" + .' "KM": "Comoros",'."\n" + .' "KN": "Saint Kitts and Nevis",'."\n" + .' "KP": "Democratic People\'s Republic of Korea",'."\n" + .' "KR": "Republic of Korea",'."\n" + .' "KW": "Kuwait",'."\n" + .' "KY": "Cayman Islands",'."\n" + .' "KZ": "Kazakhstan",'."\n" + .' "LA": "Laos",'."\n" + .' "LB": "Lebanon",'."\n" + .' "LC": "Saint Lucia",'."\n" + .' "LI": "Liechtenstein",'."\n" + .' "LK": "Sri Lanka",'."\n" + .' "LR": "Liberia",'."\n" + .' "LS": "Lesotho",'."\n" + .' "LT": "Lithuania",'."\n" + .' "LU": "Luxembourg",'."\n" + .' "LV": "Latvia",'."\n" + .' "LY": "Libya",'."\n" + .' "MA": "Morocco",'."\n" + .' "MC": "Monaco",'."\n" + .' "MD": "Moldova",'."\n" + .' "ME": "Montenegro",'."\n" + .' "MF": "Saint Martin",'."\n" + .' "MG": "Madagascar",'."\n" + .' "MH": "Marshall Islands",'."\n" + .' "MK": "Macedonia",'."\n" + .' "ML": "Mali",'."\n" + .' "MM": "Myanmar",'."\n" + .' "MN": "Mongolia",'."\n" + .' "MP": "Northern Mariana Islands",'."\n" + .' "MQ": "Martinique",'."\n" + .' "MR": "Mauritania",'."\n" + .' "MS": "Montserrat",'."\n" + .' "MT": "Malta",'."\n" + .' "MU": "Mauritius",'."\n" + .' "MV": "Maldives",'."\n" + .' "MW": "Malawi",'."\n" + .' "MX": "Mexico",'."\n" + .' "MY": "Malaysia",'."\n" + .' "MZ": "Mozambique",'."\n" + .' "NA": "Namibia",'."\n" + .' "NC": "New Caledonia",'."\n" + .' "NE": "Niger",'."\n" + .' "NF": "Norfolk Island",'."\n" + .' "NG": "Nigeria",'."\n" + .' "NI": "Nicaragua",'."\n" + .' "NL": "Netherlands",'."\n" + .' "NO": "Norway",'."\n" + .' "NP": "Nepal",'."\n" + .' "NR": "Nauru",'."\n" + .' "NU": "Niue",'."\n" + .' "NZ": "New Zealand",'."\n" + .' "GA": "Gabon",'."\n" + .' "GB": "United Kingdom",'."\n" + .' "WS": "Samoa",'."\n" + .' "GD": "Grenada",'."\n" + .' "GE": "Georgia",'."\n" + .' "GF": "French Guiana",'."\n" + .' "GG": "Guernsey",'."\n" + .' "GH": "Ghana",'."\n" + .' "GI": "Gibraltar",'."\n" + .' "GL": "Greenland",'."\n" + .' "GM": "Gambia",'."\n" + .' "GN": "Guinea",'."\n" + .' "GP": "Guadeloupe",'."\n" + .' "GQ": "Equatorial Guinea",'."\n" + .' "GR": "Greece",'."\n" + .' "GT": "Guatemala",'."\n" + .' "GU": "Guam",'."\n" + .' "GW": "Guinea-Bissau",'."\n" + .' "GY": "Guyana",'."\n" + .' "HN": "Honduras",'."\n" + .' "HR": "Croatia",'."\n" + .' "HT": "Haiti",'."\n" + .' "YE": "Yemen",'."\n" + .' "HU": "Hungary",'."\n" + .' "YT": "Mayotte",'."\n" + .' "ID": "Indonesia",'."\n" + .' "IE": "Ireland",'."\n" + .' "IL": "Israel",'."\n" + .' "IM": "Isle of Man",'."\n" + .' "IN": "India",'."\n" + .' "IO": "British Indian Ocean Territory",'."\n" + .' "ZA": "South Africa",'."\n" + .' "IQ": "Iraq",'."\n" + .' "IR": "Iran",'."\n" + .' "IS": "Iceland",'."\n" + .' "IT": "Italy",'."\n" + .' "ZM": "Zambia",'."\n" + .' "JE": "Jersey",'."\n" + .' "ZW": "Zimbabwe",'."\n" + .' "JM": "Jamaica",'."\n" + .' "JO": "Jordan",'."\n" + .' "JP": "Japan",'."\n" + .' "SI": "Slovenia",'."\n" + .' "BY": "Belarus",'."\n" + .' "SK": "Slovakia",'."\n" + .' "BZ": "Belize",'."\n" + .' "SL": "Sierra Leone",'."\n" + .' "SM": "San Marino",'."\n" + .' "SN": "Senegal",'."\n" + .' "SO": "Somalia",'."\n" + .' "CA": "Canada",'."\n" + .' "SR": "Suriname",'."\n" + .' "SS": "South Sudan",'."\n" + .' "ST": "Sao Tome and Principe",'."\n" + .' "CD": "Democratic Republic of the Congo",'."\n" + .' "CF": "Central African Republic",'."\n" + .' "SV": "El Salvador",'."\n" + .' "CG": "Republic of the Congo",'."\n" + .' "CH": "Switzerland",'."\n" + .' "SX": "Sint Maarten",'."\n" + .' "SY": "Syrian Arab Republic",'."\n" + .' "CI": "Côte d\'Ivoire",'."\n" + .' "SZ": "Eswatini",'."\n" + .' "CK": "Cook Islands",'."\n" + .' "CL": "Chile",'."\n" + .' "CM": "Cameroon",'."\n" + .' "CN": "China",'."\n" + .' "CO": "Colombia",'."\n" + .' "TC": "Turks and Caicos Islands",'."\n" + .' "CR": "Costa Rica",'."\n" + .' "TD": "Chad",'."\n" + .' "CU": "Cuba",'."\n" + .' "CV": "Cabo Verde",'."\n" + .' "TG": "Togo",'."\n" + .' "CW": "Curacao",'."\n" + .' "TH": "Thailand",'."\n" + .' "CX": "Christmas Island",'."\n" + .' "TJ": "Tajikistan",'."\n" + .' "CY": "Cyprus",'."\n" + .' "CZ": "Czech Republic",'."\n" + .' "TK": "Tokelau",'."\n" + .' "TL": "Timor-Leste",'."\n" + .' "TM": "Turkmenistan",'."\n" + .' "TN": "Tunisia",'."\n" + .' "TO": "Tonga",'."\n" + .' "TR": "Türkiye",'."\n" + .' "TT": "Trinidad and Tobago",'."\n" + .' "DE": "Germany",'."\n" + .' "TV": "Tuvalu",'."\n" + .' "DJ": "Djibouti",'."\n" + .' "TZ": "Tanzania",'."\n" + .' "DK": "Denmark",'."\n" + .' "DM": "Dominica",'."\n" + .' "DO": "Dominican Republic",'."\n" + .' "UA": "Ukraine",'."\n" + .' "UG": "Uganda",'."\n" + .' "DZ": "Algeria",'."\n" + .' "UM": "United States Minor Outlying Islands",'."\n" + .' "US": "United States of America",'."\n" + .' "EC": "Ecuador",'."\n" + .' "EE": "Estonia",'."\n" + .' "EG": "Egypt",'."\n" + .' "UY": "Uruguay",'."\n" + .' "UZ": "Uzbekistan",'."\n" + .' "VA": "Vatican City",'."\n" + .' "VC": "Saint Vincent and the Grenadines",'."\n" + .' "ER": "Eritrea",'."\n" + .' "ES": "Spain",'."\n" + .' "VE": "Venezuela",'."\n" + .' "ET": "Ethiopia",'."\n" + .' "VG": "British Virgin Islands",'."\n" + .' "VI": "United States Virgin Islands",'."\n" + .' "VN": "Vietnam",'."\n" + .' "VU": "Vanuatu",'."\n" + .' "FI": "Finland",'."\n" + .' "FJ": "Fiji",'."\n" + .' "FK": "Falkland Islands",'."\n" + .' "FM": "Federated States of Micronesia",'."\n" + .' "FO": "Faroe Islands",'."\n" + .' "FR": "France",'."\n" + .' "WF": "Wallis and Futuna Islands",'."\n" + .' "OM": "Oman",'."\n" + .' "PA": "Panama",'."\n" + .' "PE": "Peru",'."\n" + .' "PF": "French Polynesia",'."\n" + .' "PG": "Papua New Guinea",'."\n" + .' "PH": "Philippines",'."\n" + .' "PK": "Pakistan",'."\n" + .' "PL": "Poland",'."\n" + .' "PM": "Saint Pierre and Miquelon",'."\n" + .' "PR": "Puerto Rico",'."\n" + .' "PS": "Palestine",'."\n" + .' "PT": "Portugal",'."\n" + .' "PW": "Palau",'."\n" + .' "PY": "Paraguay",'."\n" + .' "QA": "Qatar",'."\n" + .' "AD": "Andorra",'."\n" + .' "AE": "United Arab Emirates",'."\n" + .' "AF": "Afghanistan",'."\n" + .' "AG": "Antigua and Barbuda",'."\n" + .' "AI": "Anguilla",'."\n" + .' "AL": "Albania",'."\n" + .' "AM": "Armenia",'."\n" + .' "AO": "Angola",'."\n" + .' "AP": "Asia-Pacific",'."\n" + .' "AQ": "Antarctica",'."\n" + .' "AR": "Argentina",'."\n" + .' "AS": "American Samoa",'."\n" + .' "RE": "Reunion",'."\n" + .' "AT": "Austria",'."\n" + .' "AU": "Australia",'."\n" + .' "AW": "Aruba",'."\n" + .' "AX": "Aland Islands",'."\n" + .' "AZ": "Azerbaijan",'."\n" + .' "RO": "Romania",'."\n" + .' "BA": "Bosnia and Herzegovina",'."\n" + .' "BB": "Barbados",'."\n" + .' "RS": "Serbia",'."\n" + .' "BD": "Bangladesh",'."\n" + .' "BE": "Belgium",'."\n" + .' "RU": "Russia",'."\n" + .' "BF": "Burkina Faso",'."\n" + .' "RW": "Rwanda",'."\n" + .' "BG": "Bulgaria",'."\n" + .' "BH": "Bahrain",'."\n" + .' "BI": "Burundi",'."\n" + .' "BJ": "Benin",'."\n" + .' "BL": "Saint Barthelemy",'."\n" + .' "BM": "Bermuda",'."\n" + .' "BN": "Brunei",'."\n" + .' "BO": "Bolivia",'."\n" + .' "SA": "Saudi Arabia",'."\n" + .' "BQ": "Caribbean Netherlands",'."\n" + .' "SB": "Solomon Islands",'."\n" + .' "BR": "Brazil",'."\n" + .' "SC": "Seychelles",'."\n" + .' "SD": "Sudan",'."\n" + .' "BS": "Bahamas",'."\n" + .' "SE": "Sweden",'."\n" + .' "BT": "Bhutan",'."\n" + .' "SG": "Singapore",'."\n" + .' "BW": "Botswana"'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'##### Example'."\n" + ."\n" + .'```json'."\n" + .'{'."\n" + .' "InstanceId": "waf_v2_public_****",'."\n" + .' "TemplateId": 2341,'."\n" + .' "DefenseScene": "region_block",'."\n" + .' "Rules": "[{\\"cnRegionList\\":\\"CN,HK_01,TW_01,MO_01\\",\\"abroadRegionList\\":\\"AU,NZ\\",\\"action\\":\\"block\\",\\"status\\":1}]"'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'### Protection rules of the HTTP flood protection module (**cc**)'."\n" + ."\n" + .'#### Parameters'."\n" + ."\n" + .'|Parameter|Type|Required|Example|Description|'."\n" + .'|---|---|---|---|---|'."\n" + .'|mode|Integer|Yes|0|The HTTP flood protection mode. Valid values:\\- **0** (default): the protection mode.\\- **1**: the protection-emergency mode.|'."\n" + .'|status|Integer|Yes|1|The status of the protection rule. When you create a protection rule, you can use this parameter. When you modify a protection rule by calling the [ModifyDefenseRuleStatus](~~ModifyDefenseRuleStatus~~) operation, you must use RuleStatus. Valid values:\\- **0**: disabled.\\- **1** (default): enabled.|'."\n" + ."\n" + .'#### Example'."\n" + ."\n" + .'```json'."\n" + .'{'."\n" + .' "InstanceId": "waf_v2_public_****",'."\n" + .' "TemplateId": 2241,'."\n" + .' "DefenseScene": "cc",'."\n" + .' "Rules":"[{\\"mode\\":0,\\"status\\":1}]"'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'### Protection rules of the website tamper-proofing module (**tamperproof**)'."\n" + ."\n" + .'#### Parameters'."\n" + ."\n" + .'|Parameter|Type|Required|Example|Description|'."\n" + .'|---|---|---|---|---|'."\n" + .'|name|String|Yes|test|The name of the protection rule.|'."\n" + .'|url|String|Yes|/abc|The address of the cached page.|'."\n" + .'|ua|String|No|app|The User-Agent string that is allowed for access to the address.|'."\n" + .'|protocol|String|Yes|https|The protocol type of the cached page address. Valid values: **http** and **https**.|'."\n" + .'|status|Integer|Yes|1|The status of the protection rule. When you create a protection rule, you can use this parameter. When you modify a protection rule by calling the [ModifyDefenseRuleStatus](~~ModifyDefenseRuleStatus~~) operation, you must use RuleStatus. Valid values:\\- **0**: disabled.\\- **1** (default): enabled.|'."\n" + ."\n" + .'#### Example'."\n" + ."\n" + .'```json'."\n" + .'{'."\n" + .' "InstanceId": "waf_v2_public_****",'."\n" + .' "TemplateId": 1241,'."\n" + .' "DefenseScene": "tamperproof",'."\n" + .' "Rules": "[{\\"name\\":\\"test1\\",\\"url\\":\\"www.test1.com\\",\\"ua\\":\\"firefox\\",\\"protocol\\":\\"https\\",\\"status\\":1}]"'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'### Protection rules of the data leakage prevention module (**dlp**)'."\n" + ."\n" + .'#### Parameters'."\n" + ."\n" + .'|Parameter|Type|Required|Example|Description|'."\n" + .'|---|---|---|---|---|'."\n" + .'|name|String|Yes|test|The name of the protection rule.|'."\n" + .'|conditions|Array|Yes|\\[{"key":"HttpCode","opValue":"contain","values":"400,401,402,403,404,405,500,501,502,503,504,505"},{"key":"URL","opValue":"contain","values":"test"}\\]|The match conditions. The value is a JSON string. You can configure up to two match conditions. The match conditions are evaluated by using a logical AND. For more information, see **conditions description**.|'."\n" + .'|status|Integer|Yes|1|The status of the protection rule. When you create a protection rule, you can use this parameter. When you modify a protection rule by calling the [ModifyDefenseRuleStatus](~~ModifyDefenseRuleStatus~~) operation, you must use RuleStatus. Valid values:\\- **0**: disabled.\\- **1** (default): enabled.|'."\n" + .'|action|String|Yes|block|The action that you want WAF to perform on the matched requests. Valid values:\\- **block**: blocks requests that match the protection rule.\\- **monitor**: monitors requests that match the protection rule.\\- **filter**: filters sensitive information. You can specify this action only if you configure a condition to match sensitive information.|'."\n" + ."\n" + .'**conditions description**'."\n" + ."\n" + .'|Parameter|Type|Required|Example|Description|'."\n" + .'|---|---|---|---|---|'."\n" + .'|key|String|Yes|URL|The match field. Valid values: **URL**, **HttpCode**, and **SensitiveInfo**.|'."\n" + .'|opValue|String|Yes|contain|The logical operator. Set the value to **contain**.|'."\n" + .'|values|String|Yes|abc|The match content. Separate multiple items with commas (,).If key is set to **HttpCode**, you can set this parameter to one of the following values: **400**, **401**, **402**, **403**, **404**, **405** (**405 - 499**), **500**, **501**, **502**, **503**, **504**, and **505** (**505 - 599**).If key is set to **SensitiveInfo**, you can set this parameter to one of the following values:\\- **phone**: mobile phone numbers.\\- **card**: credit card numbers.\\- **id**: ID card numbers.\\- **word**: default sensitive words.|'."\n" + ."\n" + .'#### Example'."\n" + ."\n" + .'```json'."\n" + .'{'."\n" + .' "InstanceId": "waf_v2_public_****",'."\n" + .' "TemplateId": 5241,'."\n" + .' "DefenseScene": "dlp",'."\n" + .' "Rules":"[{\\"name\\":\\"test\\",\\"action\\":\\"filter\\",\\"status\\":1,\\"conditions\\":[{\\"key\\":\\"SensitiveInfo\\",\\"opValue\\":\\"contain\\",\\"values\\":\\"id,card\\"},{\\"key\\":\\"URL\\",\\"opValue\\":\\"contain\\",\\"values\\":\\"/test.html\\"}]}]"'."\n" + .'}'."\n" + .'```', + ], + 'ModifyDefenseRule' => [ + 'summary' => 'Modifies the configurations of a protection rule.', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106380', + 'abilityTreeNodes' => [ + 'FEATUREwaf1LM6V0', + 'FEATUREwafOVI09M', + 'FEATUREwafF105ZO', + 'FEATUREwafCU29M8', + 'FEATUREwafBWO4L0', + 'FEATUREwaf9JXZCD', + 'FEATUREwafIFHX6M', + 'FEATUREwafI1HM4C', + 'FEATUREwaf16U367', + 'FEATUREwaf6XNOII', + 'FEATUREwafS64FX9', + 'FEATUREwafQ73SIK', + 'FEATUREwafAFURH8', + 'FEATUREwafRM5KJ7', + 'FEATUREwaf4TDPM4', + 'FEATUREwafOUMN3V', + 'FEATUREwafVG3S9P', + 'FEATUREwafIDKGGL', + 'FEATUREwafWUANSU', + 'FEATUREwafVZXFDE', + 'FEATUREwaf6KFDRU', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protection rule template to which the protection rule whose configurations you want to modify belongs.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '5325', + ], + ], + [ + 'name' => 'DefenseScene', + 'in' => 'query', + 'schema' => [ + 'description' => 'The scenario in which you want to use the protection rule. For more information, see the description of the **DefenseScene** parameter in the [CreateDefenseRule](~~CreateDefenseRule~~) topic.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'waf_group', + ], + ], + [ + 'name' => 'Rules', + 'in' => 'formData', + 'schema' => [ + 'description' => 'The details of the protection rule. Specify a string that contains multiple parameters in the JSON format. You must specify the ID and the new configurations of the protection rule.'."\n" + ."\n" + .'* **id:** The ID of the protection rule. Data type: long. You must specify this parameter.'."\n" + .'* The protection rule configurations: The role of this parameter is the same as that of the **Rules** parameter in the **CreateDefenseRule** topic. For more information, see the "**Protection rule parameters**" section in the [CreateDefenseRule](~~CreateDefenseRule~~) topic.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '[{"id":2344,"policyId":1012,"action":"block"}] ', + ], + ], + [ + 'name' => 'DefenseType', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'default' => 'template', + 'enum' => [ + 'global', + 'resource', + 'template', + ], + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '1EEA9C98-F166-54FE-ADE3-08D8****BDFA', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Defense.Control.DefenseWhitelistBypassRuleNotExist', + 'errorMessage' => 'The whitelist protection rule does not exist.', + ], + [ + 'errorCode' => 'Defense.Control.DefenseWhitelistConfigInvalid', + 'errorMessage' => 'The whitelist rule is misconfigured.', + ], + [ + 'errorCode' => 'Defense.Control.DefenseBookTypeInvalid', + 'errorMessage' => 'The address book type is illegal.', + ], + [ + 'errorCode' => 'Defense.Control.DefenseThreatIntelligenceConfigInvalid', + 'errorMessage' => 'Threat Intelligence Rule configuration error.', + ], + [ + 'errorCode' => 'Defense.Control.DefenseIpCountOversize', + 'errorMessage' => 'The number of IPs exceeds the limit.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"1EEA9C98-F166-54FE-ADE3-08D8****BDFA\\"\\n}","type":"json"}]', + 'title' => 'ModifyDefenseRule', + ], + 'ModifyDefenseRuleStatus' => [ + 'summary' => 'Changes the status of a protection rule.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106381', + 'abilityTreeNodes' => [ + 'FEATUREwaf10VDFG', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protection rule template to which the protection rule whose status you want to change belongs.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '7239', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protection rule whose status you want to change.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '20002615', + ], + ], + [ + 'name' => 'RuleStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The new status of the protection rule. Valid values:'."\n" + ."\n" + .'* **0:** disabled.'."\n" + .'* **1:** enabled.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'DefenseType', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'default' => 'template', + 'enum' => [ + 'template', + 'resource', + 'global', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'BB305BF3-3C71-57A9-9704-E22F567689B0', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BB305BF3-3C71-57A9-9704-E22F567689B0\\"\\n}","type":"json"}]', + 'title' => 'ModifyDefenseRuleStatus', + ], + 'DeleteDefenseRule' => [ + 'summary' => 'Deletes a protection rule.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106469', + 'abilityTreeNodes' => [ + 'FEATUREwaf1LM6V0', + 'FEATUREwafOVI09M', + 'FEATUREwafF105ZO', + 'FEATUREwafCU29M8', + 'FEATUREwafBWO4L0', + 'FEATUREwaf9JXZCD', + 'FEATUREwafIFHX6M', + 'FEATUREwafI1HM4C', + 'FEATUREwaf16U367', + 'FEATUREwaf6XNOII', + 'FEATUREwafS64FX9', + 'FEATUREwafQ73SIK', + 'FEATUREwafAFURH8', + 'FEATUREwafRM5KJ7', + 'FEATUREwaf4TDPM4', + 'FEATUREwafOUMN3V', + 'FEATUREwafVG3S9P', + 'FEATUREwafIDKGGL', + 'FEATUREwafWUANSU', + 'FEATUREwafVZXFDE', + 'FEATUREwaf6KFDRU', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protection rule template to which the protection rule that you want to delete belongs.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '2221', + ], + ], + [ + 'name' => 'RuleIds', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IDs of the protection rules that you want to delete. Separate the IDs with commas (,).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2223455,23354,465565', + ], + ], + [ + 'name' => 'DefenseType', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'default' => 'template', + 'enum' => [ + 'template', + 'global', + 'resource', + ], + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '2EC856FE-6D31-5861-8275-E5DEDB539089', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Defense.Control.DefenseAddressBookInUse', + 'errorMessage' => 'The address book is in use and cannot be deleted.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2EC856FE-6D31-5861-8275-E5DEDB539089\\"\\n}","type":"json"}]', + 'title' => 'DeleteDefenseRule', + ], + 'DescribeDefenseRules' => [ + 'summary' => 'Queries protection rules by page.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106383', + 'abilityTreeNodes' => [ + 'FEATUREwaf10VDFG', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'RuleType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of protection rule that you want to query. Valid values:'."\n" + ."\n" + .'* **whitelist:** whitelist rule.'."\n" + .'* **defense:** defense rule. This is the default value.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'whitelist', + ], + ], + [ + 'name' => 'Query', + 'in' => 'query', + 'schema' => [ + 'description' => 'The query conditions. Specify a string that contains multiple parameters in the JSON format.'."\n" + ."\n" + .'> The results vary based on the query conditions. For more information, see the "**Query parameters**" section in this topic.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{\\\\"name\\\\":\\\\"IP address blocking\\_20220822\\_10\\\\",\\\\"scene\\\\":\\\\"custom_acl\\\\",\\\\"templateId\\\\":5327}'."\n", + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + 'default' => '20', + ], + ], + [ + 'name' => 'DefenseType', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'default' => 'template', + 'enum' => [ + 'template', + 'resource', + 'global', + ], + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of returned entries.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '80736FA5-FA87-55F6-AA69-C5477C6FE6D0', + ], + 'Rules' => [ + 'description' => 'The protection rules.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The protection rule.'."\n", + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => 'The status of the protection rule. Valid values:'."\n" + ."\n" + .'* **0:** disabled.'."\n" + .'* **1:** enabled.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'DefenseOrigin' => [ + 'description' => 'The origin of the protection rule. Valid values:'."\n" + ."\n" + .'* **custom:** The protection rule is created by the user.'."\n" + .'* **system:** The protection rule is automatically generated by the system.'."\n", + 'type' => 'string', + 'example' => 'custom', + ], + 'Config' => [ + 'description' => 'The details of the protection rule. The value is a string that contains multiple parameters in the JSON format. For more information, see the "**Rule parameters**" section in the [CreateDefenseRule](~~CreateDefenseRule~~) topic.'."\n", + 'type' => 'string', + 'example' => '{\\"policyId\\":1012,\\"action\\":\\"block\\"}', + ], + 'RuleId' => [ + 'description' => 'The ID of the protection rule.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '42755', + ], + 'DefenseScene' => [ + 'description' => 'The protection module for which the protection rule is created. Valid values:'."\n" + ."\n" + .'* **waf_group**: the basic protection rule module.'."\n" + .'* **waf_base_compliance**: the protocol compliance feature of the basic protection rule module.'."\n" + .'* **waf_base_sema**: the semantic analysis feature of the basic protection rule module.'."\n" + .'* **cc**: the HTTP flood protection module.'."\n" + .'* **antiscan_dirscan**: the directory traversal blocking feature of the scan protection module.'."\n" + .'* **antiscan_highfreq**: the high-frequency scanning blocking feature of the scan protection module.'."\n" + .'* **antiscan_scantools**: the scanner blocking feature of the scan protection module.'."\n" + .'* **ip_blacklist**: the IP address blacklist module.'."\n" + .'* **custom_acl**: the custom rule module.'."\n" + .'* **region_block**: the region blacklist module.'."\n" + .'* **tamperproof**: the website tamper-proofing module.'."\n" + .'* **dlp**: the data leakage prevention module.'."\n" + .'* **custom_response_block**: the custom response module.'."\n", + 'type' => 'string', + 'example' => 'waf_group', + ], + 'GmtModified' => [ + 'description' => 'The most recent time when the protection rule was modified.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1665460629000', + ], + 'RuleName' => [ + 'description' => 'The name of the protection rule.'."\n", + 'type' => 'string', + 'example' => 'rules_41', + ], + 'TemplateId' => [ + 'description' => 'The ID of the protection rule template.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '5673', + ], + 'GmtCreate' => [ + 'type' => 'integer', + 'format' => 'int64', + 'deprecated' => false, + ], + 'Resource' => [ + 'type' => 'string', + ], + 'DefenseType' => [ + 'type' => 'string', + ], + 'Description' => [ + 'type' => 'string', + 'title' => '废弃字段,无实际含义。', + 'deprecated' => true, + 'example' => 'test', + ], + 'RuleType' => [ + 'type' => 'string', + 'title' => '废弃字段,无实际含义。', + 'deprecated' => true, + 'example' => 'test', + ], + 'ActionExternal' => [ + 'type' => 'string', + 'title' => '废弃字段,无实际含义。', + 'deprecated' => true, + 'example' => '{"empty":"test"}', + ], + 'DetailRuleIds' => [ + 'type' => 'string', + 'title' => '废弃字段,无实际含义。', + 'deprecated' => true, + 'example' => '123,456', + ], + 'ExternalInfo' => [ + 'type' => 'string', + 'title' => '废弃字段,无实际含义。', + 'deprecated' => true, + 'example' => 'empty', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 2,\\n \\"RequestId\\": \\"80736FA5-FA87-55F6-AA69-C5477C6FE6D0\\",\\n \\"Rules\\": [\\n {\\n \\"Status\\": 1,\\n \\"DefenseOrigin\\": \\"custom\\",\\n \\"Config\\": \\"{\\\\\\\\\\\\\\"policyId\\\\\\\\\\\\\\":1012,\\\\\\\\\\\\\\"action\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"block\\\\\\\\\\\\\\"}\\",\\n \\"RuleId\\": 42755,\\n \\"DefenseScene\\": \\"waf_group\\",\\n \\"GmtModified\\": 1665460629000,\\n \\"RuleName\\": \\"rules_41\\",\\n \\"TemplateId\\": 5673,\\n \\"GmtCreate\\": 1665460629000,\\n \\"Resource\\": \\"rencs***-waf\\",\\n \\"DefenseType\\": \\"template\\",\\n \\"Description\\": \\"rule description\\",\\n \\"RuleType\\": \\"custom_cc\\",\\n \\"ActionExternal\\": \\"42755\\",\\n \\"DetailRuleIds\\": \\"42755\\",\\n \\"ExternalInfo\\": \\"{\\\\\\\\\\\\\\"DetectType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"sqli\\\\\\\\\\\\\\"}\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeDefenseRules', + 'requestParamsDescription' => '### Query'."\n" + ."\n" + .'#### Parameters'."\n" + ."\n" + .'|Parameter|Type|Required|Example|Description|'."\n" + .'|---|---|---|---|---|'."\n" + .'|name|String|No|test|The name of the protection rule that you want to query. You can specify this parameter to query a protection rule by using exact match.|'."\n" + .'|nameId|String|No|test1|The ID or name of the protection rule that you want to query. You can specify this parameter to query a protection rule by using fuzzy match.|'."\n" + .'|nameLike|String|No|test.aliyundoc.c|The name of the protection rule that you want to query. You can specify this parameter to query a protection rule by using fuzzy match.|'."\n" + .'|scene|String|No|waf\\_group|The protection module whose protection rules you want to query. You can specify this parameter to query the protection rules of a specific protection module by using exact match. Valid values:\\- **waf\\_group**: the rules engine of the basic protection rule module.\\- **waf\\_base\\_compliance**: the protocol compliance feature of the basic protection rule module.\\- **waf\\_base\\_sema**: the semantic analysis feature of the basic protection rule module.\\- **cc**: the HTTP flood protection module.\\- **antiscan\\_dirscan**: the directory traversal blocking feature of the scan protection module.\\- **antiscan\\_highfreq**: the high-frequency scanning blocking feature of the scan protection module.\\- **antiscan\\_scantools**: the scanner blocking feature of the scan protection module.\\- **ip\\_blacklist**: the IP address blacklist module.\\- **custom\\_acl**: the custom rule module.\\- **region\\_block**: the region blacklist module.\\- **tamperproof**: the website tamper-proofing module.\\- **dlp**: the data leakage prevention module.\\- **custom\\_response\\_block**: the custom response module.|'."\n" + .'|ruleId|Long|No|33444|The ID of the protection rule that you want to query. You can specify this parameter to query a protection rule by using exact match.|'."\n" + .'|ruleIdIn|Array|No|\\[3334455643,345555\\]|The ID range of the protection rules that you want to query. You can specify this parameter to query multiple protection rules. Multiple protection rule IDs are separated by commas (,).|'."\n" + .'|templateId|Long|No|24354|The ID of the protection template. You can specify this parameter to query the protection rules of a specific protection template.|'."\n" + .'|orderBy|String|No|name|The method that you want to use to sort protection rules. Valid values:\\- **name**: sorts the protection rules by protection rule name.\\- **gmtModified**: sorts the protection rules by most recent modification time.\\- **id**: sorts the protection rules by protection rule ID.\\- **templateId**: sorts the protection rules by protection template ID.|'."\n" + .'|desc|Boolean|No|true|Specifies whether to sort protection rules in descending order. Valid values:\\- **false**: sorts the protection rules in ascending order.\\- **true**: sorts the protection rules in descending order.|'."\n" + ."\n" + .'#### Example'."\n" + ."\n" + .'```json'."\n" + .'{'."\n" + .' "name": "test",'."\n" + .' "nameId ": "test1,'."\n" + .' "nameLike": "test.aliyundoc.c",'."\n" + .' "nameIn": "test.aliyundoc.c",'."\n" + .' "InstaneId": "test1.aliyundoc.com,test2.aliyundoc.com",'."\n" + .' "templateId": 24354'."\n" + .'}'."\n" + .'```', + ], + 'DescribeDefenseRule' => [ + 'summary' => 'Queries a protection rule.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106382', + 'abilityTreeNodes' => [ + 'FEATUREwaf9JXZCD', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protection rule template to which the protection rule that you want to query belongs.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '10318', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protection rule that you want to query.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '20026192', + ], + ], + [ + 'name' => 'DefenseType', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'default' => 'template', + 'enum' => [ + 'global', + 'resource', + 'template', + ], + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: Outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D5EB0', + ], + 'Rule' => [ + 'description' => 'The configurations of the protection rule. The value is a JSON string that contains multiple parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => 'The status of the protection rule. Valid values:'."\n" + ."\n" + .'* **0:** disabled.'."\n" + .'* **1:** enabled.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'DefenseOrigin' => [ + 'description' => 'The origin of the protection rule. Valid values:'."\n" + ."\n" + .'* **custom:** The protection rule is created by the user.'."\n" + .'* **system:** The protection rule is automatically generated by the system.'."\n", + 'type' => 'string', + 'example' => 'custom', + ], + 'Config' => [ + 'description' => 'The details of the protection rule. The value is a JSON string that contains multiple parameters. For more information, see the "**Protection rule parameters**" section of the [CreateDefenseRule](~~CreateDefenseRule~~) topic.'."\n", + 'type' => 'string', + 'example' => '{\\"status\\":1,\\"policyId\\":1012,\\"action\\":\\"block\\"}', + ], + 'RuleId' => [ + 'description' => 'The ID of the protection rule.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2732975', + ], + 'DefenseScene' => [ + 'description' => 'The scenario in which the protection rule is used. For more information, see the description of **DefenseScene** in the [CreateDefenseRule](~~CreateDefenseRule~~) topic.'."\n", + 'type' => 'string', + 'example' => 'waf_group', + ], + 'GmtModified' => [ + 'description' => 'The most recent time when the protection rule was modified.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1665196746000', + ], + 'RuleName' => [ + 'description' => 'The name of the protection rule.'."\n", + 'type' => 'string', + 'example' => 'test1', + ], + 'TemplateId' => [ + 'description' => 'The ID of the protection rule template.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '9114', + ], + 'Resource' => [ + 'type' => 'string', + ], + 'DefenseType' => [ + 'type' => 'string', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\",\\n \\"Rule\\": {\\n \\"Status\\": 1,\\n \\"DefenseOrigin\\": \\"custom\\",\\n \\"Config\\": \\"{\\\\\\\\\\\\\\"status\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"policyId\\\\\\\\\\\\\\":1012,\\\\\\\\\\\\\\"action\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"block\\\\\\\\\\\\\\"}\\",\\n \\"RuleId\\": 2732975,\\n \\"DefenseScene\\": \\"waf_group\\",\\n \\"GmtModified\\": 1665196746000,\\n \\"RuleName\\": \\"test1\\",\\n \\"TemplateId\\": 9114,\\n \\"Resource\\": \\"rencs***-waf\\",\\n \\"DefenseType\\": \\"template\\"\\n }\\n}","type":"json"}]', + 'title' => 'DescribeDefenseRule', + ], + 'ModifyDefenseRuleCache' => [ + 'summary' => 'Updates the cached page of a website that is protected based on a website tamper-proofing rule.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '137716', + 'abilityTreeNodes' => [ + 'FEATUREwaf10VDFG', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-zvp****xm2r', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protection template.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '12345', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protection rule.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '12345678', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'A0F2B994-8645-5270-A05D-9DAD8C****B6', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A0F2B994-8645-5270-A05D-9DAD8C35****\\"\\n}","type":"json"}]', + 'title' => 'ModifyDefenseRuleCache', + ], + 'DeleteDefenseRuleBlockIp' => [ + 'summary' => '更新防护规则封禁Ip', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '203840', + 'abilityTreeNodes' => [ + 'FEATUREwafAFURH8', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-9lb37yxse05', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '4057', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '36998', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '9D11AC3A-A10C-56E7-A342-E87EC892BAE2', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9D11AC3A-A10C-56E7-A342-E87EC892BAE2\\"\\n}","type":"json"}]', + ], + 'DescribeRelatedDefenseRules' => [ + 'summary' => '分页查询关联规则', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwaf4TDPM4', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-zz11sr5****', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '12345678', + ], + ], + [ + 'name' => 'DefenseType', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'global', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'caeba0bbb2be03f84eb48b699f0*****', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '100', + 'minimum' => '1', + 'example' => '20', + 'default' => '20', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'DefenseScene', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'enumValueTitles' => [ + 'address_book' => 'address_book', + ], + 'example' => 'address_book', + 'enum' => [ + 'custom_response', + 'address_book', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'F35F45B0-5D6B-4238-BE02-A62D****E840', + ], + 'Rules' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RuleId' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2456789', + ], + 'TemplateId' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '81501', + ], + 'DefenseScene' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'custom_acl', + ], + 'DefenseType' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'template', + ], + 'RuleName' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'ruleTest', + ], + ], + ], + ], + 'NextToken' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'AAAAAGBgV9tolsLfijC4wam2htS*****D/46H3X2wIS', + ], + 'MaxResults' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '20', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 10,\\n \\"RequestId\\": \\"F35F45B0-5D6B-4238-BE02-A62D****E840\\",\\n \\"Rules\\": [\\n {\\n \\"RuleId\\": 2456789,\\n \\"TemplateId\\": 81501,\\n \\"DefenseScene\\": \\"custom_acl\\",\\n \\"DefenseType\\": \\"template\\",\\n \\"RuleName\\": \\"ruleTest\\"\\n }\\n ],\\n \\"NextToken\\": \\"AAAAAGBgV9tolsLfijC4wam2htS*****D/46H3X2wIS\\",\\n \\"MaxResults\\": 20\\n}","type":"json"}]', + ], + 'DescribeIpAbroadCountryInfos' => [ + 'summary' => '获取支持的海外IP区域封禁支持的国际及地域。', + 'path' => '/', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafBWO4L0', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'title' => '参数说明的原文未提供'."\n", + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-cn-0xl*******005', + ], + ], + [ + 'name' => 'Country', + 'in' => 'query', + 'schema' => [ + 'title' => '出境国家。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'US', + ], + ], + [ + 'name' => 'AbroadRegion', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'US-CA', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'title' => '下一个查询开始Token', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'caeba0bbb2be03f84eb48b699f0*****', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'title' => '分页查询时每页行数。最大值为100。默认值:当不设置值或设置的值小于10时,默认值为10。当设置的值大于100时,默认值为100。', + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '500', + 'minimum' => '1', + 'example' => '20', + 'default' => '20', + ], + ], + [ + 'name' => 'Language', + 'in' => 'query', + 'schema' => [ + 'title' => '请求使用的语言。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'en', + 'default' => 'en', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => 'WAF实例所属地域。取值:'."\n" + ."\n" + .'- **cn-hangzhou**:表示中国内地。'."\n" + ."\n" + .'- **ap-southeast-1**:表示非中国内地。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'title' => '阿里云资源组ID。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aekzwwk****cv5i', + ], + ], + ], + 'responses' => [ + 200 => [ + 'description' => '查询成功', + 'schema' => [ + 'title' => '响应体结构'."\n", + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => '请求ID'."\n", + 'description' => '', + 'type' => 'string', + 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE', + ], + 'TotalCount' => [ + 'title' => '返回结果的总数。', + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '2', + ], + 'AbroadInfos' => [ + 'title' => '海外国家信息列表。', + 'description' => '', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Country' => [ + 'title' => '国家ID。', + 'description' => '', + 'type' => 'string', + 'example' => 'US', + ], + 'CountryName' => [ + 'title' => '国家名。', + 'description' => '', + 'type' => 'string', + 'example' => '美国', + ], + 'Regions' => [ + 'title' => '二级区域信息列表。', + 'description' => '', + 'type' => 'array', + 'items' => [ + 'title' => '二级区域信息。', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'AbroadRegionId' => [ + 'title' => '二级区域ID。', + 'description' => '', + 'type' => 'string', + 'example' => 'US-CA', + ], + 'AbroadRegionName' => [ + 'title' => '二级区域名称。', + 'description' => '', + 'type' => 'string', + 'example' => '加利福尼亚州', + ], + ], + ], + ], + 'Continent' => [ + 'title' => '国家所属大区。', + 'description' => '', + 'type' => 'string', + 'example' => '北美洲', + ], + ], + ], + ], + 'NextToken' => [ + 'title' => '下一个查询开始Token', + 'description' => '', + 'type' => 'string', + 'example' => 'caeba0bbb2be03f84eb48b699f0*****', + ], + 'MaxResults' => [ + 'title' => '分页查询时每页行数。最大值为100。默认值:当不设置值或设置的值小于10时,默认值为10。当设置的值大于100时,默认值为100。', + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '20', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"66A98669-CC6E-4F3E-80A6-3014697B11AE\\",\\n \\"TotalCount\\": 2,\\n \\"AbroadInfos\\": [\\n {\\n \\"Country\\": \\"US\\",\\n \\"CountryName\\": \\"United States\\",\\n \\"Regions\\": [\\n {\\n \\"AbroadRegionId\\": \\"US-CA\\",\\n \\"AbroadRegionName\\": \\"California\\"\\n }\\n ],\\n \\"Continent\\": \\"North America\\"\\n }\\n ],\\n \\"NextToken\\": \\"caeba0bbb2be03f84eb48b699f0*****\\",\\n \\"MaxResults\\": 20\\n}","type":"json"}]', + ], + 'DescribeRuleGroups' => [ + 'summary' => 'Queries regular expression rule groups by page.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwaf10VDFG', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'SearchType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the query condition. Valid values:'."\n" + ."\n" + .'* **id:** queries regular expression rule groups by ID.'."\n" + .'* **name:** queries regular expression rule groups by name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'name', + ], + ], + [ + 'name' => 'SearchValue', + 'in' => 'query', + 'schema' => [ + 'description' => 'The query condition.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + '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: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + 'default' => '20', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of entries that are returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '24', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '02E9A4B8-90FB-5F41-A049-C82277EB82FB', + ], + 'RuleGroups' => [ + 'description' => 'An array of regular expression rule groups.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The regular expression rule group.'."\n", + 'type' => 'object', + 'properties' => [ + 'RuleGroupId' => [ + 'description' => 'The ID of the regular expression rule group.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '115361', + ], + 'RuleTotalCount' => [ + 'description' => 'The number of built-in rules in the rule group.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '4444', + ], + 'RuleGroupName' => [ + 'description' => 'The name of the rule group.'."\n", + 'type' => 'string', + 'example' => 'ssssss', + ], + 'IsSubscribe' => [ + 'description' => 'Indicates whether the automatic update feature is enabled for the rule group.'."\n" + ."\n" + .'* 1: The automatic update feature is enabled for the rule group.'."\n" + .'* 2: The automatic update feature is disabled for the rule group.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'GmtModified' => [ + 'description' => 'The most recent time when the rule group was modified.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1664336364000', + ], + 'ParentRuleGroupId' => [ + 'description' => 'The ID of the rule group.'."\n" + ."\n" + .'* 0: The rule group is created from scratch.'."\n" + .'* 1011: The rule group is a strict rule group.'."\n" + .'* 1012: The rule group is a medium rule group.'."\n" + .'* 1013: The rue group is a loose rule group.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1012', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 24,\\n \\"RequestId\\": \\"02E9A4B8-90FB-5F41-A049-C82277EB82FB\\",\\n \\"RuleGroups\\": [\\n {\\n \\"RuleGroupId\\": 115361,\\n \\"RuleTotalCount\\": 4444,\\n \\"RuleGroupName\\": \\"ssssss\\",\\n \\"IsSubscribe\\": 1,\\n \\"GmtModified\\": 1664336364000,\\n \\"ParentRuleGroupId\\": 1012\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeRuleGroups', + ], + 'ModifyDefenseSceneConfig' => [ + 'summary' => '修改用户防护场景的配置', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '255326', + 'abilityTreeNodes' => [ + 'FEATUREwafNZKQ0J', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'title' => 'WAF实例的ID。'."\n" + ."\n" + .'> 您可以调用[DescribeInstance](~~433756~~)查询当前WAF实例的ID。', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-0xldbqt****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => 'WAF实例所属地域。取值:'."\n" + ."\n" + .'- **cn-hangzhou**:表示中国内地。'."\n" + ."\n" + .'- **ap-southeast-1**:表示非中国内地。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'title' => '阿里云资源组ID。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'DefenseScene', + 'in' => 'query', + 'schema' => [ + 'title' => '待修改防护配置的防护场景。取值:'."\n" + ."\n" + .'- **apisec**:表示API安全。', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'apisec', + ], + ], + [ + 'name' => 'ConfigKey', + 'in' => 'query', + 'schema' => [ + 'title' => '待修改配置项的配置名称。'."\n" + .'当防护场景 **DefenseScene** 为 **apisec** 时,取值:'."\n" + .'- **autoEnableStatus**:表示新增防护资源是否自动开启API安全核心检测。', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'autoEnableStatus', + ], + ], + [ + 'name' => 'ConfigValue', + 'in' => 'query', + 'schema' => [ + 'title' => '待修改配置项的取值。'."\n" + .'当配置项 **ConfigKey** 为 **autoEnableStatus** 时,取值为"true"、"false"。', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'true', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => '本次请求的ID。', + 'description' => '', + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D5EB0', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\"\\n}","type":"json"}]', + ], + 'DescribeDefenseSceneConfig' => [ + 'summary' => '查询用户防护场景的配置', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '255326', + 'abilityTreeNodes' => [ + 'FEATUREwafNZKQ0J', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'title' => 'WAF实例ID。'."\n" + ."\n" + .'> 您可以通过调用[DescribeInstance](~~433756~~)接口查看当前WAF实例ID。', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-cn-0xldbqtm005', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => 'WAF实例所属地域。取值:'."\n" + ."\n" + .'- **cn-hangzhou**:表示中国内地。'."\n" + ."\n" + .'- **ap-southeast-1**:表示非中国内地。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'title' => '阿里云资源组ID。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'DefenseScene', + 'in' => 'query', + 'schema' => [ + 'title' => '待查询防护配置的防护场景。更多信息,请参见[ModifyDefenseRule](~~ModifyDefenseRule~~)的 ** DefenseScene** 参数。'."\n" + ."\n", + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'apisec', + ], + ], + [ + 'name' => 'ConfigKey', + 'in' => 'query', + 'schema' => [ + 'title' => '待查询配置项的配置名称。更多信息,请参见[ModifyDefenseRule](~~ModifyDefenseRule~~)的 ** ConfigName** 参数。'."\n", + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'autoEnableStatus', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => '本次请求的ID。', + 'description' => '', + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D5EB0', + ], + 'ConfigValue' => [ + 'title' => '查询配置项对应的取值。更多信息,请参见[ModifyDefenseRule](~~ModifyDefenseRule~~)的 ** ConfigValue** 参数。'."\n", + 'description' => '', + 'type' => 'string', + 'example' => 'true', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\",\\n \\"ConfigValue\\": \\"true\\"\\n}","type":"json"}]', + ], + 'DescribeDefenseRuleStatistics' => [ + 'summary' => '查询防护规则的统计信息', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '248038', + 'abilityTreeNodes' => [ + 'FEATUREwafVZXFDE', + 'FEATUREwafCU29M8', + 'FEATUREwafWUANSU', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-cn-0xldbqt****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '239136', + ], + ], + [ + 'name' => 'PrimaryKey', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'enumValueTitles' => [ + 'riskLevel' => '', + 'detectType' => '', + 'action' => '', + 'scene' => '', + 'status' => '', + ], + 'example' => 'scene', + 'enum' => [ + 'action', + 'scene', + 'status', + 'type', + 'riskLevel', + 'detectType', + ], + ], + ], + [ + 'name' => 'SecondaryKey', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [ + 'riskLevel' => '', + 'detectType' => '', + 'action' => '', + 'type' => '', + 'scene' => '', + 'status' => '', + ], + 'example' => 'action', + 'enum' => [ + 'action', + 'scene', + 'status', + 'riskLevel', + 'detectType', + ], + ], + ], + [ + 'name' => 'ThirdKey', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [ + 'riskLevel' => '', + 'detectType' => '', + 'action' => '', + 'scene' => '', + 'status' => '', + ], + 'example' => 'status', + 'enum' => [ + 'action', + 'scene', + 'status', + 'riskLevel', + 'detectType', + ], + ], + ], + [ + 'name' => 'FourthKey', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [ + 'riskLevel' => '', + 'detectType' => '', + 'action' => '', + 'scene' => '', + 'status' => '', + ], + 'example' => 'riskLevel', + 'enum' => [ + 'action', + 'scene', + 'status', + 'riskLevel', + 'detectType', + ], + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D5EB0', + ], + 'StatisticsInfos' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'PrimaryValue' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'sytem', + ], + 'SecondaryValue' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'block', + ], + 'ThirdValue' => [ + 'description' => '', + 'type' => 'string', + 'example' => '1', + ], + 'FourthValue' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'action', + ], + 'Count' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '27', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\",\\n \\"StatisticsInfos\\": [\\n {\\n \\"PrimaryValue\\": \\"sytem\\",\\n \\"SecondaryValue\\": \\"block\\",\\n \\"ThirdValue\\": \\"1\\",\\n \\"FourthValue\\": \\"action\\",\\n \\"Count\\": 27\\n }\\n ]\\n}","type":"json"}]', + ], + 'DescribeBaseSystemRules' => [ + 'summary' => '查询基础防护系统规则集', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '245621', + 'abilityTreeNodes' => [ + 'FEATUREwaf1LM6V0', + 'FEATUREwafOVI09M', + 'FEATUREwafF105ZO', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '100', + 'default' => '20', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '113089', + ], + ], + [ + 'name' => 'RuleStatus', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'RuleAction', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'block', + ], + ], + [ + 'name' => 'Lang', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'zh', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'DetectType', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'sqli', + ], + ], + [ + 'name' => 'RiskLevel', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'loose', + ], + ], + [ + 'name' => 'RuleName', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'systemRuleTest', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '24354', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '80736FA5-FA87-55F6-AA69-C5477C6FE6D0', + ], + 'Rules' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RuleId' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '113089', + ], + 'UpdateTime' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1665460629000', + ], + 'RuleName' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'systemRuleTest', + ], + 'RuleStatus' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'Description' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'rule description', + ], + 'RuleAction' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'block', + ], + 'CveId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'CVE-2021-34538', + ], + 'RiskLevel' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'super_strict', + ], + 'DetectType' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'sqli', + ], + ], + ], + ], + 'TotalCount' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2', + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"80736FA5-FA87-55F6-AA69-C5477C6FE6D0\\",\\n \\"Rules\\": [\\n {\\n \\"RuleId\\": 113089,\\n \\"UpdateTime\\": 1665460629000,\\n \\"RuleName\\": \\"systemRuleTest\\",\\n \\"RuleStatus\\": 1,\\n \\"Description\\": \\"rule description\\",\\n \\"RuleAction\\": \\"block\\",\\n \\"CveId\\": \\"CVE-2021-34538\\",\\n \\"RiskLevel\\": \\"super_strict\\",\\n \\"DetectType\\": \\"sqli\\"\\n }\\n ],\\n \\"TotalCount\\": 2\\n}","type":"json"}]', + ], + 'DescribeCustomBaseRuleCompileResult' => [ + 'summary' => '查询自定义正则规则编译结果', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '228452', + 'abilityTreeNodes' => [ + 'FEATUREwaf1LM6V0', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '58FDF266-3D56-5DE8-91E0-96A26BAB****', + ], + 'Result' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'success', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"58FDF266-3D56-5DE8-91E0-96A26BAB****\\",\\n \\"Result\\": \\"success\\"\\n}","type":"json"}]', + ], + 'DescribeBotRuleLabels' => [ + 'summary' => '分页获取Bot管理规则标签信息', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106302', + 'abilityTreeNodes' => [ + 'FEATUREwafNZKQ0J', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-53y4******', + ], + ], + [ + 'name' => 'SubScene', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'app', + 'enum' => [ + 'web', + 'app', + ], + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LabelType', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'human_machine_challenge', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'AAAAAGBgV9tolsLfijC4wam2htS*****D/46H3X2wIS', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '200', + 'minimum' => '0', + 'exclusiveMinimum' => true, + 'example' => '20', + 'default' => '20', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19****5EB0', + ], + 'RuleLabels' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'LabelKey' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'malicious_crawler_python', + ], + 'SubScene' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'Web,app', + ], + 'BotBehavior' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'malicious', + ], + 'LabelType' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'human_machine_challenge', + ], + ], + ], + ], + 'NextToken' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'AAAAAGBgV9tolsLfijC4wam2htS*****D/46H3X2wIS', + ], + 'MaxResults' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '20', + ], + 'TotalCount' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '8', + ], + ], + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19****5EB0\\",\\n \\"RuleLabels\\": [\\n {\\n \\"LabelKey\\": \\"malicious_crawler_python\\",\\n \\"SubScene\\": \\"Web,app\\",\\n \\"BotBehavior\\": \\"malicious\\",\\n \\"LabelType\\": \\"human_machine_challenge\\"\\n }\\n ],\\n \\"NextToken\\": \\"AAAAAGBgV9tolsLfijC4wam2htS*****D/46H3X2wIS\\",\\n \\"MaxResults\\": 20,\\n \\"TotalCount\\": 8\\n}","type":"json"}]', + ], + 'DescribeBotAppKey' => [ + 'summary' => '分页查询防护模板', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafVZXFDE', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-5v23u******', + ], + ], + [ + 'name' => 'KeyVersion', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aek2uo27badl***', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '0C4ADFD4-5B7D-591D-A607-A45C*****', + ], + 'AppKey' => [ + 'description' => 'AppKey。', + 'type' => 'string', + 'example' => 'N1Kiv3AGZm******', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0C4ADFD4-5B7D-591D-A607-A45C*****\\",\\n \\"AppKey\\": \\"N1Kiv3AGZm******\\"\\n}","type":"json"}]', + ], + 'CreateMajorProtectionBlackIp' => [ + 'summary' => 'Creates an IP address blacklist for major event protection.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '124760', + 'abilityTreeNodes' => [ + 'FEATUREwaf2KYU04', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-2r42s6y****', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the IP address blacklist rule template for major event protection.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '2221', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the IP address blacklist rule for major event protection.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '232324', + ], + ], + [ + 'name' => 'IpList', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IP addresses that you want to add to the IP address blacklist. CIDR blocks and IP addresses are supported. IPv4 and IPv6 addresses are supported. Separate the CIDR blocks or IP addresses with commas (,). For more information, see [Protection for major events](~~425591~~).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '192.0.XX.XX,192.0.XX.XX/24', + ], + ], + [ + 'name' => 'ExpiredTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The timestamp after which the IP address blacklist becomes invalid. Unit: seconds.'."\n" + ."\n" + .'> If you set the parameter to **0**, the IP address blacklist is always valid.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1716528465', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'title' => '防护对象1domain 描述信息。', + 'description' => 'The description of the IP address blacklist.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Protection for major events', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D****', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D****\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateMajorProtectionBlackIpResponse>\\n <RequestId>D7861F61-5B61-46CE-A47C-6B19160D5EB0</RequestId>\\n</CreateMajorProtectionBlackIpResponse>","errorExample":""}]', + 'title' => 'CreateMajorProtectionBlackIp', + 'description' => 'This operation is available only on the China site (aliyun.com).'."\n", + ], + 'ModifyMajorProtectionBlackIp' => [ + 'summary' => 'Modifies an IP address blacklist for major event protection.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '124761', + 'abilityTreeNodes' => [ + 'FEATUREwaf2KYU04', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the IP address blacklist rule template for major event protection.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '5132', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the IP address blacklist rule for major event protection.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '20012033', + ], + ], + [ + 'name' => 'IpList', + 'in' => 'query', + 'schema' => [ + 'title' => '防护对象来源, custom:来自用户自定义 access: 来自接入', + 'description' => 'The IP addresses that you want to add to the IP address blacklist. You can specify multiple CIDR blocks or IP addresses. IPv4 and IPv6 addresses are supported. Separate the CIDR blocks or IP addresses with commas (,). For more information, see [Protection for major events](~~425591~~).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '12.XX.XX.2,3.XX.XX.3/24', + ], + ], + [ + 'name' => 'ExpiredTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time after which the IP address blacklist becomes invalid. Unit: seconds.'."\n" + ."\n" + .'> If you set this parameter to **0**, the blacklist is permanently valid.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1662603328', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'title' => '防护对象1domain 描述信息。', + 'description' => 'The description of the IP address blacklist.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The result of the request.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"66A98669-CC6E-4F3E-80A6-3014697B11AE\\"\\n}","type":"json"}]', + 'title' => 'ModifyMajorProtectionBlackIp', + ], + 'DeleteMajorProtectionBlackIp' => [ + 'summary' => 'Deletes an IP address blacklist for major event protection.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '124769', + 'abilityTreeNodes' => [ + 'FEATUREwaf2KYU04', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the IP address blacklist rule template for major event protection.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '5332', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the IP address blacklist rule for major event protection.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '20013135', + ], + ], + [ + 'name' => 'IpList', + 'in' => 'query', + 'schema' => [ + 'title' => '防护对象来源, custom:来自用户自定义 access: 来自接入', + 'description' => 'The IP address blacklist for major event protection that you want to delete. You can specify multiple CIDR blocks or IP addresses. IPv4 and IPv6 addresses are supported. Separate the CIDR blocks or IP addresses with commas (,). For more information, see [Protection for major events](~~425591~~).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '192.0.XX.XX,192.0.XX.XX/24'."\n", + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"66A98669-CC6E-4F3E-80A6-3014697B11AE\\"\\n}","type":"json"}]', + 'title' => 'DeleteMajorProtectionBlackIp', + ], + 'ClearMajorProtectionBlackIp' => [ + 'summary' => 'Clears an IP address blacklist for major event protection.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '124771', + 'abilityTreeNodes' => [ + 'FEATUREwaf2KYU04', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the IP address blacklist rule template for major event protection.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '5132', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the IP address blacklist rule for major event protection.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '20012033', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"66A98669-CC6E-4F3E-80A6-3014697B11AE\\"\\n}","type":"json"}]', + 'title' => 'ClearMajorProtectionBlackIp', + ], + 'DescribeMajorProtectionBlackIps' => [ + 'summary' => 'Queries IP addresses in an IP address blacklist for major event protection by page.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwaf2KYU04', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the rule template for major event protection.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '5673', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the IP address blacklist rule for major event protection.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '20013199', + ], + ], + [ + 'name' => 'IpLike', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IP address that you want to query. You can specify this parameter to query an IP address in the IP address blacklist for major event protection by using fuzzy matching.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '192.0.XX.XX', + ], + ], + [ + 'name' => 'OrderBy', + 'in' => 'query', + 'schema' => [ + 'description' => 'The method that you want to use to sort the IP addresses **in descending order**. Valid values:'."\n" + ."\n" + .'* **gmtModified:** sorts the IP addresses by most recent modification time.'."\n" + .'* **ip:** sorts the IP addresses by IP address.'."\n" + .'* **templateId:** sorts the IP addresses by template ID.'."\n" + .'* **id:** sorts the IP addresses by primary key.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'gmtModified', + ], + ], + [ + '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: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + 'default' => '20', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of IP addresses in the blacklist.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '63', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '41631674-EEB0-5B02-BEB4-40A758E9B841', + ], + 'IpList' => [ + 'description' => 'An array of IP addresses in the IP address blacklist.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the IP address in the IP address blacklist.'."\n", + 'type' => 'object', + 'properties' => [ + 'Description' => [ + 'description' => 'The description of the IP address in the blacklist.'."\n", + 'type' => 'string', + 'example' => 'test0003asdffas', + ], + 'Ip' => [ + 'description' => 'The IP address in the IP address blacklist.'."\n", + 'type' => 'string', + 'example' => '192.0.XX.XX', + ], + 'RuleId' => [ + 'description' => 'The ID of the IP address blacklist rule for major event protection.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '8508970', + ], + 'ExpiredTime' => [ + 'description' => 'The time after which the IP address blacklist becomes invalid. Unit: seconds.'."\n" + ."\n" + .'> If the value of this parameter is **0**, the blacklist is permanently valid.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1662603328', + ], + 'GmtModified' => [ + 'description' => 'The most recent time when the IP address blacklist was modified.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1665456202000', + ], + 'TemplateId' => [ + 'description' => 'The ID of the rule template for major event protection.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '9684', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 63,\\n \\"RequestId\\": \\"41631674-EEB0-5B02-BEB4-40A758E9B841\\",\\n \\"IpList\\": [\\n {\\n \\"Description\\": \\"test0003asdffas\\",\\n \\"Ip\\": \\"192.0.XX.XX\\",\\n \\"RuleId\\": 8508970,\\n \\"ExpiredTime\\": 1662603328,\\n \\"GmtModified\\": 1665456202000,\\n \\"TemplateId\\": 9684\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeMajorProtectionBlackIps', + ], + 'AddAddress' => [ + 'summary' => '地址簿添加地址', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '124760', + 'abilityTreeNodes' => [ + 'FEATUREwaf4TDPM4', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '12345678', + ], + ], + [ + 'name' => 'AddressList', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'XX.XX.XX.XX', + ], + 'required' => true, + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '2EFCFE18-78F8-5079-B312-07***48B', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Defense.Control.DefenseAddressInvalid', + 'errorMessage' => 'The address in the address book is illegal.', + ], + [ + 'errorCode' => 'Defense.Control.DefenseAddressOversize', + 'errorMessage' => 'The number of addresses in the address book exceeds the limit.', + ], + [ + 'errorCode' => 'Defense.Control.DefenseAddressOperationTooFrequent', + 'errorMessage' => 'Address book operations are too frequent.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2EFCFE18-78F8-5079-B312-07***48B\\"\\n}","type":"json"}]', + ], + 'DescribeAddresses' => [ + 'summary' => '分页查询地址簿IP', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwaf4TDPM4', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-cn-0xldbqt****', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '12345678', + ], + ], + [ + 'name' => 'AddressLike', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '1.2.3.3', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'AAAAAGBgV9tolsLfijC4wam2htS*****D/46H3X2wIS', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '20', + 'default' => '20', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm4gh****wela', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '8D8EBFB7-E1EB-5236-952A-092EDC72***', + ], + 'AddressList' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Address' => [ + 'description' => '', + 'type' => 'string', + 'example' => '1.1.1.1', + ], + 'RuleId' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '12345678', + ], + 'GmtModified' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1760408233000', + ], + ], + ], + ], + 'NextToken' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'AAAAAGBgV9tolsLfijC4wam2htS*****D/46H3X2wIS', + ], + 'MaxResults' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '20', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 10,\\n \\"RequestId\\": \\"8D8EBFB7-E1EB-5236-952A-092EDC72***\\",\\n \\"AddressList\\": [\\n {\\n \\"Address\\": \\"1.1.1.1\\",\\n \\"RuleId\\": 12345678,\\n \\"GmtModified\\": 1760408233000\\n }\\n ],\\n \\"NextToken\\": \\"AAAAAGBgV9tolsLfijC4wam2htS*****D/46H3X2wIS\\",\\n \\"MaxResults\\": 20\\n}","type":"json"}]', + ], + 'DeleteAddress' => [ + 'summary' => '地址簿添加地址', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '124760', + 'abilityTreeNodes' => [ + 'FEATUREwaf4TDPM4', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-wwo36****0i', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '12345678', + ], + ], + [ + 'name' => 'AddressList', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'XX.XX.XX.XX/32', + ], + 'required' => true, + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'C33EB3D5-AF96-43CA-9C7E-37A8****6A1E', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Defense.Control.DefenseAddressOversize', + 'errorMessage' => 'The number of addresses in the address book exceeds the limit.', + ], + [ + 'errorCode' => 'Defense.Control.DefenseAddressInvalid', + 'errorMessage' => 'The address in the address book is illegal.', + ], + [ + 'errorCode' => 'Defense.Control.DefenseAddressOperationTooFrequent', + 'errorMessage' => 'Address book operations are too frequent.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C33EB3D5-AF96-43CA-9C7E-37A8****6A1E\\"\\n}","type":"json"}]', + ], + 'ClearAddress' => [ + 'summary' => '地址簿清空所有地址', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '124760', + 'abilityTreeNodes' => [ + 'FEATUREwaf4TDPM4', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-7mz****hw0u', + ], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '12345678', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '276D7566-31C9-4192-9DD1-51B10D*****', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Defense.Control.DefenseAddressOperationTooFrequent', + 'errorMessage' => 'Address book operations are too frequent.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"276D7566-31C9-4192-9DD1-51B10D*****\\"\\n}","type":"json"}]', + ], + 'DeleteApisecAbnormals' => [ + 'summary' => 'Deletes multiple risks detected by the API security module at a time.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '229948', + 'abilityTreeNodes' => [ + 'FEATUREwafWE25G7', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-nwy*****', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'required' => false, + 'example' => '428', + ], + ], + [ + 'name' => 'AbnormalIds', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The risk IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The risk ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '4d4b1a5fe2100b86f629e2db63*****', + ], + 'required' => true, + 'maxItems' => 20, + 'minItems' => 1, + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '阿里云资源组ID。', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19****5EB0', + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19****5EB0\\"\\n}","type":"json"}]', + 'title' => 'DeleteApisecAbnormals', + ], + 'ModifyApisecAbnormals' => [ + 'summary' => 'Modifies the status of multiple risks detected by the API security module at a time.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '229991', + 'abilityTreeNodes' => [ + 'FEATUREwafWE25G7', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-****', + ], + ], + [ + 'name' => 'AbnormalIds', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The risk IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The risk ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a50b820efee0989df3b54b2089*****', + ], + 'required' => true, + 'maxItems' => 20, + 'minItems' => 1, + ], + ], + [ + 'name' => 'UserStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The risk status. Valid values:'."\n" + ."\n" + .'* **toBeConfirmed**'."\n" + .'* **confirmed**'."\n" + .'* **toBeFixed**'."\n" + .'* **fixed**'."\n" + .'* **ignored**'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'fixed', + ], + ], + [ + 'name' => 'Note', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'already fixed.', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + ."\n" + .'> This parameter is available only in hybrid cloud scenarios. You can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query hybrid cloud clusters.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '428', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C1823E96-EF4B-5BD2-9E02-1D18****3ED8', + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C1823E96-EF4B-5BD2-9E02-1D18****3ED8\\"\\n}","type":"json"}]', + 'title' => 'ModifyApisecAbnormals', + ], + 'DescribeApisecAssetTrend' => [ + 'summary' => 'Queries the asset trends in the API security module.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '215756', + 'abilityTreeNodes' => [ + 'FEATUREwaf71G1E8', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-ww**b06', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '590', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. Specify a UNIX timestamp in UTC. Unit: seconds.', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1668496310', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. Specify a UNIX timestamp in UTC. Unit: seconds.', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1683183599', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aek**7uq', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The response parameters.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the request.', + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19****5EB0', + ], + 'Data' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'AssetOffline' => [ + 'description' => 'The number of deactivated assets.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20', + ], + 'AssetCount' => [ + 'description' => 'The total number of assets.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '80', + ], + 'Timestamp' => [ + 'description' => 'The time for statistics. Specify a UNIX timestamp in UTC. Unit: seconds.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1683600042', + ], + 'AssetActive' => [ + 'description' => 'The number of active assets.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '60', + ], + ], + ], + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19****5EB0\\",\\n \\"Data\\": [\\n {\\n \\"AssetOffline\\": 20,\\n \\"AssetCount\\": 80,\\n \\"Timestamp\\": 1683600042,\\n \\"AssetActive\\": 60\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeApisecAssetTrend', + ], + 'DescribeApisecAbnormalDomainStatistic' => [ + 'summary' => 'Queries the statistics on domain names on which risks are detected by the API security module.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '215781', + 'abilityTreeNodes' => [ + 'FEATUREwaf71G1E8', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-45919n***', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'required' => false, + 'example' => '428', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. Specify a UNIX timestamp in UTC. Unit: seconds.', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1682571600', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. Specify a UNIX timestamp in UTC. Unit: seconds.', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1687313820', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'minimum' => '1', + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **5**.', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '50', + 'minimum' => '1', + 'example' => '5', + 'default' => '5', + ], + ], + [ + 'name' => 'OrderWay', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sorting order. Valid values:'."\n" + ."\n" + .'- **asc**: ascending order.'."\n" + .'- **desc**: descending order.', + 'type' => 'string', + 'required' => false, + 'example' => 'desc', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The response parameters.', + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the request.', + 'type' => 'string', + 'example' => '66A98669-CC6E-4F3E-80A6-3014***B11AE', + ], + 'Data' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'High' => [ + 'description' => 'The number of high-level risks.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '12', + ], + 'ApiCount' => [ + 'description' => 'The number of APIs.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'Low' => [ + 'description' => 'The number of low-level risks.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '4', + ], + 'Medium' => [ + 'description' => 'The number of medium-level risks.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '9', + ], + 'Domain' => [ + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'example' => 'ba.aliyun.com', + ], + ], + ], + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"66A98669-CC6E-4F3E-80A6-3014***B11AE\\",\\n \\"Data\\": [\\n {\\n \\"High\\": 12,\\n \\"ApiCount\\": 10,\\n \\"Low\\": 4,\\n \\"Medium\\": 9,\\n \\"Domain\\": \\"ba.aliyun.com\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeApisecAbnormalDomainStatistic', + ], + 'DescribeApisecEventDomainStatistic' => [ + 'summary' => 'Queries the statistics on domain names on which security events are detected by the API security module.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '215784', + 'abilityTreeNodes' => [ + 'FEATUREwafDX9EQ6', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-cn-0xldbqt****', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'required' => false, + 'example' => '428', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. Specify a UNIX timestamp in UTC. Unit: seconds.', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1668496310', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. Specify a UNIX timestamp in UTC. Unit: seconds.', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1686895256', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'minimum' => '1', + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **5**.', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '50', + 'minimum' => '1', + 'example' => '5', + 'default' => '5', + ], + ], + [ + 'name' => 'OrderWay', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sorting order. Valid values:'."\n" + ."\n" + .'- **asc**: ascending order.'."\n" + .'- **desc**: descending order.', + 'type' => 'string', + 'required' => false, + 'example' => 'desc', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfmvyknl****fa', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The response parameters.', + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'Id of the request.', + 'type' => 'string', + 'example' => '66A98669-*******-80A6-3014697B11AE', + ], + 'Data' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'High' => [ + 'description' => 'The number of high-risk security events.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'ApiCount' => [ + 'description' => 'The number of APIs.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'Low' => [ + 'description' => 'The number of low-risk security events.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2', + ], + 'Medium' => [ + 'description' => 'The number of medium-risk security events.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '6', + ], + 'Domain' => [ + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'example' => 'a.aliyun.com', + ], + ], + ], + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 10,\\n \\"RequestId\\": \\"66A98669-*******-80A6-3014697B11AE\\",\\n \\"Data\\": [\\n {\\n \\"High\\": 10,\\n \\"ApiCount\\": 10,\\n \\"Low\\": 2,\\n \\"Medium\\": 6,\\n \\"Domain\\": \\"a.aliyun.com\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeApisecEventDomainStatistic', + ], + 'DescribeApisecSensitiveDomainStatistic' => [ + 'summary' => 'Queries the statistics on domain names on which sensitive data is detected by the API security module.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '215787', + 'abilityTreeNodes' => [ + 'FEATUREwaf71G1E8', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstanceInfo](~~140857~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '428', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. Specify a UNIX timestamp in UTC. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1668496310', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. Specify a UNIX timestamp in UTC. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1686895256', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'minimum' => '1', + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **5**.', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '50', + 'minimum' => '1', + 'example' => '5', + 'default' => '5', + ], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sensitive data type. Valid values:'."\n" + ."\n" + .'- **request**: sensitive data in requests.'."\n" + .'- **response**: sensitive data in responses.', + 'type' => 'string', + 'required' => false, + 'example' => 'request', + ], + ], + [ + 'name' => 'OrderWay', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sorting order. Valid values:'."\n" + ."\n" + .'- **asc**: ascending order.'."\n" + .'- **desc**: descending order.', + 'type' => 'string', + 'required' => false, + 'example' => 'desc', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The response parameters.', + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '27', + ], + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.', + 'type' => 'string', + 'example' => '56B40D30-4960-4F19-B7D5-2B1F***6CB70', + ], + 'Data' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'SensitiveLevel' => [ + 'description' => 'The sensitivity level of the sensitive data.Valid values:'."\n" + ."\n" + .'* **S1**: low sensitivity.'."\n" + .'* **S2**: moderate sensitivity.'."\n" + .'* **S3**: high sensitivity.', + 'type' => 'string', + 'example' => 'L3', + ], + 'ApiCount' => [ + 'description' => 'The number of APIs that are involved.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'SensitiveCode' => [ + 'description' => 'The code of the sensitive data.'."\n" + .'> You can call the [DescribeApisecRules](~~2859155~~) operation to query the supported sensitive data types.', + 'type' => 'string', + 'example' => '10', + ], + 'SensitiveName' => [ + 'description' => 'The name of the sensitive data.'."\n", + 'type' => 'string', + 'example' => '1002', + ], + 'DomainCount' => [ + 'description' => 'The number of sites that are involved.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + ], + ], + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 27,\\n \\"RequestId\\": \\"56B40D30-4960-4F19-B7D5-2B1F***6CB70\\",\\n \\"Data\\": [\\n {\\n \\"SensitiveLevel\\": \\"S3\\",\\n \\"ApiCount\\": 10,\\n \\"SensitiveCode\\": \\"10\\",\\n \\"SensitiveName\\": \\"自定义敏感类型。\\",\\n \\"DomainCount\\": 10\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeApisecSensitiveDomainStatistic', + ], + 'ModifyApisecEvents' => [ + 'summary' => 'Modifies the status of multiple security events detected by the API security module at a time.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '230005', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_***', + 'title' => 'WAF实例的ID。'."\n" + ."\n" + .'> 您可以调用[DescribeInstance](~~433756~~)获取当前WAF实例的ID。', + ], + ], + [ + 'name' => 'EventIds', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The IDs of the security events.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the security event.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '7298c9f5b137c83****', + 'title' => 'API安全事件id列表。', + ], + 'required' => true, + 'maxItems' => 20, + 'minItems' => 1, + 'title' => 'API安全事件id列表。', + ], + ], + [ + 'name' => 'UserStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the event. Valid values:'."\n" + ."\n" + .'* **toBeConfirmed**'."\n" + .'* **confirmed**'."\n" + .'* **ignored**'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'confirmed', + 'title' => '事件状态。取值:'."\n" + ."\n" + .'- **toBeConfirmed**:表示待确认。'."\n" + .'- **confirmed**:表示已确认。'."\n" + .'- **actioned**:表示已处置。'."\n" + .'- **ignored**:表示忽略。', + ], + ], + [ + 'name' => 'Note', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'already confirmed.', + 'title' => '备注。', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'required' => false, + 'example' => '428', + 'title' => '混合云集群 ID。'."\n" + .'> 只针对混合云场景,您可以调用[DescribeHybridCloudClusters](~~2849376~~)获取混合云集群信息。', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + 'title' => 'WAF实例所属地域。取值:'."\n" + ."\n" + .'- **cn-hangzhou**:表示中国内地。'."\n" + ."\n" + .'- **ap-southeast-1**:表示非中国内地。', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '阿里云资源组ID。', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + 'title' => '阿里云资源组ID。', + ], + ], + [ + 'name' => 'EventScope', + 'in' => 'query', + 'schema' => [ + 'title' => ' 安全事件的维度。取值:'."\n" + .'- **ip**(默认):表示IP安全事件。'."\n" + .'- **account**:表示账号安全事件。', + 'type' => 'string', + 'example' => 'ip', + 'default' => 'ip', + 'enum' => [ + 'ip', + 'account', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-****-6B19160D5EB0', + 'title' => '请求ID。', + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-****-6B19160D5EB0\\"\\n}","type":"json"}]', + 'title' => 'ModifyApisecEvents', + ], + 'DeleteApisecEvents' => [ + 'summary' => 'Deletes multiple security events detected by the API security module at a time.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '230004', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-g4t*****', + 'title' => 'WAF实例的ID。'."\n" + .'> 您可以调用[DescribeInstance](~~433756~~),查看当前WAF实例的ID。', + ], + ], + [ + 'name' => 'EventIds', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The IDs of the security events.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the security event.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'eb370fb29781f75c07cabd5b2*****', + 'title' => 'API安全事件id列表。', + ], + 'required' => true, + 'maxItems' => 20, + 'minItems' => 1, + 'title' => 'API安全事件id列表。', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'required' => false, + 'example' => '428', + 'title' => '混合云集群 ID。'."\n" + .'> 只针对混合云场景,您可以调用[DescribeHybridCloudClusters](~~2849376~~)获取混合云集群信息。', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + 'title' => 'WAF实例所属地域。取值:'."\n" + ."\n" + .'- **cn-hangzhou**:表示中国内地。'."\n" + ."\n" + .'- **ap-southeast-1**:表示非中国内地。', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '阿里云资源组ID。', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + 'title' => '阿里云资源组ID。', + ], + ], + [ + 'name' => 'EventScope', + 'in' => 'query', + 'schema' => [ + 'title' => '安全事件维度。取值:'."\n" + ."\n" + .'- **ip**:表示IP维度安全事件。'."\n" + ."\n" + .'- **account**:表示账号维度安全事件。', + 'type' => 'string', + 'example' => 'ip', + 'default' => 'ip', + 'enum' => [ + 'ip', + 'account', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19****5EB0', + 'title' => '请求ID。', + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19****5EB0\\"\\n}","type":"json"}]', + 'title' => 'DeleteApisecEvents', + ], + 'ModifyApisecLogDeliveryStatus' => [ + 'summary' => 'Modifies the status of API security log subscription.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '225244', + 'abilityTreeNodes' => [ + 'FEATUREwafJYSA2F', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3_public_cn-uqm2z****0a', + ], + ], + [ + 'name' => 'AssertKey', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the log subscription. Valid values:'."\n" + ."\n" + .'* **risk**: risk information.'."\n" + .'* **event**: attack event information.'."\n" + .'* **asset**: asset information.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'risk', + ], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of API security log subscription. Valid values:'."\n" + ."\n" + .'* **true**: enabled.'."\n" + .'* **false**: disabled.'."\n", + 'type' => 'boolean', + 'required' => true, + 'example' => 'true', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'F35F45B0-5D6B-4238-BE02-A62D****E840', + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F35F45B0-5D6B-4238-BE02-A62D****E840\\"\\n}","type":"json"}]', + 'title' => 'ModifyApisecLogDeliveryStatus', + ], + 'CreateApiExport' => [ + 'summary' => 'Creates a data export task in the API security module.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '156330', + 'abilityTreeNodes' => [ + 'FEATUREwaf71G1E8', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-zxu3***', + ], + ], + [ + 'name' => 'Region', + 'in' => 'query', + 'schema' => [ + 'description' => 'Language type. Valid values:'."\n" + .'- **cn**: Chinese.'."\n" + .'- **en**: English.', + 'type' => 'string', + 'required' => false, + 'example' => 'cn', + 'default' => 'cn', + ], + ], + [ + 'name' => 'ZoneId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the time zone.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Asia/Shanghai', + ], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the data export task. Valid values:'."\n" + ."\n" + .'* **apisec_api**: API tasks'."\n" + .'* **apisec_abnormal**: API risk tasks'."\n" + .'* **apisec_event**: API security event tasks'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'apisec_api', + 'default' => 'apisec_api', + ], + ], + [ + 'name' => 'Param', + 'in' => 'query', + 'schema' => [ + 'description' => 'The extended parameters of the data export task. The parameter value is in the JSON format. The following keys are supported:'."\n" + ."\n" + .'* **instanceId**: the instance ID'."\n" + .'* **clusterId**: the ID of the hybrid cloud cluster'."\n" + .'* **orderKey**: the name of the field used to sort exported data'."\n" + .'* **orderWay**: the sorting method of the exported data'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{'."\n" + .' "orderWay": "asc",'."\n" + .' "orderKey": "endTs",'."\n" + .' "instanceId": "waf_v3prepaid_public_cn-****"'."\n" + .'}', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'required' => false, + 'example' => '993', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the Web Application Firewall (WAF) instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '62382992-F9AA-52B2-9147-66B3B9E51D74', + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"62382992-F9AA-52B2-9147-66B3B9E51D74\\"\\n}","type":"json"}]', + 'title' => 'CreateApiExport', + ], + 'DescribeApiExports' => [ + 'summary' => 'Queries the list of data export tasks in the API security module.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '156331', + 'abilityTreeNodes' => [ + 'FEATUREwaf71G1E8', + ], + ], + 'parameters' => [ + [ + 'name' => 'Lang', + 'in' => 'query', + 'schema' => [ + 'description' => 'Language type. Valid values:'."\n" + ."\n" + .'- **cn**: Chinese.'."\n" + .'- **en**: English.', + 'type' => 'string', + 'required' => false, + 'example' => 'zh', + 'title' => '废弃字段,无实际含义。', + 'deprecated' => true, + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries to return on each page. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '200', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-p****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the Web Application Firewall (WAF) instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.', + 'type' => 'string', + 'example' => 'D9532525-E885-54E7-A178-D5554D563AFB', + ], + 'ApiExports' => [ + 'description' => 'The returned data export tasks.', + 'type' => 'array', + 'items' => [ + 'description' => 'The returned data export task.', + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => 'The status of the data export task. Valid values:'."\n" + ."\n" + .'* **expired**: The file is expired.'."\n" + ."\n" + .'* **exporting**: Data is being exported.'."\n" + ."\n" + .'* **completed**: Data is exported.', + 'type' => 'string', + 'example' => 'completed', + ], + 'FileUrl' => [ + 'description' => 'The download URL of the exported file.', + 'type' => 'string', + 'example' => 'https://waf-api-sec-cn.***.aliyuncs.com/file_1610954145***.csv', + ], + 'Type' => [ + 'description' => 'The type of the data export task. Valid values:'."\n" + ."\n" + .'* **apisec_api**: API tasks'."\n" + ."\n" + .'* **apisec_abnormal**: API risk tasks'."\n" + ."\n" + .'* **apisec_event**: API security event tasks', + 'type' => 'string', + 'example' => 'apisec_api', + ], + 'Format' => [ + 'description' => 'The format of the exported file.', + 'type' => 'string', + 'example' => 'CSV', + ], + 'FileName' => [ + 'description' => 'The name of the file.', + 'type' => 'string', + 'example' => 'file_16109541456445334c0f01d9a7444e0e908***.csv', + ], + 'CreateTime' => [ + 'description' => 'The time when the data export task was created. The value is a UNIX timestamp displayed in UTC. Unit: seconds.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1725604852', + ], + ], + ], + ], + 'Total' => [ + 'description' => 'The status of the data export task. Valid values:'."\n" + ."\n" + .'* **expired**: The file is expired.'."\n" + .'* **exporting**: Data is being exported.'."\n" + .'* **completed**: Data is exported.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '7', + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D9532525-E885-54E7-A178-D5554D563AFB\\",\\n \\"ApiExports\\": [\\n {\\n \\"Status\\": \\"completed\\",\\n \\"FileUrl\\": \\"https://waf-api-sec-cn.***.aliyuncs.com/file_1610954145***.csv\\",\\n \\"Type\\": \\"apisec_api\\",\\n \\"Format\\": \\"CSV\\",\\n \\"FileName\\": \\"file_16109541456445334c0f01d9a7444e0e908***.csv\\",\\n \\"CreateTime\\": 1725604852\\n }\\n ],\\n \\"Total\\": 7\\n}","type":"json"}]', + 'title' => 'DescribeApiExports', + ], + 'DescribeApisecAbnormals' => [ + 'summary' => 'Queries the list of API security risks.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '168999', + 'abilityTreeNodes' => [ + 'FEATUREwafWE25G7', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-z***9g301', + ], + ], + [ + 'name' => 'ApiId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the risk-related API.', + 'type' => 'string', + 'required' => false, + 'example' => 'bd9efb8ad******d9ca6', + ], + ], + [ + 'name' => 'ApiFormat', + 'in' => 'query', + 'schema' => [ + 'description' => 'The risk-related API.', + 'type' => 'string', + 'required' => false, + 'example' => '/api/users/login', + ], + ], + [ + 'name' => 'MatchedHost', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name or IP address of the API.', + 'type' => 'string', + 'required' => false, + 'example' => 'a.aliyun.com', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. The value is a UNIX timestamp displayed in UTC. Unit: seconds.', + 'type' => 'string', + 'required' => false, + 'example' => '1684252800', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. The value is a UNIX timestamp displayed in UTC. Unit: seconds.', + 'type' => 'string', + 'required' => false, + 'example' => '1684382100', + ], + ], + [ + 'name' => 'OrderKey', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the sorting field. Valid values:'."\n" + ."\n" + .'* **discoverTime** (default): indicates the time when a risk was first detected.'."\n" + .'* **abnormalLevel**: indicates the level of a risk.'."\n" + .'* **latestDiscoverTime**: indicates the time when a risk was last detected.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'allCnt', + ], + ], + [ + 'name' => 'OrderWay', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sorting method. Valid values:'."\n" + ."\n" + .'* **desc (default)**: in descending order'."\n" + .'* **asc**: in ascending order', + 'type' => 'string', + 'required' => false, + 'example' => 'desc', + ], + ], + [ + 'name' => 'AbnormalLevel', + 'in' => 'query', + 'schema' => [ + 'description' => 'The level of the risk. Valid values:'."\n" + ."\n" + .'* **high**'."\n" + .'* **medium**'."\n" + .'* **low**', + 'type' => 'string', + 'required' => false, + 'example' => 'medium', + ], + ], + [ + 'name' => 'AbnormalTag', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the risk.'."\n" + ."\n" + .'> You can call the [DescribeApisecRules](~~2859155~~) operation to query the supported types of risks.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'LackOfSpeedLimit', + ], + ], + [ + 'name' => 'AbnormalId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the risk.', + 'type' => 'string', + 'required' => false, + 'example' => '29c6401****99a2bad3943e26d8', + ], + ], + [ + 'name' => 'UserStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the risk. Valid values:'."\n" + ."\n" + .'* **toBeConfirmed**'."\n" + .'* **confirmed**'."\n" + .'* **toBeFixed**'."\n" + .'* **fixed**'."\n" + .'* **ignored**', + 'type' => 'string', + 'required' => false, + 'example' => 'Confirmed', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '2', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '200', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'Origin', + 'in' => 'query', + 'schema' => [ + 'description' => 'The source of the risk type. Valid values:'."\n" + ."\n" + .'* **custom**'."\n" + .'* **default**', + 'type' => 'string', + 'required' => false, + 'example' => 'custom', + ], + ], + [ + 'name' => 'ApiTag', + 'in' => 'query', + 'schema' => [ + 'description' => 'The business purpose of the API.'."\n" + ."\n" + .'> You can call the [DescribeApisecRules](~~2859155~~) operation to query the business purposes of APIs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'RegisterAPI', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + ."\n" + .'> This parameter is available only in hybrid cloud scenarios. You can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query hybrid cloud clusters.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '546', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-qingdao', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of entries returned.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '35', + ], + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.', + 'type' => 'string', + 'example' => '9469646C-F2CC-5F0F-8401-C53***4F46', + ], + 'Data' => [ + 'description' => 'The risks.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The risk.'."\n", + 'type' => 'object', + 'properties' => [ + 'AbnormalId' => [ + 'description' => 'The ID of the risk.'."\n", + 'type' => 'string', + 'example' => '7c1431f27ae7e9c8cc64095***68e', + ], + 'Origin' => [ + 'description' => 'The source of the risk type. Valid values:'."\n" + ."\n" + .'* **custom**'."\n" + .'* **default**', + 'type' => 'string', + 'example' => 'custom', + ], + 'LastestTime' => [ + 'description' => 'The time at which the API was last accessed. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1684252800', + ], + 'FirstTime' => [ + 'description' => 'The time at which the API was first detected. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1701138088', + ], + 'AbnromalStatus' => [ + 'description' => 'The status of the risk.', + 'type' => 'string', + 'example' => 'unresolved', + ], + 'ApiFormat' => [ + 'description' => 'The risk-related API.', + 'type' => 'string', + 'example' => '/api/login', + ], + 'ApiTag' => [ + 'description' => 'The business purpose of the API.'."\n" + ."\n" + .'> You can call the [DescribeApisecRules](~~2859155~~) operation to query the business purposes of APIs.'."\n", + 'type' => 'string', + 'example' => 'SendMail', + ], + 'DiscoverTime' => [ + 'description' => 'The time at which the risk was first detected. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1684252800', + ], + 'UserStatus' => [ + 'description' => 'The status of the risk. Valid values:'."\n" + ."\n" + .'* **toBeConfirmed**'."\n" + .'* **confirmed**'."\n" + .'* **toBeFixed**'."\n" + .'* **fixed**'."\n" + .'* **ignored**', + 'type' => 'string', + 'example' => 'Confirmed', + ], + 'IgnoreTime' => [ + 'description' => 'The time at which the risk was marked as ignored. The value is a UNIX timestamp displayed in UTC. Unit: seconds.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1684252800', + ], + 'Follow' => [ + 'description' => 'Indicates whether the API is followed. Valid values:'."\n" + ."\n" + .'* **1**: yes'."\n" + .'* **0**(default): no', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'MatchedHost' => [ + 'description' => 'The domain name or IP address of the API.', + 'type' => 'string', + 'example' => 'a.aliyun.com', + ], + 'Note' => [ + 'description' => 'The remarks.', + 'type' => 'string', + 'example' => 'Business side notified', + ], + 'AbnormalEventNumber' => [ + 'description' => 'The number of risk-related security events.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2', + ], + 'AbnormalTag' => [ + 'description' => 'The type of the risk.'."\n" + ."\n" + .'> You can call the [DescribeApisecRules](~~2859155~~) operation to query the supported types of risks.'."\n", + 'type' => 'string', + 'example' => 'LackOfSpeedLimit', + ], + 'AbnormalInfo' => [ + 'description' => 'The details of the risk. The value is a string that consists of multiple parameters in the JSON format. Valid values:'."\n" + ."\n" + .'* **rule**: risk-related rule'."\n" + .'* **data_type**: sensitive data type'."\n" + .'* **custom_rule_name**: custom rule name'."\n" + .'* **rule_name**: built-in rule name', + 'type' => 'string', + 'example' => '{ "data_type": ["1005","1004"], "rule": { "parent": "RiskType_Permission", "code": "Risk_UnauthSensitive", "level": "high", "origin": "default", "name": "Risk_UnauthSensitive" } }', + ], + 'ApiId' => [ + 'description' => 'The ID of the risk-related API.', + 'type' => 'string', + 'example' => '09559c0d71ca2ffc996b81***836d8', + ], + 'AbnormalLevel' => [ + 'description' => 'The level of the risk. Valid values:'."\n" + ."\n" + .'* **high**'."\n" + .'* **medium**'."\n" + .'* **low**', + 'type' => 'string', + 'example' => 'high', + ], + 'LatestDiscoverTime' => [ + 'description' => 'The time at which the risk was last detected. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1684252800', + ], + 'Examples' => [ + 'description' => 'The risk-related samples.', + 'type' => 'array', + 'items' => [ + 'description' => 'The risk-related sample. The value is a string that consists of multiple parameters in the JSON format. Valid values:'."\n" + ."\n" + .'* **param_num**: number of API parameters'."\n" + .'* **request_method**: request method'."\n" + .'* **protocol**: request protocol'."\n" + .'* **api_url**: request URL'."\n" + .'* **poc_payload**: request'."\n" + .'* **request**: sample request'."\n" + .'* **response**: sample response'."\n" + .'* **param**: the request parameters', + 'type' => 'string', + 'example' => '{ "request": {"referer": "-","content_type": "-","cookie": "-","method": "GET","param": [],"host": "test.cn"}, "protocol": "https", "api_url": "https://test.cn:443/index.php", "param": [], "response": {"param": [], "sensitive_type": {}, "header": {},"body": "", "status": 405 }, "request_method": "GET", "poc_payload": "curl -X GET -H \'Accept: */*\' -H \'Connection: keep-alive\' -H \'User-agent: python-requests/2.32.3\' -H \'X-forwarded-for: {{IPv6 Address}}\' -H \'Host: test.cn\' -H \'Accept-encoding: gzip, deflate\' \'https://test.cn:443/index.php\'", "param_num": 0 }', + ], + 'title' => '废弃字段,无实际含义。', + 'deprecated' => true, + ], + ], + ], + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 5,\\n \\"RequestId\\": \\"9469646C-F2CC-5F0F-8401-C53***4F46\\",\\n \\"Data\\": [\\n {\\n \\"AbnormalId\\": \\"7c1431f27ae7e9c8cc64095***68e\\",\\n \\"Origin\\": \\"custom\\",\\n \\"LastestTime\\": 1684252800,\\n \\"FirstTime\\": 1701138088,\\n \\"AbnromalStatus\\": \\"unresolved\\",\\n \\"ApiFormat\\": \\"/api/login\\",\\n \\"ApiTag\\": \\"SendMail\\",\\n \\"DiscoverTime\\": 1684252800,\\n \\"UserStatus\\": \\"Confirmed\\",\\n \\"IgnoreTime\\": 1684252800,\\n \\"Follow\\": 0,\\n \\"MatchedHost\\": \\"a.aliyun.com\\",\\n \\"Note\\": \\"已通知业务\\",\\n \\"AbnormalEventNumber\\": 2,\\n \\"AbnormalTag\\": \\"LackOfSpeedLimit\\",\\n \\"AbnormalInfo\\": \\"{\\\\n \\\\\\"data_type\\\\\\": [\\\\\\"1005\\\\\\",\\\\\\"1004\\\\\\"],\\\\n \\\\\\"rule\\\\\\": {\\\\n \\\\\\"parent\\\\\\": \\\\\\"RiskType_Permission\\\\\\",\\\\n \\\\\\"code\\\\\\": \\\\\\"Risk_UnauthSensitive\\\\\\",\\\\n \\\\\\"level\\\\\\": \\\\\\"high\\\\\\",\\\\n \\\\\\"origin\\\\\\": \\\\\\"default\\\\\\",\\\\n \\\\\\"name\\\\\\": \\\\\\"Risk_UnauthSensitive\\\\\\"\\\\n }\\\\n}\\",\\n \\"ApiId\\": \\"09559c0d71ca2ffc996b81***836d8\\",\\n \\"AbnormalLevel\\": \\"high\\",\\n \\"LatestDiscoverTime\\": 1684252800,\\n \\"Examples\\": [\\n \\"{\\\\n \\\\\\"request\\\\\\": {\\\\\\"referer\\\\\\": \\\\\\"-\\\\\\",\\\\\\"content_type\\\\\\": \\\\\\"-\\\\\\",\\\\\\"cookie\\\\\\": \\\\\\"-\\\\\\",\\\\\\"method\\\\\\": \\\\\\"GET\\\\\\",\\\\\\"param\\\\\\": [],\\\\\\"host\\\\\\": \\\\\\"test.cn\\\\\\"},\\\\n \\\\\\"protocol\\\\\\": \\\\\\"https\\\\\\",\\\\n \\\\\\"api_url\\\\\\": \\\\\\"https://test.cn:443/index.php\\\\\\",\\\\n \\\\\\"param\\\\\\": [],\\\\n \\\\\\"response\\\\\\": {\\\\\\"param\\\\\\": [], \\\\\\"sensitive_type\\\\\\": {}, \\\\\\"header\\\\\\": {},\\\\\\"body\\\\\\": \\\\\\"\\\\\\", \\\\\\"status\\\\\\": 405 },\\\\n \\\\\\"request_method\\\\\\": \\\\\\"GET\\\\\\",\\\\n \\\\\\"poc_payload\\\\\\": \\\\\\"curl -X GET -H \'Accept: */*\' -H \'Connection: keep-alive\' -H \'User-agent: python-requests/2.32.3\' -H \'X-forwarded-for: {{IPv6 Address}}\' -H \'Host: test.cn\' -H \'Accept-encoding: gzip, deflate\' \'https://test.cn:443/index.php\'\\\\\\",\\\\n \\\\\\"param_num\\\\\\": 0\\\\n}\\"\\n ]\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeApisecAbnormals', + ], + 'DescribeApisecApiResources' => [ + 'summary' => 'Queries API assets in the API security module.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '168967', + 'abilityTreeNodes' => [ + 'FEATUREwaf71G1E8', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-u***gr20j', + 'title' => 'WAF实例的ID。'."\n" + ."\n" + .'> 您可以调用[DescribeInstance](~~433756~~)获取当前WAF实例的ID。', + ], + ], + [ + 'name' => 'ApiId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the API.', + 'type' => 'string', + 'required' => false, + 'example' => '867ade***24ee6e205b8da82b8f84', + 'title' => 'API的ID。', + ], + ], + [ + 'name' => 'ApiFormat', + 'in' => 'query', + 'schema' => [ + 'description' => 'The API.', + 'type' => 'string', + 'required' => false, + 'example' => '/auth/login', + 'title' => 'API接口。', + ], + ], + [ + 'name' => 'MatchedHost', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name or IP address of the API.', + 'type' => 'string', + 'required' => false, + 'example' => 'a.aliyun.com', + 'title' => 'API接口所属的域名或IP。', + ], + ], + [ + 'name' => 'SensitiveType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sensitive data type in the response.'."\n" + ."\n" + .'> You can call the [DescribeApisecRules](~~2859155~~) operation to query the supported sensitive data types.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1004', + 'title' => '响应敏感数据类型。'."\n" + .'> 您可以调用[DescribeApisecRules](~~2859155~~)获取支持的敏感数据类型。', + ], + ], + [ + 'name' => 'ApiStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The API status. Valid values:'."\n" + ."\n" + .'* **NewbornInterface**: The API is newly added.'."\n" + .'* **OfflineInterface**: The API is inactive.'."\n" + .'* **normal**: The API is normal.', + 'type' => 'string', + 'required' => false, + 'example' => 'OfflineInterface', + 'title' => 'API的状态。取值:'."\n" + .'- **NewbornInterface**:表示新增。'."\n" + .'- **OfflineInterface**:表示失活。'."\n" + .'- **normal**:表示正常。', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. This value is a UNIX timestamp in UTC. Unit: seconds.', + 'type' => 'string', + 'required' => false, + 'example' => '1681833600', + 'title' => '查询的开始时间,格式为Unix时间戳(UTC时间),单位为秒。', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. This value is a UNIX timestamp in UTC. Unit: seconds.', + 'type' => 'string', + 'required' => false, + 'example' => '1683388800', + 'title' => '查询的结束时间,格式为Unix时间戳(UTC时间),单位为秒。', + ], + ], + [ + 'name' => 'OrderKey', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the sorting field. Valid values:'."\n" + ."\n" + .'* **allCnt**: the total number of calls to the API in the previous 30 days'."\n" + .'* **botCnt**: the number of bot-initiated requests in the previous 30 days'."\n" + .'* **crossBorderCnt**: the number of cross-border requests in the previous 30 days'."\n" + .'* **abnormalNum**: the number of API-related risks'."\n" + .'* **eventNum**: the number of API-related security events'."\n" + .'* **farthestTs**: the time when the API was first detected'."\n" + .'* **lastestTs**: the time of the most recent access to the API', + 'type' => 'string', + 'required' => false, + 'example' => 'allCnt', + 'title' => '排序字段的名称。取值:'."\n" + .'- **allCnt**:表示近30天总访问量。'."\n" + .'- **botCnt**:表示近30天机器访问量。'."\n" + .'- **crossBorderCnt**:表示近30天跨境访问量。'."\n" + .'- **abnormalNum**:表示API关联风险数量。'."\n" + .'- **eventNum**:表示API关联事件数量。'."\n" + .'- **farthestTs**:表示首次发现时间。'."\n" + .'- **lastestTs**:表示最近访问时间。', + ], + ], + [ + 'name' => 'OrderWay', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sorting method. Valid values:'."\n" + ."\n" + .'* **desc** (default): descending order'."\n" + .'* **asc**: ascending order', + 'type' => 'string', + 'required' => false, + 'example' => 'desc', + 'title' => '排序的方式。取值:'."\n" + .'- **desc**:表示降序(默认)。'."\n" + .'- **asc**:表示升序。', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + 'default' => '1', + 'title' => '分页查询时,返回第几页数据。默认值为**1**,表示返回第1页数据。', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '200', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + 'title' => '分页查询时,每页包含多少条结果。默认值为**10**,表示每页包含10条结果。', + ], + ], + [ + 'name' => 'Follow', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to follow the API. Valid values:'."\n" + ."\n" + .'* **1**: follows the API.'."\n" + .'* **0**: does not follow the API.', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '0', + 'title' => '是否关注。取值:'."\n" + .'- **1**:表示关注。'."\n" + .'- **0**:表示未关注。', + ], + ], + [ + 'name' => 'ApiType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The service object. Valid values:'."\n" + ."\n" + .'* **PublicAPI**: public services'."\n" + .'* **ThirdpartAPI**: cooperation with third-party partners'."\n" + .'* **InternalAPI**: internal office', + 'type' => 'string', + 'required' => false, + 'example' => 'innerAPI', + 'title' => '服务对象。取值:'."\n" + .'- **PublicAPI**:表示公共服务。'."\n" + .'- **ThirdpartAPI**:表示三方合作。'."\n" + .'- **InternalAPI**:表示内部办公。', + ], + ], + [ + 'name' => 'ApiTag', + 'in' => 'query', + 'schema' => [ + 'description' => 'The business purpose of the API.'."\n" + ."\n" + .'> You can call the [DescribeApisecRules](~~2859155~~) operation to query the business purposes of APIs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'SendMail', + 'title' => 'API业务用途。'."\n" + ."\n" + .'> 您可以调用[DescribeApisecRules](~~2859155~~)获取支持的业务用途。', + ], + ], + [ + 'name' => 'SensitiveLevel', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sensitivity level of the API. Valid values:'."\n" + ."\n" + .'* **L1**: high sensitivity'."\n" + .'* **L2**: moderate sensitivity'."\n" + .'* **L3**: low sensitivity'."\n" + .'* **N**: non-sensitivity', + 'type' => 'string', + 'required' => false, + 'example' => 'L3', + 'title' => '接口敏感等级。取值:'."\n" + .'- **L1**:表示高敏感。'."\n" + .'- **L2**:表示中敏感。'."\n" + .'- **L3**:表示低敏感。'."\n" + .'- **N**:表示非敏感。', + ], + ], + [ + 'name' => 'ApiMethod', + 'in' => 'query', + 'schema' => [ + 'description' => 'The request method of the API. Valid values:'."\n" + ."\n" + .'* **GET**'."\n" + .'* **POST**'."\n" + .'* **HEAD**'."\n" + .'* **PUT**'."\n" + .'* **DELETE**'."\n" + .'* **CONNECT**'."\n" + .'* **PATCH**'."\n" + .'* **OPTIONS**', + 'type' => 'string', + 'required' => false, + 'example' => 'POST', + 'title' => 'API的请求方法。取值:'."\n" + .'- **GET**:表示GET请求。'."\n" + .'- **POST**:表示POST请求。'."\n" + .'- **HEAD**:表示HEAD请求。'."\n" + .'- **PUT**:表示PUT请求。'."\n" + .'- **DELETE**:表示DELETE请求。'."\n" + .'- **CONNECT**:表示CONNECT请求。'."\n" + .'- **PATCH**:表示PATCH请求。'."\n" + .'- **OPTIONS**:表示OPTIONS请求。', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + ."\n" + .'> This parameter is available only in hybrid cloud scenarios. You can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query hybrid cloud clusters.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '740', + 'title' => '混合云集群 ID。'."\n" + .'> 只针对混合云场景,您可以调用[DescribeHybridCloudClusters](~~2849376~~)获取混合云集群信息。', + ], + ], + [ + 'name' => 'Note', + 'in' => 'query', + 'schema' => [ + 'description' => 'The remarks.', + 'type' => 'string', + 'required' => false, + 'example' => 'API for logon', + 'title' => '备注信息。', + ], + ], + [ + 'name' => 'RequestSensitiveType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sensitive data type in the request.'."\n" + ."\n" + .'> You can call the [DescribeApisecRules](~~2859155~~) operation to query the supported sensitive data types.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1004,1005', + 'title' => '请求敏感信息类型。'."\n" + ."\n" + .'> 您可以调用[DescribeApisecRules](~~2859155~~)获取支持的敏感信息类型。', + ], + ], + [ + 'name' => 'AuthFlag', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether authentication is required. Valid values:'."\n" + ."\n" + .'* **0**: Authentication is required.'."\n" + .'* **1**: Authentication is not required.', + 'type' => 'string', + 'required' => false, + 'example' => '0', + 'title' => '是否有鉴权字段。取值:'."\n" + .'- **0**:表示有权限。'."\n" + .'- **1**:表示无权限。', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Value:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + 'title' => 'WAF实例所属地域。取值:'."\n" + ."\n" + .'- **cn-hangzhou**:表示中国内地。'."\n" + ."\n" + .'- **ap-southeast-1**:表示非中国内地。', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + 'title' => '阿里云资源组ID。', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of entries returned.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '5', + 'title' => '返回结果的总数。', + ], + 'RequestId' => [ + 'title' => '请求ID。', + 'description' => 'The request ID.', + 'type' => 'string', + 'example' => '2EFCFE18-78F8-5079-B312-07***48B', + ], + 'Data' => [ + 'description' => 'The API assets.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The asset details.'."\n", + 'type' => 'object', + 'properties' => [ + 'EventNum' => [ + 'description' => 'The number of API-related security events.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2', + 'title' => 'API关联的安全事件数量。', + ], + 'FarthestTs' => [ + 'description' => 'The time when the API asset was first detected. This value is a UNIX timestamp in UTC. Unit: seconds.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1683388800', + 'title' => 'API资产首次发现时间,格式为Unix时间戳(UTC时间),单位为秒。', + ], + 'ApiSensitive' => [ + 'description' => 'The API-related sensitive information. The value of this parameter is a JSON string that contains multiple parameters. The value includes the following parameters:'."\n" + ."\n" + .'* **request_sensitive_list**: the sensitive data type in the request'."\n" + .'* **response_sensitive_list**: the sensitive data type in the response'."\n" + .'* **sensitive_list**: sensitive data types'."\n" + .'* **sensitive_level**: sensitivity level', + 'type' => 'string', + 'example' => '{'."\n" + .' "sensitive_list": ["1003","1005"],'."\n" + .' "sensitive_level": "L2",'."\n" + .' "request_sensitive_list": ["1003"],'."\n" + .' "response_sensitive_list": ["1005"]'."\n" + .'}', + 'title' => 'API涉及的敏感信息,以一系列参数构造的JSON格式转化成字符串。包括:'."\n" + .'- **request_sensitive_list**:表示请求敏感数据类型列表。'."\n" + .'- **response_sensitive_list**:表示响应敏感数据类型列表。'."\n" + .'- **sensitive_list**:表示敏感数据类型列表。'."\n" + .'- **sensitive_level**:表示敏感等级。', + ], + 'ApiFormat' => [ + 'description' => 'The API.', + 'type' => 'string', + 'example' => '/v1/etl/finddatabyvid', + 'title' => 'API接口。', + ], + 'ApiTag' => [ + 'description' => 'The business purpose of the API.'."\n" + ."\n" + .'> You can call the [DescribeApisecRules](~~2859155~~) operation to query the business purposes of APIs.'."\n", + 'type' => 'string', + 'example' => 'SendMail', + 'title' => 'API业务用途。'."\n" + .'> 您可以调用[DescribeApisecRules](~~2859155~~)获取支持的业务用途。', + ], + 'CrossBorderCnt' => [ + 'description' => 'The number of the cross-border requests in the previous 30 days.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2', + 'title' => '近30天跨境访问量。', + ], + 'AuthFlag' => [ + 'description' => 'Indicates whether authentication is required. Valid values:'."\n" + ."\n" + .'* **0**: Authentication is required.'."\n" + .'* **1**: Authentication is not required.', + 'type' => 'string', + 'example' => '1', + 'title' => '当前API是否有鉴权字段。取值:'."\n" + ."\n" + .'- **0**:有权限'."\n" + .'- **1**:无权限', + ], + 'AllCnt' => [ + 'description' => 'The total number of calls to this API in the previous 30 days.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + 'title' => '近30天总访问量。', + ], + 'ApiMethod' => [ + 'description' => 'The request method of the API. Valid values:'."\n" + ."\n" + .'* **GET**'."\n" + .'* **POST**'."\n" + .'* **HEAD**'."\n" + .'* **PUT**'."\n" + .'* **DELETE**'."\n" + .'* **CONNECT**'."\n" + .'* **PATCH**'."\n" + .'* **OPTIONS**', + 'type' => 'string', + 'example' => 'POST', + 'title' => 'API的请求方法。取值:'."\n" + .'- **GET**:表示GET请求。'."\n" + .'- **POST**:表示POST请求。'."\n" + .'- **HEAD**:表示HEAD请求。'."\n" + .'- **PUT**:表示PUT请求。'."\n" + .'- **DELETE**:表示DELETE请求。'."\n" + .'- **CONNECT**:表示CONNECT请求。'."\n" + .'- **PATCH**:表示PATCH请求。'."\n" + .'- **OPTIONS**:表示OPTIONS请求。', + ], + 'LastestTs' => [ + 'description' => 'The time at which the API was last accessed. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1683388800', + 'title' => 'API资产最近最近访问时间,格式为Unix时间戳(UTC时间),单位为秒。', + ], + 'ApiStatus' => [ + 'description' => 'The API status. Valid values:'."\n" + ."\n" + .'* **NewbornInterface**: The API is newly added.'."\n" + .'* **OfflineInterface**: The API is inactive.'."\n" + .'* **normal**: The API is normal.', + 'type' => 'string', + 'example' => 'NewbornInterface', + 'title' => 'API的状态。取值:'."\n" + .'- **NewbornInterface**:表示新增。'."\n" + .'- **OfflineInterface**:表示失活。'."\n" + .'- **normal**:表示正常。', + ], + 'ApiSensitiveResponse' => [ + 'description' => 'The sensitive data type in the response.', + 'type' => 'string', + 'example' => '["1002","1005"]', + 'title' => 'API响应敏感数据。', + ], + 'BotCnt' => [ + 'description' => 'The number of bot-initiated requests in the previous 30 days.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2', + 'title' => '近30天机器访问量。', + ], + 'Follow' => [ + 'description' => 'Specifies whether to follow the API. Valid values:'."\n" + ."\n" + .'* **1**: follows the API.'."\n" + .'* **0**: does not follow the API.', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + 'title' => '是否关注。取值:'."\n" + .'- **1**:表示关注。'."\n" + .'- **0**:表示未关注。', + ], + 'MatchedHost' => [ + 'description' => 'The domain name or IP address of the API.', + 'type' => 'string', + 'example' => 'a.aliyun.com', + 'title' => 'API接口所属的域名或IP。', + ], + 'ApiInfo' => [ + 'description' => 'The API-related information. The value of this parameter is a JSON string that contains multiple parameters. The value includes the following parameters:'."\n" + ."\n" + .'* **param_num**: the number of API parameters'."\n" + .'* **request_method**: the request method'."\n" + .'* **protocol**: the request protocol'."\n" + .'* **api_url**: the request URL'."\n" + .'* **poc_payload**: the request'."\n" + .'* **request**: the sample request'."\n" + .'* **response**: the sample response'."\n" + .'* **param**: the request parameters', + 'type' => 'string', + 'example' => '{'."\n" + .' "request": {"referer": "-","content_type": "-","cookie": "-","method": "GET","param": [],"host": "test.cn"},'."\n" + .' "protocol": "https",'."\n" + .' "api_url": "https://test.cn:443/index.php",'."\n" + .' "param": [],'."\n" + .' "response": {"param": [], "sensitive_type": {}, "header": {},"body": "", "status": 405 },'."\n" + .' "request_method": "GET",'."\n" + .' "poc_payload": "curl -X GET -H \'Accept: */*\' -H \'Connection: keep-alive\' -H \'User-agent: python-requests/2.32.3\' -H \'X-forwarded-for: {{IPv6 Address}}\' -H \'Host: test.cn\' -H \'Accept-encoding: gzip, deflate\' \'https://test.cn:443/index.php\'",'."\n" + .' "param_num": 0'."\n" + .'}', + 'title' => 'API相关信息,以一系列参数构造的JSON格式转化成字符串。包括:'."\n" + .'- **param_num**:表示API参数数量。'."\n" + .'- **request_method**:表示请求方式。'."\n" + .'- **protocol**:表示请求协议。'."\n" + .'- **api_url**:表示请求URL。'."\n" + .'- **poc_payload**:表示请求。'."\n" + .'- **request**:表示请求样例。'."\n" + .'- **response**:表示响应样例。'."\n" + .'- **param**:表示请求参数。', + ], + 'AbnormalNum' => [ + 'description' => 'The number of API-related risks.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2', + 'title' => 'API关联的风险数量。', + ], + 'ApiType' => [ + 'description' => 'The service object. Valid values:'."\n" + ."\n" + .'* **PublicAPI**: public services'."\n" + .'* **ThirdpartAPI**: cooperation with third-party partners'."\n" + .'* **InternalAPI**: internal office', + 'type' => 'string', + 'example' => 'PublicAPI', + 'title' => '服务对象。取值:'."\n" + .'- **PublicAPI**:表示公共服务。'."\n" + .'- **ThirdpartAPI**:表示三方合作。'."\n" + .'- **InternalAPI**:表示内部办公。', + ], + 'Note' => [ + 'description' => 'The remarks.', + 'type' => 'string', + 'example' => 'Password changed'."\n", + 'title' => '备注信息。', + ], + 'ApiId' => [ + 'description' => 'The ID of the API.', + 'type' => 'string', + 'example' => '867ade***24ee6e205b8da82b8f84'."\n", + 'title' => 'API的ID。', + ], + 'Examples' => [ + 'description' => 'The sample APIs.', + 'type' => 'array', + 'items' => [ + 'description' => 'The sample information. The value of this parameter is a JSON string that contains multiple parameters. The value includes the following parameters:'."\n" + ."\n" + .'* **param_num**: the number of API parameters'."\n" + .'* **request_method**: the request method'."\n" + .'* **protocol**: the request protocol'."\n" + .'* **api_url**: the request URL'."\n" + .'* **poc_payload**: the request'."\n" + .'* **request**: the sample request'."\n" + .'* **response**: the sample response'."\n" + .'* **param**: the request parameters', + 'type' => 'string', + 'example' => '{'."\n" + .' "request": {"referer": "-","content_type": "-","cookie": "-","method": "GET","param": [],"host": "test.cn"},'."\n" + .' "protocol": "https",'."\n" + .' "api_url": "https://test.cn:443/index.php",'."\n" + .' "param": [],'."\n" + .' "response": {"param": [], "sensitive_type": {}, "header": {},"body": "", "status": 405 },'."\n" + .' "request_method": "GET",'."\n" + .' "poc_payload": "curl -X GET -H \'Accept: */*\' -H \'Connection: keep-alive\' -H \'User-agent: python-requests/2.32.3\' -H \'X-forwarded-for: {{IPv6 Address}}\' -H \'Host: test.cn\' -H \'Accept-encoding: gzip, deflate\' \'https://test.cn:443/index.php\'",'."\n" + .' "param_num": 0'."\n" + .'}', + 'title' => '样例信息,以一系列参数构造的JSON格式转化成字符串。包括:'."\n" + .'- **param_num**:表示API参数数量。'."\n" + .'- **request_method**:表示请求方式。'."\n" + .'- **protocol**:表示请求协议。'."\n" + .'- **api_url**:表示请求URL。'."\n" + .'- **poc_payload**:表示请求。'."\n" + .'- **request**:表示请求样例。'."\n" + .'- **response**:表示响应样例。'."\n" + .'- **param**:表示请求参数。'."\n" + ."\n" + .'> 只有指定入参 **ApiId** 才会有该返回值。', + ], + 'title' => '废弃字段,无实际含义。', + 'deprecated' => true, + ], + 'ApiSensitiveRequest' => [ + 'description' => 'The sensitive data type in the request.', + 'type' => 'string', + 'example' => '["1002","1005"]', + 'title' => 'API请求敏感数据。', + ], + 'Resources' => [ + 'description' => 'The list of protection objects corresponding to this asset.', + 'type' => 'array', + 'items' => [ + 'description' => 'Protection objects corresponding to this asset.', + 'type' => 'string', + 'example' => '***.com-waf', + 'title' => '资产对应的防护对象。', + ], + 'title' => '资产对应的防护对象。', + ], + 'AccountEventNum' => [ + 'title' => '资产关联的账号安全事件数量。', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + ], + 'title' => '资产详情。', + ], + 'title' => 'API资产列表。', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 5,\\n \\"RequestId\\": \\"2EFCFE18-78F8-5079-B312-07***48B\\",\\n \\"Data\\": [\\n {\\n \\"EventNum\\": 2,\\n \\"FarthestTs\\": 1683388800,\\n \\"ApiSensitive\\": \\"{\\\\n \\\\\\"sensitive_list\\\\\\": [\\\\\\"1003\\\\\\",\\\\\\"1005\\\\\\"],\\\\n \\\\\\"sensitive_level\\\\\\": \\\\\\"L2\\\\\\",\\\\n \\\\\\"request_sensitive_list\\\\\\": [\\\\\\"1003\\\\\\"],\\\\n \\\\\\"response_sensitive_list\\\\\\": [\\\\\\"1005\\\\\\"]\\\\n}\\",\\n \\"ApiFormat\\": \\"/v1/etl/finddatabyvid\\",\\n \\"ApiTag\\": \\"SendMail\\",\\n \\"CrossBorderCnt\\": 2,\\n \\"AuthFlag\\": \\"1\\",\\n \\"AllCnt\\": 1683388800,\\n \\"ApiMethod\\": \\"POST\\",\\n \\"LastestTs\\": 1683388800,\\n \\"ApiStatus\\": \\"NewbornInterface\\",\\n \\"ApiSensitiveResponse\\": \\"[\\\\\\"1002\\\\\\",\\\\\\"1005\\\\\\"]\\",\\n \\"BotCnt\\": 2,\\n \\"Follow\\": 1,\\n \\"MatchedHost\\": \\"a.aliyun.com\\",\\n \\"ApiInfo\\": \\"{\\\\n \\\\\\"request\\\\\\": {\\\\\\"referer\\\\\\": \\\\\\"-\\\\\\",\\\\\\"content_type\\\\\\": \\\\\\"-\\\\\\",\\\\\\"cookie\\\\\\": \\\\\\"-\\\\\\",\\\\\\"method\\\\\\": \\\\\\"GET\\\\\\",\\\\\\"param\\\\\\": [],\\\\\\"host\\\\\\": \\\\\\"test.cn\\\\\\"},\\\\n \\\\\\"protocol\\\\\\": \\\\\\"https\\\\\\",\\\\n \\\\\\"api_url\\\\\\": \\\\\\"https://test.cn:443/index.php\\\\\\",\\\\n \\\\\\"param\\\\\\": [],\\\\n \\\\\\"response\\\\\\": {\\\\\\"param\\\\\\": [], \\\\\\"sensitive_type\\\\\\": {}, \\\\\\"header\\\\\\": {},\\\\\\"body\\\\\\": \\\\\\"\\\\\\", \\\\\\"status\\\\\\": 405 },\\\\n \\\\\\"request_method\\\\\\": \\\\\\"GET\\\\\\",\\\\n \\\\\\"poc_payload\\\\\\": \\\\\\"curl -X GET -H \'Accept: */*\' -H \'Connection: keep-alive\' -H \'User-agent: python-requests/2.32.3\' -H \'X-forwarded-for: {{IPv6 Address}}\' -H \'Host: test.cn\' -H \'Accept-encoding: gzip, deflate\' \'https://test.cn:443/index.php\'\\\\\\",\\\\n \\\\\\"param_num\\\\\\": 0\\\\n}\\",\\n \\"AbnormalNum\\": 2,\\n \\"ApiType\\": \\"PublicAPI\\",\\n \\"Note\\": \\"密码已修改\\",\\n \\"ApiId\\": \\"197b52abcd81d6a8bd4***e477\\",\\n \\"Examples\\": [\\n \\"{\\\\n \\\\\\"request\\\\\\": {\\\\\\"referer\\\\\\": \\\\\\"-\\\\\\",\\\\\\"content_type\\\\\\": \\\\\\"-\\\\\\",\\\\\\"cookie\\\\\\": \\\\\\"-\\\\\\",\\\\\\"method\\\\\\": \\\\\\"GET\\\\\\",\\\\\\"param\\\\\\": [],\\\\\\"host\\\\\\": \\\\\\"test.cn\\\\\\"},\\\\n \\\\\\"protocol\\\\\\": \\\\\\"https\\\\\\",\\\\n \\\\\\"api_url\\\\\\": \\\\\\"https://test.cn:443/index.php\\\\\\",\\\\n \\\\\\"param\\\\\\": [],\\\\n \\\\\\"response\\\\\\": {\\\\\\"param\\\\\\": [], \\\\\\"sensitive_type\\\\\\": {}, \\\\\\"header\\\\\\": {},\\\\\\"body\\\\\\": \\\\\\"\\\\\\", \\\\\\"status\\\\\\": 405 },\\\\n \\\\\\"request_method\\\\\\": \\\\\\"GET\\\\\\",\\\\n \\\\\\"poc_payload\\\\\\": \\\\\\"curl -X GET -H \'Accept: */*\' -H \'Connection: keep-alive\' -H \'User-agent: python-requests/2.32.3\' -H \'X-forwarded-for: {{IPv6 Address}}\' -H \'Host: test.cn\' -H \'Accept-encoding: gzip, deflate\' \'https://test.cn:443/index.php\'\\\\\\",\\\\n \\\\\\"param_num\\\\\\": 0\\\\n}\\"\\n ],\\n \\"ApiSensitiveRequest\\": \\"[\\\\\\"1002\\\\\\",\\\\\\"1005\\\\\\"]\\",\\n \\"Resources\\": [\\n \\"***.top-waf\\"\\n ],\\n \\"AccountEventNum\\": 1\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeApisecApiResources', + ], + 'ModifyApisecStatus' => [ + 'summary' => 'Changes the status of the API security module for protected objects or protected object groups.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '189028', + 'abilityTreeNodes' => [ + 'FEATUREwaf71G1E8', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-tl32ast****', + ], + ], + [ + 'name' => 'Resources', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the protected object.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'alb-wewbb23dfset***', + ], + ], + [ + 'name' => 'ApisecStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the API security module. Valid values:'."\n" + ."\n" + .'* **1**: enabled'."\n" + .'* **0**: disabled'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'ResourceGroups', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the protected object group to which the protected object belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'group', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the Web Application Firewall (WAF) instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D5EB0', + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\"\\n}","type":"json"}]', + 'title' => 'ModifyApisecStatus', + ], + 'ModifyApisecModuleStatus' => [ + 'summary' => 'Changes the status of features in the API security module for protected objects or protected object groups.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '189643', + 'abilityTreeNodes' => [ + 'FEATUREwaf71G1E8', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-cn-0xldbqtm**', + ], + ], + [ + 'name' => 'Resources', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the protected object.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cwaf-***-waf', + ], + ], + [ + 'name' => 'ReportStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the compliance check feature. Valid values:'."\n" + ."\n" + .'* **1**: enabled'."\n" + .'* **0**: disabled'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'TraceStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the tracing and auditing feature. Valid values:'."\n" + ."\n" + .'* **1**: enabled'."\n" + .'* **0**: disabled'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'ResourceGroups', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the protected object group to which the protected object belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'group1', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the Web Application Firewall (WAF) instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19****5EB0', + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19****5EB0\\"\\n}","type":"json"}]', + 'title' => 'ModifyApisecModuleStatus', + ], + 'ModifyApisecApiResource' => [ + 'summary' => 'Modifies the annotations of APIs in the API security module.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '168714', + 'abilityTreeNodes' => [ + 'FEATUREwaf71G1E8', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-cn-0xldbqt****', + ], + ], + [ + 'name' => 'Follow', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to follow the API. Valid values:'."\n" + ."\n" + .'* **1**: yes'."\n" + .'* **0** (default): no'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '0', + 'default' => '0', + ], + ], + [ + 'name' => 'Note', + 'in' => 'query', + 'schema' => [ + 'description' => 'The remarks.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'know', + ], + ], + [ + 'name' => 'ApiId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the API.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'c68995b89069595c5c0399676f3ca64f', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'required' => false, + 'example' => '428', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19****5EB0', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19****5EB0\\"\\n}","type":"json"}]', + 'title' => 'ModifyApisecApiResource', + ], + 'DescribeUserEventType' => [ + 'summary' => 'Queries the types and statistics of security events in the API security module.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '156221', + 'abilityTreeNodes' => [ + 'FEATUREwafDX9EQ6', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-5y***h0t', + 'title' => 'WAF实例的ID。'."\n" + ."\n" + .'> 您可以调用[DescribeInstance](~~433756~~)查询当前WAF实例的ID。', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'required' => false, + 'example' => '976', + 'title' => '混合云集群 ID。'."\n" + .'> 只针对混合云场景,您可以调用[DescribeHybridCloudClusters](~~2849376~~)获取混合云集群信息。', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1723435200', + 'title' => '查询的开始时间,格式为Unix时间戳(UTC时间),单位为秒。', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1726113600', + 'title' => '查询的结束时间,格式为Unix时间戳(UTC时间),单位为秒。', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the Web Application Firewall (WAF) instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + 'title' => 'WAF实例所属地域。取值:'."\n" + ."\n" + .'- **cn-hangzhou**:表示中国内地。'."\n" + ."\n" + .'- **ap-southeast-1**:表示非中国内地。', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aek***ktt3y', + 'title' => '阿里云资源组ID。', + ], + ], + [ + 'name' => 'UserStatusList', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'title' => '事件状态列表。', + 'type' => 'array', + 'items' => [ + 'title' => '事件状态。取值:'."\n" + ."\n" + .'- **toBeConfirmed**:表示待确认。'."\n" + .'- **confirmed**:表示已确认。'."\n" + .'- **actioned**:表示已处置。'."\n" + .'- **ignored**:表示忽略。', + 'type' => 'string', + 'example' => 'toBeConfirmed', + ], + ], + ], + [ + 'name' => 'EventScope', + 'in' => 'query', + 'schema' => [ + 'title' => ' 安全事件的维度。取值:'."\n" + .'- **ip**(默认):表示IP安全事件。'."\n" + .'- **account**:表示账号安全事件。', + 'type' => 'string', + 'example' => 'ip', + 'default' => 'ip', + 'enum' => [ + 'ip', + 'account', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.', + 'type' => 'string', + 'example' => '177BA739-6512-5470-98C6-E***0BAA3D', + 'title' => '请求ID。', + ], + 'Event' => [ + 'description' => 'The types and statistics of security events.', + 'type' => 'array', + 'items' => [ + 'description' => 'The type and statistics of the security event.'."\n", + 'type' => 'object', + 'properties' => [ + 'EventCount' => [ + 'description' => 'The number of events.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + 'title' => '事件数量。', + ], + 'EventType' => [ + 'description' => 'The type of the security event.'."\n" + ."\n" + .'> You can call the [DescribeApisecRules](~~2859155~~) operation to query the supported types of security events.', + 'type' => 'string', + 'example' => 'Event_AbnormalFrequency', + 'title' => '事件类型。'."\n" + ."\n" + .'> 您可以调用[DescribeApisecRules](~~2859155~~)获取支持的事件类型。', + ], + 'EventParentType' => [ + 'description' => 'The parent type of the security event.'."\n", + 'type' => 'string', + 'example' => 'EventType_Account', + 'title' => '事件父类型。', + ], + 'EventCode' => [ + 'description' => 'The code of the security event.'."\n", + 'type' => 'string', + 'example' => 'Event_LoginCollision', + 'title' => '事件编码。', + ], + ], + 'title' => '事件类型和统计信息。', + ], + 'title' => '安全事件类型和统计列表。', + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"177BA739-6512-5470-98C6-E***0BAA3D\\",\\n \\"Event\\": [\\n {\\n \\"EventCount\\": 0,\\n \\"EventType\\": \\"Event_LoginCollision\\",\\n \\"EventParentType\\": \\"EventType_Account\\",\\n \\"EventCode\\": \\"Event_LoginCollision\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeUserEventType', + ], + 'DescribeUserEventTrend' => [ + 'summary' => 'Queries the trends of attacks detected by the API security module.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '155226', + 'abilityTreeNodes' => [ + 'FEATUREwafDX9EQ6', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-7mz2797x***', + 'title' => 'WAF实例ID。'."\n" + ."\n" + .'> 您可以通过调用[DescribeInstance](~~433756~~)接口查看当前WAF实例ID。', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'required' => false, + 'example' => '428', + 'title' => '混合云集群 ID。'."\n" + .'> 只针对混合云场景,您可以调用[DescribeHybridCloudClusters](~~2849376~~)获取混合云集群信息。', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + 'title' => 'WAF实例所属地域。取值:'."\n" + ."\n" + .'- **cn-hangzhou**:表示中国内地。'."\n" + ."\n" + .'- **ap-southeast-1**:表示非中国内地。', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aekzwwk****cv5i', + 'title' => '阿里云资源组ID。', + ], + ], + [ + 'name' => 'EventScope', + 'in' => 'query', + 'schema' => [ + 'title' => ' 安全事件的维度。取值:'."\n" + .'- **ip**(默认):表示IP安全事件。'."\n" + .'- **account**:表示账号安全事件。', + 'type' => 'string', + 'example' => 'ip', + 'default' => 'ip', + 'enum' => [ + 'ip', + 'account', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'F51E6DD6-B2D2-57C9-90F1-FAFD0A19DE00', + 'title' => '请求ID。', + ], + 'Trend' => [ + 'description' => 'The trends of attacks.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The attack details.'."\n", + 'type' => 'object', + 'properties' => [ + 'EventHigh' => [ + 'description' => 'The number of high-risk events.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '9', + 'title' => '高危事件数。', + ], + 'EventLow' => [ + 'description' => 'The number of low-risk events.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '23', + 'title' => '低危事件数。', + ], + 'EventMedium' => [ + 'description' => 'The number of medium-risk events.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '17', + 'title' => '中危事件数。', + ], + 'Timestamp' => [ + 'description' => 'The time at which the API was called. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1723435200', + 'title' => '统计的时间,格式为Unix时间戳(UTC时间),单位为秒。', + ], + 'TimeStamp' => [ + 'description' => 'The time at which the API was called. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n" + .'><notice>The parameter has been deprecated, it is recommended to use the Timestamp parameter.></notice>', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1723435200', + 'title' => '废弃字段,无实际含义。', + 'deprecated' => true, + ], + ], + 'title' => '攻击详情。', + ], + 'title' => '攻击走势列表。', + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F51E6DD6-B2D2-57C9-90F1-FAFD0A19DE00\\",\\n \\"Trend\\": [\\n {\\n \\"EventHigh\\": 9,\\n \\"EventLow\\": 23,\\n \\"EventMedium\\": 17,\\n \\"Timestamp\\": 1723435200,\\n \\"TimeStamp\\": 1723435200\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeUserEventTrend', + ], + 'DescribeUserAsset' => [ + 'summary' => 'Queries the user asset statistics in the API security module.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '155224', + 'abilityTreeNodes' => [ + 'FEATUREwaf71G1E8', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-uax37ijm***', + ], + ], + [ + 'name' => 'DataType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the statistics. Valid values:'."\n" + ."\n" + .'* **asset_num**: total number of APIs'."\n" + .'* **asset_active**: number of active APIs'."\n" + .'* **asset_newborn**: number of new APIs'."\n" + .'* **asset_offline**: number of deactivated APIs'."\n" + .'* **asset_bot**: number of APIs that are called by bots'."\n" + .'* **asset_cross_border**: number of APIs that are called for cross-border data transfer'."\n" + .'* **sensitive_api**: number of response-sensitive APIs'."\n" + .'* **sensitive_domain**: number of response-sensitive domain names'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'asset_num', + ], + ], + [ + 'name' => 'Days', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time at which the API was called. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n" + .'><notice>The parameter has been deprecated.></notice>', + 'type' => 'string', + 'required' => false, + 'example' => '1723435200', + 'title' => '废弃字段,无实际含义。', + 'deprecated' => true, + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'required' => false, + 'example' => '428', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C1823E96-EF4B-5BD2-9E02-1D18****3ED8', + ], + 'Assets' => [ + 'description' => 'The API statistics.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The API statistics.'."\n", + 'type' => 'object', + 'properties' => [ + 'AssetNum' => [ + 'description' => 'The number of APIs returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '134', + ], + 'TimeStamp' => [ + 'description' => 'The time at which the API was called. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1723435200', + ], + ], + ], + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C1823E96-EF4B-5BD2-9E02-1D18****3ED8\\",\\n \\"Assets\\": [\\n {\\n \\"AssetNum\\": 134,\\n \\"TimeStamp\\": 1723435200\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeUserAsset', + ], + 'DescribeUserApiRequest' => [ + 'summary' => 'Queries the traffic statistics of an API.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '155227', + 'abilityTreeNodes' => [ + 'FEATUREwaf71G1E8', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-zxu38***', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name or IP address of the API.'."\n" + .'><notice>This parameter is deprecated, please use ApiId to query.></notice>', + 'type' => 'string', + 'required' => false, + 'example' => 'c.***.com', + 'title' => '废弃字段,无实际含义。', + 'deprecated' => true, + ], + ], + [ + 'name' => 'ApiFormat', + 'in' => 'query', + 'schema' => [ + 'description' => 'The API.'."\n" + .'><notice>This parameter is deprecated, please use ApiId to query.></notice>', + 'type' => 'string', + 'required' => false, + 'example' => '/api/v1/know', + 'title' => '废弃字段,无实际含义。', + 'deprecated' => true, + ], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the statistics. Valid values:'."\n" + ."\n" + .'* **api_ip**: total traffic'."\n" + .'* **api_cross_border_ip**: cross-border traffic'."\n" + .'* **api_bot_ip**: bot traffic'."\n" + .'* **remote_region**: geographical location'."\n" + .'* **client_id**: client type'."\n" + .'* **http_referer**: Referer'."\n" + .'* **api_cnt**: total number of calls'."\n" + .'* **bot_cnt**: number of bot calls'."\n" + .'* **cross_border_cnt**: number of cross-border requests'."\n" + .'* **api_freq**: call frequency'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'api_ip', + 'default' => 'api_ip', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'required' => false, + 'example' => '428', + ], + ], + [ + 'name' => 'ApiId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the API.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '3799f0695c0d687f3295d132fe49bc14', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D13E4540-4432-5AD7-B216-6369512514F4', + ], + 'Requests' => [ + 'description' => 'The statistics.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The statistics.'."\n", + 'type' => 'object', + 'properties' => [ + 'Value' => [ + 'description' => 'The type of the statistics. Valid values:'."\n" + ."\n" + .'* **client_list**: client'."\n" + .'* **ip**: IP address'."\n" + .'* **region_id** region'."\n" + .'* **country_id**: country'."\n", + 'type' => 'string', + 'example' => '{'."\n" + .' "client_list": ['."\n" + .' "Unknown"'."\n" + .' ],'."\n" + .' "ip": "47.92.113.***",'."\n" + .' "region_id": "110000",'."\n" + .' "country_id": "CN"'."\n" + .'}', + ], + 'Count' => [ + 'description' => 'The number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '76', + ], + ], + ], + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D13E4540-4432-5AD7-B216-6369512514F4\\",\\n \\"Requests\\": [\\n {\\n \\"Value\\": \\"{\\\\n \\\\\\"client_list\\\\\\": [\\\\n \\\\\\"Unknown\\\\\\"\\\\n ],\\\\n \\\\\\"ip\\\\\\": \\\\\\"47.92.113.***\\\\\\",\\\\n \\\\\\"region_id\\\\\\": \\\\\\"110000\\\\\\",\\\\n \\\\\\"country_id\\\\\\": \\\\\\"CN\\\\\\"\\\\n}\\",\\n \\"Count\\": 76\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeUserApiRequest', + ], + 'DescribeUserAbnormalType' => [ + 'summary' => 'Queries the types and statistics of risks in the API security module.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '156222', + 'abilityTreeNodes' => [ + 'FEATUREwafWE25G7', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-g4***201', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'required' => false, + 'example' => '993', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1723435200', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1726113600', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-ac***lani', + ], + ], + [ + 'name' => 'UserStatusList', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'string', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '3E1CB966-1407-5988-9432-7***D784', + ], + 'Abnormal' => [ + 'description' => 'The types and statistics of risks.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The type and statistics of the risk.'."\n", + 'type' => 'object', + 'properties' => [ + 'AbnormalCode' => [ + 'description' => 'The code of the risk.'."\n", + 'type' => 'string', + 'example' => 'Risk_InternalWeakPasswd', + ], + 'AbnormalParentType' => [ + 'description' => 'The parent type of the risk.'."\n", + 'type' => 'string', + 'example' => 'RiskType_Account', + ], + 'AbnormalType' => [ + 'description' => 'The type of the risk.'."\n" + ."\n" + .'> You can call the [DescribeApisecRules](~~2859155~~) operation to query the supported types of risks.', + 'type' => 'string', + 'example' => 'LackOfSpeedLimit', + ], + 'AbnormalCount' => [ + 'description' => 'The number of risks.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + ], + ], + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"3E1CB966-1407-5988-9432-7***D784\\",\\n \\"Abnormal\\": [\\n {\\n \\"AbnormalCode\\": \\"Risk_InternalWeakPasswd\\",\\n \\"AbnormalParentType\\": \\"RiskType_Account\\",\\n \\"AbnormalType\\": \\"Risk_InternalWeakPasswd\\",\\n \\"AbnormalCount\\": 10\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeUserAbnormalType', + ], + 'DescribeUserAbnormalTrend' => [ + 'summary' => 'Queries the trends of API security risks.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '155225', + 'abilityTreeNodes' => [ + 'FEATUREwafWE25G7', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-uqm342yj***', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'required' => false, + 'example' => '428', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D5EB0', + ], + 'Trend' => [ + 'description' => 'The trends of risks.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The trend details.'."\n", + 'type' => 'object', + 'properties' => [ + 'AbnormalHigh' => [ + 'description' => 'The number of high risks.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '12', + ], + 'AbnormalLow' => [ + 'description' => 'The number of low risks.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '23', + ], + 'AbnormalMedium' => [ + 'description' => 'The number of medium risks.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '14', + ], + 'Timestamp' => [ + 'description' => 'The time at which the API was called. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1722268800', + ], + 'TimeStamp' => [ + 'description' => 'The time at which the API was called. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n" + ."\n" + .'><notice>The parameter has been deprecated, it is recommended to use the Timestamp parameter.></notice>', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1722268800', + 'title' => '废弃字段,无实际含义。', + 'deprecated' => true, + ], + ], + ], + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\",\\n \\"Trend\\": [\\n {\\n \\"AbnormalHigh\\": 12,\\n \\"AbnormalLow\\": 23,\\n \\"AbnormalMedium\\": 14,\\n \\"Timestamp\\": 1722268800,\\n \\"TimeStamp\\": 1722268800\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeUserAbnormalTrend', + ], + 'DescribeSensitiveStatistic' => [ + 'summary' => 'Queries the sensitive data statistics of the tracing and auditing feature.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '188100', + 'abilityTreeNodes' => [ + 'FEATUREwaf8XGRZR', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-cn-0xldbq****', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1672502400', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1725966000', + ], + ], + [ + 'name' => 'StatisticType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the statistics. Valid values:'."\n" + ."\n" + .'* **ip**: IP address'."\n" + .'* **host**: domain name'."\n" + .'* **sensitive_code**: sensitive data type'."\n" + .'* **api**: sensitive data-related API'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'ip', + 'default' => 'ip', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '20', + 'minimum' => '1', + 'example' => '10', + 'default' => '5', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'required' => false, + 'example' => '428', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the Web Application Firewall (WAF) instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D5EB0', + ], + 'Data' => [ + 'description' => 'The statistics of the sensitive data.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The statistics of the sensitive data.'."\n", + 'type' => 'object', + 'properties' => [ + 'SensitiveCode' => [ + 'description' => 'The type of the sensitive data.'."\n" + ."\n" + .'> You can call the [DescribeApisecRules](~~2859155~~) operation to query the supported types of sensitive data.', + 'type' => 'string', + 'example' => '1003', + ], + 'MatchedHost' => [ + 'description' => 'The domain name.'."\n", + 'type' => 'string', + 'example' => 'a.****.com', + ], + 'ApiFormat' => [ + 'description' => 'The API.'."\n", + 'type' => 'string', + 'example' => '/api/login', + ], + 'Count' => [ + 'description' => 'The number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '169', + ], + 'ClientIP' => [ + 'description' => 'The IP address.'."\n", + 'type' => 'string', + 'example' => '10.50.11.**', + ], + ], + ], + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 10,\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\",\\n \\"Data\\": [\\n {\\n \\"SensitiveCode\\": \\"1003\\",\\n \\"MatchedHost\\": \\"a.****.com\\",\\n \\"ApiFormat\\": \\"/api/login\\",\\n \\"Count\\": 169,\\n \\"ClientIP\\": \\"10.50.11.**\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeSensitiveStatistic', + ], + 'DescribeSensitiveRequests' => [ + 'summary' => 'Queries the tracing results of sensitive data.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '187966', + 'abilityTreeNodes' => [ + 'FEATUREwaf8XGRZR', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-0xldbqt****', + ], + ], + [ + 'name' => 'SensitiveCode', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the sensitive data.'."\n" + ."\n" + .'> You can call the [DescribeApisecRules](~~2859155~~) operation to query the supported types of sensitive data.', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1001', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1723392000', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1725966000', + ], + ], + [ + 'name' => 'SensitiveData', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sensitive data.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'card', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '25', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'required' => false, + 'example' => '269', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the Web Application Firewall (WAF) instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aekzwwkpn****5i', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '26E46541-7AAB-5565-801D-F14DBDC5****', + ], + 'Data' => [ + 'description' => 'The tracing results of the data.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tracing details.'."\n", + 'type' => 'object', + 'properties' => [ + 'EventCount' => [ + 'description' => 'The number of events in the previous 30 days.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '679', + ], + 'MatchedHost' => [ + 'description' => 'The domain name of the API.'."\n", + 'type' => 'string', + 'example' => 'a.****.com', + ], + 'ApiFormat' => [ + 'description' => 'The API.'."\n", + 'type' => 'string', + 'example' => '/api/users/login', + ], + 'DetectionResult' => [ + 'description' => 'The evaluation result. Valid values:'."\n" + ."\n" + .'* **leak**: Data leaks may occur.'."\n" + .'* **none**: No data leak can occur.'."\n", + 'type' => 'string', + 'example' => 'leak', + ], + 'ClientIP' => [ + 'description' => 'The IP address.'."\n", + 'type' => 'string', + 'example' => '103.118.55.**', + ], + 'ApiId' => [ + 'description' => 'The ID of the API.'."\n", + 'type' => 'string', + 'example' => '09559c0d71ca2ffc996b81***836d8', + ], + 'SensitiveList' => [ + 'description' => 'The sensitive data.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The sensitive data.'."\n", + 'type' => 'string', + 'example' => 'card', + ], + ], + 'InfoCount' => [ + 'description' => 'The statistics of the sensitive data.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The statistics of the sensitive data.'."\n", + 'type' => 'object', + 'properties' => [ + 'Count' => [ + 'description' => 'The number of sensitive data entries.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '23', + ], + 'Code' => [ + 'description' => 'The type of the sensitive data.'."\n", + 'type' => 'string', + 'example' => '1001', + ], + ], + ], + ], + 'AbnormalCount' => [ + 'description' => 'The number of risks in the previous 30 days.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '23', + ], + ], + ], + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 10,\\n \\"RequestId\\": \\"26E46541-7AAB-5565-801D-F14DBDC5****\\",\\n \\"Data\\": [\\n {\\n \\"EventCount\\": 679,\\n \\"MatchedHost\\": \\"a.****.com\\",\\n \\"ApiFormat\\": \\"/api/users/login\\",\\n \\"DetectionResult\\": \\"leak\\",\\n \\"ClientIP\\": \\"103.118.55.**\\",\\n \\"ApiId\\": \\"09559c0d71ca2ffc996b81***836d8\\",\\n \\"SensitiveList\\": [\\n \\"card\\"\\n ],\\n \\"InfoCount\\": [\\n {\\n \\"Count\\": 23,\\n \\"Code\\": \\"1001\\"\\n }\\n ],\\n \\"AbnormalCount\\": 23\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeSensitiveRequests', + ], + 'DescribeSensitiveRequestLog' => [ + 'summary' => 'Queries the access logs of sensitive data.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '188086', + 'abilityTreeNodes' => [ + 'FEATUREwaf8XGRZR', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + 'title' => 'WAF实例ID。'."\n" + ."\n" + .'> 您可以通过调用[DescribeInstance](~~433756~~)接口查看当前WAF实例ID。', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1723392000', + 'title' => '查询的开始时间,格式为Unix时间戳(UTC时间),单位为秒。', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1726057800', + 'title' => '查询的结束时间,格式为Unix时间戳(UTC时间),单位为秒。', + ], + ], + [ + 'name' => 'MatchedHost', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name of the API.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a.***.com', + 'title' => 'API接口所属的域名。', + ], + ], + [ + 'name' => 'ApiFormat', + 'in' => 'query', + 'schema' => [ + 'description' => 'The API.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '/api/users/login'."\n", + 'title' => 'API接口。', + ], + ], + [ + 'name' => 'ClientIP', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IP address.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '103.118.55.**', + 'title' => 'IP地址。', + ], + ], + [ + 'name' => 'SensitiveCode', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the sensitive data.'."\n" + ."\n" + .'> You can call the [DescribeApisecRules](~~2859155~~) operation to query the supported types of sensitive data.', + 'type' => 'string', + 'required' => false, + 'example' => '1000,1001', + 'title' => '敏感数据类型。'."\n" + .'> 您可以调用[DescribeApisecRules](~~2859155~~)获取支持敏感数据类型。', + ], + ], + [ + 'name' => 'SensitiveData', + 'in' => 'query', + 'schema' => [ + 'description' => 'The response sensitive data.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'user', + 'title' => '响应敏感数据。', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + 'default' => '1', + 'title' => '分页查询时,返回第几页数据。默认值为**1**,表示返回第1页数据。', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '10', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + 'title' => '分页查询时,每页包含多少条结果。默认值为**10**,表示每页包含10条结果。', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'required' => false, + 'example' => '433', + 'title' => '混合云集群 ID。'."\n" + .'> 只针对混合云场景,您可以调用[DescribeHybridCloudClusters](~~2849376~~)获取混合云集群信息。', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + 'title' => 'WAF实例所属地域。取值:'."\n" + ."\n" + .'- **cn-hangzhou**:表示中国内地。'."\n" + ."\n" + .'- **ap-southeast-1**:表示非中国内地。', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + 'title' => '阿里云资源组ID。', + ], + ], + [ + 'name' => 'Account', + 'in' => 'query', + 'schema' => [ + 'title' => '账号信息。', + 'type' => 'string', + 'example' => 'admin', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '7', + 'title' => '返回结果的总数。', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '26E46541-7AAB-5565-801D-F14DBDC5****', + 'title' => '请求ID。', + ], + 'Data' => [ + 'description' => 'The access logs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The access log.'."\n", + 'type' => 'object', + 'properties' => [ + 'MatchedHost' => [ + 'description' => 'The domain name of the API.'."\n", + 'type' => 'string', + 'example' => 'a.****.com', + 'title' => 'API接口所属的域名。', + ], + 'ApiFormat' => [ + 'description' => 'The API.'."\n", + 'type' => 'string', + 'example' => '/api/users/login', + 'title' => 'API接口。', + ], + 'TraceId' => [ + 'description' => 'The trace ID.'."\n", + 'type' => 'string', + 'example' => '0a3d455b17027784870843933dce3d', + 'title' => '日志ID。', + ], + 'RequestTime' => [ + 'description' => 'The time when the request was initiated. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1723392000', + 'title' => '请求时间,格式为Unix时间戳(UTC时间),单位为秒。', + ], + 'Count' => [ + 'description' => 'The number of sensitive data records involved in cross-border data transfer.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '12', + 'title' => '出站敏感数据条数。', + ], + 'ClientIP' => [ + 'description' => 'The IP address.'."\n", + 'type' => 'string', + 'example' => '103.118.55.**', + 'title' => 'IP地址。', + ], + 'ApiId' => [ + 'description' => 'The ID of the API.'."\n", + 'type' => 'string', + 'example' => '197b52abcd81d6a8bd4***e477', + 'title' => 'API的ID。', + ], + 'SensitiveList' => [ + 'description' => 'The details of sensitive data. The value is a string that consists of a JSON struct. The JSON struct contains key-value pairs. In a key-value pair, a key indicates the identifier of a sensitive data type, including built-in and custom types, and a value indicates specific sensitive data.'."\n" + ."\n" + .'> You can call the [DescribeApisecRules](~~2859155~~) operation to query the supported sensitive data types.'."\n", + 'type' => 'string', + 'example' => '{'."\n" + .' "1000":[ '."\n" + .' "90.88.49.19",'."\n" + .' "90.88.49.19"'."\n" + .' ],'."\n" + .' "835436":[ '."\n" + .' "www.abc.com"'."\n" + .' ]'."\n" + .'}', + 'title' => '敏感数据信息。以一系列参数构造的 JSON 格式转化成字符串。其中 JSON 的 Key为敏感信息类型标识(包括内置和自定义两种类型),Value为敏感信息数据列表。'."\n" + ."\n" + .'> 您可以调用[DescribeApisecRules](~~2859155~~)获取支持的敏感信息类型。', + ], + 'RemoteCountryId' => [ + 'description' => 'IP region, formatted as a region code.', + 'type' => 'string', + 'example' => 'CN', + 'title' => 'IP所属区域,格式为地域标识代码。', + ], + 'Account' => [ + 'title' => '请求的账号。', + 'type' => 'string', + 'example' => 'admin', + ], + ], + 'title' => '访问日志信息。', + ], + 'title' => '访问日志列表。', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 7,\\n \\"RequestId\\": \\"26E46541-7AAB-5565-801D-F14DBDC5****\\",\\n \\"Data\\": [\\n {\\n \\"MatchedHost\\": \\"a.****.com\\",\\n \\"ApiFormat\\": \\"/api/users/login\\",\\n \\"TraceId\\": \\"0a3d455b17027784870843933dce3d\\",\\n \\"RequestTime\\": 1723392000,\\n \\"Count\\": 12,\\n \\"ClientIP\\": \\"103.118.55.**\\",\\n \\"ApiId\\": \\"197b52abcd81d6a8bd4***e477\\",\\n \\"SensitiveList\\": \\"{\\\\n \\\\\\"1000\\\\\\":[ \\\\n \\\\\\"90.88.49.19\\\\\\",\\\\n \\\\\\"90.88.49.19\\\\\\"\\\\n ],\\\\n \\\\\\"835436\\\\\\":[ \\\\n \\\\\\"www.abc.com\\\\\\"\\\\n ]\\\\n}\\",\\n \\"RemoteCountryId\\": \\"CN\\",\\n \\"Account\\": \\"admin\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeSensitiveRequestLog', + ], + 'DescribeSensitiveOutboundTrend' => [ + 'summary' => 'Queries the trends of cross-border data transfer of personal information.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '187670', + 'abilityTreeNodes' => [ + 'FEATUREwaf8XGRZR', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-cn-0xldbqt****', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n" + ."\n" + .'> You can query only data of the previous month, previous 3 months, previous 6 months, previous 12 months, and data generated since January 1 of last year for compliance check. You must specify a valid time range.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1672502400', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n" + ."\n" + .'> You can query only data of the previous month, previous 3 months, previous 6 months, previous 12 months, and data generated since January 1 of last year for compliance check. You must specify a valid time range.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1725966000'."\n", + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'format' => 'int64', + 'required' => false, + 'example' => '433', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the Web Application Firewall (WAF) instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '7', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C1823E96-EF4B-5BD2-9E02-1D18****3ED8', + ], + 'Data' => [ + 'description' => 'The information records involved in cross-border data transfer.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information record involved in cross-border data transfer.'."\n", + 'type' => 'object', + 'properties' => [ + 'SensitiveOutboundCount' => [ + 'description' => 'The total number of sensitive information records involved in cross-border data transfer.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '378', + ], + 'Timestamp' => [ + 'description' => 'The time of cross-border data transfer. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1672502400', + ], + 'InfoCount' => [ + 'description' => 'The total number of personal information records.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '672', + ], + 'InfoOutboundCount' => [ + 'description' => 'The total number of personal information records involved in cross-border data transfer.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '541', + ], + ], + ], + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 7,\\n \\"RequestId\\": \\"C1823E96-EF4B-5BD2-9E02-1D18****3ED8\\",\\n \\"Data\\": [\\n {\\n \\"SensitiveOutboundCount\\": 378,\\n \\"Timestamp\\": 1672502400,\\n \\"InfoCount\\": 672,\\n \\"InfoOutboundCount\\": 541\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeSensitiveOutboundTrend', + ], + 'DescribeSensitiveOutboundStatistic' => [ + 'summary' => 'Queries the data types of personal information involved in cross-border data transfer.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '187677', + 'abilityTreeNodes' => [ + 'FEATUREwaf8XGRZR', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-0xldbqt****', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n" + ."\n" + .'> You can query only data of the previous month, previous 3 months, previous 6 months, previous 12 months, and data generated since January 1 of last year for compliance check. You must specify a valid time range.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1672502400', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n" + ."\n" + .'> You can query only data of the previous month, previous 3 months, previous 6 months, previous 12 months, and data generated since January 1 of last year for compliance check. You must specify a valid time range.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1725966000', + ], + ], + [ + 'name' => 'SensitiveType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the information. Valid values:'."\n" + ."\n" + .'* **info** (default): full personal information'."\n" + .'* **sensitive**: sensitive personal information'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'info', + ], + ], + [ + 'name' => 'SensitiveLevel', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sensitivity level. Valid values:'."\n" + ."\n" + .'* **high**'."\n" + .'* **medium**'."\n" + .'* **low**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'high', + ], + ], + [ + 'name' => 'SensitiveCode', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the sensitive data. Separate multiple types with commas (,).'."\n" + ."\n" + .'> You can call the [DescribeApisecRules](~~2859155~~) operation to query the supported types of sensitive data. Only built-in types of sensitive data are supported for this operation.', + 'type' => 'string', + 'required' => false, + 'example' => '1000,1001', + ], + ], + [ + 'name' => 'DetectionResult', + 'in' => 'query', + 'schema' => [ + 'description' => 'The evaluation result. Valid values:'."\n" + ."\n" + .'* **report**: Risks exist in cross-border data transfer.'."\n" + .'* **none**: No risks exist in cross-border data transfer.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'report', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '25', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'OrderKey', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the sorting field. Valid values:'."\n" + ."\n" + .'* **total_count** (default): total number of data entries'."\n" + .'* **outbound_count**: total number of data entries that are transferred across borders'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'total_count', + ], + ], + [ + 'name' => 'OrderWay', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sorting method. Valid values:'."\n" + ."\n" + .'* **desc** (default): in descending order'."\n" + .'* **asc**: in ascending order'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'desc', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'required' => false, + 'example' => '428', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the Web Application Firewall (WAF) instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '5', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '2EFCFE18-78F8-5079-B312-07***48B', + ], + 'Data' => [ + 'description' => 'The data types of personal information involved in cross-border data transfer.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The data type of personal information involved in cross-border data transfer.'."\n", + 'type' => 'object', + 'properties' => [ + 'SensitiveLevel' => [ + 'description' => 'The sensitivity level. Valid values:'."\n" + ."\n" + .'* **high**'."\n" + .'* **medium**'."\n" + .'* **low**'."\n", + 'type' => 'string', + 'example' => 'high', + ], + 'SensitiveCode' => [ + 'description' => 'The type of the sensitive data.'."\n" + ."\n" + .'> You can call the [DescribeApisecRules](~~2859155~~) operation to query the supported types of sensitive data.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1001', + ], + 'OutboundCount' => [ + 'description' => 'The number of data entries that are transferred across borders.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '300', + ], + 'DetectionResult' => [ + 'description' => 'The evaluation result. Valid values:'."\n" + ."\n" + .'* **report**: Risks exist in cross-border data transfer.'."\n" + .'* **none**: No risks exist in cross-border data transfer.'."\n", + 'type' => 'string', + 'example' => 'report', + ], + 'SensitiveType' => [ + 'description' => 'The type of the information. Valid values:'."\n" + ."\n" + .'* **info**: full personal information'."\n" + .'* **sensitive**: sensitive personal information'."\n", + 'type' => 'string', + 'example' => 'info', + ], + 'InfoCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '546', + ], + ], + ], + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 5,\\n \\"RequestId\\": \\"2EFCFE18-78F8-5079-B312-07***48B\\",\\n \\"Data\\": [\\n {\\n \\"SensitiveLevel\\": \\"high\\",\\n \\"SensitiveCode\\": 1001,\\n \\"OutboundCount\\": 300,\\n \\"DetectionResult\\": \\"report\\",\\n \\"SensitiveType\\": \\"info\\",\\n \\"InfoCount\\": 546\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeSensitiveOutboundStatistic', + ], + 'DescribeSensitiveOutboundDistribution' => [ + 'summary' => 'Queries the traffic distribution of personal information records involved in cross-border data transfer.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '187676', + 'abilityTreeNodes' => [ + 'FEATUREwaf8XGRZR', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-tl32ast****', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n" + ."\n" + .'> You can query only data of the previous month, previous 3 months, previous 6 months, previous 12 months, and data generated since January 1 of last year for compliance check. You must specify a valid time range.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1672502400', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n" + ."\n" + .'> You can query only data of the previous month, previous 3 months, previous 6 months, previous 12 months, and data generated since January 1 of last year for compliance check. You must specify a valid time range.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1725966000', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'format' => 'int64', + 'required' => false, + 'example' => '443', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the Web Application Firewall (WAF) instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D5EB0', + ], + 'Data' => [ + 'description' => 'The traffic distribution of personal information records involved in cross-border data transfer.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The traffic details of the personal information record involved in cross-border data transfer.'."\n", + 'type' => 'object', + 'properties' => [ + 'SensitiveOutboundCount' => [ + 'description' => 'The number of sensitive information records involved in cross-border data transfer.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '144', + ], + 'Country' => [ + 'description' => 'The country to which the data is transferred.'."\n", + 'type' => 'string', + 'example' => 'US', + ], + 'InfoOutboundCount' => [ + 'description' => 'The number of personal information records involved in cross-border data transfer.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '213', + ], + ], + ], + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\",\\n \\"Data\\": [\\n {\\n \\"SensitiveOutboundCount\\": 144,\\n \\"Country\\": \\"US\\",\\n \\"InfoOutboundCount\\": 213\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeSensitiveOutboundDistribution', + ], + 'DescribeSensitiveDetectionResult' => [ + 'summary' => 'Queries the compliance check results of API security.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '187711', + 'abilityTreeNodes' => [ + 'FEATUREwaf8XGRZR', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-7pp26f1****', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. This value is a UNIX timestamp in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1672502400', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. This value is a UNIX timestamp in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1725966000', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'format' => 'int64', + 'required' => false, + 'example' => '428', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the Web Application Firewall (WAF) instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D5EB0', + ], + 'Data' => [ + 'description' => 'The compliance check results.'."\n", + 'type' => 'object', + 'properties' => [ + 'Result' => [ + 'description' => 'The compliance checks.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the compliance checks.'."\n", + 'type' => 'object', + 'properties' => [ + 'Max' => [ + 'description' => 'The maximum values in the statistics of sensitive data types.'."\n", + 'type' => 'object', + 'properties' => [ + 'SensitiveCode' => [ + 'description' => 'The most frequent sensitive data type.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1003', + ], + 'OutboundCount' => [ + 'description' => 'The number of sensitive personal information records that are of the most frequent sensitive data type and are involved in cross-border data transfer.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '54', + ], + 'InfoCount' => [ + 'description' => 'The number of sensitive personal information records that are of the most frequent sensitive data type.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '187', + ], + ], + ], + 'DetectionResult' => [ + 'description' => 'The compliance check results. Valid values:'."\n" + ."\n" + .'* **report**: Risks exist in cross-border data transfer.'."\n" + .'* **none**: No risks exist in cross-border data transfer.'."\n", + 'type' => 'string', + 'example' => 'report', + ], + 'List' => [ + 'description' => 'The sensitive information check results by sensitive data type.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The sensitive information check results of a sensitive data type.'."\n", + 'type' => 'object', + 'properties' => [ + 'SensitiveCode' => [ + 'description' => 'The sensitive data type.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1002', + ], + 'OutboundCount' => [ + 'description' => 'The number of sensitive personal information records that are involved in cross-border data transfer.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '6', + ], + 'InfoCount' => [ + 'description' => 'The number of personal information records.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '11', + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\",\\n \\"Data\\": {\\n \\"Result\\": [\\n {\\n \\"Max\\": {\\n \\"SensitiveCode\\": 1003,\\n \\"OutboundCount\\": 54,\\n \\"InfoCount\\": 187\\n },\\n \\"DetectionResult\\": \\"report\\",\\n \\"List\\": [\\n {\\n \\"SensitiveCode\\": 1002,\\n \\"OutboundCount\\": 6,\\n \\"InfoCount\\": 11\\n }\\n ]\\n }\\n ]\\n }\\n}","type":"json"}]', + 'title' => 'DescribeSensitiveDetectionResult', + ], + 'DescribeSensitiveApiStatistic' => [ + 'summary' => 'Queries the personal information-related APIs and domain names.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '187678', + 'abilityTreeNodes' => [ + 'FEATUREwaf8XGRZR', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'MatchedHost', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name or IP address of the API.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a.***.com', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n" + ."\n" + .'> You can query only data of the previous month, previous 3 months, previous 6 months, previous 12 months, and data generated since January 1 of last year for compliance check. You must specify a valid time range.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1672502400', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n" + ."\n" + .'> You can query only data of the previous month, previous 3 months, previous 6 months, previous 12 months, and data generated since January 1 of last year for compliance check. You must specify a valid time range.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1725966000', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '10', + 'maximum' => '25', + 'minimum' => '1', + 'default' => '10', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'format' => 'int64', + 'required' => false, + 'example' => '269', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the Web Application Firewall (WAF) instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'default' => 'matchedHost', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D5EB0', + ], + 'Data' => [ + 'description' => 'The statistics.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The statistics.'."\n", + 'type' => 'object', + 'properties' => [ + 'SensitiveOutboundCount' => [ + 'description' => 'The number of sensitive personal information records involved in cross-border data transfer by domain name.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '127', + ], + 'MatchedHost' => [ + 'description' => 'The domain name or IP address.'."\n", + 'type' => 'string', + 'example' => 'www.***.top', + ], + 'List' => [ + 'description' => 'The domain name-related APIs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The domain name-related API.'."\n", + 'type' => 'object', + 'properties' => [ + 'SensitiveCode' => [ + 'description' => 'The types of sensitive data.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The type of the sensitive data.'."\n", + 'type' => 'string', + 'example' => '1003', + ], + ], + 'ApiFormat' => [ + 'description' => 'The API.'."\n", + 'type' => 'string', + 'example' => '/api/login', + ], + 'SensitiveCount' => [ + 'description' => 'The number of sensitive personal information records involved in cross-border data transfer by API.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '55', + ], + 'ApiId' => [ + 'description' => 'The ID of the API.'."\n", + 'type' => 'string', + 'example' => 'd288137009c119a873d4c395****', + ], + 'InfoCount' => [ + 'description' => 'The number of personal information records involved in cross-border data transfer by API.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '78', + ], + ], + ], + ], + 'InfoOutboundCount' => [ + 'description' => 'The number of personal information records involved in cross-border data transfer by domain name.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '213', + ], + ], + ], + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 10,\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\",\\n \\"Data\\": [\\n {\\n \\"SensitiveOutboundCount\\": 127,\\n \\"MatchedHost\\": \\"www.***.top\\",\\n \\"List\\": [\\n {\\n \\"SensitiveCode\\": [\\n \\"1003\\"\\n ],\\n \\"ApiFormat\\": \\"/api/login\\",\\n \\"SensitiveCount\\": 55,\\n \\"ApiId\\": \\"d288137009c119a873d4c395****\\",\\n \\"InfoCount\\": 78\\n }\\n ],\\n \\"InfoOutboundCount\\": 213\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeSensitiveApiStatistic', + ], + 'DescribeFreeUserEvents' => [ + 'summary' => 'Queries the list of security events on which basic detection is performed in the API security module.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '156225', + 'abilityTreeNodes' => [ + 'FEATUREwafDX9EQ6', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-27a3****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '8A2DF88D-90C2-56E9-B8D5-36BB9646791C', + ], + 'Event' => [ + 'description' => 'The security events on which basic detection is performed.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The security event on which basic detection is performed.'."\n", + 'type' => 'object', + 'properties' => [ + 'EventTag' => [ + 'description' => 'The type of the security event.'."\n" + ."\n" + .'> You can call the [DescribeApisecRules](~~2859155~~) operation to query the supported types of security events.', + 'type' => 'string', + 'example' => 'Event_DataTraverse', + ], + 'ApiFormat' => [ + 'description' => 'The API.'."\n", + 'type' => 'string', + 'example' => '/api/login', + ], + 'Domain' => [ + 'description' => 'The domain name of the API.'."\n", + 'type' => 'string', + 'example' => 'www.***.cn', + ], + 'AttackIP' => [ + 'description' => 'The attacker IP address.'."\n", + 'type' => 'string', + 'example' => '104.234.140.**', + ], + 'AttackTime' => [ + 'description' => 'The time at which the attack was launched. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1683703260', + ], + 'EventLevel' => [ + 'description' => 'The severity level of the security event. Valid values:'."\n" + ."\n" + .'* **high**'."\n" + .'* **medium**'."\n" + .'* **low**'."\n", + 'type' => 'string', + 'example' => 'high', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"8A2DF88D-90C2-56E9-B8D5-36BB9646791C\\",\\n \\"Event\\": [\\n {\\n \\"EventTag\\": \\"Event_DataTraverse\\",\\n \\"ApiFormat\\": \\"/api/login\\",\\n \\"Domain\\": \\"www.***.cn\\",\\n \\"AttackIP\\": \\"104.234.140.**\\",\\n \\"AttackTime\\": 1683703260,\\n \\"EventLevel\\": \\"high\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeFreeUserEvents', + ], + 'DescribeFreeUserEventTypes' => [ + 'summary' => 'Queries the types of security events on which basic detection is performed in the API security module.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '188825', + 'abilityTreeNodes' => [ + 'FEATUREwafDX9EQ6', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-bl0****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'B9D6AD11-DD3D-5A27-B1D9-8A37F7777196', + ], + 'Data' => [ + 'description' => 'The types of security events on which basic detection is performed.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The type of the security event on which basic detection is performed.'."\n", + 'type' => 'object', + 'properties' => [ + 'EventNum' => [ + 'description' => 'The number of security events.'."\n", + 'type' => 'string', + 'example' => '4', + ], + 'EventType' => [ + 'description' => 'The type of the security event.'."\n", + 'type' => 'string', + 'example' => 'SMSInterfaceAbuse', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"B9D6AD11-DD3D-5A27-B1D9-8A37F7777196\\",\\n \\"Data\\": [\\n {\\n \\"EventNum\\": \\"4\\",\\n \\"EventType\\": \\"SMSInterfaceAbuse\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeFreeUserEventTypes', + ], + 'DescribeFreeUserEventCount' => [ + 'summary' => 'Queries the statistics of security events that are detected by using the basic detection feature of the API security module.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '156223', + 'abilityTreeNodes' => [ + 'FEATUREwafDX9EQ6', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepay_public_intl-sg-vf***', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '0D9FB3BC-0DE9-58A8-9663-ACE56F24F405', + ], + 'Event' => [ + 'description' => 'The information about the security events that are detected by using the basic detection feature.'."\n", + 'type' => 'object', + 'properties' => [ + 'EventTotal' => [ + 'description' => 'The total number of security events.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '16', + ], + 'EventLow' => [ + 'description' => 'The number of low-risk events.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '12', + ], + 'EventHigh' => [ + 'description' => 'The number of high-risk events.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'EventMedium' => [ + 'description' => 'The number of medium-risk events.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '3', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0D9FB3BC-0DE9-58A8-9663-ACE56F24F405\\",\\n \\"Event\\": {\\n \\"EventTotal\\": 16,\\n \\"EventLow\\": 12,\\n \\"EventHigh\\": 1,\\n \\"EventMedium\\": 3\\n }\\n}","type":"json"}]', + 'title' => 'DescribeFreeUserEventCount', + ], + 'DescribeFreeUserAssetCount' => [ + 'summary' => 'Queries the asset statistics provided by basic detection in the API security module.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '156224', + 'abilityTreeNodes' => [ + 'FEATUREwaf71G1E8', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-cs0*****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '30488BF0-FD58-52DD-B396-D014549F43A3', + ], + 'Asset' => [ + 'description' => 'The asset statistics provided by basic detection.'."\n", + 'type' => 'object', + 'properties' => [ + 'AssetCount' => [ + 'description' => 'The total number of APIs.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '15', + ], + 'AssetActive' => [ + 'description' => 'The number of active APIs.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '34', + ], + 'AssetOffline' => [ + 'description' => 'The number of deactivated APIs.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '13', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"30488BF0-FD58-52DD-B396-D014549F43A3\\",\\n \\"Asset\\": {\\n \\"AssetCount\\": 15,\\n \\"AssetActive\\": 34,\\n \\"AssetOffline\\": 13\\n }\\n}","type":"json"}]', + 'title' => 'DescribeFreeUserAssetCount', + ], + 'DescribeApisecUserOperations' => [ + 'summary' => 'Queries user operation records in the API security module.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '169805', + 'abilityTreeNodes' => [ + 'FEATUREwafWE25G7', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-wwo36ksck1e', + ], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the operation record. Valid values:'."\n" + ."\n" + .'* **abnormal**: risk detection'."\n" + .'* **event**: security event'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'event', + 'default' => 'abnormal', + ], + ], + [ + 'name' => 'ObjectId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The object ID of the operation record.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'fe8723e92e2037245014ab62161bbec8', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'required' => false, + 'example' => '428', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aek2ax2y5****pi', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C9825654-327B-5156-A570-847054B4CF10', + ], + 'Data' => [ + 'description' => 'The operation records.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The operation record.'."\n", + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => 'The type of the operation record. Valid values:'."\n" + ."\n" + .'* **abnormal**: risk detection'."\n" + .'* **event**: security event'."\n", + 'type' => 'string', + 'example' => 'abnormal', + ], + 'ToStatus' => [ + 'description' => 'The state after the operation.'."\n" + ."\n" + .'Valid values of the risk state:'."\n" + ."\n" + .'* **toBeConfirmed**'."\n" + .'* **confirmed**'."\n" + .'* **toBeFixed**'."\n" + .'* **fixed**'."\n" + .'* **ignored**'."\n" + ."\n" + .'Valid values of the event state:'."\n" + ."\n" + .'* **toBeConfirmed**'."\n" + .'* **confirmed**'."\n" + .'* **ignored**'."\n", + 'type' => 'string', + 'example' => 'Confirmed', + ], + 'ObjectId' => [ + 'description' => 'The object ID of the operation record.'."\n", + 'type' => 'string', + 'example' => '24d997acc48a67a01e09b9c5ad861287', + ], + 'FromStatus' => [ + 'description' => 'The state before the operation.'."\n" + ."\n" + .'Valid values of the risk state:'."\n" + ."\n" + .'* **toBeConfirmed**'."\n" + .'* **confirmed**'."\n" + .'* **toBeFixed**'."\n" + .'* **fixed**'."\n" + .'* **ignored**'."\n" + ."\n" + .'Valid values of the event state:'."\n" + ."\n" + .'* **toBeConfirmed**'."\n" + .'* **confirmed**'."\n" + .'* **ignored**'."\n", + 'type' => 'string', + 'example' => 'ignored', + ], + 'UserId' => [ + 'description' => 'The user ID.'."\n", + 'type' => 'string', + 'example' => '1610954****', + ], + 'Note' => [ + 'description' => 'The remarks.'."\n", + 'type' => 'string', + 'example' => 'Handled', + ], + 'Time' => [ + 'description' => 'The time at which the operation was performed. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1685072214', + ], + 'OperationSource' => [ + 'type' => 'string', + ], + ], + ], + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"C9825654-327B-5156-A570-847054B4CF10\\",\\n \\"Data\\": [\\n {\\n \\"Type\\": \\"abnormal\\",\\n \\"ToStatus\\": \\"Confirmed\\",\\n \\"ObjectId\\": \\"24d997acc48a67a01e09b9c5ad861287\\",\\n \\"FromStatus\\": \\"ignored\\",\\n \\"UserId\\": \\"1610954****\\",\\n \\"Note\\": \\"Procesed\\",\\n \\"Time\\": 1685072214,\\n \\"OperationSource\\": \\"custom\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeApisecUserOperations', + ], + 'DescribeApisecSuggestions' => [ + 'summary' => 'Queries the protection suggestions for APIs.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '169804', + 'abilityTreeNodes' => [ + 'FEATUREwaf71G1E8', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-pe336n43m04', + ], + ], + [ + 'name' => 'ApiId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the API.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'a60fd7e3021fe371c06dc1dcb883def0', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'required' => false, + 'example' => '428', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D5EB0', + ], + 'Data' => [ + 'description' => 'The protection suggestions.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The protection suggestion.'."\n", + 'type' => 'object', + 'properties' => [ + 'SuggestRule' => [ + 'description' => 'The rule content of the protection suggestion. The value is a string that consists of multiple parameters in the JSON format. Valid values:'."\n" + ."\n" + .'* **event_tags**: event type'."\n" + .'* **black_iplist**: IP address blacklist'."\n" + .'* **ip_baseline**: IP address'."\n" + .'* **freq_baseline**: throttling frequency'."\n" + .'* **client_id_baseline**: client information'."\n" + .'* **country_baseline**: country information'."\n" + .'* **province_baseline**: province information'."\n" + .'* **sensitive_type**: sensitive information'."\n", + 'type' => 'string', + 'example' => '{'."\n" + .' "rule": "ClientRule",'."\n" + .' "client_id_baseline": ["Edge"]'."\n" + .'}', + ], + 'MatchedHost' => [ + 'description' => 'The domain name or IP address of the API.'."\n", + 'type' => 'string', + 'example' => 'a.aliyun.com', + ], + 'ApiFormat' => [ + 'description' => 'The API.'."\n", + 'type' => 'string', + 'example' => '/apisec/v1/saveinfo', + ], + 'SuggestType' => [ + 'description' => 'The rule type of the protection suggestion. Valid values:'."\n" + ."\n" + .'* **BotRule**: bot management rules'."\n" + .'* **BlackIPRule**: IP address blacklist rules'."\n" + .'* **WhiteIPRule**: IP address whitelist rules'."\n" + .'* **RateLimitRule**: throttling rules'."\n" + .'* **ClientRule**: client rules'."\n" + .'* **GeoRule**: region-related rules'."\n" + .'* **SensitiveRule**: sensitive information rules'."\n" + .'* **UnauthRule**: authentication rules'."\n", + 'type' => 'string', + 'example' => 'WhiteIPRule', + ], + 'SuggestId' => [ + 'description' => 'The rule ID of the protection suggestion.'."\n", + 'type' => 'string', + 'example' => '15060a1f8fed40130b7c4a7bf8d8733b', + ], + ], + ], + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\",\\n \\"Data\\": [\\n {\\n \\"SuggestRule\\": \\"{\\\\n \\\\\\"rule\\\\\\": \\\\\\"ClientRule\\\\\\",\\\\n \\\\\\"client_id_baseline\\\\\\": [\\\\\\"Edge\\\\\\"]\\\\n}\\",\\n \\"MatchedHost\\": \\"a.aliyun.com\\",\\n \\"ApiFormat\\": \\"/apisec/v1/saveinfo\\",\\n \\"SuggestType\\": \\"WhiteIPRule\\",\\n \\"SuggestId\\": \\"15060a1f8fed40130b7c4a7bf8d8733b\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeApisecSuggestions', + ], + 'DescribeApisecStatistics' => [ + 'summary' => 'Queries the statistics of API security-related risks and events.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '169803', + 'abilityTreeNodes' => [ + 'FEATUREwafWE25G7', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the Web Application Firewall (WAF) instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-uax***b09', + 'title' => 'WAF实例的ID。'."\n" + ."\n" + .'> 您可以调用[DescribeInstance](~~433756~~)查询当前WAF实例的ID。', + ], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the statistics. Valid values:'."\n" + ."\n" + .'* **risk**: risk-related statistics.'."\n" + .'* **event**: event-related statistics.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'asset_num', + 'default' => 'risk', + 'title' => '检测统计类型。取值:'."\n" + .'- **risk**:表示风险影响统计。'."\n" + .'- **event**:表示ip事件攻击影响统计。'."\n" + .'- **accountEvent**:表示账号事件攻击影响统计。', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + ."\n" + .'> This parameter is available only in hybrid cloud scenarios. You can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query hybrid cloud clusters.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '428', + 'title' => '混合云集群 ID。'."\n" + .'> 只针对混合云场景,您可以调用[DescribeHybridCloudClusters](~~2849376~~)获取混合云集群信息。', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + 'title' => 'WAF实例所属地域。取值:'."\n" + ."\n" + .'- **cn-hangzhou**:表示中国内地。'."\n" + ."\n" + .'- **ap-southeast-1**:表示非中国内地。', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aek2***uwbs5q', + 'title' => '阿里云资源组ID。', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'title' => '购买时间。格式为Unix时间戳(UTC时间),单位为毫秒。', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1668496310000', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'title' => '实例到期时间。', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '4809859200000', + ], + ], + [ + 'name' => 'UserStatusList', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'title' => '事件状态列表。', + 'type' => 'array', + 'items' => [ + 'title' => '事件状态。取值:'."\n" + ."\n" + .'- **toBeConfirmed**:表示待确认。'."\n" + .'- **confirmed**:表示已确认。'."\n" + .'- **actioned**:表示已处置。'."\n" + .'- **ignored**:表示忽略。', + 'type' => 'string', + 'example' => 'toBeConfirmed', + ], + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => '', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => '请求ID。', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '221F0F14-54C6-59A1-9967-72***81B61A', + ], + 'Data' => [ + 'description' => 'The returned results.'."\n", + 'type' => 'object', + 'properties' => [ + 'High' => [ + 'description' => 'The number of high-risk events.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + 'title' => '高危数量。', + ], + 'ToBeFixed' => [ + 'description' => 'The number of risks to be fixed.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + 'title' => '待修复数量。', + ], + 'Ignore' => [ + 'description' => 'The number of ignored risks.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + 'title' => '已忽略数量。', + ], + 'TodayTotal' => [ + 'description' => 'The total number of new events today.'."\n", + 'type' => 'string', + 'example' => '30', + 'title' => '今日新增总数量', + ], + 'TodayMedium' => [ + 'description' => 'The number of new moderate-risk events today.'."\n", + 'type' => 'string', + 'example' => '10', + 'title' => '今日新增中危数量。', + ], + 'TodayHigh' => [ + 'description' => 'The number of new high-risk events today.'."\n", + 'type' => 'string', + 'example' => '10', + 'title' => '今日新增高危数量。', + ], + 'Low' => [ + 'description' => 'The number of low-risk events.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + 'title' => '低危数量。', + ], + 'Medium' => [ + 'description' => 'The number of moderate-risk events.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + 'title' => '中危数量。', + ], + 'Total' => [ + 'description' => 'The total number of events.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '30', + 'title' => '总数。', + ], + 'TodayLow' => [ + 'description' => 'The number of new low-risk events today.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + 'title' => '今日新增低危数量。', + ], + 'ToBeConfirmed' => [ + 'description' => 'The number of events to be confirmed.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + 'title' => '待确认数量。', + ], + 'Api' => [ + 'description' => 'The number of APIs.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '/api/v1/login', + 'title' => 'API数量。', + ], + 'Confirmed' => [ + 'description' => 'The number of confirmed events.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + 'title' => '已确认数量。', + ], + 'Domain' => [ + 'description' => 'The number of domain names.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => 'a.aliyun.com', + 'title' => '域名数量。', + ], + 'Fixed' => [ + 'description' => 'The number of fixed risks.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + 'title' => '已修复(人工验证)数量。', + ], + 'Actioned' => [ + 'description' => 'The number of handled events.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + 'title' => '已处置数量。', + ], + 'ToBeVerified' => [ + 'title' => '待系统验证的数量。', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2', + ], + 'NotFixed' => [ + 'title' => '验证未修复的数量。', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'SystemFixed' => [ + 'title' => '已修复(系统验证)数量。', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'Account' => [ + 'title' => '账号数量。', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + ], + 'title' => '统计结果。', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"221F0F14-54C6-59A1-9967-72***81B61A\\",\\n \\"Data\\": {\\n \\"High\\": 135,\\n \\"ToBeFixed\\": 3,\\n \\"Ignore\\": 3,\\n \\"TodayTotal\\": \\"3\\",\\n \\"TodayMedium\\": \\"0\\",\\n \\"TodayHigh\\": \\"3\\",\\n \\"Low\\": 160,\\n \\"Medium\\": 27,\\n \\"Total\\": 322,\\n \\"TodayLow\\": 0,\\n \\"ToBeConfirmed\\": 295,\\n \\"Api\\": 202,\\n \\"Confirmed\\": 11,\\n \\"Domain\\": 22,\\n \\"Fixed\\": 13,\\n \\"Actioned\\": 1,\\n \\"ToBeVerified\\": 2,\\n \\"NotFixed\\": 0,\\n \\"SystemFixed\\": 1,\\n \\"Account\\": 1\\n }\\n}","type":"json"}]', + 'title' => 'DescribeApisecStatistics', + ], + 'DescribeApisecRules' => [ + 'summary' => 'Queries the policies configured in the API security module.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '167015', + 'abilityTreeNodes' => [ + 'FEATUREwaf71G1E8', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-cn-0x***', + ], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the policy. Valid values:'."\n" + ."\n" + .'* **risk**: risk detection'."\n" + .'* **event**: security event'."\n" + .'* **sensitive_word**: sensitive data'."\n" + .'* **auth_flag**: authentication credential'."\n" + .'* **api_tag**: business purpose'."\n" + .'* **desensitization**: masking'."\n" + .'* **whitelist**: whitelist'."\n" + .'* **recognition**: API recognition'."\n" + .'* **offline_api**: lifecycle management'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'risk', + ], + ], + [ + 'name' => 'Level', + 'in' => 'query', + 'schema' => [ + 'description' => 'The level of the policy.'."\n" + ."\n" + .'If Type is set to risk or event, you can set this parameter to one of the following values:'."\n" + ."\n" + .'* **high**'."\n" + .'* **medium**'."\n" + .'* **low**'."\n" + ."\n" + .'If Type is set to sensitive_word, you can set this parameter to one of the following values:'."\n" + ."\n" + .'* **S1**'."\n" + .'* **S2**'."\n" + .'* **S3**'."\n" + .'* **S4**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'high', + ], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the policy.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Information Leak', + ], + ], + [ + 'name' => 'Origin', + 'in' => 'query', + 'schema' => [ + 'description' => 'The source of the policy. Valid values:'."\n" + ."\n" + .'* **custom**'."\n" + .'* **default**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'custom', + ], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the policy. Valid values:'."\n" + ."\n" + .'* **1**: enabled'."\n" + .'* **0**: disabled'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'Lang', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'default' => 'zh', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '6', + ], + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D5EB0', + ], + 'Data' => [ + 'description' => 'The policies.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The policy.'."\n", + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => 'The status of the policy. Valid values:'."\n" + ."\n" + .'* **1**: enabled'."\n" + .'* **0**: disabled'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'Type' => [ + 'description' => 'The type of the policy. Valid values:'."\n" + ."\n" + .'* **risk**: risk detection'."\n" + .'* **event**: security event'."\n" + .'* **sensitive_word**: sensitive data'."\n" + .'* **auth_flag**: authentication credential'."\n" + .'* **api_tag**: business purpose'."\n" + .'* **desensitization**: data masking'."\n" + .'* **whitelist**: whitelist'."\n" + .'* **recognition**: API recognition'."\n" + .'* **offline_api**: lifecycle management'."\n", + 'type' => 'string', + 'example' => 'risk', + ], + 'UpdateTime' => [ + 'description' => 'The time when the policy was updated. The value is a UNIX timestamp displayed in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1721095301', + ], + 'Id' => [ + 'description' => 'The ID of the policy.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '34933', + ], + 'Rule' => [ + 'description' => 'The details of the policy. The value is a string that consists of multiple parameters in the JSON format.'."\n", + 'type' => 'string', + 'example' => '{'."\n" + .' "ext": "Date",'."\n" + .' "regex": "-",'."\n" + .' "code": "2009",'."\n" + .' "level": "S1",'."\n" + .' "origin": "default",'."\n" + .' "name": "2009"'."\n" + .'}', + ], + ], + ], + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 6,\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\",\\n \\"Data\\": [\\n {\\n \\"Status\\": 1,\\n \\"Type\\": \\"risk\\",\\n \\"UpdateTime\\": 1721095301,\\n \\"Id\\": 34933,\\n \\"Rule\\": \\"{\\\\n \\\\\\"ext\\\\\\": \\\\\\"Date\\\\\\",\\\\n \\\\\\"regex\\\\\\": \\\\\\"-\\\\\\",\\\\n \\\\\\"code\\\\\\": \\\\\\"2009\\\\\\",\\\\n \\\\\\"level\\\\\\": \\\\\\"S1\\\\\\",\\\\n \\\\\\"origin\\\\\\": \\\\\\"default\\\\\\",\\\\n \\\\\\"name\\\\\\": \\\\\\"2009\\\\\\"\\\\n}\\\\n\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeApisecRules', + ], + 'DescribeApisecProtectionResources' => [ + 'summary' => 'Queries the list of protected objects to which API security policies are applied.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '188983', + 'abilityTreeNodes' => [ + 'FEATUREwaf71G1E8', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-0xldbqt****', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the protected object.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cwaf-***-waf', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '10', + 'maximum' => '100', + 'minimum' => '1', + 'default' => '10', + ], + ], + [ + 'name' => 'ApisecStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The switch of the API security module.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the Web Application Firewall (WAF) instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '5', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '2EFCFE18-78F8-5079-B312-07***48B', + ], + 'Data' => [ + 'description' => 'The protected objects.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The protected object.'."\n", + 'type' => 'object', + 'properties' => [ + 'ApisecStatus' => [ + 'description' => 'The switch of the API security module.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + 'default' => '0', + ], + 'Resource' => [ + 'description' => 'The protected object.'."\n", + 'type' => 'string', + 'example' => 'cwaf-***-waf', + ], + 'ReportStatus' => [ + 'description' => 'The switch of the compliance check feature.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + 'default' => '0', + ], + 'TraceStatus' => [ + 'description' => 'The switch of the tracing and auditing feature.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + 'default' => '0', + ], + ], + ], + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 5,\\n \\"RequestId\\": \\"2EFCFE18-78F8-5079-B312-07***48B\\",\\n \\"Data\\": [\\n {\\n \\"ApisecStatus\\": 1,\\n \\"Resource\\": \\"cwaf-***-waf\\",\\n \\"ReportStatus\\": 1,\\n \\"TraceStatus\\": 0\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeApisecProtectionResources', + ], + 'DescribeApisecProtectionGroups' => [ + 'summary' => 'Queries the list of protected object groups to which API security policies are applied.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '189024', + 'abilityTreeNodes' => [ + 'FEATUREwaf71G1E8', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the Web Application Firewall (WAF) instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-cn-0xldbqt****', + ], + ], + [ + 'name' => 'ResourceGroup', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the protected object group to which the protected object belongs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'group1'."\n", + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'minimum' => '1', + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '60', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'ApisecStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The switch of the API security module.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of protected object groups.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '8', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19****5EB0', + ], + 'Data' => [ + 'description' => 'The protected object groups.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The protected object group.'."\n", + 'type' => 'object', + 'properties' => [ + 'ApisecStatus' => [ + 'description' => 'The switch of the API security module.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + 'default' => '0', + ], + 'ReportStatus' => [ + 'description' => 'The switch of the compliance check feature.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + 'default' => '0', + ], + 'ResourceGroup' => [ + 'description' => 'The name of the protected object group.'."\n", + 'type' => 'string', + 'example' => 'group1', + ], + 'TraceStatus' => [ + 'description' => 'The switch of the tracing and auditing feature.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + 'default' => '0', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 8,\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19****5EB0\\",\\n \\"Data\\": [\\n {\\n \\"ApisecStatus\\": 1,\\n \\"ReportStatus\\": 0,\\n \\"ResourceGroup\\": \\"group1\\",\\n \\"TraceStatus\\": 0\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeApisecProtectionGroups', + ], + 'DescribeApisecMatchedHosts' => [ + 'summary' => 'Queries the list of domain names detected in the API security module.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '168988', + 'abilityTreeNodes' => [ + 'FEATUREwaf71G1E8', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-x0r37plpl0g', + ], + ], + [ + 'name' => 'MatchedHost', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name or IP address.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'bc.aliyun.com', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **10**.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '8', + 'default' => '10', + ], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => [ + 'description' => 'The detection type. Valid values:'."\n" + ."\n" + .'* **api**: API-related domain names'."\n" + .'* **abnormal**: risk-related domain names'."\n" + .'* **event**: security event-related domain names'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'event', + 'default' => 'api', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + .'>For hybrid cloud scenarios only, you can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query the hybrid cloud clusters.', + 'type' => 'string', + 'required' => false, + 'example' => '433', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aekz5qqo7jthcsa', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'string', + 'example' => '2', + ], + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '8D4CA088-F72B-5658-BD5B-ECE8B8F0C7BB', + ], + 'Data' => [ + 'description' => 'The domain names.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The domain name.'."\n", + 'type' => 'object', + 'properties' => [ + 'MatchedHost' => [ + 'description' => 'The domain name or IP address.'."\n", + 'type' => 'string', + 'example' => 'bc.aliyun.com', + ], + 'Count' => [ + 'description' => 'The number of APIs related to the domain name.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '31', + ], + ], + ], + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": \\"2\\",\\n \\"RequestId\\": \\"8D4CA088-F72B-5658-BD5B-ECE8B8F0C7BB\\",\\n \\"Data\\": [\\n {\\n \\"MatchedHost\\": \\"bc.aliyun.com\\",\\n \\"Count\\": 31\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeApisecMatchedHosts', + ], + 'DescribeApisecEvents' => [ + 'summary' => 'Queries API security events.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '169015', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-5y***d31', + 'title' => 'WAF实例的ID。'."\n" + ."\n" + .'> 您可以调用[DescribeInstance](~~433756~~)获取当前WAF实例的ID。', + ], + ], + [ + 'name' => 'EventId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the API security event.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '18ba94fea9***e66ba0557b7b91', + 'title' => 'API安全事件ID。', + ], + ], + [ + 'name' => 'ApiFormat', + 'in' => 'query', + 'schema' => [ + 'description' => 'The API.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '/apisec/v1/register.php', + 'title' => 'API接口。', + ], + ], + [ + 'name' => 'MatchedHost', + 'in' => 'query', + 'schema' => [ + 'description' => 'The domain name or IP address of the API.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'a.aliyun.com', + 'title' => 'API接口所属的域名或IP。', + ], + ], + [ + 'name' => 'EventTag', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the event.'."\n" + ."\n" + .'> You can call the [DescribeApisecRules](~~2859155~~) operation to query the supported event types.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'ObtainSensitiveUnauthorized', + 'title' => '事件类型。'."\n" + .'> 您可以调用[DescribeApisecRules](~~2859155~~)获取支持的事件类型。', + ], + ], + [ + 'name' => 'StartTs', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. This value is a UNIX timestamp in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1683648000', + 'title' => '查询的开始时间,格式为Unix时间戳(UTC时间),单位为秒。', + ], + ], + [ + 'name' => 'EndTs', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. This value is a UNIX timestamp in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1683703260', + 'title' => '查询的结束时间,格式为Unix时间戳(UTC时间),单位为秒。', + ], + ], + [ + 'name' => 'OrderKey', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the sorting field. Valid values:'."\n" + ."\n" + .'* **allCnt**: the number of attacks'."\n" + .'* **startTs**: the start time of the event'."\n" + .'* **endTs**: the end time of the event'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'startTs', + 'title' => '排序字段的名称。取值:'."\n" + .'- **allCnt**:表示攻击次数。'."\n" + .'- **startTs**:表示事件开始时间。'."\n" + .'- **endTs**:表示事件结束时间。', + ], + ], + [ + 'name' => 'OrderWay', + 'in' => 'query', + 'schema' => [ + 'description' => 'The sorting method. Valid values:'."\n" + ."\n" + .'* **desc** (default): descending order'."\n" + .'* **asc**: ascending order'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'desc', + 'title' => '排序的方式。取值:'."\n" + .'- **desc**:表示降序(默认)。'."\n" + .'- **asc**:表示升序。', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + 'default' => '1', + 'title' => '分页查询时,返回第几页数据。默认值为**1**,表示返回第1页数据。', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '200', + 'minimum' => '1', + 'example' => '10', + 'default' => '10', + 'title' => '页面显示最大记录数量。', + ], + ], + [ + 'name' => 'ApiTag', + 'in' => 'query', + 'schema' => [ + 'description' => 'The business purpose of the API.'."\n" + ."\n" + .'> You can call the [DescribeApisecRules](~~2859155~~) operation to query the business purposes of APIs.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'SendMail', + 'title' => 'API业务用途。'."\n" + .'> 您可以调用[DescribeApisecRules](~~2859155~~)获取支持的业务用途。', + ], + ], + [ + 'name' => 'Origin', + 'in' => 'query', + 'schema' => [ + 'description' => 'The source of the event type. Valid values:'."\n" + ."\n" + .'* **custom**'."\n" + .'* **default**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'default', + 'title' => '事件类型的来源。取值:'."\n" + .'- **custom**:表示自定义。'."\n" + .'- **default**:表示内置。', + ], + ], + [ + 'name' => 'EventLevel', + 'in' => 'query', + 'schema' => [ + 'description' => 'The severity level of the event. Valid values:'."\n" + ."\n" + .'* **high**'."\n" + .'* **medium**'."\n" + .'* **low**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'low', + 'title' => '事件等级。取值:'."\n" + .'- **high**:表示高危。'."\n" + .'- **medium**:表示中危。'."\n" + .'- **low**:表示低危。', + ], + ], + [ + 'name' => 'UserStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The event status. Valid values:'."\n" + ."\n" + .'* **toBeConfirmed**'."\n" + .'* **confirmed**'."\n" + .'* **ignored**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Ignore', + 'title' => '事件状态。取值:'."\n" + ."\n" + .'- **toBeConfirmed**:表示待确认。'."\n" + .'- **confirmed**:表示已确认。'."\n" + .'- **actioned**:表示已处置。'."\n" + .'- **ignored**:表示忽略。', + ], + ], + [ + 'name' => 'AttackIp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The Attack source IP.', + 'type' => 'string', + 'required' => false, + 'example' => '42.224.*.*', + 'title' => '攻击IP。', + ], + ], + [ + 'name' => 'ApiId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the event-related API.', + 'type' => 'string', + 'required' => false, + 'example' => '820b860***6205da93b935b28', + 'title' => 'API的ID。', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n" + ."\n" + .'> This parameter is available only in hybrid cloud scenarios. You can call the [DescribeHybridCloudClusters](~~2849376~~) operation to query hybrid cloud clusters.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '428', + 'title' => '混合云集群 ID。'."\n" + .'> 只针对混合云场景,您可以调用[DescribeHybridCloudClusters](~~2849376~~)获取混合云集群信息。', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Value:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + 'title' => 'WAF实例所属地域。取值:'."\n" + ."\n" + .'- **cn-hangzhou**:表示中国内地。'."\n" + ."\n" + .'- **ap-southeast-1**:表示非中国内地。', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + 'title' => '阿里云资源组ID。', + ], + ], + [ + 'name' => 'EventScope', + 'in' => 'query', + 'schema' => [ + 'title' => ' 安全事件的维度。取值:'."\n" + .'- **ip**(默认):表示IP安全事件。'."\n" + .'- **account**:表示账号安全事件。', + 'type' => 'string', + 'example' => 'ip', + 'default' => 'ip', + 'enum' => [ + 'ip', + 'account', + ], + ], + ], + [ + 'name' => 'Account', + 'in' => 'query', + 'schema' => [ + 'title' => '账号信息。', + 'type' => 'string', + 'example' => '1818743389962696', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => '请求结果。', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '3', + 'title' => '返回结果的总数。', + ], + 'RequestId' => [ + 'title' => '请求ID。', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '12F4CC8F-7E9F-5E4D-BF7C-BD1EDDE0C282', + ], + 'Data' => [ + 'description' => 'The security events.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the security event.'."\n", + 'type' => 'object', + 'properties' => [ + 'Origin' => [ + 'description' => 'The source of the event type. Valid values:'."\n" + ."\n" + .'* **custom**'."\n" + .'* **default**'."\n", + 'type' => 'string', + 'example' => 'custom', + 'title' => '事件类型的来源。取值:'."\n" + .'- **custom**:表示自定义。'."\n" + .'- **default**:表示内置。', + ], + 'EventLevel' => [ + 'description' => 'The severity level of the event. Valid values:'."\n" + ."\n" + .'* **high**'."\n" + .'* **medium**'."\n" + .'* **low**'."\n", + 'type' => 'string', + 'example' => 'medium', + 'title' => '事件等级。取值:'."\n" + .'- **high**:表示高危。'."\n" + .'- **medium**:表示中危。'."\n" + .'- **low**:表示低危。', + ], + 'StartTs' => [ + 'description' => 'The beginning of the time range to query. This value is a UNIX timestamp in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1683648000', + 'title' => '查询的开始时间,格式为Unix时间戳(UTC时间),单位为秒。', + ], + 'EventInfo' => [ + 'description' => 'The details of the event. The value of this parameter is a JSON string that contains multiple parameters. The value includes the following parameters:'."\n" + ."\n" + .'* **ip_info**: the information about the attack source IP address. This parameter corresponds to the **AttackIpInfo** response parameter.'."\n" + .'* **rule_id**: the ID of the rule corresponding to the event.'."\n" + .'* **rule_tag**: the information about the rule corresponding to the event.'."\n", + 'type' => 'string', + 'example' => '{}', + 'title' => '废弃字段,无实际含义。', + 'deprecated' => true, + ], + 'ApiFormat' => [ + 'description' => 'The API.'."\n", + 'type' => 'string', + 'example' => '/apisec/v1/register.php', + 'title' => 'API接口。', + ], + 'ApiTag' => [ + 'description' => 'The business purpose of the API.'."\n" + ."\n" + .'> You can call the [DescribeApisecRules](~~2859155~~) operation to query the business purposes of APIs.'."\n", + 'type' => 'string', + 'example' => 'SendMail', + 'title' => 'API业务用途。'."\n" + ."\n" + .'> 您可以调用[DescribeApisecRules](~~2859155~~)获取支持的业务用途。', + ], + 'UserStatus' => [ + 'description' => 'The event status. Valid values:'."\n" + ."\n" + .'* **toBeConfirmed**'."\n" + .'* **confirmed**'."\n" + .'* **ignored**'."\n", + 'type' => 'string', + 'example' => 'Ignore', + 'title' => '事件状态。取值:'."\n" + ."\n" + .'- **toBeConfirmed**:表示待确认。'."\n" + .'- **confirmed**:表示已确认。'."\n" + .'- **actioned**:表示已处置。'."\n" + .'- **ignored**:表示忽略。', + ], + 'Follow' => [ + 'description' => 'Indicates whether the API is followed. Valid values:'."\n" + ."\n" + .'* **1**: The API is followed.'."\n" + .'* **0**: The API is not followed.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + 'title' => '是否关注。取值:'."\n" + .'- **1**:表示关注。'."\n" + .'- **0**:表示未关注。', + ], + 'RequestData' => [ + 'description' => 'The sample API request. The value of this parameter is a JSON string that contains multiple parameters.'."\n", + 'type' => 'string', + 'example' => '{}', + 'title' => '废弃字段,无实际含义。', + 'deprecated' => true, + ], + 'EventId' => [ + 'description' => 'The ID of the event.'."\n", + 'type' => 'string', + 'example' => 'c82cb276847e9c96f9597d9f4b0cdcff', + 'title' => '事件ID。', + ], + 'AttackIp' => [ + 'description' => 'The source IP address of the attack.'."\n", + 'type' => 'string', + 'example' => '104.234.140.33', + 'title' => '废弃字段,无实际含义。', + 'deprecated' => true, + ], + 'AttackIpInfo' => [ + 'description' => 'The information about the attack source IP address. The value of this parameter is a JSON string that contains multiple parameters. The value includes the following parameters:'."\n" + ."\n" + .'* **ip**: the IP address'."\n" + .'* **country_id**: the country ID'."\n" + .'* **region_id**: the region ID'."\n" + .'* **cnt**: the number of attacks'."\n", + 'type' => 'string', + 'example' => '[{\\"ip\\":\\"72.*.*.119\\",\\"country_id\\":\\"US\\",\\"region_id\\":\\"\\",\\"cnt\\":\\"2100\\"}]', + 'title' => '废弃字段,无实际含义。', + 'deprecated' => true, + ], + 'EndTs' => [ + 'description' => 'The end of the time range to query. This value is a UNIX timestamp in UTC. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1683703260', + 'title' => '查询的结束时间,格式为Unix时间戳(UTC时间),单位为秒。', + ], + 'AttackCntInfo' => [ + 'description' => 'The information about the number of attacks. The value of this parameter is a JSON string that contains multiple parameters. Key indicates the timestamp in seconds, and Value indicates the number of attacks.'."\n", + 'type' => 'string', + 'example' => '{\\"1717498320\\":500,\\"1717498380\\":529,\\"1717498440\\":20,\\"1717498260\\":518,\\"1717498200\\":481,\\"1717498140\\":52}', + 'title' => '废弃字段,无实际含义。', + 'deprecated' => true, + ], + 'AllCnt' => [ + 'description' => 'The number of attacks.'."\n" + .'><notice>The parameter has been deprecated, please use the Attackips parameter.></notice>', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + 'title' => '攻击次数。', + ], + 'RemoteRegion' => [ + 'description' => 'The region to which the attack source IP address belongs.'."\n", + 'type' => 'string', + 'example' => '110000', + 'title' => '攻击IP所属地区。', + ], + 'ResponseData' => [ + 'description' => 'The sample API response. The value of this parameter is a JSON string that contains multiple parameters.'."\n", + 'type' => 'string', + 'example' => '{}', + 'title' => '废弃字段,无实际含义。', + 'deprecated' => true, + ], + 'AttackClient' => [ + 'description' => 'The client that is attacked.'."\n", + 'type' => 'string', + 'example' => 'Chrome', + 'title' => '攻击客户端。', + ], + 'EventTag' => [ + 'description' => 'The type of the event.'."\n" + ."\n" + .'> You can call the [DescribeApisecRules](~~2859155~~) operation to query the supported event types.'."\n", + 'type' => 'string', + 'example' => 'ObtainSensitiveUnauthorized', + 'title' => '事件类型。'."\n" + ."\n" + .'> 您可以调用[DescribeApisecRules](~~2859155~~)获取支持的事件类型。', + ], + 'MatchedHost' => [ + 'description' => 'The domain name or IP address of the API.'."\n", + 'type' => 'string', + 'example' => 'a.aliyun.com', + 'title' => 'API接口所属的域名或IP。', + ], + 'Note' => [ + 'description' => 'The remarks.'."\n", + 'type' => 'string', + 'example' => 'Notified', + 'title' => '备注信息。', + ], + 'ApiId' => [ + 'description' => 'The ID of the API that is associated with the security event.'."\n", + 'type' => 'string', + 'example' => '2ecc1cf67b91853bc55545052ccf06a8', + 'title' => '安全事件关联API的ID。', + ], + 'RemoteCountry' => [ + 'description' => 'The country to which the attack source IP address belongs.'."\n", + 'type' => 'string', + 'example' => 'US', + 'title' => '攻击IP所属国家。', + ], + 'AttackIps' => [ + 'description' => 'The source IP addresses of the attacks.', + 'type' => 'array', + 'items' => [ + 'description' => 'The source IP address of the attack.', + 'type' => 'string', + 'example' => '104.234.140.33'."\n", + 'title' => '攻击IP。', + ], + 'title' => '废弃字段,无实际含义。', + 'deprecated' => true, + ], + 'AttackerList' => [ + 'title' => '事件对应的攻击者列表。', + 'type' => 'array', + 'items' => [ + 'title' => '事件对应的攻击者。'."\n" + .'>当安全事件的维度 EventScope 取值为 ip 时,为攻击者IP,取值为 account 时,为攻击者账号。', + 'type' => 'string', + 'example' => '1.1.1.1', + ], + ], + ], + 'title' => '安全事件信息。', + ], + 'title' => '安全事件信息。', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 3,\\n \\"RequestId\\": \\"12F4CC8F-7E9F-5E4D-BF7C-BD1EDDE0C282\\",\\n \\"Data\\": [\\n {\\n \\"Origin\\": \\"custom\\",\\n \\"EventLevel\\": \\"medium\\",\\n \\"StartTs\\": 1683648000,\\n \\"EventInfo\\": \\"{\\\\n \\\\\\"ip_info\\\\\\": [\\\\n {\\\\n \\\\\\"ip\\\\\\": \\\\\\"112.224.143.**\\\\\\",\\\\n \\\\\\"country_id\\\\\\": \\\\\\"CN\\\\\\",\\\\n \\\\\\"region_id\\\\\\": \\\\\\"-\\\\\\",\\\\n \\\\\\"cnt\\\\\\": \\\\\\"4\\\\\\"\\\\n }\\\\n ],\\\\n \\\\\\"rule_id\\\\\\": \\\\\\"837**\\\\\\",\\\\n \\\\\\"rule_tag\\\\\\": \\\\\\"interface returns a large amount of sensitive information\\\\\\"\\\\n}\\\\n\\",\\n \\"ApiFormat\\": \\"/apisec/v1/register.php\\",\\n \\"ApiTag\\": \\"SendMail\\",\\n \\"UserStatus\\": \\"toBeConfirmed\\",\\n \\"Follow\\": 0,\\n \\"RequestData\\": \\"{}\\",\\n \\"EventId\\": \\"c82cb276847e9c96f9597d9f4b0cdcff\\",\\n \\"AttackIp\\": \\"104.234.140.**\\",\\n \\"AttackIpInfo\\": \\"[\\\\n {\\\\n \\\\\\"ip\\\\\\": \\\\\\"72.*.*.119\\\\\\",\\\\n \\\\\\"country_id\\\\\\": \\\\\\"US\\\\\\",\\\\n \\\\\\"region_id\\\\\\": \\\\\\"\\\\\\",\\\\n \\\\\\"cnt\\\\\\": \\\\\\"2100\\\\\\"\\\\n }\\\\n]\\",\\n \\"EndTs\\": 1683703260,\\n \\"AttackCntInfo\\": \\"{\\\\n \\\\\\"1717498320\\\\\\": 500,\\\\n \\\\\\"1717498380\\\\\\": 529,\\\\n \\\\\\"1717498440\\\\\\": 20\\\\n}\\",\\n \\"AllCnt\\": 10,\\n \\"RemoteRegion\\": \\"110000\\",\\n \\"ResponseData\\": \\"{}\\",\\n \\"AttackClient\\": \\"Chrome\\",\\n \\"EventTag\\": \\"ObtainSensitiveUnauthorized\\",\\n \\"MatchedHost\\": \\"a.***.com\\",\\n \\"Note\\": \\"Notify\\",\\n \\"ApiId\\": \\"2ecc1cf67b91853bc55545052ccf06a8\\",\\n \\"RemoteCountry\\": \\"US\\",\\n \\"AttackIps\\": [\\n \\"104.234.140.**\\\\n\\"\\n ],\\n \\"AttackerList\\": [\\n \\"1.1.1.1\\"\\n ]\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeApisecEvents', + ], + 'DescribeApisecEventDetail' => [ + 'summary' => '查询安全事件详情', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '255326', + 'abilityTreeNodes' => [ + 'FEATUREwafDX9EQ6', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'title' => 'WAF实例ID。'."\n" + ."\n" + .'> 您可以通过调用[DescribeInstance](~~433756~~)接口查看当前WAF实例ID。', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-cn-0xldbqtm005', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => 'WAF实例所属地域。取值:'."\n" + ."\n" + .'- **cn-hangzhou**:表示中国内地。'."\n" + ."\n" + .'- **ap-southeast-1**:表示非中国内地。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'title' => '阿里云资源组ID。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'EventId', + 'in' => 'query', + 'schema' => [ + 'title' => 'API 安全事件 ID。', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '18ba94fea9***e66ba0557b7b91', + ], + ], + [ + 'name' => 'EventScope', + 'in' => 'query', + 'schema' => [ + 'title' => '安全事件的维度。取值:'."\n" + .'- **ip**(默认):表示IP安全事件。'."\n" + ."\n" + .'- **account**:表示账号安全事件。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'ip', + 'default' => 'ip', + 'enum' => [ + 'ip', + 'account', + ], + ], + ], + [ + 'name' => 'DetailType', + 'in' => 'query', + 'schema' => [ + 'title' => '安全事件的详细信息类型,取值:'."\n" + .'- **event_info**(默认):表示攻击说明信息。'."\n" + .'- **api_info**:表示攻击API信息。'."\n" + .'- **cnt_info**:表示攻击走势信息。'."\n" + .'- **ip_info**:表示攻击IP信息。'."\n" + .'- **sensitive_info**:表示访问敏感数据信息。'."\n" + .'- **request_data**:表示请求信息。'."\n" + .'- **response_data**:表示响应信息。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'event_info', + 'default' => 'event_info', + 'enum' => [ + 'event_info', + 'api_info', + 'cnt_info', + 'ip_info', + 'sensitive_info', + 'request_data', + 'response_data', + ], + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'title' => '混合云集群 ID。'."\n" + .'> 只针对混合云场景,您可以调用[DescribeHybridCloudClusters](~~2849376~~)获取混合云集群信息。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '428', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => '本次请求的ID。', + 'description' => '', + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D5EB0', + ], + 'EventId' => [ + 'title' => 'API安全事件ID。', + 'description' => '', + 'type' => 'string', + 'example' => '18ba94fea9***e66ba0557b7b91', + ], + 'EventTag' => [ + 'title' => '事件类型。'."\n" + .'> 您可以调用[DescribeApisecRules](~~2859155~~)获取支持的事件类型。', + 'description' => '', + 'type' => 'string', + 'example' => 'ObtainSensitiveUnauthorized', + ], + 'AttackerList' => [ + 'title' => '攻击者列表。', + 'description' => '', + 'type' => 'array', + 'items' => [ + 'title' => '攻击者信息。'."\n" + .'> 当安全事件的维度 **EventScope** 取值为 **ip** 时,为攻击者IP,取值为 **account** 时,为攻击者账号。', + 'description' => '', + 'type' => 'string', + 'example' => '104.234.140.**', + ], + ], + 'AttackCnt' => [ + 'title' => '攻击次数。', + 'description' => '', + 'type' => 'string', + 'example' => '345', + ], + 'StartTs' => [ + 'title' => '查询的开始时间,格式为Unix时间戳(UTC时间),单位为秒。', + 'description' => '', + 'type' => 'string', + 'example' => '1683648000', + ], + 'EndTs' => [ + 'title' => '查询的结束时间,格式为Unix时间戳(UTC时间),单位为秒。', + 'description' => '', + 'type' => 'string', + 'example' => '1683703260', + ], + 'Origin' => [ + 'title' => '事件类型的来源。取值:'."\n" + .'- **custom**:表示自定义。'."\n" + .'- **default**:表示内置。', + 'description' => '', + 'type' => 'string', + 'example' => 'custom', + ], + 'EventLevel' => [ + 'title' => '事件等级。取值:'."\n" + .'- **high**:表示高危。'."\n" + .'- **medium**:表示中危。'."\n" + .'- **low**:表示低危。', + 'description' => '', + 'type' => 'string', + 'example' => 'low', + ], + 'UserStatus' => [ + 'title' => '事件状态。取值:'."\n" + .'- **toBeConfirmed**:表示待确认。'."\n" + .'- **confirmed**:表示已确认。'."\n" + .'- **actioned**:表示已处置。'."\n" + .'- **ignored**:表示忽略。', + 'description' => '', + 'type' => 'string', + 'example' => 'toBeConfirmed', + ], + 'Note' => [ + 'title' => '备注信息。', + 'description' => '', + 'type' => 'string', + 'example' => 'already confirmed.', + ], + 'EventScope' => [ + 'title' => '安全事件的维度。取值:'."\n" + .'- **ip**(默认):表示IP安全事件。'."\n" + ."\n" + .'- **account**:表示账号安全事件。', + 'description' => '', + 'type' => 'string', + 'example' => 'ip', + ], + 'DetailValue' => [ + 'title' => '安全事件的详细信息,以一系列参数构造的 JSON 格式转化成字符串。', + 'description' => '', + 'type' => 'string', + 'example' => '{\\"location\\":[\\"FR\\",\\"CN\\"],\\"location_type\\":\\"country\\"}', + ], + ], + 'title' => '请求结果。', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\",\\n \\"EventId\\": \\"18ba94fea9***e66ba0557b7b91\\",\\n \\"EventTag\\": \\"ObtainSensitiveUnauthorized\\",\\n \\"AttackerList\\": [\\n \\"104.234.140.**\\"\\n ],\\n \\"AttackCnt\\": \\"345\\",\\n \\"StartTs\\": \\"1683648000\\",\\n \\"EndTs\\": \\"1683703260\\",\\n \\"Origin\\": \\"custom\\",\\n \\"EventLevel\\": \\"low\\",\\n \\"UserStatus\\": \\"toBeConfirmed\\",\\n \\"Note\\": \\"already confirmed.\\",\\n \\"EventScope\\": \\"ip\\",\\n \\"DetailValue\\": \\"{\\\\\\\\\\\\\\"location\\\\\\\\\\\\\\":[\\\\\\\\\\\\\\"FR\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CN\\\\\\\\\\\\\\"],\\\\\\\\\\\\\\"location_type\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"country\\\\\\\\\\\\\\"}\\"\\n}","type":"json"}]', + ], + 'DescribeApisecLogDeliveries' => [ + 'summary' => 'Queries the configurations of API security log subscription.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '224407', + 'abilityTreeNodes' => [ + 'FEATUREwafJYSA2F', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3_public_cn-uqm2z****0a'."\n", + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '2EFCFE18-78F8-5079-B312-07***48B', + ], + 'DeliveryConfigs' => [ + 'description' => 'The configurations of API security log subscription.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'AssertKey' => [ + 'description' => 'The type of the log subscription. Valid values:'."\n" + ."\n" + .'* **risk**: risk information.'."\n" + .'* **event**: attack event information.'."\n" + .'* **asset**: asset information.'."\n", + 'type' => 'string', + 'example' => 'risk', + ], + 'Status' => [ + 'description' => 'The status of API security log subscription. Valid values:'."\n" + ."\n" + .'* **true**: enabled.'."\n" + .'* **false**: disabled.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'LogStoreName' => [ + 'description' => 'The name of the Logstore in Simple Log Service.'."\n", + 'type' => 'string', + 'example' => 'apisec-logstore***'."\n", + ], + 'ProjectName' => [ + 'description' => 'The name of the project in Simple Log Service.'."\n", + 'type' => 'string', + 'example' => 'apisec-project-14316572********', + ], + 'LogRegionId' => [ + 'description' => 'The ID of the region where logs are stored.'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + ], + ], + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2EFCFE18-78F8-5079-B312-07***48B\\",\\n \\"DeliveryConfigs\\": [\\n {\\n \\"AssertKey\\": \\"risk\\",\\n \\"LogRegionId\\": \\"cn-hangzhou\\",\\n \\"ProjectName\\": \\"apisec-project-14316572********\\",\\n \\"LogStoreName\\": \\"apisec-logstore***\\\\n\\",\\n \\"Status\\": true\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeApisecLogDeliveries', + ], + 'DescribeApisecSlsLogStores' => [ + 'summary' => 'Queries the Logstores whose names start with apisec- in Simple Log Service.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '224413', + 'abilityTreeNodes' => [ + 'FEATUREwafJYSA2F', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3_public_cn-uqm2z****0a', + ], + ], + [ + 'name' => 'LogRegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where logs are stored.'."\n" + ."\n" + .'> You can call the [DescribeUserSlsLogRegions](~~2712598~~) operation to query available log storage regions.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ProjectName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the project in Simple Log Service.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'apisec-project-14316572********', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19****5EB0'."\n", + ], + 'LogStores' => [ + 'description' => 'The names of the Logstores in Simple Log Service.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The name of the Logstore in Simple Log Service.'."\n", + 'type' => 'string', + 'example' => 'apisec-logstore***', + ], + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19****5EB0\\\\n\\",\\n \\"LogStores\\": [\\n \\"apisec-logstore***\\"\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeApisecSlsLogStores', + ], + 'DescribeApisecSlsProjects' => [ + 'summary' => 'Queries the projects whose names start with apisec- in Simple Log Service.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '224410', + 'abilityTreeNodes' => [ + 'FEATUREwafJYSA2F', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3_public_cn-uqm2z****0a', + ], + ], + [ + 'name' => 'LogRegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where logs are stored.'."\n" + ."\n" + .'> You can call the [DescribeUserSlsLogRegions](~~2712598~~) operation to query available log storage regions.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19****5EB0', + ], + 'Projects' => [ + 'description' => 'The names of the projects in Simple Log Service.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The name of the project in Simple Log Service.'."\n", + 'type' => 'string', + 'example' => 'apisec-project-14316572********'."\n", + ], + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19****5EB0\\",\\n \\"Projects\\": [\\n \\"apisec-project-14316572********\\\\n\\"\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeApisecSlsProjects', + ], + 'ModifyApisecLogDelivery' => [ + 'summary' => 'Modifies the configurations of API security log subscription.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '224402', + 'abilityTreeNodes' => [ + 'FEATUREwafJYSA2F', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3_public_cn-uqm2z****0a', + ], + ], + [ + 'name' => 'AssertKey', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the log subscription. Valid values:'."\n" + ."\n" + .'* **risk**: risk information.'."\n" + .'* **event**: attack event information.'."\n" + .'* **asset**: asset information.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'risk', + ], + ], + [ + 'name' => 'LogRegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where logs are stored.'."\n" + ."\n" + .'> You can call the [DescribeUserSlsLogRegions](~~2712598~~) operation to query available log storage regions.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ProjectName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the project in Simple Log Service.'."\n" + ."\n" + .'> API security logs can be delivered only to projects whose names start with apisec-.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'apisec-project-14316572********', + ], + ], + [ + 'name' => 'LogStoreName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the Logstore in Simple Log Service.'."\n" + ."\n" + .'> API security logs can be delivered only to Logstores whose names start with apisec-.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'apisec-logstore***', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'F35F45B0-5D6B-4238-BE02-A62D****E840', + ], + ], + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F35F45B0-5D6B-4238-BE02-A62D****E840\\"\\n}","type":"json"}]', + 'title' => 'ModifyApisecLogDelivery', + ], + 'DescribeApisecExamples' => [ + 'summary' => '查询API安全样例信息', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '255326', + 'abilityTreeNodes' => [ + 'FEATUREwaf71G1E8', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'title' => 'WAF实例ID。'."\n" + ."\n" + .'> 您可以通过调用[DescribeInstance](~~433756~~)接口查看当前WAF实例ID。', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-cn-0xldbqtm005', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => 'WAF实例所属地域。取值:'."\n" + ."\n" + .'- **cn-hangzhou**:表示中国内地。'."\n" + ."\n" + .'- **ap-southeast-1**:表示非中国内地。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'title' => '阿里云资源组ID。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'ApiId', + 'in' => 'query', + 'schema' => [ + 'title' => 'API 的 ID。', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '867ade***24ee6e205b8da82b8f84', + ], + ], + [ + 'name' => 'ExampleType', + 'in' => 'query', + 'schema' => [ + 'title' => '样例的类型。取值:'."\n" + .'- **sensitive**:表示敏感信息类型。'."\n" + ."\n" + .'- **risk**:表示风险类型。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'sensitive', + 'enum' => [ + 'risk', + 'sensitive', + ], + ], + ], + [ + 'name' => 'RequestSensitiveTypeList', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'title' => '请求敏感信息类型列表。', + 'description' => '', + 'type' => 'array', + 'items' => [ + 'title' => '请求敏感信息类型。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '1001', + ], + 'required' => false, + 'maxItems' => 100, + ], + ], + [ + 'name' => 'ResponseSensitiveTypeList', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'title' => '响应敏感信息类型列表。', + 'description' => '', + 'type' => 'array', + 'items' => [ + 'title' => '响应敏感信息类型。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '1001', + ], + 'required' => false, + 'example' => 'LackOfSpeedLimit', + 'maxItems' => 100, + ], + ], + [ + 'name' => 'AbnormalTag', + 'in' => 'query', + 'schema' => [ + 'title' => '风险类型。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'LackOfSpeedLimit', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'title' => '下一页查询凭证(**Token**)。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'AAAAAGBgV9tolsLfijC4wam2htS*****D/46H3X2wIS', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'title' => '分页查询时每页个数。取值范围为:1-5,默认值为 5。', + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'maximum' => '5', + 'minimum' => '1', + 'example' => '5', + 'default' => '5', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'title' => '混合云集群 ID。'."\n" + .'> 只针对混合云场景,您可以调用[DescribeHybridCloudClusters](~~2849376~~)获取混合云集群信息。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '176', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => '请求结果。', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => '本次请求的ID。', + 'description' => '', + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D5EB0', + ], + 'Examples' => [ + 'title' => '样例列表。', + 'description' => '', + 'type' => 'array', + 'items' => [ + 'title' => '样例信息。', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Protocol' => [ + 'title' => '协议的类型。取值:'."\n" + .'- **http**:表示http协议。'."\n" + ."\n" + .'- **https**:表示https协议。', + 'description' => '', + 'type' => 'string', + 'example' => 'http', + ], + 'ApiUrl' => [ + 'title' => '完整请求路径。', + 'description' => '', + 'type' => 'string', + 'example' => 'http://www.test.com/api/v1/hello.php?token=TkJGQw', + ], + 'PocPayload' => [ + 'title' => '验证请求。', + 'description' => '', + 'type' => 'string', + 'example' => 'curl -X GET -H \'Accept: */*\' -H \'Connection: keep-alive\' -H \'User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64)\' -H \'Host: www.test.com\' -H \'Accept-encoding: gzip, deflate\' -H \'Eagleeye-rpcid: 0.1\' \'http://www.test.com/api/v1/hello.php?token=TkJGQw\'', + ], + 'RequestSensitiveData' => [ + 'title' => '请求敏感数据信息列表。', + 'description' => '', + 'type' => 'array', + 'items' => [ + 'title' => '请求敏感数据信息。', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'SensitiveCode' => [ + 'title' => '敏感信息类型。', + 'description' => '', + 'type' => 'string', + 'example' => '1000', + ], + 'SensitiveDataList' => [ + 'title' => '敏感信息数据列表。', + 'description' => '', + 'type' => 'array', + 'items' => [ + 'title' => '敏感信息数据。', + 'description' => '', + 'type' => 'string', + 'example' => '90.88.49.19', + ], + ], + ], + ], + ], + 'ResponseSensitiveData' => [ + 'title' => '响应敏感数据信息列表。', + 'description' => '', + 'type' => 'array', + 'items' => [ + 'title' => '响应敏感数据信息。', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'SensitiveCode' => [ + 'title' => '敏感信息类型。', + 'description' => '', + 'type' => 'string', + 'example' => '1000', + ], + 'SensitiveDataList' => [ + 'title' => '敏感信息数据列表。', + 'description' => '', + 'type' => 'array', + 'items' => [ + 'title' => '敏感信息数据。', + 'description' => '', + 'type' => 'string', + 'example' => '90.88.49.19', + ], + ], + ], + ], + ], + 'Request' => [ + 'title' => '样例请求内容,以一系列参数构造的 JSON 格式转化成字符串。包含的字段如下:'."\n" + .'- **method**:表示请求方法。'."\n" + .'- **host**:表示请求域名。'."\n" + .'- **header**:表示请求头。'."\n" + .'- **server_port**:表示服务端口。'."\n" + .'- **body**:表示请求体内容。'."\n" + .'- **url**:表示请求路径。'."\n" + .'- **server_protocol**:表示服务端协议。'."\n" + ."\n" + .'> 当 **body** 字段内容超过16K,仅返回部分内容。', + 'description' => '', + 'type' => 'string', + 'example' => '{'."\n" + .' "method": "GET",'."\n" + .' "host": "www.test.com",'."\n" + .' "header": {'."\n" + .' "Accept": "*/*",'."\n" + .' "Connection": "keep-alive"'."\n" + .' },'."\n" + .' "server_port": "80",'."\n" + .' "body": "-",'."\n" + .' "url": "/api/v1/hello.php?token=TkJGQw",'."\n" + .' "server_protocol": "HTTP/1.1"'."\n" + .'}', + ], + 'Response' => [ + 'title' => '样例响应内容,以一系列参数构造的 JSON 格式转化成字符串。包含的字段如下:'."\n" + .'- **status**:表示状态码。'."\n" + .'- **header**:表示响应头。'."\n" + .'- **body**:表示响应体内容。'."\n" + ."\n" + .'> 当 **body** 字段内容超过16K,仅返回部分内容。', + 'description' => '', + 'type' => 'string', + 'example' => '{'."\n" + .' "header": {'."\n" + .' "Connection": "keep-alive",'."\n" + .' "Content-Encoding": "gzip",'."\n" + .' "Content-Type": "text/html; charset=UTF-8"'."\n" + .' },'."\n" + .' "body": "xxxx",'."\n" + .' "status": 200'."\n" + .'}', + ], + ], + ], + ], + 'NextToken' => [ + 'title' => '下一页查询凭证(**Token**)。', + 'description' => '', + 'type' => 'string', + 'example' => 'AAAAAGBgV9tolsLfijC4wam2htS*****D/46H3X2wIS', + ], + 'MaxResults' => [ + 'title' => '分页查询时每页个数。取值范围为:1-5,默认值为 5。', + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'TotalCount' => [ + 'title' => '结果的总数。', + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\",\\n \\"Examples\\": [\\n {\\n \\"Protocol\\": \\"http\\",\\n \\"ApiUrl\\": \\"http://www.test.com/api/v1/hello.php?token=TkJGQw\\",\\n \\"PocPayload\\": \\"curl -X GET -H \'Accept: */*\' -H \'Connection: keep-alive\' -H \'User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64)\' -H \'Host: www.test.com\' -H \'Accept-encoding: gzip, deflate\' -H \'Eagleeye-rpcid: 0.1\' \'http://www.test.com/api/v1/hello.php?token=TkJGQw\'\\",\\n \\"RequestSensitiveData\\": [\\n {\\n \\"SensitiveCode\\": \\"1000\\",\\n \\"SensitiveDataList\\": [\\n \\"90.88.49.19\\"\\n ]\\n }\\n ],\\n \\"ResponseSensitiveData\\": [\\n {\\n \\"SensitiveCode\\": \\"1000\\",\\n \\"SensitiveDataList\\": [\\n \\"90.88.49.19\\"\\n ]\\n }\\n ],\\n \\"Request\\": \\"{\\\\n \\\\\\"method\\\\\\": \\\\\\"GET\\\\\\",\\\\n \\\\\\"host\\\\\\": \\\\\\"www.test.com\\\\\\",\\\\n \\\\\\"header\\\\\\": {\\\\n \\\\\\"Accept\\\\\\": \\\\\\"*/*\\\\\\",\\\\n \\\\\\"Connection\\\\\\": \\\\\\"keep-alive\\\\\\"\\\\n },\\\\n \\\\\\"server_port\\\\\\": \\\\\\"80\\\\\\",\\\\n \\\\\\"body\\\\\\": \\\\\\"-\\\\\\",\\\\n \\\\\\"url\\\\\\": \\\\\\"/api/v1/hello.php?token=TkJGQw\\\\\\",\\\\n \\\\\\"server_protocol\\\\\\": \\\\\\"HTTP/1.1\\\\\\"\\\\n}\\",\\n \\"Response\\": \\"{\\\\n \\\\\\"header\\\\\\": {\\\\n \\\\\\"Connection\\\\\\": \\\\\\"keep-alive\\\\\\",\\\\n \\\\\\"Content-Encoding\\\\\\": \\\\\\"gzip\\\\\\",\\\\n \\\\\\"Content-Type\\\\\\": \\\\\\"text/html; charset=UTF-8\\\\\\"\\\\n },\\\\n \\\\\\"body\\\\\\": \\\\\\"xxxx\\\\\\",\\\\n \\\\\\"status\\\\\\": 200\\\\n}\\"\\n }\\n ],\\n \\"NextToken\\": \\"AAAAAGBgV9tolsLfijC4wam2htS*****D/46H3X2wIS\\",\\n \\"MaxResults\\": 5,\\n \\"TotalCount\\": 5\\n}","type":"json"}]', + ], + 'DescribeNetworkFlowTimeSeriesMetric' => [ + 'summary' => 'Retrieves time-series data for all network traffic, including both malicious and legitimate requests.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '258611', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The Web Application Firewall (WAF) instance ID.'."\n" + .'> Call the [DescribeInstanceInfo](~~140857~~) operation to retrieve the WAF instance ID.', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'Filter', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'Specifies filtering conditions. Multiple filter parameters use AND logic.', + 'type' => 'object', + 'properties' => [ + 'DateRange' => [ + 'description' => 'Specifies the date range for the query.'."\n", + 'type' => 'object', + 'properties' => [ + 'StartDate' => [ + 'description' => 'Start time of the query range (Unix timestamp, seconds).', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1713888000', + ], + 'EndDate' => [ + 'description' => 'End time of the query range (Unix timestamp, seconds).', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1713888600', + ], + ], + 'required' => true, + ], + 'Conditions' => [ + 'description' => 'The list of filter conditions. Each node describes a filter condition.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'Each condition object must specify a filter field (**Key**), a filter operator (**OpValue**), and filter content (**Values**).', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The filter fields. Valid values:'."\n" + .'* matched_host'."\n" + .'* cluster'."\n" + ."\n" + .'For details, see the **Filter fields (Key)** section below.', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [], + 'example' => 'matched_host', + ], + 'OpValue' => [ + 'description' => 'The filter operator. For details, see the **Filter operators (OpValue)** section below.', + 'type' => 'string', + 'required' => false, + 'example' => 'eq', + ], + 'Values' => [ + 'description' => 'The filter content.'."\n", + 'type' => 'any', + 'required' => false, + 'example' => 'test.waf-top', + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => true, + ], + ], + [ + 'name' => 'Metric', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies the data type to be returned. Valid values:'."\n" + ."\n" + .'* qps: Returns the queries per second (QPS) processed by WAF. This value is calculated using a peak detection method: QPS is measured every 10 seconds, and the highest value within the specified time range is returned.'."\n" + .'* total_requests: Returns the total number of requests processed by WAF.'."\n" + .'* top5\\_status: Returns the top 5 HTTP status codes returned by the WAF to clients, along with their corresponding time series statistics.'."\n" + .'* top 5\\_upstream_status: Returns the top 5 HTTP status codes returned by the origin server to clients, along with their corresponding time series data.', + 'type' => 'string', + 'required' => true, + 'example' => 'total_requests', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: The Chinese mainland.'."\n" + .'* **ap-southeast-1**: Outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'ap-southeast-1', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The resource group ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned data.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'D827FCFE-90A7-4330-9326-D33C8B4C7726', + ], + 'NetworkFlowTimeSeries' => [ + 'description' => 'The array of time-series data. Supports returning data with multiple values.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'Each time-series contains Timestamps (array of timestamps) and Values (array of counts). Both arrays have the same length. Each timestamp in Timestamps corresponds to a count in Values.'."\n", + 'type' => 'object', + 'properties' => [ + 'Metric' => [ + 'description' => 'The metric name, consistent with the Metric request parameter.'."\n", + 'type' => 'string', + 'example' => 'total_requests', + ], + 'Timestamps' => [ + 'description' => 'The array of timestamps (seconds) marking the start of each time interval.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The start time of each data point (Unix timestamp in seconds).'."\n", + 'type' => 'string', + 'example' => '[]', + ], + ], + 'Values' => [ + 'description' => 'The array of counts, each representing the count for the corresponding time interval.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The count for the current time interval.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '[]', + ], + ], + ], + ], + ], + 'TimeSeriesMetaData' => [ + 'description' => 'The metadata of the returned data.'."\n", + 'type' => 'object', + 'properties' => [ + 'DateRange' => [ + 'description' => 'The query time range.'."\n", + 'type' => 'object', + 'properties' => [ + 'StartDate' => [ + 'description' => 'The start time of the query range (Unix timestamp, seconds). Same as the StartDate request parameter.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1713888000', + ], + 'EndDate' => [ + 'description' => 'The end time of the query range (Unix timestamp, seconds). Same as the EndDate request parameter.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1713888600', + ], + ], + ], + 'AggregateInterval' => [ + 'description' => 'The time granularity. For example, 15m indicates that each data point is counted every 15 minutes. For details, see the **Time granularity of time series data points** section below.', + 'type' => 'string', + 'example' => '1m', + ], + 'Units' => [ + 'description' => 'The unit of the returned data. It is fixed as requests.', + 'type' => 'string', + 'example' => 'requests', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Report.%s', + 'errorMessage' => 'Invalid parameter:%s.', + ], + [ + 'errorCode' => 'Waf.Report.InternalError', + 'errorMessage' => 'Server error occurred in report service.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D827FCFE-90A7-4330-9326-D33C8B4*****\\",\\n \\"NetworkFlowTimeSeries\\": [\\n {\\n \\"Metric\\": \\"total_requests\\",\\n \\"Timestamps\\": [\\n \\"[]\\"\\n ],\\n \\"Values\\": [\\n 0\\n ]\\n }\\n ],\\n \\"TimeSeriesMetaData\\": {\\n \\"DateRange\\": {\\n \\"StartDate\\": 1713888000,\\n \\"EndDate\\": 1713888600\\n },\\n \\"AggregateInterval\\": \\"1m\\",\\n \\"Units\\": \\"requests\\"\\n }\\n}","type":"json"}]', + 'title' => 'DescribeNetworkFlowTimeSeriesMetric', + 'requestParamsDescription' => '**Filter fields (Key)**'."\n" + ."\n" + .'|Field|Description|Supported filter operators|'."\n" + .'|---|---|---|'."\n" + .'|cluster|The protection cluster.|ne, eq, match-one, and all-not-match|'."\n" + .'|matched\\_host|The protected object.|ne, eq, match-one, and all-not-match|'."\n" + ."\n" + .'**Filter operators (OpValue)**'."\n" + ."\n" + .'|Operator|Semantics|Description|'."\n" + .'|---|---|---|'."\n" + .'|all-not-match|Does not equal any value|Checks if the value is not equal to any data in the data set. For example, `{"Key":"real_client_ip","OpValue":"all-not-match","Values":["1.XX.XX.1","2.XX.XX.2","3.XX.XX.3"]}` will exclude 1.XX.XX.1, 2.XX.XX.2, and 3.XX.XX.3 from real_client_ip.|'."\n" + .'|eq|Equals|Checks if the value of a key is equal to a specific string. For example, `{"Key":"request_path","OpValue":"eq","Values":"/testcase"}` will match any request_path whose URL is equal to "/testcase".|'."\n" + .'|match-one|Equals one of multiple values|Checks if the value is equal to any data in the data set. For example, `{"Key":"real_client_ip","OpValue":"match-one","Values":["1.XX.XX.1","2.XX.XX.2","3.XX.XX.3"]}` will include data where real_client_ip is 1.XX.XX.1, 2.XX.XX.2, or 3.XX.XX.3.|'."\n" + .'|ne|Does not equal|Checks if the value of a key is not equal to a specific string. For example, `{"Key":"request_path","OpValue":"ne","Values":"/testcase"}` will match any request_path whose URL is not equal to "/testcase".|', + 'responseParamsDescription' => '**Time granularity of time series data points**'."\n" + ."\n" + .'The returned data\'s time granularity varies depending on the query time range:'."\n" + .'- Less than 3 hours: 1-minute (1m) granularity.'."\n" + .'- 3 hours to less than 6 hours: 5-minute (5m) granularity.'."\n" + .'- 6 hours to less than 24 hours: 15-minute (15m) granularity.'."\n" + .'- 24 hours to less than 7 days: 1-hour (1h) granularity.'."\n" + .'- 7 days to less than 30 days: 1-day (1d) granularity.', + ], + 'DescribeSecurityEventTopNMetric' => [ + 'summary' => 'Queries top N data entries of attack traffic. The system performs statistical aggregation on attack traffic from specific dimensions and returns top N data entries.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '258810', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstanceInfo](~~140857~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'Filter', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The filter conditions for the query. Multiple conditions are evaluated by using a logical AND.'."\n", + 'type' => 'object', + 'properties' => [ + 'DateRange' => [ + 'description' => 'The time range for the query.'."\n", + 'type' => 'object', + 'properties' => [ + 'StartDate' => [ + 'description' => 'The beginning of the time range to query. The value is a Unix timestamp. Unit: seconds.', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1713888000'."\n", + ], + 'EndDate' => [ + 'description' => 'The end of the time range to query. The value is a Unix timestamp. Unit: seconds.', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1713888600'."\n", + ], + ], + 'required' => true, + ], + 'Conditions' => [ + 'description' => 'The filter conditions. Each object describes a filter condition.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The filter condition. A condition consists of a **field name**, an **operator**, and **field content**.', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The field name. This operation supports all fields. For more information, see the **Supported field names** section below.', + 'type' => 'string', + 'required' => false, + 'example' => 'matched_host', + ], + 'OpValue' => [ + 'description' => 'The operator. For more information, see the **Supported operators** section below.', + 'type' => 'string', + 'required' => false, + 'example' => 'eq', + ], + 'Values' => [ + 'description' => 'The field content.'."\n", + 'type' => 'any', + 'required' => false, + 'example' => 'test.waf-top'."\n", + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => true, + ], + ], + [ + 'name' => 'Limit', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of data entries that can be returned. Data entries are sorted in descending order before they are returned. Maximum value: 10.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '10'."\n", + ], + ], + [ + 'name' => 'Metric', + 'in' => 'query', + 'schema' => [ + 'description' => 'The metric whose top N data entries you want to return. The following metrics are supported:'."\n" + ."\n" + .'> For more information about attack requests, see the "Operation description" section of this topic.'."\n" + ."\n" + .'* real_client_ip: The system aggregates the source IP addresses of attack requests to collect statistics, sorts the statistical results in descending order, and returns top N data entries.'."\n" + .'* http_user_agent: The system aggregates the User-Agent header field of attack requests to collect statistics, sorts the statistical results in descending order, and returns top N data entries.'."\n" + .'* matched_host: The system aggregates the protected objects that are matched by attack requests to collect statistics, sorts the statistical results in descending order, and returns top N data entries.'."\n" + .'* remote_region_id: The system aggregates the countries to which the source IP addresses of attack requests belong to collect statistics, sorts the statistical results in descending order, and returns top N data entries.'."\n" + .'* request_path: The system aggregates the URLs of attack requests to collect statistics, sorts the statistical results in descending order, and returns top N data entries. The URLs exclude query strings.'."\n" + .'* block_defense_scene: The system aggregates the protection modules that block attack requests to collect statistics, sorts the statistical results in descending order, and returns top N data entries. The requests match protection rules whose actions are not set to Monitor.'."\n" + .'* defense_scene: The system aggregates the protection modules that are matched by attack requests to collect statistics, sorts the statistical results in descending order, and returns top N data entries.'."\n" + .'* defense_scene_rule_id: The system returns the IDs of top N protection rules that are matched by attack requests and also the related protection modules. Only protection rules whose actions are not set to Monitor are counted. The system returns the value in the following format:\\'."\n" + .' `{ "Attribute": "waf_base", "Value": 140, "Name": "111034" }`'."\n" + .'* defense_scene_with_rule_id: The system returns the IDs of top N protection rules that are matched by attack requests and also the related protection modules. The IDs and protection modules are connected by using hyphens (-). Protection rules whose actions are set to Monitor and Block are counted. The system returns the value in the following format:\\'."\n" + .' `{ "Attribute": "", "Value": 1, "Name": "120075-waf_base" }`'."\n" + .'* defense_scene_top_rule_id: The system returns top N matched protection rules of a specific protection module. You can specify Conditions in Filter to configure filter conditions. For example, you can use the following condition to query top N matched protection rules of the custom rule module:\\'."\n" + .' `{ "Key": "defense_scene_map", "OpValue": "contain", "Values": "custom_acl" }`'."\n" + .'* defense_scene_rule_type: The system returns top N matched protection rules of the core web protection module. This metric is supported only by the core web protection module because only this module supports subtypes of protection rules. You must specify Conditions in Filter to configure filter conditions. Example:\\'."\n" + .' `{ "Key": "defense_scene", "OpValue": "eq", "Values": "waf_base" }`'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'real_client_ip', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: The Chinese mainland.'."\n" + .'* **ap-southeast-1**: Outside the Chinese mainland.', + 'type' => 'string', + 'required' => false, + 'example' => 'ap-southeast-1'."\n", + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q'."\n", + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters. For more information, see the **Examples** section below.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D827FCFE-90A7-4330-9326-*****B4C7726', + ], + 'SecurityEventTopNValues' => [ + 'description' => 'The top N data entries returned.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The data entry.'."\n", + 'type' => 'object', + 'properties' => [ + 'Name' => [ + 'description' => 'The field value, which varies based on the metric.'."\n", + 'type' => 'string', + 'example' => '10000', + ], + 'Attribute' => [ + 'description' => 'The additional information, such as the protection module for a protection rule whose ID is returned.'."\n", + 'type' => 'string', + 'example' => 'waf_base'."\n", + ], + 'Value' => [ + 'description' => 'The count for the data entry.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1111', + ], + ], + ], + ], + 'TopNMetaData' => [ + 'description' => 'The metadata of the data entries returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'DateRange' => [ + 'description' => 'The time range that is used for the query.'."\n", + 'type' => 'object', + 'properties' => [ + 'StartDate' => [ + 'description' => 'The beginning of the time range to query. The value is a Unix timestamp. Unit: seconds. This value is the same as the value of StartDate in the request parameters.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1713888000'."\n", + ], + 'EndDate' => [ + 'description' => 'The end of the time range to query. The value is a Unix timestamp. Unit: seconds. This value is the same as the value of EndDate in the request parameters.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1713888600'."\n", + ], + ], + ], + 'Units' => [ + 'description' => 'The unit of the statistics returned. It is fixed as requests.', + 'type' => 'string', + 'example' => 'requests', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Report.%s', + 'errorMessage' => 'Invalid parameter:%s.', + ], + [ + 'errorCode' => 'Waf.Report.InternalError', + 'errorMessage' => 'Server error occurred in report service.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D827FCFE-90A7-4330-9326-*****B4C7726\\\\n\\",\\n \\"SecurityEventTopNValues\\": [\\n {\\n \\"Name\\": \\"10000\\",\\n \\"Attribute\\": \\"waf_base\\\\n\\",\\n \\"Value\\": 1111\\n }\\n ],\\n \\"TopNMetaData\\": {\\n \\"DateRange\\": {\\n \\"StartDate\\": 1713888000,\\n \\"EndDate\\": 1713888600\\n },\\n \\"Units\\": \\"requests\\\\n\\"\\n }\\n}","type":"json"}]', + 'title' => 'DescribeSecurityEventTopNMetric', + 'description' => 'Attack traffic refers to the traffic of requests that match protection rules and are identified as risky. The following types of requests are excluded:'."\n" + ."\n" + .'* Requests that match the protection rules of the whitelist module.'."\n" + .'* Requests that match the protection rules of the bot management module. The actions of the protection rules are set to Add Tag.'."\n" + .'* Requests that match protection rules with actions set to Dynamic Token-based Authentication, Slider CAPTCHA, Strict Slider CAPTCHA Verification, and JavaScript Validation, pass the verifications specified by the actions, and are allowed.'."\n", + 'requestParamsDescription' => '**Supported operators**'."\n" + ."\n" + .'|Operator|Meaning|Description|'."\n" + .'|---|---|---|'."\n" + .'|all-not-match|Does Not Equal Any Value|The field value does not equal any value in the data set. For example, you can use the following condition to query the real\\_client\\_ip fields whose value does not equal any value in the data set: `{"Key":"real_client_ip","OpValue":"all-not-match","Values":["1.XX.XX.1","2.XX.XX2","3.XX.XX.3"]}`.|'."\n" + .'|contain|Contains|The field value contains a specific string. For example, you can use the following condition to query the URLs that contain the test string: `{"Key":"request_path","OpValue":"contain","Values":"test"}`.|'."\n" + .'|eq|Equals|The field value equals a specific string. For example, you can use the following condition to query the URLs that equal the /testcase string: `{"Key":"request_path","OpValue":"eq","Values":"/testcase"}`.|'."\n" + .'|match-one|Equals One of Multiple Values|The field value equals one of multiple values in the data set. For example, you can use the following condition to query the real\\_client\\_ip fields whose value equals one of multiple values in the data set: `{"Key":"real_client_ip","OpValue":"match-one","Values":["1.XX.XX.1","2.XX.XX.2","3.XX.XX.3"]}`.|'."\n" + .'|ne|Does Not Equal|The field value does not equal a specific string. For example, you can use the following condition to query the URLs that do not equal the /testcase string: `{"Key":"request_path","OpValue":"ne","Values":"/testcase"}`.|'."\n" + .'|not-contain|Does Not Contain|The field value does not contain a specific string. For example, you can use the following condition to query the URLs that do not contain the test string: `{"Key":"request_path","OpValue":"not-contain","Values":"test"}`.|'."\n" + .'|prefix-match|Prefix Match|The field value is prefixed with a specific string. For example, you can use the following condition to query the URLs that are prefixed with the /testcase string: `{"Key":"request_path","OpValue":"prefix-match","Values":"/testcase"}`.|'."\n" + .'|suffix-match|Suffix Match|The field value is suffixed with a specific string. For example, you can use the following condition to query the URLs that are suffixed with the /testcase string: `{"Key":"request_path","OpValue":"suffix-match","Values":"/testcase"}`.|'."\n" + ."\n" + .'**Supported field names**'."\n" + ."\n" + .'|Field name|Description|Supported operator|'."\n" + .'|---|---|---|'."\n" + .'|action|The action that is performed on the request.|ne and eq|'."\n" + .'|cluster|The protection cluster.|ne, eq, match-one, and all-not-match|'."\n" + .'|defense\\_scene|The protection module. A request may match multiple protection modules. The requests that are obtained by matching the value of this field may still match other protection modules.|ne and eq|'."\n" + .'|host|The Host header field of the HTTP request.|contain, not-contain, ne, eq, match-one, all-not-match, prefix-match, and suffix-match|'."\n" + .'|http\\_cookie|The Cookie header field of the HTTP request.|contain, not-contain, ne, eq, match-one, all-not-match, prefix-match, and suffix-match|'."\n" + .'|http\\_user\\_agent|The User-Agent header field of the HTTP request.|contain, not-contain, ne, eq, match-one, all-not-match, prefix-match, and suffix-match|'."\n" + .'|matched\\_host|The protected object.|ne, eq, match-one, and all-not-match|'."\n" + .'|real\\_client\\_ip|The source IP address of the request. Only IP addresses are supported. CIDR blocks are not supported.|ne, eq,match-one, and all-not-match|'."\n" + .'|remote\\_country\\_id|The country to which the source IP address of the HTTP request belongs.|ne, eq, match-one, and all-not-match|'."\n" + .'|remote\\_region\\_id|The province or city to which the source IP address of the HTTP request belongs.|ne, eq, match-one, and all-not-match|'."\n" + .'|request\\_method|The request method of the HTTP request.|ne, eq, match-one, and all-not-match|'."\n" + .'|request\\_path|The URL of the HTTP request, excluding the query string.|contain, not-contain, ne, eq, match-one, all-not-match, prefix-match, and suffix-match|'."\n" + .'|request\\_traceid|The request ID, which is unique.|ne, eq, match-one, and all-not-match|'."\n" + .'|rule\\_id|The ID of the protection rule. A request may match multiple protection rules. The requests that are obtained by matching the value of this field may still match other protection rules.|ne and eq|', + ], + 'DescribeSecurityEventTimeSeriesMetric' => [ + 'summary' => 'Queries the time series data of attack traffic. Attack requests refer to requests that match protection rules and are identified as risky.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '258794', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstanceInfo](~~140857~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-tl32ast****', + ], + ], + [ + 'name' => 'Filter', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The filter conditions for the query. Multiple conditions are evaluated by using a logical AND.'."\n", + 'type' => 'object', + 'properties' => [ + 'DateRange' => [ + 'description' => 'The time range for the query.'."\n", + 'type' => 'object', + 'properties' => [ + 'StartDate' => [ + 'description' => 'The beginning of the time range to query. The value is a Unix timestamp. Unit: seconds.', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1713888000'."\n", + ], + 'EndDate' => [ + 'description' => 'The end of the time range to query. The value is a Unix timestamp. Unit: seconds.', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1713888600'."\n", + ], + ], + 'required' => true, + ], + 'Conditions' => [ + 'description' => 'The filter conditions. Each object describes a filter condition.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The filter condition. A condition consists of a **field name**, an **operator**, and **field content**.', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The field name. This operation supports all fields. For details, see the **Supported field names** section below.', + 'type' => 'string', + 'required' => false, + 'example' => 'matched_host', + ], + 'OpValue' => [ + 'description' => 'The operator. For details, see the **Supported operators** section below.', + 'type' => 'string', + 'required' => false, + 'example' => 'eq', + ], + 'Values' => [ + 'description' => 'The field content.'."\n", + 'type' => 'any', + 'required' => false, + 'example' => 'test.waf-top'."\n", + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => true, + ], + ], + [ + 'name' => 'Metric', + 'in' => 'query', + 'schema' => [ + 'description' => 'The metric whose time series data you want to return. The following metrics are supported:'."\n" + ."\n" + .'* mitigated_requests: The system returns the time series data of requests that are blocked.'."\n" + .'* monitored_requests: The system returns the time series data of requests that match Monitor protection rules.'."\n" + .'* mitigated_requests_group_by_defense_scene: The system returns the number of requests that match each protection module. The returned results are grouped by protection module and can be used to generate time series charts. A request can match multiple protection modules. Therefore, the total number of matched requests is inconsistent with the total number of requests.'."\n" + .'* mitigated_requests_group_by_block_defense_scene: The system returns the number of requests that are blocked by each protection module. The returned results are grouped by protection module and can be used to generate time series charts. A request can be blocked by only one protection module. Therefore, the total number of blocked requests is consistent with the total number of requests.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'mitigated_requests', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: The Chinese mainland.'."\n" + .'* **ap-southeast-1**: Outside the Chinese mainland.', + 'type' => 'string', + 'required' => false, + 'example' => 'ap-southeast-1'."\n", + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q'."\n", + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters. For more information, see the **Examples** section below.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D827FCFE-90A7-4330-9326-*****4C7726', + ], + 'SecurityEventTimeSeries' => [ + 'description' => 'The time series data returned. This operation can return time series for multiple metrics.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The time series. A time series consists of two arrays: Timestamps and Values. The Timestamps array contains fixed-interval time points. The Values array contains counts for the time points. The two arrays contain the same number of elements and support a one-to-one data point correspondence.'."\n", + 'type' => 'object', + 'properties' => [ + 'Metric' => [ + 'description' => 'The metric. This value is the same as the value of Metric in the request parameters.'."\n", + 'type' => 'string', + 'example' => 'monitored_requests', + ], + 'Timestamps' => [ + 'description' => 'The time points. Each point represents a time range.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The time point. The value is a Unix timestamp.', + 'type' => 'string', + 'example' => '[]', + ], + ], + 'Values' => [ + 'description' => 'The data points. Each point represents a count for a time range.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The data point. The value is a count.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '[]'."\n", + ], + ], + ], + ], + ], + 'TimeSeriesMetaData' => [ + 'description' => 'The metadata of the time series data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'DateRange' => [ + 'description' => 'The time range that is used for the query.'."\n", + 'type' => 'object', + 'properties' => [ + 'StartDate' => [ + 'description' => 'The beginning of the time range to query. The value is a Unix timestamp. Unit: seconds. This value is the same as the value of StartDate in the request parameters.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1713888000'."\n", + ], + 'EndDate' => [ + 'description' => 'The end of the time range to query. The value is a Unix timestamp. Unit: seconds. This value is the same as the value of EndDate in the request parameters.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1713888600'."\n", + ], + ], + ], + 'AggregateInterval' => [ + 'description' => 'The time granularity of data points in the time series data returned. For example, a value of 15m indicates that data points are collected at 15-minute intervals. For more information about time granularities, see the **Time granularities of data points in time series** section below.', + 'type' => 'string', + 'example' => '1m', + ], + 'Units' => [ + 'description' => 'The unit of the statistics returned. It is fixed as requests.', + 'type' => 'string', + 'example' => 'requests', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Report.%s', + 'errorMessage' => 'Invalid parameter:%s.', + ], + [ + 'errorCode' => 'Waf.Report.InternalError', + 'errorMessage' => 'Server error occurred in report service.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D827FCFE-90A7-4330-9326-*****4C7726\\\\n\\",\\n \\"SecurityEventTimeSeries\\": [\\n {\\n \\"Metric\\": \\"monitored_requests\\",\\n \\"Timestamps\\": [\\n \\"[]\\"\\n ],\\n \\"Values\\": [\\n 0\\n ]\\n }\\n ],\\n \\"TimeSeriesMetaData\\": {\\n \\"DateRange\\": {\\n \\"StartDate\\": 1713888000,\\n \\"EndDate\\": 1713888600\\n },\\n \\"AggregateInterval\\": \\"1m\\",\\n \\"Units\\": \\"requests\\\\n\\"\\n }\\n}","type":"json"}]', + 'title' => 'DescribeSecurityEventTimeSeriesMetric', + 'description' => 'Attack traffic refers to the traffic of requests that match protection rules and are identified as risky. The following types of requests are excluded:'."\n" + ."\n" + .'* Requests that match the protection rules of the whitelist module.'."\n" + .'* Requests that match the protection rules of the bot management module. The actions of the protection rules are set to Add Tag.'."\n" + .'* Requests that match protection rules with actions set to Dynamic Token-based Authentication, Slider CAPTCHA, Strict Slider CAPTCHA Verification, and JavaScript Validation, pass the verifications specified by the actions, and are allowed.'."\n", + 'requestParamsDescription' => '**Supported operators**'."\n" + ."\n" + .'|Operator|Meaning|Description|'."\n" + .'|---|---|---|'."\n" + .'|all-not-match|Does Not Equal Any Value|The field value does not equal any value in the data set. For example, you can use the following condition to query the real\\_client\\_ip fields whose value does not equal any value in the data set: `{"Key":"real_client_ip","OpValue":"all-not-match","Values":["1.XX.XX.1","2.XX.XX.2","3.XX.XX.3"]}`.|'."\n" + .'|contain|Contains|The field value contains a specific string. For example, you can use the following condition to query the URLs that contain the test string: `{"Key":"request_path","OpValue":"contain","Values":"test"}`.|'."\n" + .'|eq|Equals|The field value equals a specific string. For example, you can use the following condition to query the URLs that equal the /testcase string: `{"Key":"request_path","OpValue":"eq","Values":"/testcase"}`.|'."\n" + .'|match-one|Equals One of Multiple Values|The field value equals one of multiple values in the data set. For example, you can use the following condition to query the real\\_client\\_ip fields whose value equals one of multiple values in the data set: `{"Key":"real_client_ip","OpValue":"match-one","Values":["1.XX.XX.1","2.XX.XX.2","3.XX.XX.3"]}`.|'."\n" + .'|ne|Does Not Equal|The field value does not equal a specific string. For example, you can use the following condition to query the URLs that do not equal the /testcase string: `{"Key":"request_path","OpValue":"ne","Values":"/testcase"}`.|'."\n" + .'|not-contain|Does Not Contain|The field value does not contain a specific string. For example, you can use the following condition to query the URLs that do not contain the test string: `{"Key":"request_path","OpValue":"not-contain","Values":"test"}`.|'."\n" + .'|prefix-match|Prefix Match|The field value is prefixed with a specific string. For example, you can use the following condition to query the URLs that are prefixed with the /testcase string: `{"Key":"request_path","OpValue":"prefix-match","Values":"/testcase"}`.|'."\n" + .'|suffix-match|Suffix Match|The field value is suffixed with a specific string. For example, you can use the following condition to query the URLs that are suffixed with the /testcase string: `{"Key":"request_path","OpValue":"suffix-match","Values":"/testcase"}`.|'."\n" + ."\n" + .'**Supported field names**'."\n" + ."\n" + .'|Field name|Description|Supported operator|'."\n" + .'|---|---|---|'."\n" + .'|action|The action that is performed on the request.|ne and eq|'."\n" + .'|cluster|The protection cluster.|ne, eq, match-one, and all-not-match|'."\n" + .'|defense\\_scene|The protection module. A request may match multiple protection modules. The requests that are obtained by matching the value of this field may still match other protection modules.|ne and eq|'."\n" + .'|host|The Host header field of the HTTP request.|contain, not-contain, ne, eq, match-one, all-not-match, prefix-match, and suffix-match|'."\n" + .'|http\\_cookie|The Cookie header field of the HTTP request.|contain, not-contain, ne, eq, match-one, all-not-match, prefix-match, and suffix-match|'."\n" + .'|http\\_user\\_agent|The User-Agent header field of the HTTP request.|contain, not-contain, ne, eq, match-one, all-not-match, prefix-match, and suffix-match|'."\n" + .'|matched\\_host|The protected object.|ne, eq, match-one, and all-not-match|'."\n" + .'|real\\_client\\_ip|The source IP address of the request. Only IP addresses are supported. CIDR blocks are not supported.|ne, eq, match-one, and all-not-match|'."\n" + .'|remote\\_country\\_id|The country to which the source IP address of the HTTP request belongs.|ne, eq, match-one, and all-not-match|'."\n" + .'|remote\\_region\\_id|The province or city to which the source IP address of the HTTP request belongs.|ne, eq, match-one, and all-not-match|'."\n" + .'|request\\_method|The request method of the HTTP request.|ne, eq, match-one, and all-not-match|'."\n" + .'|request\\_path|The URL of the HTTP request, excluding the query string.|contain, not-contain, ne, eq, match-one, all-not-match, prefix-match, and suffix-match|'."\n" + .'|request\\_traceid|The request ID, which is unique.|ne, eq, match-one, and all-not-match|'."\n" + .'|rule\\_id|The ID of the protection rule. A request may match multiple protection rules. The requests that are obtained by matching the value of this field may still match other protection rules.|ne and eq|', + 'responseParamsDescription' => '**Time granularities of data points in time series**'."\n" + ."\n" + .'The time granularities of data points in returned data vary based on the time range for the query.'."\n" + ."\n" + .'* Query time range: less than 3 hours '."\n" + .'</br>Time granularity: 1m, which indicates that data points are collected at 1-minute intervals'."\n" + .'* Query time range: [3 hours, 6 hours)'."\n" + .'</br>Time granularity: 5m, which indicates that data points are collected at 5-minute intervals'."\n" + .'* Query time range: [6 hours, 24 hours) '."\n" + .'</br>Time granularity: 15m, which indicates that data points are collected at 15-minute intervals'."\n" + .'* Query time range: [24 hours, 7 days) '."\n" + .'</br>Time granularity: 1h, which indicates that data points are collected at 1-hour intervals'."\n" + .'* Query time range: [7 days, 30 days) '."\n" + .'</br>Time granularity: 1d, which indicates that data points are collected at 1-day intervals', + ], + 'DescribeSecurityEventLogs' => [ + 'summary' => 'Queries the logs of attack traffic. Each log records the details of a request that matches protection rules.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '258811', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstanceInfo](~~140857~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'Filter', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'The filter conditions for the query. Multiple conditions are evaluated by using a logical AND.'."\n", + 'type' => 'object', + 'properties' => [ + 'DateRange' => [ + 'description' => 'The time range for the query.'."\n", + 'type' => 'object', + 'properties' => [ + 'StartDate' => [ + 'description' => 'The beginning of the time range to query. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1713888000'."\n", + ], + 'EndDate' => [ + 'description' => 'The end of the time range to query. The value is a UNIX timestamp. Unit: seconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1713888600'."\n", + ], + ], + 'required' => true, + ], + 'Conditions' => [ + 'description' => 'The filter conditions. Each object describes a filter condition.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The filter condition. A condition consists of a **field name**, an **operator**, and **field content**.', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The field name. This operation supports all fields. For more information, see the **Supported field names** section below.', + 'type' => 'string', + 'required' => false, + 'example' => 'matched_host', + ], + 'OpValue' => [ + 'description' => 'The operator. For more information, see the **Supported operators** section below.', + 'type' => 'string', + 'required' => false, + 'example' => 'eq', + ], + 'Values' => [ + 'description' => 'The field content.'."\n", + 'type' => 'any', + 'required' => false, + 'example' => 'test.waf-top', + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => true, + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Maximum value: **100**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: The Chinese mainland.'."\n" + .'* **ap-southeast-1**: Outside the Chinese mainland.', + 'type' => 'string', + 'required' => false, + 'example' => 'ap-southeast-1'."\n", + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q'."\n", + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D827FCFE-90A7-4330-9326-D33C8B4C7726'."\n", + ], + 'SecurityEventLogs' => [ + 'description' => 'The attack logs returned.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The attack log. Each log records a request. For more information, see the **Log fields** section below.', + 'type' => 'any', + 'enumValueTitles' => [], + 'example' => '{'."\n" + .' "remote_region_id": "110000",'."\n" + .' "plugin_matched_detail_waf_group": "{\\"uri\\":{\\"hit\\":[\\"/.git/\\"],\\"raw\\":\\"/.git/\\"}}",'."\n" + .' "plugin_matched_block_rule_detail": "[{\\"RuleId\\":\\"12***5\\",\\"Action\\":\\"block\\",\\"DefenseScene\\":\\"waf_base\\",\\"RuleType\\":\\"other\\"}]",'."\n" + .' "querystring": "-",'."\n" + .' "matched_host": "i-8vbaazr2tboqsq******-443-ecs",'."\n" + .' "remote_country_id": "CN",'."\n" + .' "remote_isp_id": "100098",'."\n" + .' "request_method": "GET",'."\n" + .' "plugin_matched_test_rule_detail": "[]",'."\n" + .' "request_traceid": "0b6261221742197109309484******",'."\n" + .' "dst_port": "0",'."\n" + .' "host": "39.99.XX.XX",'."\n" + .' "real_client_ip": "47.92.XX.XX",'."\n" + .' "request_path": "/.git/HEAD",'."\n" + .' "server_protocol": "HTTP/1.1",'."\n" + .' "timestamp": "1742197109"'."\n" + .' }', + ], + ], + 'SecurityEventMetaData' => [ + 'description' => 'The metadata of the time series data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'DateRange' => [ + 'description' => 'The time range that is used for the query.'."\n", + 'type' => 'object', + 'properties' => [ + 'StartDate' => [ + 'description' => 'The beginning of the time range to query. The value is a UNIX timestamp. Unit: seconds. This value is the same as the value of StartDate in the request parameters.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1713888000'."\n", + ], + 'EndDate' => [ + 'description' => 'The end of the time range to query. The value is a UNIX timestamp. Unit: seconds. This value is the same as the value of EndDate in the request parameters.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1713888600'."\n", + ], + ], + ], + 'Units' => [ + 'description' => 'The unit of the statistics returned. The value is fixed as requests.', + 'type' => 'string', + 'example' => 'requests', + ], + ], + ], + 'SecurityEventLogsTotalCount' => [ + 'description' => 'The total number of logs returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1000', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Report.%s', + 'errorMessage' => 'Invalid parameter:%s.', + ], + [ + 'errorCode' => 'Waf.Report.InternalError', + 'errorMessage' => 'Server error occurred in report service.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D827FCFE-90A7-4330-9326-******4C7726\\\\n\\",\\n \\"SecurityEventLogs\\": [\\n \\"参见返回数据示例\\"\\n ],\\n \\"SecurityEventMetaData\\": {\\n \\"DateRange\\": {\\n \\"StartDate\\": 1713888000,\\n \\"EndDate\\": 1713888600\\n },\\n \\"Units\\": \\"requests\\"\\n },\\n \\"SecurityEventLogsTotalCount\\": 1000\\n}","type":"json"}]', + 'title' => 'DescribeSecurityEventLogs', + 'description' => 'Attack traffic refers to the traffic of requests that match protection rules and are identified as risky. The following types of requests are excluded:'."\n" + ."\n" + .'* Requests that match the protection rules of the whitelist module.'."\n" + .'* Requests that match the protection rules of the bot management module. The actions of the protection rules are set to Add Tag.'."\n" + .'* Requests that match protection rules with actions set to Dynamic Token-based Authentication, Slider CAPTCHA, Strict Slider CAPTCHA Verification, and JavaScript Validation, pass the verifications specified by the actions, and are allowed.'."\n", + 'requestParamsDescription' => '**Supported operators**'."\n" + ."\n" + .'|Operator|Meaning|Description|'."\n" + .'|---|---|---|'."\n" + .'|all-not-match|Does Not Equal Any Value|The field value does not equal any value in the data set. For example, you can use the following condition to query the real\\_client\\_ip fields whose value does not equal any value in the data set:`{"Key":"real_client_ip","OpValue":"all-not-match","Values":["1.XX.XX.1","2.XX.XX.2","3.XX.XX.3"]}`.|'."\n" + .'|contain|Contains|The field value contains a specific string. For example, you can use the following condition to query the URLs that contain the test string:`{"Key":"request_path","OpValue":"contain","Values":"test"}`.|'."\n" + .'|eq|Equals|The field value equals a specific string. For example, you can use the following condition to query the URLs that equal the /testcase string:`{"Key":"request_path","OpValue":"eq","Values":"/testcase"}`.|'."\n" + .'|match-one|Equals One of Multiple Values|The field value equals one of multiple values in the data set. For example, you can use the following condition to query the real\\_client\\_ip fields whose value equals one of multiple values in the data set:`{"Key":"real_client_ip","OpValue":"match-one","Values":["1.XX.XX.1","2.XX.XX.2","3.XX.XX.3"]}`.|'."\n" + .'|ne|Does Not Equal|The field value does not equal a specific string. For example, you can use the following condition to query the URLs that do not equal the /testcase string:`{"Key":"request_path","OpValue":"ne","Values":"/testcase"}`.|'."\n" + .'|not-contain|Does Not Contain|The field value does not contain a specific string. For example, you can use the following condition to query the URLs that do not contain the test string:`{"Key":"request_path","OpValue":"not-contain","Values":"test"}`.|'."\n" + .'|prefix-match|Prefix Match|The field value is prefixed with a specific string. For example, you can use the following condition to query the URLs that are prefixed with the /testcase string:`{"Key":"request_path","OpValue":"prefix-match","Values":"/testcase"}`.|'."\n" + .'|suffix-match|Suffix Match|The field value is suffixed with a specific string. For example, you can use the following condition to query the URLs that are suffixed with the /testcase string:`{"Key":"request_path","OpValue":"suffix-match","Values":"/testcase"}`.|'."\n" + ."\n" + .'**Supported field names**'."\n" + ."\n" + .'|Field name|Description|Supported operator|'."\n" + .'|---|---|---|'."\n" + .'|action|The action that is performed on the request.|ne and eq|'."\n" + .'|cluster|The protection cluster.|ne, eq, match-one, and all-not-match|'."\n" + .'|defense\\_scene|The protection module. A request may match multiple protection modules. The requests that are obtained by matching the value of this field may still match other protection modules.|ne and eq|'."\n" + .'|host|The Host header field of the HTTP request.|contain, not-contain, ne, eq, match-one, all-not-match, prefix-match, and suffix-match|'."\n" + .'|http\\_cookie|The Cookie header field of the HTTP request.|contain, not-contain, ne, eq, match-one, all-not-match, prefix-match, and suffix-match|'."\n" + .'|http\\_user\\_agent|The User-Agent header field of the HTTP request.|contain, not-contain, ne, eq, match-one, all-not-match, prefix-match, and suffix-match|'."\n" + .'|matched\\_host|The protected object.|ne, eq, match-one, and all-not-match|'."\n" + .'|real\\_client\\_ip|The source IP address of the request. Only IP addresses are supported. CIDR blocks are not supported.|ne, eq, match-one, and all-not-match|'."\n" + .'|remote\\_country\\_id|The country to which the source IP address of the HTTP request belongs.|ne, eq, match-one, and all-not-match|'."\n" + .'|remote\\_region\\_id|The province or city to which the source IP address of the HTTP request belongs.|ne, eq, match-one, and all-not-match|'."\n" + .'|request\\_method|The request method of the HTTP request.|ne, eq, match-one, and all-not-match|'."\n" + .'|request\\_path|The URL of the HTTP request, excluding the query string.|contain, not-contain, ne, eq, match-one, all-not-match, prefix-match, and suffix-match|'."\n" + .'|request\\_traceid|The request ID, which is unique.|ne, eq, match-one, and all-not-match|'."\n" + .'|rule\\_id|The ID of the protection rule. A request may match multiple protection rules. The requests that are obtained by matching the value of this field may still match other protection rules.|ne and eq|', + 'responseParamsDescription' => '**Log fields**'."\n" + ."\n" + .'|Field name|Description|Example|'."\n" + .'|---|---|---|'."\n" + .'|dst\\_port|The destination port that is requested.|0|'."\n" + .'|host|The Host header field of the client request. The field contains the domain name or IP address that is accessed. The value of this field varies based on your service settings.|39.99.XX.XX|'."\n" + .'|matched\\_host|The protected object that is matched by the client request. The protected object can be a cloud service instance or a domain name.|i-8vbaazr2tboqsq******-443-ecs|'."\n" + .'|plugin\\_matched\\_detail\\_waf\\_group|The details of the matched protection rules of the core web protection module, including the reason why the protection rules are matched.|{\\"uri\\":{\\"hit\\":[\\"/.git/\\"],\\"raw\\":\\"/.git/\\"}}|'."\n" + .'|plugin\\_matched\\_block\\_rule\\_detail|The details of the matched protection rules whose actions are not set to Monitor, including the IDs and actions of the protection rules and the related protection modules.|[{\\"RuleId\\":\\"12***5\\",\\"Action\\":\\"block\\",\\"DefenseScene\\":\\"waf_base\\",\\"RuleType\\":\\"other\\"}]|'."\n" + .'|plugin\\_matched\\_test\\_rule\\_detail|The details of the matched protection rules whose actions are set to Monitor, including the IDs and actions of the protection rules and the related protection modules.|[]|'."\n" + .'|querystring|The query string of the client request. The query string refers to the part that follows the question mark (?) in the URL of the request.|-|'."\n" + .'|remote\\_region\\_id|The ID of the province to which the source IP address belongs.|110000|'."\n" + .'|remote\\_country\\_id|The ID of the country to which the source IP address belongs.|CN|'."\n" + .'|remote\\_isp\\_id|The ID of the data center to which the source IP address belongs.|100098|'."\n" + .'|request\\_method|The request method.|GET|'."\n" + .'|request\\_traceid|The unique identifier that is generated by WAF for the client request.|0b6261221742197109309484******|'."\n" + .'|real\\_client\\_ip|The originating IP address of the client that sends the request. WAF performs request analysis to obtain the IP address.|47.92.XX.XX|'."\n" + .'|request\\_path|The relative path that is requested. The relative path refers to the part between the domain name and the question mark (?) in the URL of the request. The relative path does not include the query string.|/.git/HEAD|'."\n" + .'|server\\_protocol|The protocol that is used for communication between the client and WAF.|HTTP/1.1|'."\n" + .'|timestamp|The time when the request was processed by WAF. The value is a UNIX timestamp.|1742197109|', + ], + 'DescribeNetworkFlowTopNMetric' => [ + 'summary' => 'Retrieves top aggregated traffic statistics, sorted by various dimensions, including malicious and legitimate requests.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '258808', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The Web Application Firewall (WAF) instance ID.'."\n" + ."\n" + .'> Call the [DescribeInstanceInfo](~~140857~~) operation to retrieve the WAF instance ID.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****'."\n", + ], + ], + [ + 'name' => 'Filter', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => 'An array of filter conditions. Multiple filter parameters use AND logic.'."\n", + 'type' => 'object', + 'properties' => [ + 'DateRange' => [ + 'description' => 'Specifies the date range for the query.'."\n", + 'type' => 'object', + 'properties' => [ + 'StartDate' => [ + 'description' => 'Start time of the query range (Unix timestamp, seconds).', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1713888000'."\n", + ], + 'EndDate' => [ + 'description' => 'End time of the query range (Unix timestamp, seconds).', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1713888600'."\n", + ], + ], + 'required' => true, + ], + 'Conditions' => [ + 'description' => 'The list of filter conditions. Each node describes a filter condition.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'Each condition object must specify a filter field (**Key**), a filter operator (**OpValue**), and filter content (**Values**).', + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'description' => 'The filter fields. Valid values:'."\n" + ."\n" + .'* matched_host'."\n" + .'* cluster'."\n" + ."\n" + .'For details, see the **Filter fields (Key)** section below.', + 'type' => 'string', + 'required' => false, + 'example' => 'matched_host', + ], + 'OpValue' => [ + 'description' => 'The filter operator.'."\n" + .'For details, see the **Filter operators (OpValue)** section below.', + 'type' => 'string', + 'required' => false, + 'example' => 'eq', + ], + 'Values' => [ + 'description' => 'The filter content.'."\n", + 'type' => 'any', + 'required' => false, + 'example' => 'test.waf-top'."\n", + ], + ], + 'required' => false, + ], + 'required' => false, + ], + ], + 'required' => true, + ], + ], + [ + 'name' => 'Limit', + 'in' => 'query', + 'schema' => [ + 'description' => 'Returns up to 10 data entries, sorted in descending order.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '10', + ], + ], + [ + 'name' => 'Metric', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies the data type to be returned. Valid values:'."\n" + ."\n" + .'* real_client_ip: The top N requests, sorted in descending order by source IP address, aggregated from all the current user\'s WAF requests.'."\n" + .'* request_path: The top N requests, sorted in descending order by user-agent, aggregated from all the current user\'s WAF requests.'."\n" + .'* request_path: The top N requests, sorted in descending order by request URL, aggregated from all the current user\'s WAF requests.'."\n" + .'* matched_host_by_total_requests: The top N protected objects and their request counts for the current user.'."\n" + .'* matched_host_by_qps: The top N protected objects and their queries per second (QPS) values.'."\n" + .'* matched_host_by_status: When using it, you must specify status in the Conditions field of the Filter parameter. If the HTTP response code returned by WAF matches the status specified in the Conditions, then the top N data is returned, sorted in descending order by protected objects. The format for specifying the status is as follows:\\'."\n" + .' {"Key":"status","OpValue":"eq","Values":"200"}'."\n" + .'* matched_host_by_upstream_status: When using it, you must specify upstream_status in the Conditions field of the Filter parameter. If the HTTP response code returned by the origin server matches the upstream_status specified, the top N data is returned, sorted in descending order by protected objects. The format for specifying the upstream_status is as follows:\\'."\n" + .' {"Key":"upstream_status","OpValue":"eq","Values":"200"}', + 'type' => 'string', + 'required' => true, + 'example' => 'matched_host_by_upstream_status', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: The Chinese mainland.'."\n" + .'* **ap-southeast-1**: Outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'ap-southeast-1'."\n", + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The resource group ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q'."\n", + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned data.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'D827FCFE-90A7-4330-9326-D33C8B4C7726', + ], + 'NetworkFlowTopNValues' => [ + 'description' => 'The top statistical data array returned.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'Each data point corresponds to a single top statistic.'."\n", + 'type' => 'object', + 'properties' => [ + 'Name' => [ + 'description' => 'The value of this field varies depending on the queried Metric.'."\n", + 'type' => 'string', + 'example' => '127.0.0.1'."\n", + ], + 'Attribute' => [ + 'description' => 'Returns additional information, such as the country, province, or city to which an IP address belongs.', + 'type' => 'string', + 'example' => '""', + ], + 'Value' => [ + 'description' => 'Counts for top ranking.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1123', + ], + ], + ], + ], + 'TopNMetaData' => [ + 'description' => 'The metadata of the returned data.'."\n", + 'type' => 'object', + 'properties' => [ + 'DateRange' => [ + 'description' => 'The query time range.'."\n", + 'type' => 'object', + 'properties' => [ + 'StartDate' => [ + 'description' => 'The start time of the query range (Unix timestamp, seconds). Same as the StartDate request parameter.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1713888000'."\n", + ], + 'EndDate' => [ + 'description' => 'The end time of the query range (Unix timestamp, seconds). Same as the EndDate request parameter.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1713888600'."\n", + ], + ], + ], + 'Units' => [ + 'description' => 'The unit of the returned data. It is fixed as requests.', + 'type' => 'string', + 'example' => 'requests', + ], + ], + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'Waf.Report.%s', + 'errorMessage' => 'Invalid parameter:%s.', + ], + [ + 'errorCode' => 'Waf.Report.InternalError', + 'errorMessage' => 'Server error occurred in report service.', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D827FCFE-90A7-4330-9326-******4C7726\\",\\n \\"NetworkFlowTopNValues\\": [\\n {\\n \\"Name\\": \\"127.0.0.1\\",\\n \\"Attribute\\": \\" CN\\",\\n \\"Value\\": 1123\\n }\\n ],\\n \\"TopNMetaData\\": {\\n \\"DateRange\\": {\\n \\"StartDate\\": 1713888000,\\n \\"EndDate\\": 1713888600\\n },\\n \\"Units\\": \\"requests\\\\n\\"\\n }\\n}","type":"json"}]', + 'title' => 'DescribeNetworkFlowTopNMetric', + 'requestParamsDescription' => '**Filter fields (Key)**'."\n" + ."\n" + .'|Field|Description|Supported filter operators|'."\n" + .'|---|---|---|'."\n" + .'|cluster|The protection cluster.|ne, eq, match-one, and all-not-match|'."\n" + .'|matched\\_host|The protected object.|ne, eq, match-one, and all-not-match|'."\n" + ."\n" + .'**Filter operators (OpValue)**'."\n" + ."\n" + .'|Filter operator|Semantics|Description|'."\n" + .'|---|---|---|'."\n" + .'|all-not-match|Does not equal any value|Checks if the value is not equal to any data in the data set. For example, `{"Key":"real_client_ip","OpValue":"all-not-match","Values":["1.XX.XX.1","2.XX.XX.2","3.XX.XX.3"]}` will exclude 1.XX.XX.1, 2.XX.XX.2, and 3.XX.XX.3 from real_client_ip.|'."\n" + .'|eq|Equals|Checks if the value of a key is equal to a specific string. For example, `{"Key":"request_path","OpValue":"eq","Values":"/testcase"}` will match any request_path whose URL is equal to "/testcase".|'."\n" + .'|match-one|Equals one of multiple values|Checks if the value is equal to any data in the data set. For example, `{"Key":"real_client_ip","OpValue":"match-one","Values":["1.XX.XX.1","2.XX.XX.2","3.XX.XX.3"]}` will include data where real_client_ip is 1.XX.XX.1, 2.XX.XX.2, or 3.XX.XX.3.|'."\n" + .'|ne|Does not equal|Checks if the value of a key is not equal to a specific string. For example, `{"Key":"request_path","OpValue":"ne","Values":"/testcase"}` will match any request_path whose URL is not equal to "/testcase".|', + ], + 'DescribeFlowChart' => [ + 'summary' => 'Queries the traffic statistics of requests that are forwarded to Web Application Firewall (WAF).', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + ], + 'parameters' => [ + [ + 'name' => 'StartTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. Unit: seconds.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1665331200', + ], + ], + [ + 'name' => 'EndTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. Unit: seconds. If you do not specify this parameter, the current time is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1665386280', + ], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time interval. Unit: seconds. The value must be an integral multiple of 60.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '300', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protected object.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'www.aliyundoc.com', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'BFA71416-670E-585D-AAE6-E7BBEE248FAB', + ], + 'FlowChart' => [ + 'description' => 'The traffic statistics.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The traffic statistics.'."\n", + 'type' => 'object', + 'properties' => [ + 'MaxPv' => [ + 'description' => 'The peak traffic.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2932', + ], + 'AntibotBlockSum' => [ + 'description' => 'The number of requests that are blocked by bot management rules.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'CcCustomReportsSum' => [ + 'description' => 'The number of requests that are monitored by custom HTTP flood protection rules.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'RatelimitBlockSum' => [ + 'description' => 'The number of requests that are blocked by rate limiting rules.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'BlacklistBlockSum' => [ + 'description' => 'The number of requests that are blocked by the IP address blacklist.'."\n", + 'type' => 'string', + 'example' => '0', + ], + 'CcSystemBlocksSum' => [ + 'description' => 'The number of requests that are blocked by HTTP flood protection rules created by the system.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'BlacklistReportsSum' => [ + 'description' => 'The number of requests that are monitored by the IP address blacklist.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'Index' => [ + 'description' => 'The serial number of the time interval. The serial numbers are arranged in chronological order.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'RobotCount' => [ + 'description' => 'The total number of bot requests.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1110', + ], + 'Count' => [ + 'description' => 'The total number of requests.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2932', + ], + 'RegionBlockReportsSum' => [ + 'description' => 'The number of requests that are monitored by region blacklist rules.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'AntiScanBlockSum' => [ + 'description' => 'The number of requests that are blocked by scan protection rules.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'CcSystemReportsSum' => [ + 'description' => 'The number of requests that are monitored by HTTP flood protection rules created by the system.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'AntibotReportSum' => [ + 'description' => 'The number of requests that are monitored by bot management rules.'."\n", + 'type' => 'string', + 'example' => '0', + ], + 'InBytes' => [ + 'description' => 'The total number of requests that are redirected to the WAF instance.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '121645464', + ], + 'WafBlockSum' => [ + 'description' => 'The number of requests that are blocked by basic protection rules.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'CcCustomBlockSum' => [ + 'description' => 'The number of requests that are blocked by custom HTTP flood protection rules.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'AntiscanReportsSum' => [ + 'description' => 'The number of requests that are monitored by scan protection rules.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'AclCustomBlockSum' => [ + 'description' => 'The number of requests that are blocked by custom access control list (ACL) rules.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'RatelimitReportSum' => [ + 'description' => 'The number of requests that are monitored by rate limiting rules.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'WafReportSum' => [ + 'description' => 'The number of requests that are monitored by basic protection rules.'."\n", + 'type' => 'string', + 'example' => '0', + ], + 'AclCustomReportsSum' => [ + 'description' => 'The number of requests that are monitored by custom ACL rules.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'OutBytes' => [ + 'description' => 'The total number of requests that are forwarded by the WAF instance.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1200540464', + ], + 'RegionBlockBlocksSum' => [ + 'description' => 'The number of requests that are blocked by region blacklist rules.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"BFA71416-670E-585D-AAE6-E7BBEE248FAB\\",\\n \\"FlowChart\\": [\\n {\\n \\"MaxPv\\": 2932,\\n \\"AntibotBlockSum\\": 0,\\n \\"CcCustomReportsSum\\": 0,\\n \\"RatelimitBlockSum\\": 0,\\n \\"BlacklistBlockSum\\": \\"0\\",\\n \\"CcSystemBlocksSum\\": 0,\\n \\"BlacklistReportsSum\\": 0,\\n \\"Index\\": 10,\\n \\"RobotCount\\": 1110,\\n \\"Count\\": 2932,\\n \\"RegionBlockReportsSum\\": 0,\\n \\"AntiScanBlockSum\\": 0,\\n \\"CcSystemReportsSum\\": 0,\\n \\"AntibotReportSum\\": \\"0\\",\\n \\"InBytes\\": 121645464,\\n \\"WafBlockSum\\": 0,\\n \\"CcCustomBlockSum\\": 0,\\n \\"AntiscanReportsSum\\": 0,\\n \\"AclCustomBlockSum\\": 0,\\n \\"RatelimitReportSum\\": 0,\\n \\"WafReportSum\\": \\"0\\",\\n \\"AclCustomReportsSum\\": 0,\\n \\"OutBytes\\": 1200540464,\\n \\"RegionBlockBlocksSum\\": 0\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeFlowChart', + ], + 'DescribePeakTrend' => [ + 'summary' => 'Queries the queries per second (QPS) statistics of a WAF instance.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + ], + 'parameters' => [ + [ + 'name' => 'StartTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. Unit: seconds.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1665331200', + ], + ], + [ + 'name' => 'EndTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. Unit: seconds. If you do not specify this parameter, the current time is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1665386340', + ], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time interval. Unit: seconds. The value must be an integral multiple of 60.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '300', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protected object.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'www.aliyundoc.com', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '9D11AC3A-A10C-56E7-A342-E87EC892BAE2', + ], + 'FlowChart' => [ + 'description' => 'An array of the QPS statistics of the WAF instance.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The QPS statistics of the WAF instance.'."\n", + 'type' => 'object', + 'properties' => [ + 'AntiScanSum' => [ + 'description' => 'The number of requests that are monitored or blocked by the scan protection module.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'AclSum' => [ + 'description' => 'The number of requests that are monitored or blocked by the custom rule (access control) module.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'WafSum' => [ + 'description' => 'The number of requests that are monitored or blocked by the regular expression protection engine.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'CcSum' => [ + 'description' => 'The number of requests that are monitored or blocked by the HTTP flood protection module.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + 'Index' => [ + 'description' => 'The serial number of the time interval. The serial numbers are arranged in chronological order.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'Count' => [ + 'description' => 'The total number of requests.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2622', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9D11AC3A-A10C-56E7-A342-E87EC892BAE2\\",\\n \\"FlowChart\\": [\\n {\\n \\"AntiScanSum\\": 0,\\n \\"AclSum\\": 0,\\n \\"WafSum\\": 0,\\n \\"CcSum\\": 0,\\n \\"Index\\": 10,\\n \\"Count\\": 2622\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribePeakTrend', + ], + 'DescribeResponseCodeTrendGraph' => [ + 'summary' => 'Queries the trend of the number of error codes that are returned to clients or Web Application Firewall (WAF). The error codes include 302, 405, 444, 499, and 5XX.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '106569', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + ], + 'parameters' => [ + [ + 'name' => 'StartTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. Unit: seconds.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1665331200', + ], + ], + [ + 'name' => 'EndTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. Unit: seconds. If you do not specify this parameter, the current time is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1665386280', + ], + ], + [ + 'name' => 'Interval', + 'in' => 'query', + 'schema' => [ + 'description' => 'The time interval. Unit: seconds. The value must be an integral multiple of 60.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '300', + ], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the error codes. Valid values:'."\n" + ."\n" + .'* **waf:** error codes that are returned to clients from WAF.'."\n" + .'* **upstream:** error codes that are returned to WAF from the origin server.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protected object.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'www.aliyundoc.com', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The result of the request.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '7D46493E-84DD-58CE-80A7-8643****9ECC', + ], + 'ResponseCodes' => [ + 'description' => 'The array of the statistics of the error codes.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The statistics of the error codes.'."\n", + 'type' => 'object', + 'properties' => [ + '5xxPv' => [ + 'description' => 'The number of 5xx error codes that are returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2932', + ], + 'Index' => [ + 'description' => 'The serial number of the time interval. The serial numbers are arranged in chronological order.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + '405Pv' => [ + 'description' => 'The number of 405 error codes that are returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '121645464', + ], + '499Pv' => [ + 'description' => 'The number of 499 error codes that are returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + '302Pv' => [ + 'description' => 'The number of 302 error codes that are returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + '444Pv' => [ + 'description' => 'The number of 444 error codes that are returned.', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '0', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7D46493E-84DD-58CE-80A7-8643F2B09ECC\\",\\n \\"ResponseCodes\\": [\\n {\\n \\"5xxPv\\": 2932,\\n \\"Index\\": 10,\\n \\"405Pv\\": 121645464,\\n \\"499Pv\\": 0,\\n \\"302Pv\\": 0,\\n \\"444Pv\\": 0\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeResponseCodeTrendGraph', + ], + 'DescribeVisitUas' => [ + 'summary' => 'Queries the top 10 user agents that are used to initiate requests.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '104799', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + ], + 'parameters' => [ + [ + 'name' => 'StartTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. Unit: seconds.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1665331200', + ], + ], + [ + 'name' => 'EndTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. Unit: seconds. If you do not specify this parameter, the current time is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1665386280', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protected object.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'www.aliyundoc.com', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '2847CE98-AFAE-5A64-B80E-60461717F9DE', + ], + 'Uas' => [ + 'description' => 'The array of the top 10 user agents that are used to initiate requests.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the user agent that is used to initiate requests.'."\n", + 'type' => 'object', + 'properties' => [ + 'Count' => [ + 'description' => 'The number of requests that use the user agent.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '698455', + ], + 'Ua' => [ + 'description' => 'The user agent.'."\n", + 'type' => 'string', + 'example' => 'chrome', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2847CE98-AFAE-5A64-B80E-60461717F9DE\\",\\n \\"Uas\\": [\\n {\\n \\"Count\\": 698455,\\n \\"Ua\\": \\"chrome\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeVisitUas', + ], + 'DescribeVisitTopIp' => [ + 'summary' => 'Queries the top 10 IP addresses from which requests are sent.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + ], + 'parameters' => [ + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protected object.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'www.aliyundoc.com', + ], + ], + [ + 'name' => 'StartTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. Unit: seconds.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1665331200', + ], + ], + [ + 'name' => 'EndTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. Unit: seconds. If you do not specify this parameter, the current time is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1665386280', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '5D2B8DAE-A761-58CB-A68D-74989E4831DA', + ], + 'TopIp' => [ + 'description' => 'The array of the top 10 IP addresses from which requests are sent.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the IP address from which requests are sent.'."\n", + 'type' => 'object', + 'properties' => [ + 'Area' => [ + 'description' => 'The ordinal number of the area to which the IP address belongs.'."\n", + 'type' => 'string', + 'example' => '310000', + ], + 'Ip' => [ + 'description' => 'The IP address.'."\n", + 'type' => 'string', + 'example' => '1.1.XX.XX', + ], + 'Isp' => [ + 'description' => 'The ISP.'."\n", + 'type' => 'string', + 'example' => 'AAA', + ], + 'Count' => [ + 'description' => 'The total number of requests that are sent from the IP address.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '2622', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5D2B8DAE-A761-58CB-A68D-74989E4831DA\\",\\n \\"TopIp\\": [\\n {\\n \\"Area\\": \\"310000\\",\\n \\"Ip\\": \\"1.1.XX.XX\\",\\n \\"Isp\\": \\"AAA\\",\\n \\"Count\\": 2622\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeVisitTopIp', + ], + 'DescribeRuleHitsTopResource' => [ + 'summary' => 'Queries the top 10 protected objects that trigger protection rules.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + ], + 'parameters' => [ + [ + 'name' => 'StartTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. Unit: seconds.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1665331200', + ], + ], + [ + 'name' => 'EndTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. Unit: seconds. If you do not specify this parameter, the current time is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1665386340', + ], + ], + [ + 'name' => 'RuleType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of rules that are triggered by the protected object. By default, this parameter is not specified and all types of rules are queried.'."\n" + ."\n" + .'* **blacklist:** IP address blacklist rules.'."\n" + .'* **custom:** custom rules.'."\n" + .'* **antiscan:** scan protection rules.'."\n" + .'* **cc_system:** HTTP flood protection rules.'."\n" + .'* **region_block:** region blacklist rules.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'blacklist', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'ADA11BC7-AA95-5C31-9095-5802C02ED1DC', + ], + 'RuleHitsTopResource' => [ + 'description' => 'The array of the top 10 protected objects that trigger protection rules.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The match details of the protection rules that are triggered by the protected object.'."\n", + 'type' => 'object', + 'properties' => [ + 'Resource' => [ + 'description' => 'The protected object.'."\n", + 'type' => 'string', + 'example' => 'www.aliyundoc.com', + ], + 'Count' => [ + 'description' => 'The number of requests that match protection rules.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '14219', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"ADA11BC7-AA95-5C31-9095-5802C02ED1DC\\",\\n \\"RuleHitsTopResource\\": [\\n {\\n \\"Resource\\": \\"www.aliyundoc.com\\",\\n \\"Count\\": 14219\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeRuleHitsTopResource', + ], + 'DescribeRuleHitsTopRuleId' => [ + 'summary' => 'Queries the IDs of the top 10 protection rules that are matched by requests.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + ], + 'parameters' => [ + [ + 'name' => 'StartTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. Unit: seconds.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1665331200', + ], + ], + [ + 'name' => 'EndTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. Unit: seconds. If you do not specify this parameter, the current time is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1665386280', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protected object.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'www.aliyundoc.com', + ], + ], + [ + 'name' => 'RuleType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of rules that are triggered by the protected object. By default, this parameter is not specified and all types of rules are queried.'."\n" + ."\n" + .'* **blacklist:** IP address blacklist rules.'."\n" + .'* **custom:** custom rules.'."\n" + .'* **antiscan:** scan protection rules.'."\n" + .'* **cc_system:** HTTP flood protection rules.'."\n" + .'* **region_block:** region blacklist rules.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'blacklist', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'IsGroupResource', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether protected objects that trigger protection rules are returned in the response. Valid values'."\n" + ."\n" + .'- **true**: returns only the number of times each protection rule is triggered. If you set IsGroupResource to true, Resource is left empty.'."\n" + .'- **false**: returns the number of times each protection rule is triggered by each protected object.', + 'type' => 'string', + 'required' => false, + 'example' => 'true', + 'default' => 'true', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'F6334274-8870-5D2F-A1AD-D6EF885AC1ED', + ], + 'RuleHitsTopRuleId' => [ + 'description' => 'The array of the IDs of the top 10 rules that are matched by requests.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The match details of the rule.'."\n", + 'type' => 'object', + 'properties' => [ + 'RuleId' => [ + 'description' => 'The ID of the rule.'."\n", + 'type' => 'string', + 'example' => '5465465', + ], + 'Resource' => [ + 'description' => 'The protected object.'."\n", + 'type' => 'string', + 'example' => 'www.aliyundoc.com', + ], + 'Count' => [ + 'description' => 'The number of requests that match the rule.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '181174784', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"F6334274-8870-5D2F-A1AD-D6EF885AC1ED\\",\\n \\"RuleHitsTopRuleId\\": [\\n {\\n \\"RuleId\\": \\"5465465\\",\\n \\"Resource\\": \\"www.aliyundoc.com\\",\\n \\"Count\\": 181174784\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeRuleHitsTopRuleId', + ], + 'DescribeRuleHitsTopTuleType' => [ + 'summary' => 'Queries the top 10 protection modules that are matched.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + ], + 'parameters' => [ + [ + 'name' => 'StartTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The start point of the time period for which to query. Unit: seconds.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1665331200', + ], + ], + [ + 'name' => 'EndTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end point of the time period for which to query. Unit: seconds. If you do not specify this parameter, the current time is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1665386280', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protected object.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'www.aliyundoc.com', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'example' => 'rg-aekzwwkpn****5i', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '45E377CE-0B04-578E-B653-EEA63CFE****', + ], + 'RuleHitsTopTuleType' => [ + 'description' => 'The top 10 protection modules that are matched.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The match details of the protection module.'."\n", + 'type' => 'object', + 'properties' => [ + 'RuleType' => [ + 'description' => 'The type of rule that is matched. By default, this parameter is not returned. This indicates that all types of rules that are matched are returned.'."\n" + ."\n" + .'* **waf:** basic protection rules.'."\n" + .'* **blacklist:** IP address blacklist rules.'."\n" + .'* **custom:** custom rules.'."\n" + .'* **antiscan:** scan protection rules.'."\n" + .'* **cc_system:** HTTP flood protection rules.'."\n" + .'* **region_block:** region blacklist rules.'."\n" + .'* **scene:** bot management rules.'."\n" + .'* **dlp:** data leakage prevention rules.'."\n", + 'type' => 'string', + 'example' => 'cc_system', + ], + 'Count' => [ + 'description' => 'The number of requests that match protection rules.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '698455', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"45E377CE-0B04-578E-B653-EEA63CFE****\\",\\n \\"RuleHitsTopTuleType\\": [\\n {\\n \\"RuleType\\": \\"blacklist\\",\\n \\"Count\\": 698455\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeRuleHitsTopTuleType', + ], + 'DescribeRuleHitsTopUrl' => [ + 'summary' => 'Queries the top 10 URLs that trigger protection rules.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '105175', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + ], + 'parameters' => [ + [ + 'name' => 'StartTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. Unit: seconds.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1665331200', + ], + ], + [ + 'name' => 'EndTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. Unit: seconds. If you do not specify this parameter, the current time is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1665386280', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protected object.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'www.aliyundoc.com', + ], + ], + [ + 'name' => 'RuleType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of rules that are triggered by the protected object. By default, this parameter is not specified and all types of rules are queried.'."\n" + ."\n" + .'* **blacklist:** IP address blacklist rules.'."\n" + .'* **custom:** custom rules.'."\n" + .'* **antiscan:** scan protection rules.'."\n" + .'* **cc_system:** HTTP flood protection rules.'."\n" + .'* **region_block:** region blacklist rules.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'blacklist', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '3D8AF43B-08EB-51CE-B33A-93AA****9B0C', + ], + 'RuleHitsTopUrl' => [ + 'description' => 'The top 10 URLs that match protection rules.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The match details of protection rules that are triggered by the URL.'."\n", + 'type' => 'object', + 'properties' => [ + 'Count' => [ + 'description' => 'The number of requests that match protection rules.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '21862', + ], + 'Url' => [ + 'description' => 'The request URL.'."\n" + ."\n" + .'> The value is Base64-encoded.'."\n", + 'type' => 'string', + 'example' => 'd3d3LmFsaXl1bmRvYy5jb20vcGF0aDM=', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"3D8AF43B-08EB-51CE-B33A-93AA****9B0C\\",\\n \\"RuleHitsTopUrl\\": [\\n {\\n \\"Count\\": 21862,\\n \\"Url\\": \\"d3d3LmFsaXl1bmRvYy5jb20vcGF0aDM=\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeRuleHitsTopUrl', + ], + 'DescribeRuleHitsTopClientIp' => [ + 'summary' => 'Queries the top 10 IP addresses from which attacks are initiated.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + ], + 'parameters' => [ + [ + 'name' => 'StartTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. Unit: seconds.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1665331200', + ], + ], + [ + 'name' => 'EndTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. Unit: seconds. If you do not specify this parameter, the current time is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1665386280', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protected object.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'www.aliyundoc.com', + ], + ], + [ + 'name' => 'RuleType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of rules that are triggered by the protected object. By default, this parameter is not specified and all types of rules are queried.'."\n" + ."\n" + .'* **blacklist:** IP address blacklist rules.'."\n" + .'* **custom:** custom rules.'."\n" + .'* **antiscan:** scan protection rules.'."\n" + .'* **cc_system:** HTTP flood protection rules.'."\n" + .'* **region_block:** region blacklist rules.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'blacklist', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The data returned.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '9F0F9AD6-62E2-50BB-A3E5-30FFB9410262', + ], + 'RuleHitsTopClientIp' => [ + 'description' => 'The array of the top 10 IP addresses from which attacks are initiated.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the attacks that are initiated from the IP address.'."\n", + 'type' => 'object', + 'properties' => [ + 'Count' => [ + 'description' => 'The number of attacks that are initiated from the IP address.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '531', + ], + 'ClientIp' => [ + 'description' => 'The IP address of the service client.'."\n", + 'type' => 'string', + 'example' => '3.3.XX.XX', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9F0F9AD6-62E2-50BB-A3E5-30FFB9410262\\",\\n \\"RuleHitsTopClientIp\\": [\\n {\\n \\"Count\\": 531,\\n \\"ClientIp\\": \\"3.3.XX.XX\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeRuleHitsTopClientIp', + ], + 'DescribeFlowTopResource' => [ + 'summary' => 'Queries the top 10 protected objects that receive requests.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + ], + 'parameters' => [ + [ + 'name' => 'StartTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. Unit: seconds.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1665331200', + ], + ], + [ + 'name' => 'EndTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. Unit: seconds. If you do not specify this parameter, the current time is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1665386340', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '8F0E0B9A-B518-5C6D-BEFC-A373DDE4F652', + ], + 'RuleHitsTopResource' => [ + 'description' => 'The array of the top 10 protected objects that receive requests.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the requests received by the protected object.'."\n", + 'type' => 'object', + 'properties' => [ + 'Resource' => [ + 'description' => 'The protected object.'."\n", + 'type' => 'string', + 'example' => 'www.aliyundoc.com', + ], + 'Count' => [ + 'description' => 'The total number of requests received by the protected object in a specified time range.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '181174784', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"8F0E0B9A-B518-5C6D-BEFC-A373DDE4F652\\",\\n \\"RuleHitsTopResource\\": [\\n {\\n \\"Resource\\": \\"www.aliyundoc.com\\",\\n \\"Count\\": 181174784\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeFlowTopResource', + ], + 'DescribeRuleHitsTopUa' => [ + 'summary' => 'Queries the top 10 user agents that are used to initiate attacks.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + ], + 'parameters' => [ + [ + 'name' => 'StartTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. Unit: seconds.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1665331200', + ], + ], + [ + 'name' => 'EndTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. Unit: seconds. If you do not specify this parameter, the current time is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1665386280', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protected object.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'www.aliyundoc.com', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '8E5C7ED7-503A-5986-A005-36F2511EB89F', + ], + 'RuleHitsTopUa' => [ + 'description' => 'The array of the top 10 user agents that are used to initiate attacks.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the user agent that is used to initiate attacks.'."\n", + 'type' => 'object', + 'properties' => [ + 'Count' => [ + 'description' => 'The number of attacks that are initiated from the IP address.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '531', + ], + 'Ua' => [ + 'description' => 'The user agent.'."\n", + 'type' => 'string', + 'example' => 'android', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"8E5C7ED7-503A-5986-A005-36F2511EB89F\\",\\n \\"RuleHitsTopUa\\": [\\n {\\n \\"Count\\": 531,\\n \\"Ua\\": \\"android\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeRuleHitsTopUa', + ], + 'DescribeFlowTopUrl' => [ + 'summary' => 'Queries the top 10 URLs that are used to initiate requests.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + ], + 'parameters' => [ + [ + 'name' => 'StartTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The beginning of the time range to query. Unit: seconds.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '1665331200', + ], + ], + [ + 'name' => 'EndTimestamp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The end of the time range to query. Unit: seconds. If you do not specify this parameter, the current time is used.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1665386340', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'description' => 'The protected object.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'www.aliyundoc.com', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '520D4E4C-B8EC-5602-ACB6-4D378ACBA28D', + ], + 'RuleHitsTopUrl' => [ + 'description' => 'The array of the top 10 URLs that are used to initiate requests.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the URL that is used to initiate requests.'."\n", + 'type' => 'object', + 'properties' => [ + 'Count' => [ + 'description' => 'The total number of requests that are initiated by using the URL.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '181174784', + ], + 'Url' => [ + 'description' => 'The URL that is used to initiate requests.'."\n", + 'type' => 'string', + 'example' => 'www.aliyundoc.com/path1', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"520D4E4C-B8EC-5602-ACB6-4D378ACBA28D\\",\\n \\"RuleHitsTopUrl\\": [\\n {\\n \\"Count\\": 181174784,\\n \\"Url\\": \\"www.aliyundoc.com/path1\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeFlowTopUrl', + ], + 'DescribeThreatEventDetail' => [ + 'summary' => '查看威胁事件详情', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '114528', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + ], + 'parameters' => [ + [ + 'name' => 'EventId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '1661131a028f72a976703f4a4082ad87', + 'default' => '', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-lbj*****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aekzhks66****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B1****', + ], + 'ThreatEventDetail' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'IsPersistent' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'EventLevel' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'high', + ], + 'EventBlock' => [ + 'description' => '', + 'type' => 'string', + 'example' => '20', + ], + 'EventCnt' => [ + 'description' => '', + 'type' => 'string', + 'example' => '20', + ], + 'EndTime' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1749916800000', + ], + 'EventIntelligence' => [ + 'description' => '', + 'type' => 'string', + 'example' => '["CVE-2020-14882","DDoS Attack"]', + ], + 'EventSrcRegion' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'GB-ENG', + ], + 'EventSrc' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'XX.XX.XX.XX', + ], + 'EventSuggest' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'FixBug', + ], + 'EventCondition' => [ + 'description' => '', + 'type' => 'string', + 'example' => '{"end_ts": 1766637714, "start_ts": 1764096746, "condition": {"real_client_ip": ["78.153.140.179", "78.153.140.203", "78.153.140.177", "78.153.140.178", "78.153.140.151"]}}', + ], + 'EventTag' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'MultipleDomainWebattack', + ], + 'EventSrcCountry' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'GB', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B1****\\",\\n \\"ThreatEventDetail\\": {\\n \\"IsPersistent\\": 1,\\n \\"EventLevel\\": \\"high\\",\\n \\"EventBlock\\": \\"20\\",\\n \\"EventCnt\\": \\"20\\",\\n \\"EndTime\\": 1749916800000,\\n \\"EventIntelligence\\": \\"[\\\\\\"CVE-2020-14882\\\\\\",\\\\\\"DDoS Attack\\\\\\"]\\",\\n \\"EventSrcRegion\\": \\"GB-ENG\\",\\n \\"EventSrc\\": \\"XX.XX.XX.XX\\",\\n \\"EventSuggest\\": \\"FixBug\\",\\n \\"EventCondition\\": \\"{\\\\\\"end_ts\\\\\\": 1766637714, \\\\\\"start_ts\\\\\\": 1764096746, \\\\\\"condition\\\\\\": {\\\\\\"real_client_ip\\\\\\": [\\\\\\"78.153.140.179\\\\\\", \\\\\\"78.153.140.203\\\\\\", \\\\\\"78.153.140.177\\\\\\", \\\\\\"78.153.140.178\\\\\\", \\\\\\"78.153.140.151\\\\\\"]}}\\",\\n \\"EventTag\\": \\"MultipleDomainWebattack\\",\\n \\"EventSrcCountry\\": \\"GB\\"\\n }\\n}","type":"json"}]', + ], + 'DescribeThreatEvent' => [ + 'summary' => '查看攻击事件列表', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '111428', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + ], + 'parameters' => [ + [ + 'name' => 'DomainName', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'www.abc.com', + 'default' => '', + ], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1668496310000', + ], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1749916800000', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + 'default' => '5', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-2bl4****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aeky65ka*****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '98106632-6865-5600-A834-3D909***', + ], + 'ThreatEvents' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'EventLevel' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'high', + ], + 'EndTime' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1768406400000', + ], + 'EventSrc' => [ + 'description' => '', + 'type' => 'string', + 'example' => '3.3.3.3', + ], + 'EventId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'f439994c8ab39f84eced33490f0c4388', + ], + 'BlockRate' => [ + 'description' => '', + 'type' => 'string', + 'example' => '100%', + ], + 'EventTag' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'Event_InternalLoginWeakPasswd', + ], + 'EventTarget' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'test.aliyundemo.com-waf', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 10,\\n \\"RequestId\\": \\"98106632-6865-5600-A834-3D909***\\",\\n \\"ThreatEvents\\": [\\n {\\n \\"EventLevel\\": \\"high\\",\\n \\"EndTime\\": 1768406400000,\\n \\"EventSrc\\": \\"3.3.3.3\\",\\n \\"EventId\\": \\"f439994c8ab39f84eced33490f0c4388\\",\\n \\"BlockRate\\": \\"100%\\",\\n \\"EventTag\\": \\"Event_InternalLoginWeakPasswd\\",\\n \\"EventTarget\\": \\"test.aliyundemo.com-waf\\"\\n }\\n ]\\n}","type":"json"}]', + ], + 'DescribeThreatEventTopMetric' => [ + 'summary' => '查询安全事件Top攻击统计数据', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '114535', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'Metric', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'enumValueTitles' => [ + 'src' => 'src', + 'time' => 'time', + 'type' => 'type', + 'tools' => 'tools', + 'target' => 'target', + ], + 'example' => 'time', + 'enum' => [ + 'time', + 'src', + 'target', + 'type', + 'tools', + ], + ], + ], + [ + 'name' => 'EventId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => '0b7ab137a065aab7656986***11db', + 'default' => '', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-cn-0xldbqt****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TopMetrics' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Cnt' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '20', + ], + 'Value' => [ + 'description' => '', + 'type' => 'string', + 'example' => '115.28.209.212', + ], + 'Country' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'CN', + ], + 'Region' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + ], + ], + ], + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '12EF3845-CCEB-4B84-AE60-2B49B*****EE5', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TopMetrics\\": [\\n {\\n \\"Cnt\\": 20,\\n \\"Value\\": \\"115.28.209.212\\",\\n \\"Country\\": \\"CN\\",\\n \\"Region\\": \\"cn-hangzhou\\"\\n }\\n ],\\n \\"RequestId\\": \\"12EF3845-CCEB-4B84-AE60-2B49B*****EE5\\"\\n}","type":"json"}]', + ], + 'DescribeAlarmList' => [ + 'summary' => '查询实例信息', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafHU8RSD', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-pe33e****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aek2ipnu***', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '8D8EBFB7-E1EB-5236-952A-092EDC72***', + ], + 'Alarms' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'Type' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'qps', + ], + 'MaxQps' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '12000', + ], + 'EndTime' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1605600798', + ], + 'Cause' => [ + 'description' => '', + 'type' => 'string', + 'example' => '4count', + ], + 'StartTime' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1605600767', + ], + 'Spec' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10000', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"8D8EBFB7-E1EB-5236-952A-092EDC72***\\",\\n \\"Alarms\\": [\\n {\\n \\"Status\\": 1,\\n \\"Type\\": \\"qps\\",\\n \\"MaxQps\\": 12000,\\n \\"EndTime\\": 1605600798,\\n \\"Cause\\": \\"4count\\",\\n \\"StartTime\\": 1605600767,\\n \\"Spec\\": 10000\\n }\\n ]\\n}","type":"json"}]', + ], + 'DescribeAlarmBanner' => [ + 'summary' => '查询实例信息', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafVPSU1I', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-kf74****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aek2zerdgm****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '5555DC36-0CF2-5AA3-B1C7-D6BD8****', + ], + 'BannerStatus' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'true', + ], + 'Type' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'sandbox', + ], + 'Cause' => [ + 'description' => '', + 'type' => 'string', + 'example' => '4count', + ], + 'Count' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '9008', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5555DC36-0CF2-5AA3-B1C7-D6BD8****\\",\\n \\"BannerStatus\\": {\\n \\"Status\\": true,\\n \\"Type\\": \\"sandbox\\",\\n \\"Cause\\": \\"4count\\",\\n \\"Count\\": 9008\\n }\\n}","type":"json"}]', + ], + 'DescribeUserLogFieldConfig' => [ + 'summary' => '查询用户日志配置', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '111385', + 'abilityTreeNodes' => [ + 'FEATUREwafJYSA2F', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-0*****', + ], + ], + [ + 'name' => 'DeliveryType', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'sls', + 'default' => 'sls', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aek24******', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'AddList' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'acl_action,acl_rule_id', + ], + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '653778B4-4D47-5223-855B-4E******', + ], + 'LogDeliveryStrategy' => [ + 'description' => '', + 'type' => 'string', + 'example' => '[{\\"logType\\":\\"blockLog\\",\\"rate\\":100},{\\"logType\\":\\"normalRequestLog\\",\\"rate\\":100},{\\"logType\\":\\"checkLog\\",\\"rate\\":100}]', + ], + 'ExtendConfig' => [ + 'description' => '', + 'type' => 'string', + 'example' => '{\\"request_header\\":\\"Ali-Cdn-Real-Ip\\"}', + ], + 'ConfigStatus' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'success_finished', + ], + 'DelList' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'waf_rule_id,waf_rule_type', + ], + 'FieldList' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'account,acl_action,acl_rule_id,acl_rule_type', + ], + 'DeliveryType' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'sls', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"AddList\\": \\"acl_action,acl_rule_id\\",\\n \\"RequestId\\": \\"653778B4-4D47-5223-855B-4E******\\",\\n \\"LogType\\": 0,\\n \\"LogDeliveryStrategy\\": \\"[{\\\\\\\\\\\\\\"logType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"blockLog\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"rate\\\\\\\\\\\\\\":100},{\\\\\\\\\\\\\\"logType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"normalRequestLog\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"rate\\\\\\\\\\\\\\":100},{\\\\\\\\\\\\\\"logType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"checkLog\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"rate\\\\\\\\\\\\\\":100}]\\",\\n \\"ExtendConfig\\": \\"{\\\\\\\\\\\\\\"request_header\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Ali-Cdn-Real-Ip\\\\\\\\\\\\\\"}\\",\\n \\"ConfigStatus\\": \\"success_finished\\",\\n \\"DelList\\": \\"waf_rule_id,waf_rule_type\\",\\n \\"FieldList\\": \\"account,acl_action,acl_rule_id,acl_rule_type\\",\\n \\"DeliveryType\\": \\"sls\\"\\n}","type":"json"}]', + ], + 'ModifyUserLogFieldConfig' => [ + 'summary' => ' 修改用户日志服务的默认字段配置', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '111386', + 'abilityTreeNodes' => [ + 'FEATUREwafJYSA2F', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-fou****', + ], + ], + [ + 'name' => 'FieldList', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'account,acl_action,acl_rule_id,acl_rule_type,acl_test,antiscan_action,antiscan_rule_id,antiscan_rule_type,antiscan_test,body_bytes_sent,bypass_matched_ids', + ], + ], + [ + 'name' => 'ExtendConfig', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '{\\"request_header\\":\\"App-Id,channelCode\\"}', + ], + ], + [ + 'name' => 'DeliveryType', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'sls', + 'default' => 'sls', + ], + ], + [ + 'name' => 'LogDeliveryStrategy', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '[{\\"logType\\":\\"blockLog\\",\\"rate\\":100},{\\"logType\\":\\"normalRequestLog\\",\\"rate\\":100},{\\"logType\\":\\"checkLog\\",\\"rate\\":100}]', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'E2D63742-9BAA-*****', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"E2D63742-9BAA-*****\\"\\n}","type":"json"}]', + ], + 'DescribeCommonLogFields' => [ + 'summary' => '查询日志服务支持的所有字段', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '111390', + 'abilityTreeNodes' => [ + 'FEATUREwafJYSA2F', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-l*****', + ], + ], + [ + 'name' => 'IsRequired', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => '', + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'IsDefault', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + [ + 'name' => 'LogKeyList', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'final_action', + ], + 'required' => false, + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aek2sxgs*****', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '6', + ], + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'AB0775EB-2594-598A-97E1-51B1*******', + ], + 'LogFieldList' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => '1', + ], + 'IsDefault' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'true', + ], + 'IsRequired' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'true', + ], + 'LogKey' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'final_action', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 6,\\n \\"RequestId\\": \\"AB0775EB-2594-598A-97E1-51B1*******\\",\\n \\"LogFieldList\\": [\\n {\\n \\"Status\\": true,\\n \\"IsDefault\\": true,\\n \\"Description\\": \\"waf action\\",\\n \\"IsRequired\\": true,\\n \\"LogKey\\": \\"final_action\\"\\n }\\n ]\\n}","type":"json"}]', + ], + 'ModifyUserWafLogStatus' => [ + 'summary' => '开通或关闭WAF日志服务', + 'methods' => [ + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeNodes' => [ + 'FEATUREwafJYSA2F', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-mp9153****', + ], + ], + [ + 'name' => 'LogStatus', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'LogRegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-beijing', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'D7861F61-5B61-****-A47C-6B19160*****', + ], + 'LogStoreName' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'wafng-logstore', + ], + 'ProjectName' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'wafng-project-14316572********-cn-hangzhou', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-****-A47C-6B19160*****\\",\\n \\"ProjectName\\": true,\\n \\"LogStoreName\\": \\"wafng-logstore\\"\\n}","type":"json"}]', + ], + 'DescribeUserWafLogStatus' => [ + 'summary' => 'Queries the status, region ID, and status modification time of Web Application Firewall (WAF) logs.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '201942', + 'abilityTreeNodes' => [ + 'FEATUREwafJYSA2F', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-nwy34****0j', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '阿里云资源组ID。', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D****', + ], + 'LogStatus' => [ + 'description' => 'The status of WAF logs.'."\n" + ."\n" + .'* **initializing**'."\n" + .'* **initialize_failed**'."\n" + .'* **normal**'."\n" + .'* **releasing**'."\n" + .'* **release_failed**'."\n", + 'type' => 'string', + 'example' => 'normal', + ], + 'LogRegionId' => [ + 'description' => 'The ID of the region where WAF logs are stored. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: China (Hangzhou).'."\n" + .'* **cn-beijing**: China (Beijing).'."\n" + .'* **cn-hongkong**: China (Hong Kong).'."\n" + .'* **ap-southeast-1**: Singapore.'."\n" + .'* **ap-southeast-3**: Malaysia (Kuala Lumpur).'."\n" + .'* **ap-southeast-5**: Indonesia (Jakarta).'."\n" + .'* **ap-southeast-6**: Philippines (Manila).'."\n" + .'* **ap-southeast-7**: Thailand (Bangkok).'."\n" + .'* **me-east-1**: UAE (Dubai).'."\n" + .'* **eu-central-1**: Germany (Frankfurt).'."\n" + .'* **us-east-1**: US (Virginia).'."\n" + .'* **us-west-1**: US (Silicon Valley).'."\n" + .'* **ap-northeast-1**: Japan (Tokyo).'."\n" + .'* **ap-northeast-2**: South Korea (Seoul).'."\n" + .'* **eu-west-1**: UK (London).'."\n" + .'* **cn-hangzhou-finance**: China East 1 Finance.'."\n" + .'* **cn-shanghai-finance-1**: China East 2 Finance.'."\n" + .'* **cn-shenzhen-finance**: China South 1 Finance.'."\n" + ."\n" + .'> The China East 1 Finance, China East 2 Finance, and China South 1 Finance regions are available only for Alibaba Finance Cloud users. Alibaba Finance Cloud users are also limited to storing logs within these specific regions.', + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'StatusUpdateTime' => [ + 'description' => 'The time when the log status was modified. Unit: milliseconds.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1706771796859', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\",\\n \\"LogStatus\\": \\"normal\\",\\n \\"LogRegionId\\": \\"cn-hangzhou\\",\\n \\"StatusUpdateTime\\": 1706771796859\\n}","type":"json"}]', + 'title' => 'DescribeUserWafLogStatus', + ], + 'DescribeUserSlsLogRegions' => [ + 'summary' => 'Queries available regions for log storage.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '201946', + 'abilityTreeNodes' => [ + 'FEATUREwafJYSA2F', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-uqm2z****0a', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'LogRegions' => [ + 'description' => 'The region IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The region ID. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: China (Hangzhou).'."\n" + .'* **cn-beijing**: China (Beijing).'."\n" + .'* **cn-hongkong**: China (Hong Kong).'."\n" + .'* **ap-southeast-1**: Singapore.'."\n" + .'* **ap-southeast-3**: Malaysia (Kuala Lumpur).'."\n" + .'* **ap-southeast-5**: Indonesia (Jakarta).'."\n" + .'* **ap-southeast-6**: Philippines (Manila).'."\n" + .'* **ap-southeast-7**: Thailand (Bangkok).'."\n" + .'* **me-east-1**: UAE (Dubai).'."\n" + .'* **eu-central-1**: Germany (Frankfurt).'."\n" + .'* **us-east-1**: US (Virginia).'."\n" + .'* **us-west-1**: US (Silicon Valley).'."\n" + .'* **ap-northeast-1**: Japan (Tokyo).'."\n" + .'* **ap-northeast-2**: South Korea (Seoul).'."\n" + .'* **ap-south-1**: India (Mumbai) Closed Down.'."\n" + .'* **eu-west-1**: UK (London).'."\n" + .'* **cn-hangzhou-finance**: China East 1 Finance.'."\n" + .'* **cn-shanghai-finance-1**: China East 2 Finance.'."\n" + .'* **cn-shenzhen-finance**: China South 1 Finance.'."\n" + ."\n" + .'> The China East 1 Finance, China East 2 Finance, and China South 1 Finance regions are available only for Alibaba Finance Cloud users. Alibaba Finance Cloud users are also limited to storing logs within these specific regions.', + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '9D11AC3A-A10C-56E7-A342-E87EC892****', + ], + ], + 'description' => '', + ], + ], + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"LogRegions\\": [\\n \\"cn-hangzhou\\"\\n ],\\n \\"RequestId\\": \\"9D11AC3A-A10C-56E7-A342-E87EC892BAE2\\"\\n}","type":"json"}]', + 'title' => 'DescribeUserSlsLogRegions', + ], + 'DescribeSlsAuthStatus' => [ + 'summary' => 'Queries whether Web Application Firewall (WAF) is authorized to access Logstores.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '111394', + 'abilityTreeNodes' => [ + 'FEATUREwafJYSA2F', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-g4t3g****04', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aek2okfav****iq', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => 'Indicates whether WAF is authorized to access Logstores. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'false', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '3589D3A3-4A04-51CB-AA89-353ED20A****', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Status\\": false,\\n \\"RequestId\\": \\"3589D3A3-4A04-51CB-AA89-353ED20ACB10\\"\\n}","type":"json"}]', + 'title' => 'DescribeSlsAuthStatus', + ], + 'DescribeSlsLogStoreStatus' => [ + 'summary' => 'Queries the status of a Simple Log Service Logstore.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '114229', + 'abilityTreeNodes' => [ + 'FEATUREwafJYSA2F', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-uqm35****02', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfmzedqv****ma', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '184F538F-C115-5C89-A4EF-C79CD2E29AC7', + ], + 'ExistStatus' => [ + 'description' => 'Indicates whether a Logstore is created for WAF. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"184F538F-C115-5C89-A4EF-C79CD2E29AC7\\",\\n \\"ExistStatus\\": true\\n}","type":"json"}]', + 'title' => 'DescribeSlsLogStoreStatus', + ], + 'DescribeSlsLogStore' => [ + 'summary' => 'Queries information about a Logstore, such as the total capacity, storage duration, and used capacity.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '114313', + 'abilityTreeNodes' => [ + 'FEATUREwafJYSA2F', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-zpr3d****0o', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aek2wf3mn****vq', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'LogStoreName' => [ + 'description' => 'The name of the Logstore.'."\n", + 'type' => 'string', + 'example' => 'wafng-logstore', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'CAC0A24B-486A-5E12-9894-BE860E5F****', + ], + 'Quota' => [ + 'description' => 'The capacity of the Logstore. Unit: bytes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '3298534883328', + ], + 'ProjectName' => [ + 'description' => 'The name of the Simple Log Service project.'."\n", + 'type' => 'string', + 'example' => 'wafng-project-14316572********-cn-hangzhou', + ], + 'Used' => [ + 'description' => 'The used capacity of the Logstore. Unit: bytes.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '35471136', + ], + 'Ttl' => [ + 'description' => 'The storage duration of the Logstore. Unit: days.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '180', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"LogStoreName\\": \\"wafng-logstore\\",\\n \\"RequestId\\": \\"CAC0A24B-486A-5E12-9894-BE860E5F41CC\\",\\n \\"Quota\\": 3298534883328,\\n \\"ProjectName\\": \\"wafng-project-14316572********-cn-hangzhou\\",\\n \\"Used\\": 35471136,\\n \\"Ttl\\": 180\\n}","type":"json"}]', + 'title' => 'DescribeSlsLogStore', + ], + 'ModifyResourceLogStatus' => [ + 'summary' => 'Enables or disables the log collection feature for a protected object.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '111393', + 'abilityTreeNodes' => [ + 'FEATUREwafJYSA2F', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-zz11zcl****', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The protected object on which you want to manage the log collection feature.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'alb-wewbb23dfsetetcic1242-0****', + ], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to enable the log collection feature for the protected object. Valid values:'."\n" + ."\n" + .'* **true:** enables the log collection feature.'."\n" + .'* **false:** disables the log collection feature.'."\n", + 'type' => 'boolean', + 'required' => true, + 'example' => 'true', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => 'Indicates whether the log collection feature is enabled for the protected object. Valid values:'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '7C55A3E5-638A-5D6E-9A2F-C3CE5A677EC5', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Status\\": true,\\n \\"RequestId\\": \\"7C55A3E5-638A-5D6E-9A2F-C3CE5A677EC5\\"\\n}","type":"json"}]', + 'title' => 'ModifyResourceLogStatus', + ], + 'DescribeResourceLogStatus' => [ + 'summary' => 'Queries whether the log collection feature is enabled for a protected object.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '111392', + 'abilityTreeNodes' => [ + 'FEATUREwafJYSA2F', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-zz11zcl****', + ], + ], + [ + 'name' => 'Resources', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => 'The protected object that you want to query. You can specify multiple protected objects. Separate the protected objects with commas (,).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'alb-wewbb23dfsetetcic1242-0****,alb-wewbb23dfsetetcic1242-1****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '0DABF8AB-2321-5F8D-A8D7-922D757FBFFE', + ], + 'Result' => [ + 'description' => 'The returned result.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the protected object.'."\n", + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'description' => 'Indicates whether the log collection feature is enabled for the protected object. Valid values:'."\n" + ."\n" + .'* **true:** The log collection feature is enabled.'."\n" + .'* **false:** The log collection feature is disabled.'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'Resource' => [ + 'description' => 'The protected object.'."\n", + 'type' => 'string', + 'example' => 'alb-wewbb23dfsetetcic****', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0DABF8AB-2321-5F8D-A8D7-922D757FBFFE\\",\\n \\"Result\\": [\\n {\\n \\"Status\\": true,\\n \\"Resource\\": \\"alb-wewbb23dfsetetcic****\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeResourceLogStatus', + ], + 'CreateLogDeliveryConfig' => [ + 'summary' => 'Creates a hybrid cloud log delivery configuration.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-cn-0xldbqt****', + ], + ], + [ + 'name' => 'DeliveryName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the log delivery configuration.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'test1', + ], + ], + [ + 'name' => 'DeliveryType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the log delivery configuration. Valid values:'."\n" + ."\n" + .'* **syslog**: Logs are delivered to a syslog service.'."\n" + .'* **kafka**: Logs are delivered to a Kafka service.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'kafka', + ], + ], + [ + 'name' => 'DeliveryDetail', + 'in' => 'query', + 'schema' => [ + 'description' => 'The content of the log delivery configuration. Set the value to a JSON string that contains multiple parameters.'."\n" + ."\n" + .'> The parameters vary based on the type of the **log delivery configuration** specified by **DeliveryType**. For more information, see **Parameter description for log delivery configuration**.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'DeliveryName' => [ + 'description' => 'The name of the log delivery configuration.'."\n", + 'type' => 'string', + 'example' => 'test1', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '26E46541-7AAB-5565-801D-F14DBDC5****', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DeliveryName\\": \\"test1\\",\\n \\"RequestId\\": \\"26E46541-7AAB-5565-801D-F14DBDC5****\\"\\n}","type":"json"}]', + 'title' => 'CreateLogDeliveryConfig', + 'requestParamsDescription' => '## Parameter description for log delivery configuration'."\n" + ."\n" + .'### Deliver logs to a syslog service (DeliveryType set to **syslog**)'."\n" + ."\n" + .'#### Parameter description'."\n" + ."\n" + .'|Parameter|Type|Required|Example|Description|'."\n" + .'|---|---|---|---|---|'."\n" + .'|servers|Array|Yes|\\[{"address":"11.11.XX.XX","port":8000}\\]|The remote address of the syslog service. You can specify only one address.<br>- **address**: the domain name or IP address of the server. The IP address can be an IPv4 or IPv6 address. You must specify an address.<br>- **port**: the port of the server. You must specify a port.|'."\n" + .'|rfcVersion|String|No|rfc3164|The Request for Comments (RFC) that defines the syslog protocol. Valid values:<br>- **rfc3164**: RFC 3164. This is the default value.<br>- **rfc5424**: RFC 5424.|'."\n" + .'|protocol|String|Yes|tcp|The protocol that is supported by the syslog protocol. Valid values:<br>- **tcp**: TCP.<br>- **udp**: UDP.|'."\n" + ."\n" + .'#### Examples'."\n" + ."\n" + .'```json'."\n" + .'{'."\n" + .' "InstanceId": "waf_v2_public_cn-n*******",'."\n" + .' "DeliveryName": "test1",'."\n" + .' "DeliveryType": "syslog",'."\n" + .' "DeliveryDetail": "{\\"rfcVersion\\":\\"rfc3164\\",\\"protocol\\":\\"tcp\\",\\"servers\\":[{\\"address\\":\\"11.11.XX.XX\\",\\"port\\":8000}]}"'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'### Deliver logs to a Kafka service (DeliveryType set to **kafka**)'."\n" + ."\n" + .'#### Parameter description'."\n" + ."\n" + .'|Parameter|Type|Required|Example|Description|'."\n" + .'|---|---|---|---|---|'."\n" + .'|servers|Array|Yes|\\[{"address":"a.com","port":8000}\\]|The remote address of the Kafka service. You can specify up to three addresses.<br>- **address**: the domain name or IP address of the server. The IP address can be an IPv4 or IPv6 address. You must specify an address.<br>- **port**: the port of the server. You must specify a port.|'."\n" + .'|kafkaTopic|String|Yes|test|The ID or name of the Kafka topic.|'."\n" + .'|protocol|String|Yes|PLAINTEXT|The security protocol of Kafka. Valid values:<br>- **PLAINTEXT**: the PLAINTEXT protocol. <br>- **SASL_PLAINTEXT**: the SASL_PLAINTEXT protocol.<br>- **SASL_SSL**: the SASL_SSL protocol.|'."\n" + .'|saslUserName|String|No|user123|The username for Kafka Simple Authentication and Security Layer (SASL) authentication. If you set protocol to SASL_PLAINTEXT or SASL_SSL, you must specify this parameter.|'."\n" + .'|saslPassword|String|No|user\\*\\*\\*|The password for Kafka SASL authentication. If you set protocol to SASL_PLAINTEXT or SASL_SSL, you must specify this parameter.|'."\n" + ."\n" + .'#### Examples'."\n" + ."\n" + .'```json'."\n" + .'{'."\n" + .' "InstanceId": "waf_v2_public_cn-n*********",'."\n" + .' "DeliveryName": "test2",'."\n" + .' "DeliveryType": "kafka",'."\n" + .' "DeliveryDetail": "{\\"kafkaTopic\\":\\"topictest1\\",\\"protocol\\":\\"SASL_PLAINTEXT\\",\\"servers\\":[{\\"address\\":\\"a.com\\",\\"port\\":1000},{\\"address\\":\\"ba.com\\",\\"port\\":1000},{\\"address\\":\\"c.com\\",\\"port\\":1000}],\\"saslUserName\\":\\"user123\\",\\"saslPassword\\":\\"user****\\"}"'."\n" + .'}'."\n" + .'```', + ], + 'ModifyLogDeliveryConfig' => [ + 'summary' => 'Modifies a hybrid cloud log delivery configuration.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'DeliveryName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the log delivery configuration that you want to modify.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'test1', + ], + ], + [ + 'name' => 'DeliveryType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the log delivery configuration that you want to modify. Valid values:'."\n" + ."\n" + .'* **syslog**: Logs are delivered to a syslog service.'."\n" + .'* **kafka**: Logs are delivered to a Kafka service.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'kafka', + ], + ], + [ + 'name' => 'DeliveryDetail', + 'in' => 'query', + 'schema' => [ + 'description' => 'The content of the log delivery configuration. Set the value to a JSON string that contains multiple parameters.'."\n" + ."\n" + .'> This parameter is the same as the **DeliveryDetail** parameter of the **CreateLogDeliveryConfig** operation. For more information, see **Parameter description for log delivery configuration** of the [CreateLogDeliveryConfig](~~CreateLogDeliveryConfig~~) operation.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'DeliveryName' => [ + 'description' => 'The name of the log delivery configuration.'."\n", + 'type' => 'string', + 'example' => 'test1', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19****5EB0', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DeliveryName\\": \\"test1\\",\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19****5EB0\\"\\n}","type":"json"}]', + 'title' => 'ModifyLogDeliveryConfig', + ], + 'DeleteLogDeliveryConfig' => [ + 'summary' => 'Delets a hybrid cloud log delivery configuration.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '205953', + 'abilityTreeNodes' => [ + 'FEATUREwafJYSA2F', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-n6w***x52m', + ], + ], + [ + 'name' => 'DeliveryName', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'test1', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-*****', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-*****\\"\\n}","type":"json"}]', + 'title' => 'DeleteLogDeliveryConfig', + ], + 'DescribeLogDeliveryConfig' => [ + 'summary' => 'Queries a hybrid cloud log delivery configuration.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafJYSA2F', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-*****', + ], + ], + [ + 'name' => 'DeliveryName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the log delivery configuration.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'test1', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '66A98669-CC6E-4F3E-80A6-******', + ], + 'DeliveryConfig' => [ + 'description' => 'The information about the log delivery configuration.'."\n", + 'type' => 'object', + 'properties' => [ + 'DeliveryName' => [ + 'description' => 'The name of the log delivery configuration.'."\n", + 'type' => 'string', + 'example' => 'test1', + ], + 'DeliveryType' => [ + 'description' => 'The type of the log delivery configuration. Valid values:'."\n" + ."\n" + .'* **syslog**: Logs are delivered to a syslog service.'."\n" + .'* **kafka**: Logs are delivered to a Kafka service.'."\n", + 'type' => 'string', + 'example' => 'syslog', + ], + 'DeliveryDetail' => [ + 'description' => 'The content of the log delivery configuration. The value is a JSON string that contains multiple parameters.'."\n" + ."\n" + .'> This parameter is the same as the **DeliveryDetail** parameter of the **CreateLogDeliveryConfig** operation. For more information, see **Parameter description for log delivery configuration** of the [CreateLogDeliveryConfig](~~CreateLogDeliveryConfig~~) operation.'."\n", + 'type' => 'string', + 'example' => '', + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"66A98669-CC6E-4F3E-80A6-******\\",\\n \\"DeliveryConfig\\": {\\n \\"DeliveryName\\": \\"test1\\",\\n \\"DeliveryType\\": \\"syslog\\",\\n \\"DeliveryDetail\\": \\"详见各个外发投递类型的内容详情\\\\n\\"\\n }\\n}","type":"json"}]', + 'title' => 'DescribeLogDeliveryConfig', + ], + 'DescribeLogDeliveryConfigs' => [ + 'summary' => 'Queries all hybrid cloud log delivery configurations.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-zz11sr5****', + ], + ], + [ + 'name' => 'DeliveryNameLike', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the log delivery configuration. Fuzzy queries are supported.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'DeliveryType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the log delivery configuration that you want to query. Valid values:'."\n" + ."\n" + .'* **syslog**: Logs are delivered to a syslog service.'."\n" + .'* **kafka**: Logs are delivered to a Kafka service.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'kafka', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + [ + 'name' => 'MaxResults', + 'in' => 'query', + 'schema' => [ + 'type' => 'integer', + 'format' => 'int32', + 'default' => '20', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '2EFCFE18-78F8-5079-B312-07***48B', + ], + 'DeliveryConfigs' => [ + 'description' => 'The information about the log delivery configuration.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'DeliveryName' => [ + 'description' => 'The name of the log delivery configuration.'."\n", + 'type' => 'string', + 'example' => 'test1', + ], + 'DeliveryDetail' => [ + 'description' => 'The content of the log delivery configuration. The value is a JSON string that contains multiple parameters.'."\n" + ."\n" + .'> This parameter is the same as the **DeliveryDetail** parameter of the **CreateLogDeliveryConfig** operation. For more information, see **Parameter description for log delivery configuration** of the [CreateLogDeliveryConfig](~~CreateLogDeliveryConfig~~) operation.'."\n", + 'type' => 'string', + 'example' => '', + ], + 'DeliveryType' => [ + 'description' => 'The type of the log delivery configuration. Valid values:'."\n" + ."\n" + .'* **syslog**: Logs are delivered to a syslog service.'."\n" + .'* **kafka**: Logs are delivered to a Kafka service.'."\n", + 'type' => 'string', + 'example' => 'kafka', + ], + ], + ], + ], + 'NextToken' => [ + 'type' => 'string', + ], + 'MaxResults' => [ + 'type' => 'integer', + 'format' => 'int32', + ], + 'TotalCount' => [ + 'type' => 'integer', + 'format' => 'int32', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2EFCFE18-78F8-5079-B312-07***48B\\",\\n \\"DeliveryConfigs\\": [\\n {\\n \\"DeliveryName\\": \\"test1\\",\\n \\"DeliveryDetail\\": \\"详见各个外发投递类型的内容详情\\",\\n \\"DeliveryType\\": \\"kafka\\"\\n }\\n ],\\n \\"NextToken\\": \\"AAAAAGBgV9tolsLfijC4wam2htS*****D/46H3X2wIS\\",\\n \\"MaxResults\\": 20,\\n \\"TotalCount\\": 5\\n}","type":"json"}]', + 'title' => 'DescribeLogDeliveryConfigs', + ], + 'ModifyResourceLogFieldConfig' => [ + 'summary' => '修改防护对象的日志字段配置', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '235280', + 'abilityTreeNodes' => [ + 'FEATUREwafJYSA2F', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-uax****3k0e', + ], + ], + [ + 'name' => 'FieldList', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'account,acl_action,acl_rule_id,acl_rule_type,acl_test,antiscan_action,antiscan_rule_id,antiscan_rule_type,antiscan_test,body_bytes_sent,bypass_matched_ids', + ], + ], + [ + 'name' => 'ExtendConfig', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '{\\"request_header\\":\\"Ali-Cdn-Real-Ip\\"}', + ], + ], + [ + 'name' => 'DeliveryType', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'sls', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'cwaf-***-waf', + ], + ], + [ + 'name' => 'LogDeliveryStrategy', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '[{\\"logType\\":\\"blockLog\\",\\"rate\\":100},{\\"logType\\":\\"normalRequestLog\\",\\"rate\\":100},{\\"logType\\":\\"checkLog\\",\\"rate\\":100}]', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B****', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B****\\"\\n}","type":"json"}]', + ], + 'DescribeResourceLogFieldConfig' => [ + 'summary' => '查询防护对象日志字段配置', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '235277', + 'abilityTreeNodes' => [ + 'FEATUREwafJYSA2F', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-zpr3*******', + ], + ], + [ + 'name' => 'DeliveryType', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'sls', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'test.waf.com-waf', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'AddList' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'acl_test,acl_action,acl_rule_id,waf_test,acl_rule_type', + ], + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '7B53B47C-D368-5344-BB5E-79******', + ], + 'LogDeliveryStrategy' => [ + 'description' => '', + 'type' => 'string', + 'example' => '[{\\"logType\\":\\"blockLog\\",\\"rate\\":100},{\\"logType\\":\\"normalRequestLog\\",\\"rate\\":100},{\\"logType\\":\\"checkLog\\",\\"rate\\":100}]', + ], + 'ExtendConfig' => [ + 'description' => '', + 'type' => 'string', + 'example' => '{\\"request_header\\":\\"Ali-Cdn-Real-Ip\\"}', + ], + 'DelList' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'waf_rule_id,waf_rule_type', + ], + 'FieldList' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'account,acl_action,acl_rule_id,acl_rule_type,acl_test,antiscan_action,antiscan_rule_id,antiscan_rule_type,antiscan_test,body_bytes_sent,bypass_matched_ids', + ], + 'DeliveryType' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'sls', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"AddList\\": \\"acl_test,acl_action,acl_rule_id,waf_test,acl_rule_type\\",\\n \\"RequestId\\": \\"7B53B47C-D368-5344-BB5E-79******\\",\\n \\"LogDeliveryStrategy\\": \\"[{\\\\\\\\\\\\\\"logType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"blockLog\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"rate\\\\\\\\\\\\\\":100},{\\\\\\\\\\\\\\"logType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"normalRequestLog\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"rate\\\\\\\\\\\\\\":100},{\\\\\\\\\\\\\\"logType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"checkLog\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"rate\\\\\\\\\\\\\\":100}]\\",\\n \\"ExtendConfig\\": \\"{\\\\\\\\\\\\\\"request_header\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Ali-Cdn-Real-Ip\\\\\\\\\\\\\\"}\\",\\n \\"DelList\\": \\"waf_rule_id,waf_rule_type\\",\\n \\"FieldList\\": \\"account,acl_action,acl_rule_id,acl_rule_type,acl_test,antiscan_action,antiscan_rule_id,antiscan_rule_type,antiscan_test,body_bytes_sent,bypass_matched_ids\\",\\n \\"DeliveryType\\": \\"sls\\"\\n}","type":"json"}]', + ], + 'ModifyResourceLogDeliveryStatus' => [ + 'summary' => '修改防护对象日志外发状态', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '235293', + 'abilityTreeNodes' => [ + 'FEATUREwafJYSA2F', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-uqm35*****', + ], + ], + [ + 'name' => 'DeliveryName', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'export-kafka', + ], + ], + [ + 'name' => 'Resource', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'test.waf.com-waf', + ], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'boolean', + 'required' => true, + 'example' => 'true', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19******', + ], + 'DeliveryName' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'test1', + ], + 'Status' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'true', + ], + 'DeliveryType' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'sls', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19******\\",\\n \\"DeliveryName\\": \\"test1\\",\\n \\"Status\\": true,\\n \\"DeliveryType\\": \\"sls\\"\\n}","type":"json"}]', + ], + 'DescribeResourceLogDeliveryStatus' => [ + 'summary' => '查询防护对象日志外发状态', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '235288', + 'abilityTreeNodes' => [ + 'FEATUREwafJYSA2F', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-g6z3z*****', + ], + ], + [ + 'name' => 'Resources', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'alb-wewbb23dfsetetcic1242-0****,test.waf.com-waf', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19****5EB0', + ], + 'LogConfigs' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Resource' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'test.waf.com-waf', + ], + 'Status' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'true', + ], + 'DeliveryName' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'export-kafka', + ], + 'DeliveryType' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'kafka', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19****5EB0\\",\\n \\"LogConfigs\\": [\\n {\\n \\"Resource\\": \\"test.waf.com-waf\\",\\n \\"Status\\": true,\\n \\"DeliveryName\\": \\"export-kafka\\",\\n \\"DeliveryType\\": \\"kafka\\"\\n }\\n ]\\n}","type":"json"}]', + ], + 'DescribeHybridCloudClusterServers' => [ + 'summary' => '集群机器列表', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-******nd07', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'Ip', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '1.X.X.1', + ], + ], + [ + 'name' => 'HostName', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'online-***wwq', + ], + ], + [ + 'name' => 'GroupType', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'protect', + ], + ], + [ + 'name' => 'GroupName', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '3', + ], + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'C3B0FDD2-11CE-59A5-BEB5-*****1A969', + ], + 'ClusterServers' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'GroupName' => [ + 'description' => '', + 'type' => 'string', + 'example' => '', + ], + 'Operator' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'aliyun。', + ], + 'Status' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'ok', + ], + 'RegionCodeValue' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'RegionCode' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'beijing', + ], + 'Memory' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '33547386880', + ], + 'Ip' => [ + 'description' => '', + 'type' => 'string', + 'example' => '1.*.*1。', + ], + 'Cpu' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '4', + ], + 'Mid' => [ + 'description' => '', + 'type' => 'string', + 'example' => '28ab688cd403563e8e173*****79600', + ], + 'ContinentsValue' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '410', + ], + 'Mac' => [ + 'description' => '', + 'type' => 'string', + 'example' => '**:**:00:02:eb:c7', + ], + 'GroupId' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'JobStatus' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'running', + ], + 'GroupType' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'protect', + ], + 'CustomName' => [ + 'description' => '', + 'type' => 'string', + 'example' => '', + ], + 'UpdateTimestamp' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1711953897000', + ], + 'Continents' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'asiapacific', + ], + 'CreateTimestamp' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1665987186000', + ], + 'HostName' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'qsh5-sec-waf-*****-6', + ], + 'OperatorValue' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 3,\\n \\"RequestId\\": \\"C3B0FDD2-11CE-59A5-BEB5-*****1A969\\",\\n \\"ClusterServers\\": [\\n {\\n \\"GroupName\\": \\"测试组。\\",\\n \\"Operator\\": \\"aliyun。\\",\\n \\"Status\\": \\"ok\\",\\n \\"RegionCodeValue\\": 0,\\n \\"RegionCode\\": \\"beijing\\",\\n \\"Memory\\": 33547386880,\\n \\"Ip\\": \\"1.*.*1。\\",\\n \\"Cpu\\": 4,\\n \\"Mid\\": \\"28ab688cd403563e8e173*****79600\\",\\n \\"ContinentsValue\\": 410,\\n \\"Mac\\": \\"**:**:00:02:eb:c7\\",\\n \\"GroupId\\": 1,\\n \\"JobStatus\\": \\"running\\",\\n \\"GroupType\\": \\"protect\\",\\n \\"CustomName\\": \\"测试组\\",\\n \\"UpdateTimestamp\\": 1711953897000,\\n \\"Continents\\": \\"asiapacific\\",\\n \\"CreateTimestamp\\": 1665987186000,\\n \\"HostName\\": \\"qsh5-sec-waf-*****-6\\",\\n \\"OperatorValue\\": 0\\n }\\n ]\\n}","type":"json"}]', + ], + 'DescribeHybridCloudBasicMonitor' => [ + 'summary' => 'Queries the system status of a node in a hybrid cloud cluster.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstanceInfo](~~140857~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-7mz****hw0u', + ], + ], + [ + 'name' => 'Mid', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the node.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'f451e90fcb068905ab379468****db42', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '0B8AF42B-16A9-5762-AEF3-D148****FE5D', + ], + 'BasicMonitors' => [ + 'description' => 'The basic metrics.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The basic metric.'."\n", + 'type' => 'object', + 'properties' => [ + 'MonitorName' => [ + 'description' => 'The metric. Valid values:'."\n" + ."\n" + .'* **basic_monitor_cpu_usage**: the CPU.'."\n" + .'* **basic_monitor_memory_usage**: the memory.'."\n" + .'* **basic_monitor_disk_usage**: the disk.'."\n", + 'type' => 'string', + 'example' => 'basic_monitor_cpu_usage', + ], + 'UseRatio' => [ + 'description' => 'The resource usage.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '5.905694', + ], + 'Levle' => [ + 'type' => 'string', + ], + ], + ], + ], + 'TotalCount' => [ + 'type' => 'integer', + 'format' => 'int32', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0B8AF42B-16A9-5762-AEF3-D148****FE5D\\",\\n \\"BasicMonitors\\": [\\n {\\n \\"MonitorName\\": \\"basic_monitor_cpu_usage\\",\\n \\"UseRatio\\": 5.905694,\\n \\"Levle\\": \\"normal\\"\\n }\\n ],\\n \\"TotalCount\\": 0\\n}","type":"json"}]', + 'title' => 'DescribeHybridCloudBasicMonitor', + ], + 'CreateHybridCloudCluster' => [ + 'summary' => 'Creates a hybrid cloud cluster.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '124693', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'ClusterName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the cluster.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '', + ], + ], + [ + 'name' => 'HttpPorts', + 'in' => 'query', + 'schema' => [ + 'description' => 'The HTTP ports that are supported. Set this parameter to a string. Specify multiple ports in the **port1,port2,port3** format.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '80,8080', + ], + ], + [ + 'name' => 'HttpsPorts', + 'in' => 'query', + 'schema' => [ + 'description' => 'The HTTPS ports that are supported. Set this parameter to a string. Specify multiple ports in the **port1,port2,port3** format.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '443,8443', + ], + ], + [ + 'name' => 'AccessMode', + 'in' => 'query', + 'schema' => [ + 'description' => 'The network access mode. Valid values:'."\n" + ."\n" + .'* **internet**: Internet access.'."\n" + .'* **vpc**: internal network access by using Express Connect circuits.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'internet', + ], + ], + [ + 'name' => 'AccessRegion', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the virtual private cloud (VPC) resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: China (Hangzhou).'."\n" + .'* **cn-beiijng**: China (Beijing).'."\n" + .'* **cn-shanghai**: China (Shanghai).'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'LogFieldsNotReturned', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + 'deprecated' => true, + ], + ], + [ + 'name' => 'ProtectionServerCount', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of protection nodes that can be added to the cluster.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'Remark', + 'in' => 'query', + 'schema' => [ + 'description' => 'The remarks about the cluster.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '', + ], + ], + [ + 'name' => 'ProxyType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the cluster. Valid value:'."\n" + ."\n" + .'* **cname**: reverse proxy cluster.'."\n" + .'* **service**: SDK-based traffic mirroring cluster.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cname', + 'default' => 'cname', + ], + ], + [ + 'name' => 'RuleStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of manual bypass. Valid values:'."\n" + ."\n" + .'* **on**: enabled.'."\n" + .'* **off**: disabled.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + [ + 'name' => 'RuleType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the rule. Valid value:'."\n" + ."\n" + .'* **bypass**: allows requests without security checks.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'bypass', + ], + ], + [ + 'name' => 'RuleConfig', + 'in' => 'query', + 'schema' => [ + 'description' => 'The configurations of the rule.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{'."\n" + .' "enable": true,'."\n" + .' "param": {'."\n" + .' "breaker": {'."\n" + .' "duration": 1,'."\n" + .' "failed": 1,'."\n" + .' "recent_failed": 1'."\n" + .' },'."\n" + .' "disable_protect": false,'."\n" + .' "max_request_body_len": 1,'."\n" + .' "timeout": 1'."\n" + .' }'."\n" + .'}', + ], + ], + [ + 'name' => 'ProxyStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the proxy gateway. Valid value:'."\n" + ."\n" + .'* **on**: enabled.'."\n" + .'* **off**: disabled.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'off', + 'default' => 'off', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid value:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '66A98669-ER12-WE34-23PO-301469*****E', + ], + 'Data' => [ + 'description' => 'The ID of the cluster.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"66A98669-ER12-WE34-23PO-301469*****E\\",\\n \\"Data\\": 1\\n}","type":"json"}]', + 'title' => 'CreateHybridCloudCluster', + ], + 'DescribeHybridCloudServerRegions' => [ + 'summary' => 'Queries information about the regions that the hybrid cloud mode supports, such as the Internet service providers (ISPs), continents, and cities.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-5yd****7009', + ], + ], + [ + 'name' => 'RegionCode', + 'in' => 'query', + 'schema' => [ + 'description' => 'The code of the region.'."\n" + ."\n" + .'> This parameter is required if you set RegionType to region. The value is the code of the city.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '410', + ], + ], + [ + 'name' => 'RegionType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the region. Valid values:'."\n" + ."\n" + .'* **operator**: the ISP.'."\n" + .'* **continents**: the continent.'."\n" + .'* **region**: the city.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'region', + 'enum' => [ + 'operator', + 'continents', + 'region', + ], + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '0FBBDE11-C35F-531B-96BA-64CA****C875', + ], + 'Regions' => [ + 'description' => 'The information about the regions.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the region.'."\n", + 'type' => 'object', + 'properties' => [ + 'Code' => [ + 'description' => 'The code of the region.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'Name' => [ + 'description' => 'The name of the region.'."\n", + 'type' => 'string', + 'example' => 'aliyun', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0FBBDE11-C35F-531B-96BA-64CA****C875\\",\\n \\"Regions\\": [\\n {\\n \\"Code\\": 1,\\n \\"Name\\": \\"aliyun\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeHybridCloudServerRegions', + ], + 'DescribeHybridCloudUnassignedMachines' => [ + 'summary' => 'Queries servers that are not assigned to a hybrid cloud cluster.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-5yd****7009', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '123', + ], + ], + [ + 'name' => 'Ip', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IP address of the server.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1.X.X.1', + ], + ], + [ + 'name' => 'HostName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The host name.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'online-xagent1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '28', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '3EBCFCE9-4A3C-5E01-915D-691B****510A', + ], + 'UnassignedMachines' => [ + 'description' => 'The servers that are not assigned to the hybrid cloud cluster.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The server that is not assigned to the hybrid cloud cluster.'."\n", + 'type' => 'object', + 'properties' => [ + 'CustomName' => [ + 'description' => 'The name of the node.'."\n", + 'type' => 'string', + 'example' => 'exampleName', + ], + 'Memory' => [ + 'description' => 'The memory size. Unit: KB. A conversion factor of 1,000 is used.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '31580872', + ], + 'Ip' => [ + 'description' => 'The IP address of the server.'."\n", + 'type' => 'string', + 'example' => '1.X.X.1'."\n", + ], + 'Cpu' => [ + 'description' => 'The number of CPU cores.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '16', + ], + 'Mid' => [ + 'description' => 'The ID of the node.'."\n", + 'type' => 'string', + 'example' => '78db009ab6cf055a9085f9f4****ae3a', + ], + 'HostName' => [ + 'description' => 'The host name.'."\n", + 'type' => 'string', + 'example' => 'online-xagent1'."\n", + ], + 'Mac' => [ + 'description' => 'The media access control (MAC) address of the device.'."\n", + 'type' => 'string', + 'example' => '00163e2686ac', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 28,\\n \\"RequestId\\": \\"3EBCFCE9-4A3C-5E01-915D-691B****510A\\",\\n \\"UnassignedMachines\\": [\\n {\\n \\"CustomName\\": \\"exampleName\\",\\n \\"Memory\\": 31580872,\\n \\"Ip\\": \\"1.X.X.1\\\\n\\",\\n \\"Cpu\\": 16,\\n \\"Mid\\": \\"78db009ab6cf055a9085f9f4****ae3a\\",\\n \\"HostName\\": \\"online-xagent1\\\\n\\",\\n \\"Mac\\": \\"00163e2686ac\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeHybridCloudUnassignedMachines', + ], + 'ModifyHybridCloudClusterBypassStatus' => [ + 'summary' => 'Enables or disables manual bypass for a hybrid cloud cluster whose type is set to SDK Integration Mode.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '174009', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'**'."\n" + ."\n" + .'**You can call the **DescribeInstanceInfo[ operation to obtain the ID of the WAF instance.](~~140857~~)'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-cn-0xldbqt****', + ], + ], + [ + 'name' => 'ClusterResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'hdbc_cluster_****', + ], + ], + [ + 'name' => 'RuleStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of manual bypass. Valid values:'."\n" + ."\n" + .'* **on**: enabled.'."\n" + .'* **off**: disabled. This is the default value.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'on', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D5EB0', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\"\\n}","type":"json"}]', + 'title' => 'ModifyHybridCloudClusterBypassStatus', + ], + 'DescribeHybridCloudUser' => [ + 'summary' => 'Queries the HTTP and HTTPS ports that you can use when you add a domain name to Web Application Firewall (WAF) in hybrid cloud mode.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-***********', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '9178CB86-285F-5679-A30A-3B3F007E4206', + ], + 'UserInfo' => [ + 'description' => 'The information about the ports that can be used by a hybrid cloud cluster.'."\n", + 'type' => 'object', + 'properties' => [ + 'HttpsPorts' => [ + 'description' => 'The HTTPS ports. The value is a string. If multiple ports are returned, the value is in the **port1,port2,port3** format.'."\n", + 'type' => 'string', + 'example' => '8443,443', + ], + 'HttpPorts' => [ + 'description' => 'The HTTP ports. The value is a string. If multiple ports are returned, the value is in the **port1,port2,port3** format.'."\n", + 'type' => 'string', + 'example' => '80,8080', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"9178CB86-285F-5679-A30A-3B3F007E4206\\",\\n \\"UserInfo\\": {\\n \\"HttpsPorts\\": \\"8443,443\\",\\n \\"HttpPorts\\": \\"80,8080\\"\\n }\\n}","type":"json"}]', + 'title' => 'DescribeHybridCloudUser', + ], + 'DescribeHybridCloudGroups' => [ + 'summary' => 'Queries the hybrid cloud node groups that are added to Web Application Firewall (WAF).', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '136062', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to obtain the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-********w0b', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '428', + ], + ], + [ + 'name' => 'GroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the node group that you want to query.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => 'groupName1', + ], + ], + [ + 'name' => 'GroupType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the node group. Valid values:'."\n" + ."\n" + .'* **protect**'."\n" + .'* **control**'."\n" + .'* **storage**'."\n" + .'* **controlStorage**'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'protect', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => 'The page number. Default value: **1**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of entries per page. Default value: **10**.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'ClusterProxyType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of proxy cluster that is used. Valid values:'."\n" + ."\n" + .'* **service**: service-based traffic mirroring.'."\n" + .'* **cname**: reverse proxy.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cname', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou:** the Chinese mainland.'."\n" + .'* **ap-southeast-1:** outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => 'The total number of entries returned.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '146', + ], + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '045660E7-C4C6-5CD7-8182-7B337D95****', + ], + 'Groups' => [ + 'description' => 'The node groups.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The information about the node group.'."\n", + 'type' => 'object', + 'properties' => [ + 'GroupName' => [ + 'description' => 'The name of the node group.'."\n", + 'type' => 'string', + 'example' => 'StorageGroup', + ], + 'RegionCodeValue' => [ + 'description' => 'The city code of the protected cluster.'."\n" + ."\n" + .'> For more information about city codes, see City codes in this topic.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'LoadBalanceIp' => [ + 'description' => 'The IP address of the server used for load balancing.'."\n", + 'type' => 'string', + 'example' => '1.1.XX.XX', + ], + 'BackSourceMark' => [ + 'description' => 'The back-to-origin mark of the protected cluster. The value is in the {ISP name}-{Continent name}-{City name}-{Back-to-origin identifier} format. The back-to-origin identifier is optional.'."\n" + ."\n" + .'> For more information about ISP names, continent names, city names, and back-to-origin identifiers, see the following sections.'."\n", + 'type' => 'string', + 'example' => 'aliyun-asiapacific-beijing-12345678', + ], + 'GroupType' => [ + 'description' => 'The type of the node group. Valid values:'."\n" + ."\n" + .'* **protect**'."\n" + .'* **control**'."\n" + .'* **storage**'."\n" + .'* **controlStorage**'."\n", + 'type' => 'string', + 'example' => 'protect', + ], + 'LocationId' => [ + 'description' => 'The ID of the protection node.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1312', + ], + 'Ports' => [ + 'description' => 'The port that is used by the hybrid cloud cluster. The value of this parameter is a string. If multiple ports are returned, the value is in the **port1,port2,port3** format.'."\n", + 'type' => 'string', + 'example' => '80,9200,20018', + ], + 'ContinentsValue' => [ + 'description' => 'The continent code of the protected cluster.'."\n" + ."\n" + .'> For more information about continent codes, see Continent codes in this topic.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '410', + ], + 'GroupId' => [ + 'description' => 'The ID of the node group.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '123', + ], + 'Remark' => [ + 'description' => 'The description of the node group.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'OperatorValue' => [ + 'description' => 'The ISP code of the protected cluster.'."\n" + ."\n" + .'> For more information about ISP codes, see ISP codes in this topic.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 146,\\n \\"RequestId\\": \\"045660E7-C4C6-5CD7-8182-7B337D95ADF4\\",\\n \\"Groups\\": [\\n {\\n \\"GroupName\\": \\"StorageGroup\\",\\n \\"RegionCodeValue\\": 0,\\n \\"LoadBalanceIp\\": \\"1.1.XX.XX\\",\\n \\"BackSourceMark\\": \\"aliyun-asiapacific-beijing-56477821\\",\\n \\"GroupType\\": \\"protect\\",\\n \\"LocationId\\": 1312,\\n \\"Ports\\": \\"80,9200,20018\\",\\n \\"ContinentsValue\\": 410,\\n \\"GroupId\\": 123,\\n \\"Remark\\": \\"备注\\",\\n \\"OperatorValue\\": 0\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeHybridCloudGroups', + 'responseParamsDescription' => '### ISP codes'."\n" + ."\n" + .'|ISP code|ISP tag|ISP description|'."\n" + .'|---|---|---|'."\n" + .'|0|aliyun|Alibaba Cloud|'."\n" + .'|3|tencent|Tencent Cloud|'."\n" + .'|100|google|Google Cloud|'."\n" + .'|200|IDC|IDC|'."\n" + ."\n" + .'### Continent codes'."\n" + ."\n" + .'|Continent code|Continent tag|Continent description|'."\n" + .'|---|---|---|'."\n" + .'|410|asiapacific|asiapacific|'."\n" + .'|411|euro|euro|'."\n" + ."\n" + .'### City codes'."\n" + ."\n" + .'|Continent code|City code|City tag|City description|'."\n" + .'|---|---|---|---|'."\n" + .'|411|0|frankfurt|Frankfurt|'."\n" + .'|411|1|siliconvallery|Silicon Valley|'."\n" + .'|411|2|Virginia|Virginia|'."\n" + .'|410|0|beijing|Beijing|'."\n" + .'|410|1|shanghai|Shanghai|'."\n" + .'|410|2|hongkong|Hong Kong, China|'."\n" + .'|410|3|jakarta|Jakarta|'."\n" + .'|410|4|hangzhou|Hangzhou|'."\n" + .'|410|5|zhangjiakou|Zhangjiakou|'."\n" + .'|410|6|shenzhen|Shenzhen|'."\n" + .'|410|7|singapore|Singapore|'."\n" + .'|410|8|Tokyo|Tokyo|'."\n" + .'|410|9|changsha|Changsha|'."\n" + .'|410|10|public\\_cloud|Public cloud|'."\n" + .'|410|11|nanjing|Nanjing|', + ], + 'CreateHybridCloudGroup' => [ + 'summary' => 'Creates a node group for a hybrid cloud cluster.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '136094', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-n6w***x52m', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'GroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the node group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demoGroupName', + ], + ], + [ + 'name' => 'GroupType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the node group. Valid values:'."\n" + ."\n" + .'* **protect**'."\n" + .'* **control**'."\n" + .'* **storage**'."\n" + .'* **controlStorage**'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'protect', + ], + ], + [ + 'name' => 'LoadBalanceIp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The IP address of the server used for load balancing.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '3.3.3.3', + ], + ], + [ + 'name' => 'Remark', + 'in' => 'query', + 'schema' => [ + 'description' => 'The remarks.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'demoRamark', + ], + ], + [ + 'name' => 'LocationCode', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the node resides. Specify the parameter in the Carrier code-Continent code-City code format.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0-410-0', + ], + ], + [ + 'name' => 'BackSourceMark', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the node resides. Specify the parameter in the Carrier code-Continent code-City code format.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'aliyun-asiapacific-beijing', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '48F7C7BA-0932-50EA-89AD-5B0E1***274', + ], + 'Data' => [ + 'description' => 'The ID of the node group.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"48F7C7BA-0932-50EA-89AD-5B0E1***274\\",\\n \\"Data\\": 1\\n}","type":"json"}]', + 'title' => 'CreateHybridCloudGroup', + ], + 'DescribeHybridCloudClusterRule' => [ + 'summary' => 'Obtains the rule information about a hybrid cloud cluster.', + 'methods' => [ + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafSBJ1DO', + ], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-uqm33n***02', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'RuleType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the rule. Valid values:'."\n" + ."\n" + .'* **pullin**: The traffic redirection rule of the hybrid cloud cluster.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'pullin', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid value:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'ClusterRuleResourceId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '1F29A6D2-9EB6-526D-A997-36888**99CB', + ], + 'ClusterRule' => [ + 'description' => 'The details of the rule.'."\n", + 'type' => 'object', + 'properties' => [ + 'RuleType' => [ + 'description' => 'The type of the rule. Valid values:'."\n" + ."\n" + .'* **pullin**: The traffic redirection rule of the hybrid cloud cluster.'."\n", + 'type' => 'string', + 'example' => 'pullin', + ], + 'RuleConfig' => [ + 'description' => 'The configuration of the rule.'."\n", + 'type' => 'string', + 'example' => '{\\"check_mode\\":\\"all\\",\\"exclude\\":{\\"exact\\":[],\\"regex\\":[]}}', + ], + 'RuleStatus' => [ + 'description' => 'The status of the rule. Valid values:'."\n" + ."\n" + .'* **on**: enabled.'."\n" + .'* **off**: disabled.'."\n", + 'type' => 'string', + 'example' => 'on', + ], + 'ClusterRuleResourceId' => [ + 'type' => 'string', + ], + ], + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"1F29A6D2-9EB6-526D-A997-36888**99CB\\",\\n \\"ClusterRule\\": {\\n \\"RuleType\\": \\"pullin\\",\\n \\"RuleConfig\\": \\"{\\\\\\\\\\\\\\"check_mode\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"all\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"exclude\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"exact\\\\\\\\\\\\\\":[],\\\\\\\\\\\\\\"regex\\\\\\\\\\\\\\":[]}}\\",\\n \\"RuleStatus\\": \\"on\\",\\n \\"ClusterRuleResourceId\\": \\"hdbc-clusterrule-2m*****m0w\\"\\n }\\n}","type":"json"}]', + 'title' => 'DescribeHybridCloudClusterRule', + ], + 'DescribeHybridCloudClusters' => [ + 'summary' => 'Queries a list of hybrid cloud clusters.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '227268', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstanceInfo](~~140857~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-uqm35****02', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region where the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '66A98669-ER12-WE34-23PO-301469*****E', + ], + 'ClusterInfos' => [ + 'description' => 'The information about the clusters.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'HttpsPorts' => [ + 'description' => 'The HTTPS ports. The value is a string. If multiple ports are returned, the value is in the **port1,port2,port3** format.'."\n", + 'type' => 'string', + 'example' => '443,8443', + ], + 'ProtectionServerCount' => [ + 'description' => 'The number of protection nodes that can be added to the cluster.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'ProxyStatus' => [ + 'description' => 'The status of the proxy gateway. Valid values:'."\n" + ."\n" + .'* **on**: enabled.'."\n" + .'* **off**: disabled.'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'RuleType' => [ + 'description' => 'The type of the rule. Valid value:'."\n" + ."\n" + .'* **bypass**: Requests are allowed without security checks.'."\n", + 'type' => 'string', + 'example' => 'bypass', + ], + 'AccessRegion' => [ + 'description' => 'The region where the virtual private cloud (VPC) resides. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: China (Hangzhou).'."\n" + .'* **cn-beiijng**: China (Beijing).'."\n" + .'* **cn-shanghai**: China (Shanghai).'."\n", + 'type' => 'string', + 'example' => 'cn-hangzhou', + ], + 'Remark' => [ + 'description' => 'The remarks about the cluster.'."\n", + 'type' => 'string', + 'example' => 'demo', + ], + 'ClusterResourceId' => [ + 'description' => 'The ID of the hybrid cloud cluster resource.'."\n", + 'type' => 'string', + 'example' => 'hdbc-cluster-t1****a', + ], + 'ClusterName' => [ + 'description' => 'The name of the cluster.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'RuleStatus' => [ + 'description' => 'The status of manual bypass. Valid values:'."\n" + ."\n" + .'* **on**: enabled.'."\n" + .'* **off**: disabled.'."\n", + 'type' => 'string', + 'example' => 'off', + ], + 'Id' => [ + 'description' => 'The ID of the cluster.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '524**8', + ], + 'AccessMode' => [ + 'description' => 'The network access mode. Valid values:'."\n" + ."\n" + .'* **internet**: Internet access.'."\n" + .'* **vpc**: internal network access by using Express Connect circuits.'."\n", + 'type' => 'string', + 'example' => 'internet', + ], + 'ProxyType' => [ + 'description' => 'The type of the cluster. Valid values:'."\n" + ."\n" + .'* **cname**: reverse proxy cluster.'."\n" + .'* **service**: SDK-based traffic mirroring cluster.'."\n", + 'type' => 'string', + 'example' => 'cname', + ], + 'RuleConfig' => [ + 'description' => 'The configurations of the rule.'."\n", + 'type' => 'string', + 'example' => '{"enable":true,"param":{"breaker":{"duration":1,"failed":1,"recent_failed":1},"disable_protect":false,"max_request_body_len":1,"timeout":1}}', + ], + 'HttpPorts' => [ + 'description' => 'The HTTP ports. The value is a string. If multiple ports are returned, the value is in the **port1,port2,port3** format.'."\n", + 'type' => 'string', + 'example' => '80,8080', + ], + ], + ], + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"66A98669-ER12-WE34-23PO-301469*****E\\",\\n \\"ClusterInfos\\": [\\n {\\n \\"HttpsPorts\\": \\"443,8443\\",\\n \\"ProtectionServerCount\\": 1,\\n \\"ProxyStatus\\": \\"off\\",\\n \\"RuleType\\": \\"bypass\\",\\n \\"AccessRegion\\": \\"cn-hangzhou\\",\\n \\"Remark\\": \\"测试集群备注\\",\\n \\"ClusterResourceId\\": \\"hdbc-cluster-t1****a\\",\\n \\"ClusterName\\": \\"混合云**集群\\",\\n \\"RuleStatus\\": \\"off\\",\\n \\"Id\\": 0,\\n \\"AccessMode\\": \\"internet\\",\\n \\"ProxyType\\": \\"cname\\",\\n \\"RuleConfig\\": \\"{\\\\\\"enable\\\\\\":true,\\\\\\"param\\\\\\":{\\\\\\"breaker\\\\\\":{\\\\\\"duration\\\\\\":1,\\\\\\"failed\\\\\\":1,\\\\\\"recent_failed\\\\\\":1},\\\\\\"disable_protect\\\\\\":false,\\\\\\"max_request_body_len\\\\\\":1,\\\\\\"timeout\\\\\\":1}}\\",\\n \\"HttpPorts\\": \\"80,8080\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeHybridCloudClusters', + ], + 'ModifyHybridCloudClusterRule' => [ + 'summary' => 'Modifies the rule of a hybrid cloud cluster.', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '137983', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the DescribeInstanceInfo operation to query the ID of the WAF instance.[](~~140857~~)'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-n6w***x52m', + ], + ], + [ + 'name' => 'ClusterRuleResourceId', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + ], + ], + [ + 'name' => 'RuleConfig', + 'in' => 'query', + 'schema' => [ + 'description' => 'The configuration of the rule.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '{\\"check_mode\\":\\"part\\",\\"include\\":{\\"exact\\":[],\\"regex\\":[]}}', + 'default' => '""', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region of the WAF instance. Valid value:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: Outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1018', + ], + ], + [ + 'name' => 'RuleType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The type of the rule. Valid values:'."\n" + ."\n" + .'* **pullin**: The traffic redirection rule.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'pullin', + ], + ], + [ + 'name' => 'RuleStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the rule. Valid values:'."\n" + ."\n" + .'* **on**: enables the rule.'."\n" + .'* **off**: disables the rule.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'on', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '03D73D88-57D8-5BA2-96A4-6357CE***19', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"03D73D88-57D8-5BA2-96A4-6357CE***19\\"\\n}","type":"json"}]', + 'title' => 'ModifyHybridCloudClusterRule', + ], + 'ModifyHybridCloudGroup' => [ + 'summary' => 'Modifies a node group in a hybrid cloud cluster.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '136071', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-tl32ast****', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the cluster.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the node group.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'GroupName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the node group.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo', + ], + ], + [ + 'name' => 'Remark', + 'in' => 'query', + 'schema' => [ + 'description' => 'The remarks.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'test', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid value:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The returned data.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D***0', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D***0\\"\\n}","type":"json"}]', + 'title' => 'ModifyHybridCloudGroup', + ], + 'ModifyHybridCloudGroupExpansionServer' => [ + 'summary' => 'Adds a node to a node group of a hybrid cloud cluster.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '136075', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-tl32ast****', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the node group.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'Mids', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the node.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '612929b133e7ff**0d0', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '7BD7F9A1-0E72-5BC1-8248-C629B4***B6', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7BD7F9A1-0E72-5BC1-8248-C629B4***B6\\"\\n}","type":"json"}]', + 'title' => 'ModifyHybridCloudGroupExpansionServer', + ], + 'ModifyHybridCloudGroupShrinkServer' => [ + 'summary' => 'Deletes a node from a node group of a hybrid cloud cluster.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '156785', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-cn-0xldb****05', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the hybrid cloud cluster.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the node group.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'Mids', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the node.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'b1bf3f544f30c1de0b72d91290***bbbb', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: Outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm2th****v6ay', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19****5EB0', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19****5EB0\\"\\n}","type":"json"}]', + 'title' => 'ModifyHybridCloudGroupShrinkServer', + ], + 'ModifyHybridCloudSdkPullinStatus' => [ + 'summary' => 'Modifies the traffic redirection status of a hybrid cloud cluster by using an SDK.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafSBJ1DO', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstanceInfo](~~140857~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-7pp2le***01', + ], + ], + [ + 'name' => 'PullinStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of traffic redirection. Valid values:'."\n" + ."\n" + .'* **on**'."\n" + .'* **off**'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'on', + ], + ], + [ + 'name' => 'Mid', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the SDK.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'b3dbc5153317c79d8ca9f9***ea', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B191**EB0', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B191**EB0\\"\\n}","type":"json"}]', + 'title' => 'ModifyHybridCloudSdkPullinStatus', + ], + 'ModifyHybridCloudServer' => [ + 'summary' => 'Modifies the information about a hybrid cloud node.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '136073', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstanceInfo](~~140857~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'Mid', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the node.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'b1bf3f544f30c1de0b72d91290**ccb', + ], + ], + [ + 'name' => 'CustomName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the node.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo', + ], + ], + [ + 'name' => 'Operator', + 'in' => 'query', + 'schema' => [ + 'description' => 'The cloud service provider.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'aliyun', + ], + ], + [ + 'name' => 'Continents', + 'in' => 'query', + 'schema' => [ + 'description' => 'The continent.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'asiapacific', + ], + ], + [ + 'name' => 'RegionCode', + 'in' => 'query', + 'schema' => [ + 'description' => 'The city.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'beijing', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: Outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '26DCD663-5EB8-5103-B270-E24A32***5F0', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"26DCD663-5EB8-5103-B270-E24A32***5F0\\"\\n}","type":"json"}]', + 'title' => 'ModifyHybridCloudServer', + ], + 'DeleteHybridCloudClusterRule' => [ + 'summary' => '删除集群规则信息', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '136069', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-cn-0xldbqt****', + ], + ], + [ + 'name' => 'ClusterRuleResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'hdbc-clusterrule-*******m0w', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19****5EB0', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19****5EB0\\"\\n}","type":"json"}]', + ], + 'CreateHybridCloudClusterRule' => [ + 'summary' => '新增集群规则信息', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '137983', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-cn-0xldbqt****', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '428', + ], + ], + [ + 'name' => 'RuleType', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'pullin', + ], + ], + [ + 'name' => 'RuleStatus', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'on', + ], + ], + [ + 'name' => 'RuleConfig', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '{\\"check_mode\\": \\"all\\", \\"type\\": \\"exact\\", \\"substance\\": \\"122\\"}', + 'default' => '""', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => '', + 'type' => 'string', + 'example' => '66A98669-CC6E-4F3E-*****-3014697B11AE', + ], + 'ClusterRuleResourceId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'hdbc-clusterrule-*******m0w', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"66A98669-CC6E-4F3E-*****-3014697B11AE\\",\\n \\"ClusterRuleResourceId\\": \\"hdbc-clusterrule-*******m0w\\"\\n}","type":"json"}]', + ], + 'DescribeHybridCloudClusterRules' => [ + 'summary' => '集群规则列表', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'title' => 'WAF实例的ID。'."\n" + ."\n" + .'> 您可以调用[DescribeInstance](~~433756~~)获取当前WAF实例的ID。', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-****', + ], + ], + [ + 'name' => 'RuleType', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'title' => '规则类型。取值范围如下:'."\n" + .'- **pullin**:集群引流', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'pullin', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'title' => '混合云集群 ID。'."\n" + .'> 只针对混合云场景,您可以调用[DescribeHybridCloudClusters](~~2849376~~)获取混合云集群信息。', + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '428', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'title' => '分页查询时,每页包含多少条结果。默认值为**10**,表示每页包含10条结果。', + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'title' => '分页查询时,返回第几页数据。默认值为**1**,表示返回第1页数据。', + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => 'WAF实例所属地域。取值:'."\n" + ."\n" + .'- **cn-hangzhou**:表示中国内地。'."\n" + ."\n" + .'- **ap-southeast-1**:表示非中国内地。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'title' => '阿里云资源组ID。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'RuleContent', + 'in' => 'query', + 'schema' => [ + 'title' => '场景联动规则内容。格式详情请参见[场景联动规则编写说明](~~171059~~)。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '1.1.1.1', + ], + ], + [ + 'name' => 'RuleMatchType', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'exact', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'title' => '查询到的云产品接入总数量。', + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '10', + ], + 'RequestId' => [ + 'title' => '本次请求的ID。', + 'description' => '', + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D5EB0', + ], + 'Data' => [ + 'title' => '集群ID。', + 'description' => '', + 'type' => 'array', + 'items' => [ + 'title' => '合规检测结果。', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ClusterId' => [ + 'title' => '混合云集群 ID', + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1099', + ], + 'ClusterRuleResourceId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'hdbc-clusterrule-*****khzre0ym0w', + ], + 'RuleConfig' => [ + 'title' => '规则配置信息。', + 'description' => '', + 'type' => 'string', + 'example' => '{\\"check_mode\\": \\"all\\", \\"type\\": \\"exact\\", \\"substance\\": \\"122\\"}', + ], + 'RuleType' => [ + 'title' => '防护对象命中的规则类型。默认不设置该参数,表示显示全部规则。'."\n" + ."\n" + .'- **blacklist**: 表示命中IP黑名单。'."\n" + ."\n" + .'- **custom**:表示命中自定义规则。'."\n" + ."\n" + .'- **antiscan**: 表示命中扫描防护规则。'."\n" + ."\n" + .'- **cc_system**: 表示命中CC防护规则。'."\n" + ."\n" + .'- **region_block**: 表示区域封禁。'."\n", + 'description' => '', + 'type' => 'string', + 'example' => 'pullin', + ], + 'Status' => [ + 'title' => '规则的状态。取值:'."\n" + ."\n" + .'- **1**:表示开启。'."\n" + ."\n" + .'- **0**:表示关闭。', + 'description' => '', + 'type' => 'string', + 'example' => '1', + ], + 'Version' => [ + 'title' => '并发锁版本号。', + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 10,\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\",\\n \\"Data\\": [\\n {\\n \\"ClusterId\\": 1099,\\n \\"ClusterRuleResourceId\\": \\"hdbc-clusterrule-*****khzre0ym0w\\",\\n \\"RuleConfig\\": \\"{\\\\\\\\\\\\\\"check_mode\\\\\\\\\\\\\\": \\\\\\\\\\\\\\"all\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"type\\\\\\\\\\\\\\": \\\\\\\\\\\\\\"exact\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"substance\\\\\\\\\\\\\\": \\\\\\\\\\\\\\"122\\\\\\\\\\\\\\"}\\",\\n \\"RuleType\\": \\"pullin\\",\\n \\"Status\\": \\"1\\",\\n \\"Version\\": 1\\n }\\n ]\\n}","type":"json"}]', + ], + 'DescribeHybridCloudProcessMonitor' => [ + 'summary' => 'Queries the status of applications running on a hybrid cloud cluster node.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance that you want to query.'."\n" + ."\n" + .'> You can call the [DescribeInstanceInfo](~~140857~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-7mz****hw0u', + ], + ], + [ + 'name' => 'Mid', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the SDK.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '2fdb63fea03b173bc9e65c24****d7d5', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'DBF79169-B6A0-5C8E-86B2-CFE3****496E', + ], + 'ProcessMonitors' => [ + 'description' => 'The status of the applications.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The status of the application. Valid values:'."\n", + 'type' => 'object', + 'properties' => [ + 'ProcessName' => [ + 'description' => 'The service that the application provides. Valid values:'."\n" + ."\n" + .'* **tianqingproxy**: centralized management service.'."\n" + .'* **redis**: storage service.'."\n" + .'* **scc**: traffic calculation service.'."\n" + .'* **keeper**: threat intelligence service.'."\n" + .'* **node_exporter**: application log upload service.'."\n" + .'* **xagent**: traffic detection service.'."\n" + .'* **noproxy**: traffic forwarding service.'."\n" + .'* **xloge**: attack log upload service.'."\n" + .'* **ilogtail**: log collection service.'."\n" + .'* **xlogd**: log analysis service.'."\n", + 'type' => 'string', + 'example' => 'tianqingproxy', + ], + 'ProcessStatus' => [ + 'description' => 'The status of the application. Valid values:'."\n" + ."\n" + .'* **0**: abnormal.'."\n" + .'* **1**: normal.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'Levle' => [ + 'type' => 'string', + ], + ], + ], + ], + 'TotalCount' => [ + 'type' => 'integer', + 'format' => 'int32', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"DBF79169-B6A0-5C8E-86B2-CFE3****496E\\",\\n \\"ProcessMonitors\\": [\\n {\\n \\"ProcessName\\": \\"示例应用名称\\",\\n \\"ProcessStatus\\": 1,\\n \\"Levle\\": \\"normal\\"\\n }\\n ],\\n \\"TotalCount\\": 0\\n}","type":"json"}]', + 'title' => 'DescribeHybridCloudProcessMonitor', + ], + 'DescribeHybridCloudResourceDetail' => [ + 'summary' => '查询混合云域名详情', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-0xldbqt****', + ], + ], + [ + 'name' => 'Domain', + 'in' => 'query', + 'schema' => [ + 'title' => '域名', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'www.*****.com', + ], + ], + [ + 'name' => 'Backend', + 'in' => 'query', + 'schema' => [ + 'title' => '回源地址', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => '1.1.XX.XX', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '1', + 'default' => '1', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'maximum' => '50', + 'example' => '10', + 'default' => '10', + ], + ], + [ + 'name' => 'CnameEnabled', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'boolean', + 'required' => false, + 'example' => 'true', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '66A98669-CC6E-4F3E-80A6-3014697B11AE', + ], + 'Domain' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'title' => '域名状态', + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'ResourceManagerResourceGroupId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'rg-***aby', + ], + 'Uid' => [ + 'description' => '', + 'type' => 'string', + 'example' => '1046011128270720', + ], + 'Listen' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'HttpsPorts' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '443,8443,7443,6443', + ], + ], + 'ProtectionResource' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'share', + ], + 'CustomCiphers' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384', + ], + ], + 'TLSVersion' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'tlsv1', + ], + 'Http2Enabled' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'true', + ], + 'CertId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '19312542-cn-hangzhou', + ], + 'CipherSuite' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '0', + ], + 'EnableTLSv3' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'true', + ], + 'IPv6Enabled' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'true', + ], + 'FocusHttps' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'true', + ], + 'XffHeaders' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'string', + 'example' => '["test"]', + ], + ], + 'XffHeaderMode' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'ExclusiveIp' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'true', + ], + 'HttpPorts' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '80,8080,9080,9081,9082,8182', + ], + ], + ], + ], + 'Id' => [ + 'description' => 'id', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '31323', + ], + 'Redirect' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ConnectTimeout' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'Keepalive' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'true', + ], + 'SniEnabled' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'true', + ], + 'CnameEnabled' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'true', + ], + 'KeepaliveTimeout' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'ReadTimeout' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'Backends' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'string', + 'example' => '1.1.1.1', + ], + ], + 'SniHost' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'eew111', + ], + 'FocusHttpBackend' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'true', + ], + 'WriteTimeout' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1', + ], + 'RoutingRules' => [ + 'description' => '', + 'type' => 'string', + 'example' => '[{\\"backupRs\\":[],\\"location\\":\\"v3-test\\",\\"locationId\\":1148,\\"rs\\":[\\"39.98.217.197\\",\\"2.2.2.2\\"]}]', + ], + 'Retry' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'true', + ], + 'RequestHeaders' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Value' => [ + 'description' => '', + 'type' => 'string', + 'example' => '9506360478730', + ], + 'Key' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'L2x1ZmZ5L2NvcmUvYXBwcy9tLnl1bmR1bi53YWYuMS9wbHVnaW5z', + ], + ], + ], + ], + 'KeepaliveRequests' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1000', + ], + 'Loadbalance' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'iphash', + ], + ], + ], + 'Domain' => [ + 'title' => '域名', + 'description' => '', + 'type' => 'string', + 'example' => 'www.*****.com', + ], + 'Cname' => [ + 'title' => 'CNAME', + 'description' => 'CNAME', + 'type' => 'string', + 'example' => 'kdmqyi3ck7xogegxpiyfpb0fj21mgkxn.****.com', + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"66A98669-CC6E-4F3E-80A6-3014697B11AE\\",\\n \\"Domain\\": {\\n \\"Status\\": 1,\\n \\"ResourceManagerResourceGroupId\\": \\"rg-***aby\\",\\n \\"Uid\\": \\"1046011128270720\\",\\n \\"Listen\\": {\\n \\"HttpsPorts\\": [\\n 0\\n ],\\n \\"ProtectionResource\\": \\"share\\",\\n \\"CustomCiphers\\": [\\n \\"ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384\\"\\n ],\\n \\"TLSVersion\\": \\"tlsv1\\",\\n \\"Http2Enabled\\": true,\\n \\"CertId\\": \\"19312542-cn-hangzhou\\",\\n \\"CipherSuite\\": 0,\\n \\"EnableTLSv3\\": true,\\n \\"IPv6Enabled\\": true,\\n \\"FocusHttps\\": true,\\n \\"XffHeaders\\": [\\n \\"[\\\\\\"test\\\\\\"]\\"\\n ],\\n \\"XffHeaderMode\\": 1,\\n \\"ExclusiveIp\\": true,\\n \\"HttpPorts\\": [\\n 0\\n ]\\n },\\n \\"Id\\": 31323,\\n \\"Redirect\\": {\\n \\"ConnectTimeout\\": 1,\\n \\"Keepalive\\": true,\\n \\"SniEnabled\\": true,\\n \\"CnameEnabled\\": true,\\n \\"KeepaliveTimeout\\": 1,\\n \\"ReadTimeout\\": 1,\\n \\"Backends\\": [\\n \\"1.1.1.1\\"\\n ],\\n \\"SniHost\\": \\"eew111\\",\\n \\"FocusHttpBackend\\": true,\\n \\"WriteTimeout\\": 1,\\n \\"RoutingRules\\": \\"[{\\\\\\\\\\\\\\"backupRs\\\\\\\\\\\\\\":[],\\\\\\\\\\\\\\"location\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"v3-test\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"locationId\\\\\\\\\\\\\\":1148,\\\\\\\\\\\\\\"rs\\\\\\\\\\\\\\":[\\\\\\\\\\\\\\"39.98.217.197\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"2.2.2.2\\\\\\\\\\\\\\"]}]\\",\\n \\"Retry\\": true,\\n \\"RequestHeaders\\": [\\n {\\n \\"Value\\": \\"9506360478730\\",\\n \\"Key\\": \\"L2x1ZmZ5L2NvcmUvYXBwcy9tLnl1bmR1bi53YWYuMS9wbHVnaW5z\\"\\n }\\n ],\\n \\"KeepaliveRequests\\": 1000,\\n \\"Loadbalance\\": \\"iphash\\"\\n },\\n \\"Domain\\": \\"www.*****.com\\",\\n \\"Cname\\": \\"kdmqyi3ck7xogegxpiyfpb0fj21mgkxn.****.com\\"\\n }\\n}","type":"json"}]', + ], + 'DescribeHybridCloudSdkServers' => [ + 'summary' => '获取SDK信息', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-i7m2***0b', + ], + ], + [ + 'name' => 'Ip', + 'in' => 'query', + 'allowEmptyValue' => true, + 'schema' => [ + 'type' => 'string', + ], + ], + [ + 'name' => 'HostName', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + [ + 'name' => 'ClusterName', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '10', + ], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'required' => false, + 'example' => '1', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'TotalCount' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '5', + ], + 'SdkServers' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => [ + 'type' => 'string', + ], + 'PullinStatus' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'on', + ], + 'ResourceId' => [ + 'type' => 'string', + ], + 'Ip' => [ + 'description' => '', + 'type' => 'string', + 'example' => '127.0.0.1', + ], + 'CreateTime' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1621428205000', + ], + 'UpdateTime' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1719489906000', + ], + 'ClusterName' => [ + 'description' => '', + 'type' => 'string', + 'example' => '', + ], + 'Mid' => [ + 'description' => 'SDKID。', + 'type' => 'string', + 'example' => 'b11327c21790846374051d5d**83c', + ], + 'ProtectionGroupAddress' => [ + 'type' => 'string', + ], + 'HostName' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'qsh5-sec-8-fedd**005', + ], + ], + ], + ], + 'RequestId' => [ + 'title' => 'Id of the request', + 'description' => '', + 'type' => 'string', + 'example' => '3600F008-2E76-5D0B-BC76-EFBD****6D', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TotalCount\\": 5,\\n \\"SdkServers\\": [\\n {\\n \\"Status\\": \\"1\\",\\n \\"PullinStatus\\": \\"on\\",\\n \\"ResourceId\\": \\"test-antifaud-2.jqt.wafqax.top-waf\\",\\n \\"Ip\\": \\"127.0.0.1\\",\\n \\"CreateTime\\": 1621428205000,\\n \\"UpdateTime\\": 1719489906000,\\n \\"ClusterName\\": \\"集群名称\\",\\n \\"Mid\\": \\"b11327c21790846374051d5d**83c\\",\\n \\"ProtectionGroupAddress\\": \\"1.1.1.1\\",\\n \\"HostName\\": \\"qsh5-sec-8-fedd**005\\"\\n }\\n ],\\n \\"RequestId\\": \\"3600F008-2E76-5D0B-BC76-EFBD****6D\\"\\n}","type":"json"}]', + ], + 'DescribeHybridCloudSupportRegions' => [ + 'summary' => '查询接入区域', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-uqm3e3s6x03', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'SupportRegions' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'string', + 'example' => '[\'cn-hangzhou\', \'cn-shanghai\', \'cn-beijing\']', + ], + ], + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '256959D5-3B45-54CD-A66D-F75F11E8E754', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"SupportRegions\\": [\\n \\"[\'cn-hangzhou\', \'cn-shanghai\', \'cn-beijing\']\\"\\n ],\\n \\"RequestId\\": \\"256959D5-3B45-54CD-A66D-F75F11E8E754\\"\\n}","type":"json"}]', + ], + 'DescribeHybridCloudUnsupportPorts' => [ + 'summary' => 'Queries the ports that are not supported by the hybrid cloud mode.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '178409', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstanceInfo](~~140857~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the Web Application Firewall (WAF) instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'HttpsPorts' => [ + 'description' => 'The HTTPS ports. The value is a string. If multiple ports are returned, the value is in the **port1,port2,port3** format.'."\n", + 'type' => 'string', + 'example' => '443,8443,8021,3443,2443,9011', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => 'C2E97B3F-1623-4CDF-A7E2-FD9D****027A', + ], + 'HttpPorts' => [ + 'description' => 'The HTTP ports. The value is a string. If multiple ports are returned, the value is in the **port1,port2,port3** format.'."\n", + 'type' => 'string', + 'example' => '80,8080', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"HttpsPorts\\": \\"443,8443,8021,3443,2443,9011\\",\\n \\"RequestId\\": \\"C2E97B3F-1623-4CDF-A7E2-FD9D****027A\\",\\n \\"HttpPorts\\": \\"80,8080\\"\\n}","type":"json"}]', + 'title' => 'DescribeHybridCloudUnsupportPorts', + ], + 'DeleteHybridCloudGroup' => [ + 'summary' => '删除组信息', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '136069', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity-cn-*****tm005', + ], + ], + [ + 'name' => 'ClusterId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-*****60D5EB0', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-*****60D5EB0\\"\\n}","type":"json"}]', + ], + 'ModifyHybridCloudCluster' => [ + 'summary' => 'Modifies information about a hybrid cloud cluster.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '124727', + 'abilityTreeNodes' => [ + 'FEATUREwafR5NU4G', + ], + 'autoTest' => true, + ], + 'parameters' => [ + [ + 'name' => 'Id', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the cluster.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-mp9153****', + ], + ], + [ + 'name' => 'ClusterName', + 'in' => 'query', + 'schema' => [ + 'description' => 'The name of the cluster.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '', + ], + ], + [ + 'name' => 'HttpPorts', + 'in' => 'query', + 'schema' => [ + 'description' => 'The HTTP ports that are supported. Set this parameter to a string. Specify multiple ports in the **port1,port2,port3** format.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '80,8080', + ], + ], + [ + 'name' => 'HttpsPorts', + 'in' => 'query', + 'schema' => [ + 'description' => 'The HTTPS ports that are supported. Set this parameter to a string. Specify multiple ports in the **port1,port2,port3** format.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '443,8443', + ], + ], + [ + 'name' => 'AccessMode', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => true, + ], + ], + [ + 'name' => 'AccessRegion', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + ], + ], + [ + 'name' => 'LogFieldsNotReturned', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'required' => false, + ], + ], + [ + 'name' => 'ProtectionServerCount', + 'in' => 'query', + 'schema' => [ + 'description' => 'The number of protection nodes that can be added to the cluster.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '1', + ], + ], + [ + 'name' => 'Remark', + 'in' => 'query', + 'schema' => [ + 'description' => 'The remarks about the cluster.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '', + ], + ], + [ + 'name' => 'ProxyType', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'default' => 'cname', + ], + ], + [ + 'name' => 'RuleStatus', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + [ + 'name' => 'RuleConfig', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + [ + 'name' => 'RuleType', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + ], + ], + [ + 'name' => 'ProxyStatus', + 'in' => 'query', + 'schema' => [ + 'type' => 'string', + 'default' => 'off', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region ID of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '2EFCFE18-78F8-5079-B312-07***48B', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2EFCFE18-78F8-5079-B312-07***48B\\"\\n}","type":"json"}]', + 'title' => 'ModifyHybridCloudCluster', + ], + 'CreateMemberAccounts' => [ + 'summary' => 'Adds members to use the multi-account management feature of Web Application Firewall (WAF).', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '213361', + 'abilityTreeNodes' => [ + 'FEATUREwaf4WHEC3', + ], + ], + 'parameters' => [ + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'SourceIp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The source IP address of the request. The system automatically obtains the value of this parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '1.1.X.X', + ], + ], + [ + 'name' => 'MemberAccountIds', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => 'The Alibaba Cloud account IDs of the members that you want to add. You can add up to 10 members at the same time.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The Alibaba Cloud account ID of the member.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '139**********55', + ], + 'required' => true, + 'maxItems' => 20, + 'minItems' => 1, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => 'The response parameters.'."\n", + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '66A98669-ER12-WE34-23PO-301469*****E', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"66A98669-ER12-WE34-23PO-301469*****E\\"\\n}","type":"json"}]', + 'title' => 'CreateMemberAccounts', + ], + 'ModifyMemberAccount' => [ + 'summary' => 'Modifies the information about members that are added for multi-account management.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '213362', + 'abilityTreeNodes' => [ + 'FEATUREwaf4WHEC3', + ], + ], + 'parameters' => [ + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the Web Application Firewall (WAF) instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_elasticity**-*******021', + ], + ], + [ + 'name' => 'SourceIp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The source IP address of the request. The system automatically obtains the value of this parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0.0.XX.XX', + ], + ], + [ + 'name' => 'MemberAccountId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The Alibaba Cloud account ID of the managed member.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '131**********39', + ], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => [ + 'description' => 'The description of the member. The description must be 1 to 256 characters in length, and can contain letters, digits, periods (.), underscores (\\_), hyphens (-), and asterisks (\\*).'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'account1', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19****5EB0', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\"\\n}","type":"json"}]', + 'title' => 'ModifyMemberAccount', + ], + 'DeleteMemberAccount' => [ + 'summary' => 'Removes the members that are added for multi-account management in Web Application Firewall (WAF).', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '213363', + 'abilityTreeNodes' => [ + 'FEATUREwaf4WHEC3', + ], + ], + 'parameters' => [ + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_esasdf3****', + ], + ], + [ + 'name' => 'SourceIp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The source IP address of the request. The system automatically obtains the value of this parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0.0.XX.XX', + ], + ], + [ + 'name' => 'MemberAccountId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The Alibaba Cloud account ID of the managed member.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => '131***********39', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '5ABE714C-8890-5D7E-A08B-45CB****5473', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"5ABE714C-8890-5D7E-A08B-45CB650F5473\\"\\n}","type":"json"}]', + 'title' => 'DeleteMemberAccount', + ], + 'DescribeAccountDelegatedStatus' => [ + 'summary' => 'Queries whether an Alibaba Cloud account is the delegated administrator account of a Web Application Firewall (WAF) instance.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '213360', + 'abilityTreeNodes' => [ + 'FEATUREwaf4WHEC3', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'AccountId' => [ + 'description' => 'The ID of the Alibaba Cloud account.'."\n", + 'type' => 'string', + 'example' => '10***********34', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '8161375D-5958-5627-BFDE-DF14****3E87', + ], + 'DelegatedStatus' => [ + 'description' => 'Indicates whether the Alibaba Cloud account is the delegated administrator account of the WAF instance.'."\n" + ."\n" + .'* **true**'."\n" + .'* **false**'."\n", + 'type' => 'boolean', + 'example' => 'true', + ], + 'AccountName' => [ + 'description' => 'The name of the Alibaba Cloud account. This parameter is returned only if the account is the delegated administrator account.'."\n", + 'type' => 'string', + 'example' => 'account_test', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"8161375D-5958-5627-BFDE-DF1458A73E87\\",\\n \\"DelegatedStatus\\": true,\\n \\"AccountName\\": \\"account_test\\",\\n \\"AccountId\\": \\"10***********34\\"\\n}","type":"json"}]', + 'title' => 'DescribeAccountDelegatedStatus', + ], + 'DescribeMemberAccounts' => [ + 'summary' => 'Queries information about members.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '213364', + 'abilityTreeNodes' => [ + 'FEATUREwaf4WHEC3', + ], + ], + 'parameters' => [ + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Web Application Firewall (WAF) instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'SourceIp', + 'in' => 'query', + 'schema' => [ + 'description' => 'The source IP address of the request. The system specifies this parameter.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => '0.0.XX.XX', + ], + ], + [ + 'name' => 'AccountStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'The status of the member that you want to query.'."\n" + ."\n" + .'* **enabled**: managed.'."\n" + .'* **disabled**: not managed.'."\n" + .'* **disabling**: being deleted.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'enabled', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => '50C4A80D-D46C-57E0-9A7D-03C0****4852', + ], + 'AccountInfos' => [ + 'description' => 'The information about the member.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AccountId' => [ + 'description' => 'The ID of the member.'."\n", + 'type' => 'string', + 'example' => '169************21', + ], + 'AccountName' => [ + 'description' => 'The name of the member.'."\n", + 'type' => 'string', + 'example' => 'ipflgmqqnbjg', + ], + 'AccountStatus' => [ + 'description' => 'The status of the member.'."\n" + ."\n" + .'* **enabled**: managed.'."\n" + .'* **disabled**: not managed.'."\n" + .'* **disabling**: being deleted.'."\n", + 'type' => 'string', + 'example' => 'enabled', + ], + 'Description' => [ + 'description' => 'The description of the member.'."\n", + 'type' => 'string', + 'example' => 'test', + ], + 'GmtCreate' => [ + 'description' => 'The time when the member was added.'."\n", + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1683367751000', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"50C4A80D-D46C-57E0-9A7D-03C078474852\\",\\n \\"AccountInfos\\": [\\n {\\n \\"AccountId\\": \\"169************21\\",\\n \\"AccountName\\": \\"ipflgmqqnbjg\\",\\n \\"AccountStatus\\": \\"enabled\\",\\n \\"Description\\": \\"test\\",\\n \\"GmtCreate\\": 1683367751000\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'DescribeMemberAccounts', + ], + 'ChangeResourceGroup' => [ + 'summary' => 'Changes the resource group to which a protected object belongs.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '164132', + 'abilityTreeNodes' => [ + 'FEATUREwafNZKQ0J', + ], + ], + 'parameters' => [ + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the protected object that you want to manage.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demo.aliyun.com-waf', + ], + ], + [ + 'name' => 'NewResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the new resource group. You can view the available resource groups in the Resource Management console.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'rg-aek2mcq***', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'description' => 'The resource type. Set the value to defenseresource.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'defenseresource', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + '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' => '0A916D48-D206-5654-8D37-***', + ], + ], + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0A916D48-D206-5654-8D37-***\\"\\n}","type":"json"}]', + 'title' => 'ChangeResourceGroup', + ], + 'ListTagKeys' => [ + 'summary' => 'Queries tag keys.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '164269', + 'abilityTreeNodes' => [ + 'FEATUREwafNZKQ0J', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '地域', + 'description' => 'The region in which the Web Application Firewall (WAF) instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'title' => '下一个查询开始Token', + 'description' => 'The pagination token that is used in the next request to retrieve a new page of results.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'caeba0bbb2be03f84eb48b699f0*****', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'title' => '资源类型', + 'description' => 'The type of the resource. Set the value to ALIYUN::WAF::DEFENSERESOURCE.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'ALIYUN::WAF::DEFENSERESOURCE', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v3prepaid_public_cn-wwo****iw02', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'NextToken' => [ + 'title' => '下一个查询开始Token,NextToken为空说明没有下一个', + 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. If NextToken is empty, no next page exists.'."\n", + 'type' => 'string', + 'example' => 'caeba0bbb2be03f84eb48b699f0*****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '8CB8BB88-24C7-5608-BF5E-4DCA****CF1C', + ], + 'Keys' => [ + 'title' => '资源列表', + 'description' => 'The keys and types of the tags.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'title' => '标签键', + 'description' => 'The key of the tag.'."\n", + 'type' => 'string', + 'example' => 'demoTagKey', + ], + 'Category' => [ + 'description' => 'The type of the tag. Valid values:'."\n" + ."\n" + .'* custom'."\n" + .'* system'."\n", + 'type' => 'string', + 'example' => 'custom', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NextToken\\": \\"caeba0bbb2be03f84eb48b699f0*****\\",\\n \\"RequestId\\": \\"8CB8BB88-24C7-5608-BF5E-4DCA****CF1C\\",\\n \\"Keys\\": [\\n {\\n \\"Key\\": \\"demoTagKey\\",\\n \\"Category\\": \\"custom\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'ListTagKeys', + ], + 'UntagResources' => [ + 'summary' => 'Removes tags from resources and then deletes the tags.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '164020', + 'abilityTreeNodes' => [ + 'FEATUREwafNZKQ0J', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '地域', + 'description' => 'The region in which the Web Application Firewall (WAF) instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'title' => '资源类型', + 'description' => 'The type of the resource. Set the value to ALIYUN::WAF::DEFENSERESOURCE.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'ALIYUN::WAF::DEFENSERESOURCE', + ], + ], + [ + 'name' => 'All', + 'in' => 'query', + 'schema' => [ + 'title' => '是否全部删除,只针对TagKey.N为空时有效。 取值范围: true false True False 默认是 false', + 'description' => 'Specifies whether to remove all tags from the specified resource groups or members. Valid values:'."\n" + ."\n" + .'* false (default)'."\n" + .'* true'."\n", + 'type' => 'boolean', + 'required' => false, + 'example' => 'false', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '资源ID,最多50个子项', + 'description' => 'The resource IDs. You can specify up to 50 resource IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The resource ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'demo.xxxxaliyundoc.com-waf', + ], + 'required' => true, + 'maxItems' => 51, + ], + ], + [ + 'name' => 'TagKey', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '标签键,最多20个子项', + 'description' => 'The tag keys. You can specify up to 20 tag keys.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag key.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'demoTagKey', + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '7A4B8DB1-A8B0-5362-A65D-6A55****07C5', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"7A4B8DB1-A8B0-5362-A65D-6A55****07C5\\"\\n}","type":"json"}]', + 'title' => 'UntagResources', + ], + 'ListTagResources' => [ + 'summary' => 'Queries the tags that are added to a resource.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '164021', + 'abilityTreeNodes' => [ + 'FEATUREwafNZKQ0J', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '地域', + 'description' => 'The region in which the Web Application Firewall (WAF) instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'title' => '下一个查询开始Token', + 'description' => 'The pagination token that is used in the next request to retrieve a new page of results.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'caeba0bbb2be03f84eb48b699f0*****', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'title' => '资源类型', + 'description' => 'The type of the resource. Set the value to ALIYUN::WAF::DEFENSERESOURCE.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'ALIYUN::WAF::DEFENSERESOURCE', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '资源ID,最多 50个子项', + 'description' => 'The resource IDs. You can specify up to 50 resource IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The resource ID.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'demo.xxxaliyundoc.com-waf', + ], + 'required' => false, + 'maxItems' => 51, + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '标签列表,最多包含20个子项', + 'description' => 'The tags that are added to the resource.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'title' => '标签键', + 'description' => 'The key of tag N that is added to the resource. Valid values of N: 1 to 20.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'Tagkey1', + ], + 'Value' => [ + 'title' => '标签值', + 'description' => 'The value of tag N that is added to the resource. Valid values of N: 1 to 20.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'TagValue1', + ], + ], + 'required' => false, + ], + 'required' => false, + 'maxItems' => 21, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'NextToken' => [ + 'title' => '下一个查询开始Token,NextToken为空说明没有下一个', + 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. If NextToken is empty, no next page exists.'."\n", + 'type' => 'string', + 'example' => 'caeba0bbb2be03f84eb48b699f0*****', + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '716E64DA-044F-51C7-B528-2FBF****AE4F', + ], + 'TagResources' => [ + 'title' => '资源列表', + 'description' => 'The list of resources.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ResourceType' => [ + 'title' => '资源类型', + 'description' => 'The type of the resource. ALIYUN::WAF::DEFENSERESOURCE is returned.'."\n", + 'type' => 'string', + 'example' => 'ALIYUN::WAF::DEFENSERESOURCE', + ], + 'TagValue' => [ + 'title' => '标签值', + 'description' => 'The value of tag N that is added to the resource.'."\n", + 'type' => 'string', + 'example' => 'TayValue1', + ], + 'ResourceId' => [ + 'title' => '资源ID', + 'description' => 'The resource ID.'."\n", + 'type' => 'string', + 'example' => 'c754d2a4-28f1-46df-b557-9586173a****', + ], + 'TagKey' => [ + 'title' => '标签键', + 'description' => 'The key of tag N that is added to the resource.'."\n", + 'type' => 'string', + 'example' => 'TagKey1', + ], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NextToken\\": \\"caeba0bbb2be03f84eb48b699f0*****\\",\\n \\"RequestId\\": \\"716E64DA-044F-51C7-B528-2FBF****AE4F\\",\\n \\"TagResources\\": [\\n {\\n \\"ResourceType\\": \\"ALIYUN::WAF::DEFENSERESOURCE\\",\\n \\"TagValue\\": \\"TayValue1\\",\\n \\"ResourceId\\": \\"c754d2a4-28f1-46df-b557-9586173a****\\",\\n \\"TagKey\\": \\"TagKey1\\"\\n }\\n ]\\n}","type":"json"}]', + 'title' => 'ListTagResources', + ], + 'ListTagValues' => [ + 'summary' => 'Queries the tag values of a tag key.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '164272', + 'abilityTreeNodes' => [ + 'FEATUREwafNZKQ0J', + ], + ], + 'parameters' => [ + [ + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => [ + 'title' => '下一个查询开始Token', + 'description' => 'The pagination token that is used in the next request to retrieve a new page of results.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'caeba0bbb2be03f84eb48b699f0*****'."\n", + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'title' => '资源类型', + 'description' => 'The type of the resource. Set the value to ALIYUN::WAF::DEFENSERESOURCE.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'ALIYUN::WAF::DEFENSERESOURCE', + ], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> Obtain the ID of the WAF instance by calling the [DescribeInstance](~~433756~~) operation.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-lbj****x10g', + ], + ], + [ + 'name' => 'Key', + 'in' => 'query', + 'schema' => [ + 'description' => 'The tag key.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'demoKey', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region of the WAF instance. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: Outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + 'title' => '', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aekzwwk****cv5i', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'NextToken' => [ + 'title' => '下一个查询开始Token,NextToken为空说明没有下一个', + 'description' => 'A pagination token. It can be used in the next request to retrieve a new page of results. If NextToken is empty, no next page exists.'."\n", + 'type' => 'string', + 'example' => 'caeba0bbb2be03f84eb48b699f0*****'."\n", + ], + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '705114BB-EAEF-5CC4-8837-F1D4****BB5B', + ], + 'Values' => [ + 'title' => '资源列表', + 'description' => 'The tag values.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The tag value.'."\n", + 'type' => 'string', + 'example' => 'TagValue1', + ], + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NextToken\\": \\"caeba0bbb2be03f84eb48b699f0*****\\\\n\\",\\n \\"RequestId\\": \\"705114BB-EAEF-5CC4-8837-F1D4****BB5B\\",\\n \\"Values\\": [\\n \\"TagValue1\\"\\n ]\\n}","type":"json"}]', + 'title' => 'ListTagValues', + ], + 'TagResources' => [ + 'summary' => 'Adds tags to resources.', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '164018', + 'abilityTreeNodes' => [ + 'FEATUREwafNZKQ0J', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => '地域', + 'description' => 'The region in which the Web Application Firewall (WAF) instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: Chinese mainland.'."\n" + .'* **ap-southeast-1**: Outside the Chinese mainland.', + 'type' => 'string', + 'required' => true, + 'example' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceType', + 'in' => 'query', + 'schema' => [ + 'title' => '资源类型', + 'description' => 'The type of the resource. Set the value to ALIYUN::WAF::DEFENSERESOURCE.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'ALIYUN::WAF::DEFENSERESOURCE', + ], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '资源ID,最多 50个子项', + 'description' => 'The IDs of the resources. You can specify up to 50 resource IDs.'."\n", + 'type' => 'array', + 'items' => [ + 'description' => 'The ID of the resource.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'demo.xxxaliyundoc.com-waf', + ], + 'required' => true, + 'maxItems' => 51, + ], + ], + [ + 'name' => 'Tag', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'title' => '标签列表,最多包含20个子项', + 'description' => 'The tags to add to the resource.'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => [ + 'title' => '标签键', + 'description' => 'The key of tag N to add to the resource. Valid values of N: 1 to 20.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'demoTagKey', + ], + 'Value' => [ + 'title' => '标签值', + 'description' => 'The value of tag N to add to the resource. Valid values of N: 1 to 20.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'demoTagValue', + ], + ], + 'required' => false, + ], + 'required' => true, + 'maxItems' => 21, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The request ID.'."\n", + 'type' => 'string', + 'example' => '57F8460F-8A62-5D79-8ED5-653C****0C6B', + ], + ], + 'description' => '', + ], + ], + ], + 'staticInfo' => [ + 'returnType' => 'synchronous', + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"57F8460F-8A62-5D79-8ED5-653C****0C6B\\"\\n}","type":"json"}]', + 'title' => 'TagResources', + ], + 'DescribeChargeResult' => [ + 'summary' => '查询WAF计价模块的计价结果', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '255326', + 'abilityTreeNodes' => [ + 'FEATUREwafA15E7F', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => 'WAF实例所属地域。取值:'."\n" + ."\n" + .'- **cn-hangzhou**:表示中国内地。'."\n" + ."\n" + .'- **ap-southeast-1**:表示非中国内地。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'title' => '阿里云资源组ID。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'PayType', + 'in' => 'query', + 'schema' => [ + 'title' => '实例的付费类型。取值:'."\n" + .'- **POSTPAY**:表示按量付费 WAF 实例。', + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'POSTPAY', + ], + ], + [ + 'name' => 'ChargeCycle', + 'in' => 'query', + 'schema' => [ + 'title' => '计算的周期,取值:'."\n" + .'- **Year**:表示计算1年的计费结果。'."\n" + .'- **Month**:表示计算1个月的计费结果。'."\n" + .'- **Day**:表示计算1天的计费结果。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'Day', + 'default' => 'Day', + ], + ], + [ + 'name' => 'ChargeModules', + 'in' => 'query', + 'style' => 'flat', + 'schema' => [ + 'title' => '需要计算的计费模块信息。', + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ModuleCode' => [ + 'title' => '计价模块标识。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'domainCount', + ], + 'Usage' => [ + 'title' => '计价模块的用量。', + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'required' => false, + 'example' => '10', + ], + ], + 'required' => false, + ], + 'required' => true, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => '本次请求的ID。', + 'description' => '', + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D5EB0', + ], + 'TotalSeCu' => [ + 'title' => '计算的计价模块中的SeCU总数量。', + 'description' => '', + 'type' => 'number', + 'format' => 'double', + 'example' => '1080', + ], + 'ModuleDetails' => [ + 'title' => '计价模块的计算结果信息。', + 'description' => '', + 'type' => 'array', + 'items' => [ + 'title' => '单个计价模块的计算结果信息。', + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ModuleCode' => [ + 'title' => '计价模块标识。', + 'description' => '', + 'type' => 'string', + 'example' => 'domainCount', + ], + 'SeCu' => [ + 'title' => '计价模块的SeCU数量。', + 'description' => '', + 'type' => 'number', + 'format' => 'double', + 'example' => '1080', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\",\\n \\"TotalSeCu\\": 1080,\\n \\"ModuleDetails\\": [\\n {\\n \\"ModuleCode\\": \\"domainCount\\",\\n \\"SeCu\\": 1080\\n }\\n ]\\n}","type":"json"}]', + ], + 'DescribeChargeModule' => [ + 'summary' => '查询WAF计价模块信息', + 'methods' => [ + 'get', + 'post', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '255326', + 'abilityTreeNodes' => [ + 'FEATUREwafA15E7F', + ], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'title' => 'WAF实例所属地域。取值:'."\n" + ."\n" + .'- **cn-hangzhou**:表示中国内地。'."\n" + ."\n" + .'- **ap-southeast-1**:表示非中国内地。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'title' => '阿里云资源组ID。', + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'PayType', + 'in' => 'query', + 'schema' => [ + 'title' => '实例的付费类型。取值:'."\n" + .'- **POSTPAY**:表示按量付费 WAF 实例。'."\n", + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'POSTPAY', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'title' => '本次请求的ID。', + 'description' => '', + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D5EB0', + ], + 'ChargeModules' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'ModuleCode' => [ + 'title' => '计费模块标识。', + 'description' => '', + 'type' => 'string', + 'example' => 'domainCount', + ], + 'PeriodType' => [ + 'title' => '计费模块的计费类型,取值:'."\n" + .'- **Hour**:表示小时计费。', + 'description' => '', + 'type' => 'string', + 'example' => 'Hour', + ], + 'UsageType' => [ + 'title' => '计费模块的计费单位,取值:'."\n" + .'- **template**:表示模版。'."\n" + .'- **qps**:表示qps。'."\n" + .'- **domain**:表示域名。'."\n" + .'- **rule**:表示规则。'."\n" + .'- **resource**:表示防护对象。'."\n" + .'- **reqest**:表示请求。'."\n" + .'- **function**:表示功能启用。'."\n", + 'description' => '', + 'type' => 'string', + 'example' => 'domain', + ], + 'UsageUnitFactor' => [ + 'title' => '计费模块的计费单位系数。', + 'description' => '', + 'type' => 'integer', + 'format' => 'int32', + 'example' => '1', + ], + 'ChargeMode' => [ + 'title' => '计费模块的定价模式,取值:'."\n" + .'- **NORMAL_PRICE**:表示阶梯定价。'."\n" + .'- **STEP_ACCUMULATION**:表示阶梯定价。', + 'description' => '', + 'type' => 'string', + 'example' => 'NORMAL_PRICE', + ], + 'ChargeModeDetails' => [ + 'title' => '计费模块的定价详细信息。', + 'description' => '', + 'type' => 'array', + 'items' => [ + 'title' => '计费模块的定价详细信息,以一系列参数构造的 JSON 格式转化成字符串。', + 'description' => '', + 'type' => 'string', + 'example' => '{'."\n" + .'"cu": 5.0,'."\n" + .'"range": {'."\n" + .'"type": "lcrc", '."\n" + .' "min": "2",'."\n" + .' "max": "10"'."\n" + .' }'."\n" + .'}', + ], + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\",\\n \\"ChargeModules\\": [\\n {\\n \\"ModuleCode\\": \\"domainCount\\",\\n \\"PeriodType\\": \\"Hour\\",\\n \\"UsageType\\": \\"domain\\",\\n \\"UsageUnitFactor\\": 1,\\n \\"ChargeMode\\": \\"NORMAL_PRICE\\",\\n \\"ChargeModeDetails\\": [\\n \\"{\\\\n\\\\\\"cu\\\\\\": 5.0,\\\\n\\\\\\"range\\\\\\": {\\\\n\\\\\\"type\\\\\\": \\\\\\"lcrc\\\\\\", \\\\n \\\\\\"min\\\\\\": \\\\\\"2\\\\\\",\\\\n \\\\\\"max\\\\\\": \\\\\\"10\\\\\\"\\\\n }\\\\n}\\"\\n ]\\n }\\n ]\\n}","type":"json"}]', + ], + 'ModifyPauseProtectionStatus' => [ + 'summary' => 'Modifies the protection status of Web Application Firewall (WAF).', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '222985', + 'abilityTreeNodes' => [ + 'FEATUREwafNZKQ0J', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the WAF instance.'."\n" + ."\n" + .'> You can call the [DescribeInstance](~~433756~~) operation to query the ID of the WAF instance.'."\n", + 'type' => 'string', + 'required' => true, + 'example' => 'waf-cn-tl32ast****', + ], + ], + [ + 'name' => 'PauseStatus', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to pause WAF protection.'."\n" + ."\n" + .'* **0**: does not pause WAF protection. This is the default value.'."\n" + .'* **1**: pauses WAF protection.'."\n", + 'type' => 'integer', + 'format' => 'int32', + 'required' => true, + 'example' => '0', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The ID of the Alibaba Cloud resource group.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => 'The region in which the WAF instance is deployed. Valid values:'."\n" + ."\n" + .'* **cn-hangzhou**: the Chinese mainland.'."\n" + .'* **ap-southeast-1**: outside the Chinese mainland.'."\n", + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => 'The ID of the request.'."\n", + 'type' => 'string', + 'example' => 'D7861F61-*****-******-D5EB0', + ], + ], + 'description' => '', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-*****-******-D5EB0\\"\\n}","type":"json"}]', + 'title' => 'ModifyPauseProtectionStatus', + ], + 'CreatePocFunction' => [ + 'summary' => '开启防护功能POC', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '231682', + 'abilityTreeNodes' => [ + 'FEATUREwafH82E50', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****', + ], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'botWeb', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'D7861F61-5B61-46CE-A47C-6B19160D5EB0', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"D7861F61-5B61-46CE-A47C-6B19160D5EB0\\"\\n}","type":"json"}]', + ], + 'DescribePocFunctions' => [ + 'summary' => '查询开启POC的功能信息', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '231693', + 'abilityTreeNodes' => [ + 'FEATUREwafH82E50', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_cdnsdf3****'."\n", + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '1557B42F-B889-460A-B17F-1DE5C5AD7FF2', + ], + 'Functions' => [ + 'description' => '', + 'type' => 'array', + 'items' => [ + 'description' => '', + 'type' => 'object', + 'properties' => [ + 'Type' => [ + 'description' => '', + 'type' => 'string', + 'example' => 'botWeb', + ], + 'ExpireTime' => [ + 'description' => '', + 'type' => 'integer', + 'format' => 'int64', + 'example' => '1760581677000', + ], + ], + ], + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"1557B42F-B889-460A-B17F-1DE5C5AD7FF2\\",\\n \\"Functions\\": [\\n {\\n \\"Type\\": \\"botWeb\\",\\n \\"ExpireTime\\": 1760581677000\\n }\\n ]\\n}","type":"json"}]', + ], + 'DescribeRoleAuthStatus' => [ + 'summary' => '查询授权状态', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => [ + 'FEATUREwafHU8RSD', + ], + ], + 'parameters' => [ + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-aekzhalsanv***', + ], + ], + ], + 'responses' => [ + 200 => [ + 'headers' => [], + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '79ECBB08-079C-57C5-A676-***', + ], + 'AuthStatus' => [ + 'description' => '', + 'type' => 'boolean', + 'example' => 'true', + ], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"79ECBB08-079C-57C5-A676-***\\",\\n \\"AuthStatus\\": true\\n}","type":"json"}]', + ], + 'InitializeWafOperationRole' => [ + 'summary' => '创建WAF服务关联角色', + 'methods' => [ + 'post', + 'get', + ], + 'schemes' => [ + 'http', + 'https', + ], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '113863', + 'abilityTreeNodes' => [ + 'FEATUREwafHU8RSD', + ], + ], + 'parameters' => [ + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => true, + 'example' => 'waf_v2_public_cn-***', + ], + ], + [ + 'name' => 'RegionId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'cn-hangzhou', + 'default' => 'cn-hangzhou', + ], + ], + [ + 'name' => 'ResourceManagerResourceGroupId', + 'in' => 'query', + 'schema' => [ + 'description' => '', + 'type' => 'string', + 'required' => false, + 'example' => 'rg-acfm***q', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => [ + 'description' => '', + 'type' => 'string', + 'example' => '4EC9EA6C-F80A-5D25-A8F7-***', + ], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + [ + 'errorCode' => 'RoleAlreadyExists', + 'errorMessage' => 'Service Linked Role Already Exists.', + ], + [ + 'errorCode' => 'NoPermissonCreatesServiceLinkedRole', + 'errorMessage' => 'No Permisson Create Service Linked Role.', + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"4EC9EA6C-F80A-5D25-A8F7-***\\"\\n}","type":"json"}]', + ], + ], + 'endpoints' => [ + [ + 'regionId' => 'cn-hangzhou', + 'endpoint' => 'wafopenapi.cn-hangzhou.aliyuncs.com', + ], + [ + 'regionId' => 'ap-southeast-1', + 'endpoint' => 'wafopenapi.ap-southeast-1.aliyuncs.com', + ], + ], +]; |
