{ "id":"/axapi/v3/ddos/dst/zone/{zone-name}/port-range/{port-range-start}+{port-range-end}+{protocol}/virtualhosts/virtualhost/{vhost}", "type":"object", "node-type":"list", "title":"virtualhost", "partition-visibility":"shared", "description":"Configure mitigation for virtualhost", "properties":{ "vhost":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "description":"name for virtualhost", "optional":false }, "servername":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "match-type":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'contains': match servername extension when contains this string; 'ends-with': match servername extension when ends with this string; 'equals': match servername extension when equals this string; 'starts-with': match servername extension when starts with this string; ", "enum":[ "contains", "ends-with", "equals", "starts-with" ] }, "host-match-string":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "description":"SNI String" } } } ] }, "servername-list":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "description":"Class List to match servername (Class List Name)", "optional":true }, "servername-match-any":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Match when there is no SNI or other servernames are not matched", "optional":true }, "source-tracking":{ "type":"string", "format":"enum", "default":"follow", "partition-visibility":"shared", "description":"'follow': enable creation of source entries when source-tracking-all is enabled (default); 'enable': enable creation of source entries on this virtualhost; 'disable': disable creation of source entries on this virtualhost; ", "enum":[ "follow", "enable", "disable" ], "optional":true }, "glid-cfg":{ "type":"object", "properties":{ "glid":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "$ref":"/axapi/v3/glid", "description":"Global limit ID" }, "glid-action":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'drop': Drop packets for glid exceed (Default); 'ignore': Do nothing for glid exceed; ", "enum":[ "drop", "ignore" ] } } }, "deny":{ "type":"number", "format":"flag", "plat-neg-list":["softax-ddet"], "default":0, "partition-visibility":"shared", "description":"Blacklist and Drop all incoming packets for protocol", "optional":true }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object", "optional":true }, "user-tag":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "description":"Customized tag", "optional":true }, "level-list":{ "type":"array", "minItems":1, "items":{ "type":"level" }, "uniqueItems":true, "$ref":"/axapi/v3/ddos/dst/zone/{zone-name}/port-range/{port-range-start}+{port-range-end}+{protocol}/virtualhosts/virtualhost/{vhost}/level/{level-num}", "array":[ { "properties":{ "level-num":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'0': Default policy level; ", "enum":[ "0" ], "optional":false }, "src-default-glid":{ "type":"string", "format":"string-rlx", "plat-neg-list":["softax-ddet"], "minLength":1, "maxLength":63, "partition-visibility":"shared", "$ref":"/axapi/v3/glid", "description":"Global limit ID", "optional":true }, "glid-action":{ "type":"string", "format":"enum", "plat-neg-list":["softax-ddet"], "partition-visibility":"shared", "description":"'drop': Drop packets for glid exceed (Default); 'blacklist-src': Blacklist-src for glid exceed; 'ignore': Do nothing for glid exceed; ", "enum":[ "drop", "blacklist-src", "ignore" ], "optional":true }, "zone-template":{ "type":"object", "properties":{ "ssl-l4":{ "type":"string", "format":"string-rlx", "plat-neg-list":["softax-ddet"], "minLength":1, "maxLength":63, "partition-visibility":"shared", "description":"DDOS ssl-l4 template" }, "tcp":{ "type":"string", "format":"string-rlx", "plat-neg-list":["softax-ddet"], "minLength":1, "maxLength":63, "partition-visibility":"shared", "description":"DDOS tcp template" } } }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object", "optional":true }, "user-tag":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "description":"Customized tag", "optional":true } }, "required":[ "level-num" ] } ] } }, "object-keys":[ "vhost" ], "required":[ "vhost" ] }