{ "id":"/axapi/v3/ddos/template", "type":"object", "node-type":"intermediate", "title":"template", "operation-not-allowed": ["PUT", "POST", "DELETE"], "partition-visibility":"shared", "description":"Define a DDOS template", "properties":{ "encap-list":{ "type":"array", "minItems":1, "items":{ "type":"encap" }, "uniqueItems":true, "$ref":"/axapi/v3/ddos/template/encap/{encap-tmpl-name}", "array":[ { "properties":{ "encap-tmpl-name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "description":"DDOS Tunnel Template Name", "optional":false }, "tunnel-encap":{ "type":"object", "properties":{ "ip-cfg":{ "type":"object", "properties":{ "ip-encap":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable Tunnel encap for IP packets" }, "always":{ "type":"object", "properties":{ "ipv4-addr":{ "type":"string", "format":"ipv4-address", "partition-visibility":"shared", "description":"IPv4 address (IPv6-over-IPv4 / IPv4-over-IPv6 are not supported.)" }, "ipv6-addr":{ "type":"string", "format":"ipv6-address", "partition-visibility":"shared", "description":"IPv6 address (IPv6-over-IPv4 / IPv4-over-IPv6 are not supported.)" } } } } }, "gre-cfg":{ "type":"object", "properties":{ "gre-encap":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable Tunnel encap for GRE packets" }, "gre-always":{ "type":"object", "properties":{ "gre-ipv4":{ "type":"string", "format":"ipv4-address", "partition-visibility":"shared", "description":"IPv4 address (IPv6-over-IPv4 / IPv4-over-IPv6 are not supported.)" }, "key-ipv4":{ "type":"string", "format":"string", "minLength":1, "maxLength":10, "partition-visibility":"shared", "description":"Encapsulate with key (Hexadecimal 0x0-0xFFFFFFFF,decimal 0-4294967295)" }, "gre-ipv6":{ "type":"string", "format":"ipv6-address", "partition-visibility":"shared", "description":"IPv6 address (IPv6-over-IPv4 / IPv4-over-IPv6 are not supported.)" }, "key-ipv6":{ "type":"string", "format":"string", "minLength":1, "maxLength":10, "partition-visibility":"shared", "description":"Encapsulate with key (Hexadecimal 0x0-0xFFFFFFFF,decimal 0-4294967295)" } } } } } } }, "preserve-source-ip":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Use original source ip for encapsulation", "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 } }, "required":[ "encap-tmpl-name" ] } ] }, "ssl-l4-list":{ "type":"array", "minItems":1, "items":{ "type":"ssl-l4" }, "uniqueItems":true, "$ref":"/axapi/v3/ddos/template/ssl-l4/{ssl-l4-tmpl-name}", "array":[ { "properties":{ "ssl-l4-tmpl-name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "optional":false }, "action":{ "type":"string", "format":"enum", "default":"drop", "partition-visibility":"shared", "description":"'drop': drop; 'reset': reset; ", "enum":[ "drop", "reset" ], "optional":true }, "disable":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Disable this template", "optional":true }, "renegotiation":{ "type":"number", "format":"number", "minimum":0, "maximum":7, "partition-visibility":"shared", "description":"Configure renegotiation limiting for SSL (Number of renegotiation allowed)", "optional":true }, "request-rate-limit":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "description":"Configure rate limiting for SSL", "optional":true }, "allow-non-tls":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Allow Non-TLS (SSLv3 and lower) traffic (Warning: security may be compromised)", "optional":true }, "multi-pu-threshold-distribution":{ "type":"object", "properties":{ "multi-pu-threshold-distribution-value":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "not":"multi-pu-threshold-distribution-disable", "description":"Destination side rate limit only. Default: 0" }, "multi-pu-threshold-distribution-disable":{ "type":"string", "format":"enum", "partition-visibility":"shared", "not":"multi-pu-threshold-distribution-value", "description":"'disable': Destination side rate limit only. Default: Enable; ", "enum":[ "disable" ] } } }, "auth-config-cfg":{ "type":"object", "properties":{ "timeout":{ "type":"number", "format":"number", "minimum":1, "maximum":31, "default":5, "partition-visibility":"shared", "description":"Connection timeout" }, "trials":{ "type":"number", "format":"number", "minimum":0, "maximum":15, "default":5, "partition-visibility":"shared", "description":"Number of failed handshakes" }, "auth-handshake-fail-action":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'blacklist-src': Blacklist-src when auth handshake fails; ", "enum":[ "blacklist-src" ] } } }, "cert-cfg":{ "type":"object", "properties":{ "cert":{ "type":"string", "format":"string", "plat-neg-list":["fips"], "minLength":1, "maxLength":255, "partition-visibility":"shared", "description":"SSL certificate" }, "key":{ "type":"string", "format":"string", "minLength":1, "maxLength":255, "partition-visibility":"shared", "description":"SSL key" }, "key-passphrase":{ "type":"string", "format":"password", "minLength":1, "maxLength":63, "partition-visibility":"shared", "description":"Password Phrase" }, "key-encrypted":{ "type":"encrypted", "format":"encrypted", "partition-visibility":"shared", "description":"Do NOT use this option manually. (This is an A10 reserved keyword.) (The ENCRYPTED password string)" } } }, "server-name-list":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "server-name":{ "type":"string", "format":"string", "plat-neg-list":["fips"], "minLength":1, "maxLength":255, "partition-visibility":"shared", "description":"Server name indication in Client hello extension (Server name String)" }, "server-cert":{ "type":"string", "format":"string", "minLength":1, "maxLength":255, "partition-visibility":"shared", "description":"Server Certificate associated to SNI (Server Certificate Name)" }, "server-key":{ "type":"string", "format":"string", "minLength":1, "maxLength":255, "partition-visibility":"shared", "description":"Server Private Key associated to SNI (Server Private Key Name)" }, "server-passphrase":{ "type":"string", "format":"password", "minLength":1, "maxLength":63, "partition-visibility":"shared", "description":"Password Phrase" }, "server-encrypted":{ "type":"encrypted", "format":"encrypted", "partition-visibility":"shared", "description":"Do NOT use this option manually. (This is an A10 reserved keyword.) (The ENCRYPTED password string)" } } } ] }, "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 }, "ssl-traffic-check":{ "type":"object", "$ref":"/axapi/v3/ddos/template/ssl-l4/{ssl-l4-tmpl-name}/ssl-traffic-check", "properties":{ "header-inspection":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Inspect ssl header" }, "header-action":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'drop': Drop packets with bad ssl header; 'ignore': Forward packets with bad ssl header; ", "enum":[ "drop", "ignore" ] }, "check-resumed-connection":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Apply checks to SSL connections initialized by ACK packets" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } } }, "required":[ "ssl-l4-tmpl-name" ] } ] }, "http-list":{ "type":"array", "minItems":1, "items":{ "type":"http" }, "uniqueItems":true, "$ref":"/axapi/v3/ddos/template/http/{http-tmpl-name}", "array":[ { "properties":{ "http-tmpl-name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "description":"DDOS HTTP Template Name", "optional":false }, "multi-pu-threshold-distribution":{ "type":"object", "properties":{ "multi-pu-threshold-distribution-value":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "not":"multi-pu-threshold-distribution-disable", "description":"Destination side rate limit only. Default: 0" }, "multi-pu-threshold-distribution-disable":{ "type":"string", "format":"enum", "partition-visibility":"shared", "not":"multi-pu-threshold-distribution-value", "description":"'disable': Destination side rate limit only. Default: Enable; ", "enum":[ "disable" ] } } }, "action":{ "type":"string", "format":"enum", "default":"drop", "partition-visibility":"shared", "description":"'drop': Drop packets for the connection; 'reset': Send RST for the connection; ", "enum":[ "drop", "reset" ], "optional":true }, "disable":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Disable this template", "optional":true }, "mss-cfg":{ "type":"object", "properties":{ "mss-timeout":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Configure DDOS detection based on mss and packet size" }, "mss-percent":{ "type":"number", "format":"number", "minimum":1, "maximum":100, "partition-visibility":"shared", "description":"Configure percentage of mss such that if a packet size is below the mss times mss-percent, packet is considered bad." }, "number-packets":{ "type":"number", "format":"number", "minimum":1, "maximum":31, "partition-visibility":"shared", "description":"Specify percentage of mss. Default is 0, mss-timeout is not enabled." } } }, "disallow-connect-method":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Do not allow HTTP Connect method (asymmetric mode only)", "optional":true }, "challenge-method":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'http-redirect': http-redirect; 'javascript': javascript; ", "enum":[ "http-redirect", "javascript" ], "optional":true }, "challenge-redirect-code":{ "type":"string", "format":"enum", "default":"302", "partition-visibility":"shared", "description":"'302': 302 Found; '307': 307 Temporary Redirect; ", "enum":[ "302", "307" ], "optional":true }, "challenge-uri-encode":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Encode the challenge phrase in uri instead of in http cookie. Default encoded in http cookie", "optional":true }, "challenge-cookie-name":{ "type":"string", "format":"string", "minLength":1, "maxLength":63, "default":"sto-idd", "partition-visibility":"shared", "description":"Set the cookie name used to send back to client. Default is sto-idd", "optional":true }, "challenge-keep-cookie":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Keep the challenge cookie from client and forward to backend. Default is do not keep", "optional":true }, "challenge-interval":{ "type":"number", "format":"number", "minimum":1, "maximum":31, "default":8, "partition-visibility":"shared", "description":"Specify the challenge interval. Default is 8 seconds", "optional":true }, "non-http-bypass":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Bypass non-http traffic instead of dropping", "optional":true }, "malformed-http":{ "type":"object", "properties":{ "malformed-http-enabled":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enabling ddos malformed http protection. Default value is disabled." }, "malformed-http-max-line-size":{ "type":"number", "format":"number", "minimum":1, "maximum":65280, "default":32512, "partition-visibility":"shared", "description":"Set the maximum line size. Default value is 32512" }, "malformed-http-max-num-headers":{ "type":"number", "format":"number", "minimum":1, "maximum":90, "default":90, "partition-visibility":"shared", "description":"Set the maximum number of headers. Default value is 90" }, "malformed-http-max-req-line-size":{ "type":"number", "format":"number", "minimum":1, "maximum":65280, "default":32512, "partition-visibility":"shared", "description":"Set the maximum request line size. Default value is 32512" }, "malformed-http-max-header-name-size":{ "type":"number", "format":"number", "minimum":1, "maximum":64, "default":64, "partition-visibility":"shared", "description":"Set the maxinum header name length. Default value is 64." }, "malformed-http-max-content-length":{ "type":"number", "format":"number", "minimum":1, "maximum":4294967295, "default":4294967295, "partition-visibility":"shared", "description":"Set the maximum content-length header. Default value is 4294967295 bytes" }, "malformed-http-bad-chunk-mon-enabled":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enabling bad chunk monitoring. Default is disabled" } } }, "use-hdr-ip-cfg":{ "type":"object", "properties":{ "use-hdr-ip-as-source":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Mitigate on src ip specified by http header for example X-Forwarded-For header. Default is disabled" }, "l7-hdr-name":{ "type":"string", "format":"string", "minLength":1, "maxLength":63, "default":"X-Forwarded-For", "partition-visibility":"shared", "description":"Set the http header name to parse for client ip. Default is X-Forwarded-For" } } }, "request-header":{ "type":"object", "properties":{ "timeout":{ "type":"number", "format":"number", "minimum":1, "maximum":63, "partition-visibility":"shared" } } }, "post-rate-limit":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "description":"Configure rate limiting for HTTP POST request", "optional":true }, "request-rate-limit":{ "type":"object", "properties":{ "request-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "description":"HTTP request rate limit" }, "uri":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "equal-cfg":{ "type":"object", "properties":{ "url-equals":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "description":"Request rate-limit HTTP URI matching a specified pattern" }, "url-equals-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "description":"Request rate limit" } } }, "contains-cfg":{ "type":"object", "properties":{ "url-contains":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "description":"Request rate-limit HTTP URI containing a specified pattern" }, "url-contains-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "description":"Request rate limit" } } }, "starts-cfg":{ "type":"object", "properties":{ "url-starts-with":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "description":"Request rate-limit HTTP URI strting with a specified pattern" }, "url-starts-with-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "description":"Request rate limit" } } }, "ends-cfg":{ "type":"object", "properties":{ "url-ends-with":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "description":"Request rate-limit HTTP URI ending with a specified pattern" }, "url-ends-with-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "description":"Request rate limit" } } } } } ] } } }, "response-rate-limit":{ "type":"object", "properties":{ "obj-size":{ "type":"object", "properties":{ "less-cfg":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "obj-less":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "description":"Response size configuration" }, "obj-less-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "description":"Response rate limit" } } } ] }, "greater-cfg":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "obj-greater":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "description":"Response size configuration" }, "obj-greater-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "description":"Response rate limit" } } } ] }, "between-cfg":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "obj-between1":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "description":"Response size configuration" }, "obj-between2":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "description":"Response size configuration" }, "obj-between-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "description":"Response rate limit" } } } ] } } } } }, "slow-read-drop":{ "type":"object", "properties":{ "min-window-size":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"minimum window size" }, "min-window-count":{ "type":"number", "format":"number", "minimum":1, "maximum":31, "partition-visibility":"shared", "description":"Number of packets" } } }, "idle-timeout":{ "type":"number", "format":"number", "minimum":1, "maximum":63, "partition-visibility":"shared", "description":"Set the the idle timeout value in seconds for HTTP connections", "optional":true }, "ignore-zero-payload":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Don't reset idle timer on packets with zero payload length from clients", "optional":true }, "out-of-order-queue-size":{ "type":"number", "format":"number", "minimum":0, "maximum":15, "default":3, "partition-visibility":"shared", "description":"Set the number of packets for the out-of-order HTTP queue (asym mode only)", "optional":true }, "out-of-order-queue-timeout":{ "type":"number", "format":"number", "minimum":0, "maximum":15, "default":3, "partition-visibility":"shared", "description":"Set the timeout value in seconds for out-of-order queue in HTTP (asym mode only)", "optional":true }, "referer-filter":{ "type":"object", "properties":{ "ref-filter-blacklist":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Blacklist the source if the referer matches" }, "referer-equals-cfg":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "referer-equals":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared" } } } ] }, "referer-contains-cfg":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "referer-contains":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared" } } } ] }, "referer-starts-cfg":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "referer-starts-with":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared" } } } ] }, "referer-ends-cfg":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "referer-ends-with":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared" } } } ] } } }, "agent-filter":{ "type":"object", "properties":{ "agent-filter-blacklist":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Blacklist the source if the user-agent matches" }, "agent-equals-cfg":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "agent-equals":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared" } } } ] }, "agent-contains-cfg":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "agent-contains":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared" } } } ] }, "agent-starts-cfg":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "agent-starts-with":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared" } } } ] }, "agent-ends-cfg":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "agent-ends-with":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared" } } } ] } } }, "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 }, "filter-header-list":{ "type":"array", "minItems":1, "items":{ "type":"filter-header" }, "uniqueItems":true, "$ref":"/axapi/v3/ddos/template/http/{http-tmpl-name}/filter-header/{http-filter-header-seq}", "array":[ { "properties":{ "http-filter-header-seq":{ "type":"number", "format":"number", "minimum":1, "maximum":5, "partition-visibility":"shared", "description":"Sequence number", "optional":false }, "http-filter-header-regex":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":1275, "partition-visibility":"shared", "description":"Regex Expression", "optional":true }, "http-filter-header-unmatched":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"action taken when it does not match", "optional":true }, "http-filter-header-blacklist":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Also blacklist the source when action is taken", "optional":true }, "http-filter-header-whitelist":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Whitelist the source after filter passes, packets are dropped until then", "optional":true }, "http-filter-header-count-only":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Take no action and continue processing the next filter", "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 } }, "required":[ "http-filter-header-seq" ] } ] } }, "required":[ "http-tmpl-name" ] } ] }, "dns-list":{ "type":"array", "minItems":1, "items":{ "type":"dns" }, "uniqueItems":true, "$ref":"/axapi/v3/ddos/template/dns/{name}", "array":[ { "properties":{ "name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "optional":false }, "action":{ "type":"string", "format":"enum", "default":"drop", "partition-visibility":"shared", "description":"'drop': Drop packets (Default action); 'reset': Send Client RST for TCP connections; ", "enum":[ "drop", "reset" ], "optional":true }, "dns-any-check":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Drop DNS queries of Type ANY", "optional":true }, "dns-auth-cfg":{ "type":"object", "properties":{ "dns-auth":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"DNS authentication" }, "dns-auth-type":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'udp': Drop DNS request and monitor client retry; 'force-tcp': Force DNS request over TCP; ", "enum":[ "udp", "force-tcp" ] }, "udp-timeout-val-only":{ "type":"number", "format":"number", "minimum":1, "maximum":16, "partition-visibility":"shared", "description":"UDP authentication timeout in seconds" }, "udp-timeout":{ "type":"number", "format":"number", "minimum":1, "maximum":16, "partition-visibility":"shared", "description":"UDP authentication timeout in seconds" }, "min-retry-gap":{ "type":"number", "format":"number", "minimum":1, "maximum":80, "partition-visibility":"shared", "description":"Optional minimum sec gap in between 2 dns-udp packets for auth to pass, unit is specified by min-retry-gap-interval" }, "min-retry-gap-interval":{ "type":"string", "format":"enum", "default":"1sec", "partition-visibility":"shared", "description":"'100ms': 100ms; '1sec': 1sec; ", "enum":[ "100ms", "1sec" ] }, "with-udp-auth":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Monitor client retry" }, "force-tcp-timeout":{ "type":"number", "format":"number", "minimum":1, "maximum":16, "partition-visibility":"shared", "description":"TCP authentication timeout in seconds" }, "force-tcp-min-retry-gap":{ "type":"number", "format":"number", "minimum":1, "maximum":15, "partition-visibility":"shared", "description":"Minimum sec gap in between 2 dns-udp packets for auth to pass" }, "force-tcp-ignore-client-source-port":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Allow client to retransmit DNS request using different source port during udp-auth (supported in asymmetric mode only)" } } }, "multi-pu-threshold-distribution":{ "type":"object", "properties":{ "multi-pu-threshold-distribution-value":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "not":"multi-pu-threshold-distribution-disable", "description":"Destination side rate limit only. Default: 0" }, "multi-pu-threshold-distribution-disable":{ "type":"string", "format":"enum", "partition-visibility":"shared", "not":"multi-pu-threshold-distribution-value", "description":"'disable': Destination side rate limit only. Default: Enable; ", "enum":[ "disable" ] } } }, "fqdn-cfg":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "dns-fqdn-rate-limit":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"DNS Rate limiting on the basis of FQDN" }, "dns-fqdn-rate":{ "type":"number", "format":"number", "minimum":5, "maximum":16000000, "partition-visibility":"shared", "description":"Limiting rate (Range: 5-8000 for FQDN domain based rate limiting, 5-16000000 for FQDN label count based rate limiting)" }, "per":{ "type":"string", "format":"enum", "partition-visibility":"shared", "not":"by", "description":"'domain-name': Domain Name; 'src-ip': Source IP address; 'label-count': FQDN label count; ", "enum":[ "domain-name", "src-ip", "label-count" ] }, "per-domain-per-src-ip":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Use both Domain Name and Source IP address for rate-limiting" }, "fqdn-rate-suffix":{ "type":"number", "format":"number", "minimum":1, "maximum":5, "partition-visibility":"shared", "description":"Suffix count" }, "fqdn-rate-label-count":{ "type":"number", "format":"number", "minimum":1, "maximum":8, "partition-visibility":"shared", "description":"FQDN label count (Range: 1-8)" }, "by":{ "type":"string", "format":"enum", "partition-visibility":"shared", "not":"per", "description":"'domain-name': Domain Name; 'src-ip': Source IP address; 'both': Use both Domain Name and Source IP address for rate-limiting; ", "enum":[ "domain-name", "src-ip", "both" ] }, "fqdn-rate-suffix-by":{ "type":"number", "format":"number", "minimum":1, "maximum":5, "partition-visibility":"shared", "description":"Number of suffixes" } } } ] }, "fqdn-label-len-cfg":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "fqdn-label-length":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Maximum FQDN label length" }, "label-length":{ "type":"number", "format":"number", "minimum":1, "maximum":63, "partition-visibility":"shared", "description":"Maximum length of FQDN label" }, "fqdn-label-suffix":{ "type":"number", "format":"number", "minimum":1, "maximum":5, "partition-visibility":"shared", "description":"Number of suffixes" } } } ] }, "fqdn-label-count":{ "type":"number", "format":"number", "minimum":1, "maximum":10, "partition-visibility":"shared", "description":"Maximum number of length of FQDN labels", "optional":true }, "nxdomain-cfg":{ "type":"object", "properties":{ "dns-nxdomain-rate-limit":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"DNS NXDOMAIN Rate Limiting (SRC support only)" }, "dns-nxdomain-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "description":"Limiting rate" }, "dns-nxdomain-rate-limit-action":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'drop': Drop queries if rate is exceeded; 'black-list': Black-List source if rate is exceeded; ", "enum":[ "drop", "black-list" ] } } }, "symtimeout-cfg":{ "type":"object", "properties":{ "sym-timeout":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Timeout for DNS Symmetric session" }, "sym-timeout-value":{ "type":"number", "format":"number", "minimum":1, "maximum":31, "partition-visibility":"shared", "description":"Session timeout value in seconds" } } }, "dns-request-rate-limit":{ "type":"object", "properties":{ "type":{ "type":"object", "properties":{ "A-cfg":{ "type":"object", "properties":{ "A":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Address record" }, "dns-a-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } }, "AAAA-cfg":{ "type":"object", "properties":{ "AAAA":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"IPv6 address record" }, "dns-aaaa-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } }, "CNAME-cfg":{ "type":"object", "properties":{ "CNAME":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Canonical name record" }, "dns-cname-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } }, "MX-cfg":{ "type":"object", "properties":{ "MX":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Mail exchange record" }, "dns-mx-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } }, "NS-cfg":{ "type":"object", "properties":{ "NS":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Name server record" }, "dns-ns-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } }, "SRV-cfg":{ "type":"object", "properties":{ "SRV":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Service locator" }, "dns-srv-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "description":"DNS request rate" } } }, "dns-type-cfg":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "dns-request-type":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Other type value" }, "dns-request-type-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "description":"request rate limit" } } } ] } } } } }, "domain-group-name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":128, "partition-visibility":"shared", "description":"Apply a domain-group to the DNS template", "optional":true }, "on-no-match":{ "type":"string", "format":"enum", "default":"deny", "partition-visibility":"shared", "description":"'permit': permit; 'deny': deny (default); ", "enum":[ "permit", "deny" ], "optional":true }, "domain-group-rate-exceed-action":{ "type":"string", "format":"enum", "default":"drop", "partition-visibility":"shared", "description":"'drop': Drop the query (default); 'tunnel-encap-packet': Encapsulate the query and send on a tunnel; ", "enum":[ "drop", "tunnel-encap-packet" ], "optional":true }, "encap-template":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "description":"DDOS encap template to sepcify the tunnel endpoint", "optional":true }, "domain-group-rate-per-service":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable per service domain rate checking", "optional":true }, "query-rate-threshold-for-cache-serving":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "description":"This is for DNS cache mode only, it sets a DNS query rate threshold such that queries under the rate threshold would be forward", "optional":true }, "allow-query-class":{ "type":"object", "properties":{ "allow-internet-query-class":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"INTERNET query class" }, "allow-csnet-query-class":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"CSNET query class" }, "allow-chaos-query-class":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"CHAOS query class" }, "allow-hesiod-query-class":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"HESIOD query class" }, "allow-none-query-class":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"NONE query class" }, "allow-any-query-class":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"ANY query class" } } }, "allow-record-type":{ "type":"object", "properties":{ "allow-a-type":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Address record" }, "allow-aaaa-type":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"IPv6 address record" }, "allow-cname-type":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Canonical name record" }, "allow-mx-type":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Mail exchange record" }, "allow-ns-type":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Name server record" }, "allow-srv-type":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Service locator" }, "record-num-cfg":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "allow-num-type":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Other record type value" } } } ] } } }, "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 }, "malformed-query-check":{ "type":"object", "$ref":"/axapi/v3/ddos/template/dns/{name}/malformed-query-check", "properties":{ "validation-type":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'basic-header-check': Basic header validation for DNS TCP/UDP queries; 'extended-header-check': Extended header/query validation for DNS TCP/UDP queries; 'disable': Disable Malform query validation for DNS TCP/UDP; ", "enum":[ "basic-header-check", "extended-header-check", "disable" ] }, "non-query-opcode-check":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'disable': When malform check is enabled, TPS always drops DNS query with non query opcode, this option disables this opcode check; ", "enum":[ "disable" ] }, "skip-multi-packet-check":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Bypass DNS fragmented and TCP segmented Queries(Default: dropped)" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } } }, "required":[ "name" ] } ] }, "tcp-list":{ "type":"array", "minItems":1, "items":{ "type":"tcp" }, "uniqueItems":true, "$ref":"/axapi/v3/ddos/template/tcp/{name}", "array":[ { "properties":{ "name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "optional":false }, "action-cfg":{ "type":"object", "properties":{ "action-on-ack":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Monitor tcp ack for age-out session" }, "reset":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Send RST to client" }, "timeout":{ "type":"number", "format":"number", "minimum":1, "maximum":31, "partition-visibility":"shared", "description":"ACK retry timeout in sec" }, "min-retry-gap":{ "type":"number", "format":"number", "minimum":1, "maximum":80, "partition-visibility":"shared", "description":"Min gap between 2 ACKs for action-on-ack pass in 100ms interval" }, "authenticate-only":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Apply action-on-ack once per source address for authentication purpose" }, "rto-authentication":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Estimate the RTO and apply the exponential back-off for authentication" } } }, "action-on-syn-rto-retry-count":{ "type":"number", "format":"number", "minimum":2, "maximum":10, "partition-visibility":"shared", "description":"Take action if action-on-syn RTO-authentication fail over retry time(default:5)", "optional":true }, "action-on-ack-rto-retry-count":{ "type":"number", "format":"number", "minimum":2, "maximum":10, "partition-visibility":"shared", "description":"Take action if action-on-ack RTO-authentication fail over retry time(default:5)", "optional":true }, "age":{ "type":"number", "format":"number", "minimum":1, "maximum":63, "partition-visibility":"shared", "description":"Session age in minutes", "optional":true }, "syn-cookie":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable SYN Cookie", "optional":true }, "create-conn-on-syn-only":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable connection establishment on SYN only", "optional":true }, "black-list-out-of-seq":{ "type":"number", "format":"number", "minimum":1, "maximum":64000, "partition-visibility":"shared", "not":"per-conn-out-of-seq-rate-limit", "description":"Black list Src IP if out of seq pkts exceed configured threshold", "optional":true }, "black-list-retransmit":{ "type":"number", "format":"number", "minimum":1, "maximum":64000, "partition-visibility":"shared", "not":"per-conn-retransmit-rate-limit", "description":"Black list Src IP if retransmit pkts exceed configured threshold", "optional":true }, "black-list-zero-win":{ "type":"number", "format":"number", "minimum":1, "maximum":250, "partition-visibility":"shared", "not":"per-conn-zero-win-rate-limit", "description":"Black list Src IP if zero window pkts exceed configured threshold", "optional":true }, "syn-auth":{ "type":"string", "format":"enum", "default":"send-rst", "partition-visibility":"shared", "description":"'send-rst': Send RST to all client's concurrent auth attempts; 'force-rst-by-ack': Force client RST via the use of ACK; 'force-rst-by-synack': Force client RST via the use of bad SYN|ACK; 'disable': Disable TCP SYN Authentication; 'send-rst-once': Send RST to one client's concurrent auth attempts; ", "enum":[ "send-rst", "force-rst-by-ack", "force-rst-by-synack", "disable", "send-rst-once" ], "optional":true }, "conn-rate-limit-on-syn-only":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Only count SYN-initiated connections towards connection-rate tracking", "optional":true }, "per-conn-rate-interval":{ "type":"string", "format":"enum", "default":"1sec", "partition-visibility":"shared", "description":"'100ms': 100ms; '1sec': 1sec; '10sec': 10sec; ", "enum":[ "100ms", "1sec", "10sec" ], "optional":true }, "per-conn-pkt-rate-limit":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "description":"Packet rate limit per connection per rate-interval", "optional":true }, "per-conn-pkt-rate-action":{ "type":"string", "format":"enum", "default":"drop", "partition-visibility":"shared", "description":"'drop': Drop packets for per-conn-pkt-rate exceed (Default); 'blacklist-src': help Blacklist-src for per-conn-pkt-rate exceed; 'ignore': Ignore per-conn-pkt-rate-exceed; ", "enum":[ "drop", "blacklist-src", "ignore" ], "optional":true }, "per-conn-out-of-seq-rate-limit":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "not":"black-list-out-of-seq", "description":"Take action if out-of-seq pkt rate exceed configured threshold", "optional":true }, "per-conn-out-of-seq-rate-action":{ "type":"string", "format":"enum", "default":"drop", "partition-visibility":"shared", "description":"'drop': Drop packets for out-of-seq rate exceed (Default); 'blacklist-src': help Blacklist-src for out-of-seq rate exceed; 'ignore': help Ignore out-of-seq rate exceed; ", "enum":[ "drop", "blacklist-src", "ignore" ], "optional":true }, "per-conn-retransmit-rate-limit":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "not":"black-list-retransmit", "description":"Take action if retransmit pkt rate exceed configured threshold", "optional":true }, "per-conn-retransmit-rate-action":{ "type":"string", "format":"enum", "default":"drop", "partition-visibility":"shared", "description":"'drop': Drop packets for retransmit rate exceed (Default); 'blacklist-src': help Blacklist-src for retransmit rate exceed; 'ignore': help Ignore retransmit rate exceed; ", "enum":[ "drop", "blacklist-src", "ignore" ], "optional":true }, "per-conn-zero-win-rate-limit":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "not":"black-list-zero-win", "description":"Take action if zero window pkt rate exceed configured threshold", "optional":true }, "per-conn-zero-win-rate-action":{ "type":"string", "format":"enum", "default":"drop", "partition-visibility":"shared", "description":"'drop': Drop packets for zero-win rate exceed (Default); 'blacklist-src': help Blacklist-src for zero-win rate exceed; 'ignore': help Ignore zero-win rate exceed; ", "enum":[ "drop", "blacklist-src", "ignore" ], "optional":true }, "allow-ra":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Allow RA packets to be used for auth", "optional":true }, "dst":{ "type":"object", "properties":{ "rate-limit":{ "type":"object", "properties":{ "syn-rate-limit":{ "type":"object", "properties":{ "dst-syn-rate-limit":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" }, "dst-syn-rate-action":{ "type":"string", "format":"enum", "default":"drop", "partition-visibility":"shared", "description":"'drop': Drop packets for syn-rate exceed (Default); 'ignore': Ignore syn-rate-exceed; ", "enum":[ "drop", "ignore" ] } } } } } } }, "src":{ "type":"object", "properties":{ "rate-limit":{ "type":"object", "properties":{ "syn-rate-limit":{ "type":"object", "properties":{ "src-syn-rate-limit":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" }, "src-syn-rate-action":{ "type":"string", "format":"enum", "default":"drop", "partition-visibility":"shared", "description":"'drop': Drop packets for syn-rate exceed (Default); 'blacklist-src': Blacklist-src for syn-rate exceed; 'ignore': Ignore syn-rate-exceed; ", "enum":[ "drop", "blacklist-src", "ignore" ] } } } } } } }, "allow-synack-skip-authentications":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Allow create sessions on SYNACK without syn-auth and ack-auth (ASYM Mode only)", "optional":true }, "synack-rate-limit":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "not":"track-together-with-syn", "description":"Config SYNACK rate limit", "optional":true }, "track-together-with-syn":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not":"synack-rate-limit", "description":"SYNACK will be counted in Dst Syn-rate limit", "optional":true }, "action-syn-cfg":{ "type":"object", "properties":{ "action-on-syn":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Monitor tcp syn for age-out session" }, "action-on-syn-reset":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Send RST to client" }, "action-on-syn-timeout":{ "type":"number", "format":"number", "minimum":1, "maximum":31, "partition-visibility":"shared", "description":"SYN retry timeout in sec" }, "action-on-syn-gap":{ "type":"number", "format":"number", "minimum":1, "maximum":80, "partition-visibility":"shared", "description":"Min gap between 2 SYNs for action-on-syn pass in 100ms interval" }, "action-on-syn-rto":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Estimate the RTO and apply the exponential back-off for authentication" } } }, "allow-syn-otherflags":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Treat TCP SYN+PSH as a TCP SYN (DST tcp ports support only)", "optional":true }, "allow-tcp-tfo":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Allow TCP Fast Open", "optional":true }, "ack-authentication-synack-reset":{ "type":"number", "format":"flag", "plat-neg-list":["soft-ax"], "default":0, "partition-visibility":"shared", "description":"Enable Reset client TCP SYN+ACK for authentication (DST support only)", "optional":true }, "drop-known-resp-src-port-cfg":{ "type":"object", "properties":{ "drop-known-resp-src-port":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Drop well-known if src-port is less than 1024" }, "exclude-src-resp-port":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"excluding src port equal destination port" } } }, "tunnel-encap":{ "type":"object", "properties":{ "ip-cfg":{ "type":"object", "properties":{ "ip-encap":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable Tunnel encapsulation using IP in IP" }, "always":{ "type":"object", "properties":{ "ipv4-addr":{ "type":"string", "format":"ipv4-address", "partition-visibility":"shared", "description":"IPv4 address (IPv6-over-IPv4 / IPv4-over-IPv6 are not supported.)" }, "preserve-src-ipv4":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Use original source ip for encapsulation" }, "ipv6-addr":{ "type":"string", "format":"ipv6-address", "partition-visibility":"shared", "description":"IPv6 address (IPv6-over-IPv4 / IPv4-over-IPv6 are not supported.)" }, "preserve-src-ipv6":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Use original source ip for encapsulation" } } } } }, "gre-cfg":{ "type":"object", "properties":{ "gre-encap":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable Tunnel encapsulation using GRE" }, "gre-always":{ "type":"object", "properties":{ "gre-ipv4":{ "type":"string", "format":"ipv4-address", "partition-visibility":"shared", "description":"IPv4 address (IPv6-over-IPv4 / IPv4-over-IPv6 are not supported.)" }, "key-ipv4":{ "type":"string", "format":"string", "minLength":1, "maxLength":10, "partition-visibility":"shared", "description":"Encapsulate with key (Hexadecimal 0x0-0xFFFFFFFF,decimal 0-4294967295)" }, "preserve-src-ipv4-gre":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Use original source ip for encapsulation" }, "gre-ipv6":{ "type":"string", "format":"ipv6-address", "partition-visibility":"shared", "description":"IPv6 address (IPv6-over-IPv4 / IPv4-over-IPv6 are not supported.)" }, "key-ipv6":{ "type":"string", "format":"string", "minLength":1, "maxLength":10, "partition-visibility":"shared", "description":"Encapsulate with key (Hexadecimal 0x0-0xFFFFFFFF,decimal 0-4294967295)" }, "preserve-src-ipv6-gre":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Use original source ip for encapsulation" } } } } } } }, "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 }, "progression-tracking":{ "type":"object", "$ref":"/axapi/v3/ddos/template/tcp/{name}/progression-tracking", "properties":{ "progression-tracking-enabled":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'enable-check': Enable Progression Tracking Check; ", "enum":[ "enable-check" ] }, "request-response-model":{ "type":"string", "format":"enum", "default":"enable", "partition-visibility":"shared", "description":"'enable': Enable Request Response Model; 'disable': Disable Request Response Model; ", "enum":[ "enable", "disable" ] }, "violation":{ "type":"number", "format":"number", "minimum":1, "maximum":255, "partition-visibility":"shared", "description":"Set the violation threshold" }, "response-length-max":{ "type":"number", "format":"number", "minimum":1, "maximum":4294967295, "partition-visibility":"shared", "description":"Set the maximum response length" }, "response-length-min":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Set the minimum response length" }, "request-length-min":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Set the minimum request length" }, "request-length-max":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Set the maximum request length" }, "response-request-min-ratio":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Set the minimum response to request ratio (in unit of 0.1% [1:1000])" }, "response-request-max-ratio":{ "type":"number", "format":"number", "minimum":1, "maximum":4294967295, "partition-visibility":"shared", "description":"Set the maximum response to request ratio (in unit of 0.1% [1:1000])" }, "first-request-max-time":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Set the maximum wait time from connection creation until the first data is transmitted over the connection (100 ms)" }, "request-to-response-max-time":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Set the maximum request to response time (100 ms)" }, "response-to-request-max-time":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Set the maximum response to request time (100 ms)" }, "profiling-request-response-model":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable auto-config progression tracking learning for request response model" }, "profiling-connection-life-model":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable auto-config progression tracking learning for connection model" }, "profiling-time-window-model":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable auto-config progression tracking learning for time window model" }, "progression-tracking-action-list-name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "$ref":"/axapi/v3/ddos/action-list", "not":"progression-tracking-action", "description":"Configure action-list to take when progression tracking violation exceed" }, "progression-tracking-action":{ "type":"string", "format":"enum", "default":"drop", "partition-visibility":"shared", "not":"progression-tracking-action-list-name", "description":"'drop': Drop packets for progression tracking violation exceed (Default); 'blacklist-src': Blacklist-src for progression tracking violation exceed; ", "enum":[ "drop", "blacklist-src" ] }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" }, "connection-tracking":{ "type":"object", "$ref":"/axapi/v3/ddos/template/tcp/{name}/progression-tracking/connection-tracking", "properties":{ "progression-tracking-conn-enabled":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'enable-check': Enable General Progression Tracking per Connection; ", "enum":[ "enable-check" ] }, "conn-sent-max":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Set the maximum total sent byte" }, "conn-sent-min":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Set the minimum total sent byte" }, "conn-rcvd-max":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Set the maximum total received byte" }, "conn-rcvd-min":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Set the minimum total received byte" }, "conn-rcvd-sent-ratio-min":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Set the minimum received to sent ratio (in unit of 0.1% [1:1000])" }, "conn-rcvd-sent-ratio-max":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Set the maximum received to sent ratio (in unit of 0.1% [1:1000])" }, "conn-duration-max":{ "type":"number", "format":"number", "minimum":1, "maximum":864000, "partition-visibility":"shared", "description":"Set the maximum duration time (in unit of 100ms, up to 24 hours)" }, "conn-duration-min":{ "type":"number", "format":"number", "minimum":1, "maximum":864000, "partition-visibility":"shared", "description":"Set the minimum duration time (in unit of 100ms, up to 24 hours)" }, "conn-violation":{ "type":"number", "format":"number", "minimum":1, "maximum":255, "partition-visibility":"shared", "description":"Set the violation threshold" }, "progression-tracking-conn-action-list-name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "$ref":"/axapi/v3/ddos/action-list", "not":"progression-tracking-conn-action", "description":"Configure action-list to take when progression tracking violation exceed" }, "progression-tracking-conn-action":{ "type":"string", "format":"enum", "default":"drop", "partition-visibility":"shared", "not":"progression-tracking-conn-action-list-name", "description":"'drop': Drop packets for progression tracking violation exceed (Default); 'blacklist-src': Blacklist-src for progression tracking violation exceed; ", "enum":[ "drop", "blacklist-src" ] }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } }, "time-window-tracking":{ "type":"object", "$ref":"/axapi/v3/ddos/template/tcp/{name}/progression-tracking/time-window-tracking", "properties":{ "progression-tracking-win-enabled":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'enable-check': Enable Progression Tracking per Time Window; ", "enum":[ "enable-check" ] }, "window-sent-max":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Set the maximum total sent byte" }, "window-sent-min":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Set the minimum total sent byte" }, "window-rcvd-max":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Set the maximum total received byte" }, "window-rcvd-min":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Set the minimum total received byte" }, "window-rcvd-sent-ratio-min":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Set the minimum received to sent ratio (in unit of 0.1% [1:1000])" }, "window-rcvd-sent-ratio-max":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "partition-visibility":"shared", "description":"Set the maximum received to sent ratio (in unit of 0.1% [1:1000])" }, "window-violation":{ "type":"number", "format":"number", "minimum":1, "maximum":255, "partition-visibility":"shared", "description":"Set the violation threshold" }, "progression-tracking-windows-action-list-name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "$ref":"/axapi/v3/ddos/action-list", "not":"progression-tracking-windows-action", "description":"Configure action-list to take when progression tracking violation exceed" }, "progression-tracking-windows-action":{ "type":"string", "format":"enum", "default":"drop", "partition-visibility":"shared", "not":"progression-tracking-windows-action-list-name", "description":"'drop': Drop packets for progression tracking violation exceed (Default); 'blacklist-src': Blacklist-src for progression tracking violation exceed; ", "enum":[ "drop", "blacklist-src" ] }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } } } }, "filter-list":{ "type":"array", "minItems":1, "items":{ "type":"filter" }, "uniqueItems":true, "$ref":"/axapi/v3/ddos/template/tcp/{name}/filter/{tcp-filter-seq}", "array":[ { "properties":{ "tcp-filter-seq":{ "type":"number", "format":"number", "minimum":1, "maximum":5, "partition-visibility":"shared", "description":"Sequence number", "optional":false }, "tcp-filter-regex":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":1275, "partition-visibility":"shared", "description":"Regex Expression", "optional":true }, "byte-offset-filter":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":1275, "partition-visibility":"shared", "description":"Filter Expression using Berkeley Packet Filter syntax", "optional":true }, "tcp-filter-unmatched":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"action taken when it does not match", "optional":true }, "tcp-filter-action":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'blacklist-src': Also blacklist the source when action is taken; 'whitelist-src': Whitelist the source after filter passes, packets are dropped until then; 'count-only': Take no action and continue processing the next filter; ", "enum":[ "blacklist-src", "whitelist-src", "count-only" ], "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 } }, "required":[ "tcp-filter-seq" ] } ] } }, "required":[ "name" ] } ] }, "udp-list":{ "type":"array", "minItems":1, "items":{ "type":"udp" }, "uniqueItems":true, "$ref":"/axapi/v3/ddos/template/udp/{name}", "array":[ { "properties":{ "name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "description":"DDOS UDP Template Name", "optional":false }, "age":{ "type":"number", "format":"number", "minimum":1, "maximum":63, "partition-visibility":"shared", "description":"Configure session age(in minutes) for UDP sessions", "optional":true }, "per-conn-pkt-rate-limit":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "description":"Packet rate limit per connection per rate-interval", "optional":true }, "per-conn-rate-interval":{ "type":"string", "format":"enum", "default":"1sec", "partition-visibility":"shared", "description":"'100ms': 100ms; '1sec': 1sec; ", "enum":[ "100ms", "1sec" ], "optional":true }, "tunnel-encap":{ "type":"object", "properties":{ "ip-encap":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not":"gre-encap", "description":"Enable Tunnel encapsulation using IP in IP" }, "always":{ "type":"object", "properties":{ "ipv4-addr":{ "type":"string", "format":"ipv4-address", "partition-visibility":"shared", "description":"IPv4 address (IPv6-over-IPv4 / IPv4-over-IPv6 are not supported.)" }, "preserve-src-ipv4":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Use original source ip for encapsulation" }, "ipv6-addr":{ "type":"string", "format":"ipv6-address", "partition-visibility":"shared", "description":"IPv6 address (IPv6-over-IPv4 / IPv4-over-IPv6 are not supported.)" }, "preserve-src-ipv6":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Use original source ip for encapsulation" } } }, "gre-encap":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not":"ip-encap", "description":"Enable Tunnel encapsulation using GRE" }, "gre-always":{ "type":"object", "properties":{ "gre-ipv4":{ "type":"string", "format":"ipv4-address", "partition-visibility":"shared", "description":"IPv4 address (IPv6-over-IPv4 / IPv4-over-IPv6 are not supported.)" }, "key-ipv4":{ "type":"string", "format":"string", "minLength":1, "maxLength":10, "partition-visibility":"shared", "description":"Encapsulate with key (Hexadecimal 0x0-0xFFFFFFFF,decimal 0-4294967295)" }, "preserve-src-ipv4-gre":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Use original source ip for encapsulation" }, "gre-ipv6":{ "type":"string", "format":"ipv6-address", "partition-visibility":"shared", "description":"IPv6 address (IPv6-over-IPv4 / IPv4-over-IPv6 are not supported.)" }, "key-ipv6":{ "type":"string", "format":"string", "minLength":1, "maxLength":10, "partition-visibility":"shared", "description":"Encapsulate with key (Hexadecimal 0x0-0xFFFFFFFF,decimal 0-4294967295)" }, "preserve-src-ipv6-gre":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Use original source ip for encapsulation" } } } } }, "spoof-detect-cfg":{ "type":"object", "properties":{ "spoof-detect":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Force client to retry on udp" }, "min-retry-gap-interval":{ "type":"string", "format":"enum", "default":"1sec", "partition-visibility":"shared", "description":"'100ms': 100ms; '1sec': 1sec; ", "enum":[ "100ms", "1sec" ] }, "spoof-detect-retry-timeout-val-only":{ "type":"number", "format":"number", "minimum":1, "maximum":31, "default":5, "partition-visibility":"shared", "not":"spoof-detect-retry-timeout", "description":"timeout in seconds" }, "min-retry-gap":{ "type":"number", "format":"number", "minimum":1, "maximum":80, "partition-visibility":"shared", "description":"Optional minimum gap between 2 UDP packets for spoof-detect pass, unit is specified by min-retry-gap-interval" }, "spoof-detect-retry-timeout":{ "type":"number", "format":"number", "minimum":1, "maximum":31, "default":5, "partition-visibility":"shared", "not":"spoof-detect-retry-timeout-val-only", "description":"timeout in seconds" } } }, "drop-known-resp-src-port-cfg":{ "type":"object", "properties":{ "drop-known-resp-src-port":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Drop well-known if src-port is less than 1024" }, "exclude-src-resp-port":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"excluding src port equal destination port" } } }, "drop-ntp-monlist":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Drop NTP monlist request/response", "optional":true }, "token-authentication":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable Token Authentication", "optional":true }, "token-authentication-hw-assist-disable":{ "type":"number", "format":"flag", "plat-neg-list":["non-fpga,soft-ax", "soft-ax"], "default":0, "partition-visibility":"shared", "description":"token-authentication disable hardware assistance", "optional":true }, "token-authentication-salt-prefix":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"token-authentication salt-prefix", "optional":true }, "token-authentication-salt-prefix-curr":{ "type":"number", "format":"number", "minimum":1, "maximum":4294967295, "partition-visibility":"shared", "optional":true }, "token-authentication-salt-prefix-prev":{ "type":"number", "format":"number", "minimum":1, "maximum":4294967295, "partition-visibility":"shared", "optional":true }, "token-authentication-formula":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'md5_Salt-SrcIp-SrcPort-DstIp-DstPort': md5 of Salt-SrcIp-SrcPort-DstIp-DstPort; 'md5_Salt-DstIp-DstPort': md5 of Salt-DstIp-DstPort; 'md5_Salt-SrcIp-DstIp': md5 of Salt-SrcIp-DstIp; 'md5_Salt-SrcPort-DstPort': md5 of Salt-SrcPort-DstPort; 'md5_Salt-UintDstIp-DstPort': Using the uint value of IP for md5 of Salt-DstIp-DstPort; 'sha1_Salt-SrcIp-SrcPort-DstIp-DstPort': sha1 of Salt-SrcIp-SrcPort-DstIp-DstPort; 'sha1_Salt-DstIp-DstPort': sha1 of Salt-DstIp-DstPort; 'sha1_Salt-SrcIp-DstIp': sha1 of Salt-SrcIp-DstIp; 'sha1_Salt-SrcPort-DstPort': sha1 of Salt-SrcPort-DstPort; 'sha1_Salt-UintDstIp-DstPort': Using the uint value of IP for sha1 of Salt-DstIp-DstPort; ", "enum":[ "md5_Salt-SrcIp-SrcPort-DstIp-DstPort", "md5_Salt-DstIp-DstPort", "md5_Salt-SrcIp-DstIp", "md5_Salt-SrcPort-DstPort", "md5_Salt-UintDstIp-DstPort", "sha1_Salt-SrcIp-SrcPort-DstIp-DstPort", "sha1_Salt-DstIp-DstPort", "sha1_Salt-SrcIp-DstIp", "sha1_Salt-SrcPort-DstPort", "sha1_Salt-UintDstIp-DstPort" ], "optional":true }, "previous-salt-timeout":{ "type":"number", "format":"number", "minimum":1, "maximum":10080, "default":1, "partition-visibility":"shared", "description":"Token-Authentication previous salt-prefix timeout in minutes, default is 1 min", "optional":true }, "token-authentication-public-address":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"The server public IP address", "optional":true }, "public-ipv4-addr":{ "type":"string", "format":"ipv4-address", "partition-visibility":"shared", "description":"IP address", "optional":true }, "public-ipv6-addr":{ "type":"string", "format":"ipv6-address", "partition-visibility":"shared", "description":"IPV6 address", "optional":true }, "max-payload-size":{ "type":"number", "format":"number", "minimum":1, "maximum":1470, "partition-visibility":"shared", "description":"Maximum UDP payload size for each single packet", "optional":true }, "min-payload-size":{ "type":"number", "format":"number", "minimum":1, "maximum":1470, "partition-visibility":"shared", "description":"Minimum UDP payload size for each single packet", "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 }, "filter-list":{ "type":"array", "minItems":1, "items":{ "type":"filter" }, "uniqueItems":true, "$ref":"/axapi/v3/ddos/template/udp/{name}/filter/{udp-filter-seq}", "array":[ { "properties":{ "udp-filter-seq":{ "type":"number", "format":"number", "minimum":1, "maximum":5, "partition-visibility":"shared", "description":"Sequence number", "optional":false }, "udp-filter-regex":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":1275, "partition-visibility":"shared", "description":"Regex Expression", "optional":true }, "byte-offset-filter":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":1275, "partition-visibility":"shared", "description":"Filter Expression using Berkeley Packet Filter syntax", "optional":true }, "udp-filter-unmatched":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"action taken when it does not match", "optional":true }, "udp-filter-action":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'blacklist-src': Also blacklist the source when action is taken; 'whitelist-src': Whitelist the source after filter passes, packets are dropped until then; 'count-only': Take no action and continue processing the next filter; ", "enum":[ "blacklist-src", "whitelist-src", "count-only" ], "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 } }, "required":[ "udp-filter-seq" ] } ] } }, "required":[ "name" ] } ] }, "other-list":{ "type":"array", "minItems":1, "items":{ "type":"other" }, "uniqueItems":true, "$ref":"/axapi/v3/ddos/template/other/{name}", "array":[ { "properties":{ "name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "description":"DDOS OTHER Template Name", "optional":false }, "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 }, "filter-list":{ "type":"array", "minItems":1, "items":{ "type":"filter" }, "uniqueItems":true, "$ref":"/axapi/v3/ddos/template/other/{name}/filter/{other-filter-seq}", "array":[ { "properties":{ "other-filter-seq":{ "type":"number", "format":"number", "minimum":1, "maximum":5, "partition-visibility":"shared", "description":"Sequence number", "optional":false }, "other-filter-regex":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":1275, "partition-visibility":"shared", "description":"Regex Expression", "optional":true }, "byte-offset-filter":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":1275, "partition-visibility":"shared", "description":"Filter Expression using Berkeley Packet Filter syntax", "optional":true }, "other-filter-unmatched":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"action taken when it does not match", "optional":true }, "other-filter-action":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'blacklist-src': Also blacklist the source when action is taken; 'whitelist-src': Whitelist the source after filter passes, packets are dropped until then; 'count-only': Take no action and continue processing the next filter; ", "enum":[ "blacklist-src", "whitelist-src", "count-only" ], "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 } }, "required":[ "other-filter-seq" ] } ] } }, "required":[ "name" ] } ] }, "icmp-v4-list":{ "type":"array", "minItems":1, "items":{ "type":"icmp-v4" }, "uniqueItems":true, "$ref":"/axapi/v3/ddos/template/icmp-v4/{icmp-tmpl-name}", "array":[ { "properties":{ "icmp-tmpl-name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "description":"DDOS ICMPv4 Template Name", "optional":false }, "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 }, "type-list":{ "type":"array", "minItems":1, "items":{ "type":"type" }, "uniqueItems":true, "$ref":"/axapi/v3/ddos/template/icmp-v4/{icmp-tmpl-name}/type/{type-number}", "array":[ { "properties":{ "type-number":{ "type":"number", "format":"number", "minimum":0, "maximum":255, "partition-visibility":"shared", "description":"Specify ICMP type number", "optional":false }, "type-deny":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not-list":[ "type-rate", "code-other-rate" ], "description":"Reject this ICMP type", "optional":true }, "type-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "not":"type-deny", "description":"Specify the whole rate with this type", "optional":true }, "code":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "code-number":{ "type":"number", "format":"number", "minimum":0, "maximum":255, "partition-visibility":"shared", "description":"Specify the ICMP code" }, "code-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "description":"Specify the rate with the code" } } } ] }, "code-other":{ "type":"object", "properties":{ "code-other-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "not":"type-deny", "description":"Specify rate with other code" } } }, "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":[ "type-number" ] } ] }, "type-other":{ "type":"object", "$ref":"/axapi/v3/ddos/template/icmp-v4/{icmp-tmpl-name}/type-other", "properties":{ "type-other-deny":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not":"type-other-rate", "description":"Deny all other type" }, "type-other-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "not":"type-other-deny", "description":"Specify rate with other type" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } } }, "required":[ "icmp-tmpl-name" ] } ] }, "icmp-v6-list":{ "type":"array", "minItems":1, "items":{ "type":"icmp-v6" }, "uniqueItems":true, "$ref":"/axapi/v3/ddos/template/icmp-v6/{icmp-tmpl-name}", "array":[ { "properties":{ "icmp-tmpl-name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "description":"DDOS ICMPv6 Template Name", "optional":false }, "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 }, "type-list":{ "type":"array", "minItems":1, "items":{ "type":"type" }, "uniqueItems":true, "$ref":"/axapi/v3/ddos/template/icmp-v6/{icmp-tmpl-name}/type/{type-number}", "array":[ { "properties":{ "type-number":{ "type":"number", "format":"number", "minimum":0, "maximum":255, "partition-visibility":"shared", "description":"Specify ICMP type number", "optional":false }, "type-deny":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not-list":[ "type-rate", "code-other-rate" ], "description":"Reject this ICMP type", "optional":true }, "type-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "not":"type-deny", "description":"Specify the whole rate with this type", "optional":true }, "code":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "code-number":{ "type":"number", "format":"number", "minimum":0, "maximum":255, "partition-visibility":"shared", "description":"Specify the ICMP code" }, "code-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "description":"Specify the rate with the code" } } } ] }, "code-other":{ "type":"object", "properties":{ "code-other-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "not":"type-deny", "description":"Specify rate with other code" } } }, "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":[ "type-number" ] } ] }, "type-other":{ "type":"object", "$ref":"/axapi/v3/ddos/template/icmp-v6/{icmp-tmpl-name}/type-other", "properties":{ "type-other-deny":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not":"type-other-rate", "description":"Deny all other type" }, "type-other-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "not":"type-other-deny", "description":"Specify rate with other type" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } } }, "required":[ "icmp-tmpl-name" ] } ] }, "logging-list":{ "type":"array", "minItems":1, "items":{ "type":"logging" }, "uniqueItems":true, "$ref":"/axapi/v3/ddos/template/logging/{logging-tmpl-name}", "array":[ { "properties":{ "logging-tmpl-name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "default":"default", "partition-visibility":"shared", "description":"DDOS Logging Template Name", "optional":false }, "log-format-cef":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Log in CEF format", "optional":true }, "use-obj-name":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Show obj name instead of ip in the log", "optional":true }, "log-format-custom":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":512, "partition-visibility":"shared", "description":"Customize log format", "optional":true }, "enable-action-logging":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Log action taken", "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 } }, "required":[ "logging-tmpl-name" ] } ] }, "sip-list":{ "type":"array", "minItems":1, "items":{ "type":"sip" }, "uniqueItems":true, "$ref":"/axapi/v3/ddos/template/sip/{sip-tmpl-name}", "array":[ { "properties":{ "sip-tmpl-name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "description":"DDOS SIP Template Name", "optional":false }, "idle-timeout":{ "type":"number", "format":"number", "minimum":1, "maximum":63, "partition-visibility":"shared", "description":"Set the the idle timeout value for sip-tcp connections", "optional":true }, "ignore-zero-payload":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Don't reset idle timer on packets with zero payload length from clients", "optional":true }, "action":{ "type":"string", "format":"enum", "default":"drop", "partition-visibility":"shared", "description":"'drop': Drop packets for sip connection; 'reset': Send RST for sip-tcp connection; ", "enum":[ "drop", "reset" ], "optional":true }, "multi-pu-threshold-distribution":{ "type":"object", "properties":{ "multi-pu-threshold-distribution-value":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared", "not":"multi-pu-threshold-distribution-disable", "description":"Destination side rate limit only. Default: 0" }, "multi-pu-threshold-distribution-disable":{ "type":"string", "format":"enum", "partition-visibility":"shared", "not":"multi-pu-threshold-distribution-value", "description":"'disable': Destination side rate limit only. Default: Enable; ", "enum":[ "disable" ] } } }, "dst":{ "type":"object", "properties":{ "sip-request-rate-limit":{ "type":"object", "properties":{ "method":{ "type":"object", "properties":{ "invite-cfg":{ "type":"object", "properties":{ "dst-sip-invite-cfg-flag":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"INVITE method" }, "dst-sip-invite-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } }, "register-cfg":{ "type":"object", "properties":{ "dst-sip-register-cfg-flag":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"REGISTER method" }, "dst-sip-register-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } }, "options-cfg":{ "type":"object", "properties":{ "dst-sip-options-cfg-flag":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"OPTIONS method" }, "dst-sip-options-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } }, "bye-cfg":{ "type":"object", "properties":{ "dst-sip-bye-cfg-flag":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"BYE method" }, "dst-sip-bye-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } }, "subscribe-cfg":{ "type":"object", "properties":{ "dst-sip-subscribe-cfg-flag":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"SUBSCRIBE method" }, "dst-sip-subscribe-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } }, "notify-cfg":{ "type":"object", "properties":{ "dst-sip-notify-cfg-flag":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"NOTIFY method" }, "dst-sip-notify-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } }, "refer-cfg":{ "type":"object", "properties":{ "dst-sip-refer-cfg-flag":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"REFER method" }, "dst-sip-refer-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } }, "message-cfg":{ "type":"object", "properties":{ "dst-sip-message-cfg-flag":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"MESSAGE method" }, "dst-sip-message-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } }, "update-cfg":{ "type":"object", "properties":{ "dst-sip-update-cfg-flag":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"UPDATE method" }, "dst-sip-update-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } } } } } } } }, "src":{ "type":"object", "properties":{ "sip-request-rate-limit":{ "type":"object", "properties":{ "method":{ "type":"object", "properties":{ "invite-cfg":{ "type":"object", "properties":{ "src-sip-invite-cfg-flag":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"INVITE method" }, "src-sip-invite-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } }, "register-cfg":{ "type":"object", "properties":{ "src-sip-register-cfg-flag":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"REGISTER method" }, "src-sip-register-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } }, "options-cfg":{ "type":"object", "properties":{ "src-sip-options-cfg-flag":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"OPTIONS method" }, "src-sip-options-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } }, "bye-cfg":{ "type":"object", "properties":{ "src-sip-bye-cfg-flag":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"BYE method" }, "src-sip-bye-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } }, "subscribe-cfg":{ "type":"object", "properties":{ "src-sip-subscribe-cfg-flag":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"SUBSCRIBE method" }, "src-sip-subscribe-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } }, "notify-cfg":{ "type":"object", "properties":{ "src-sip-notify-cfg-flag":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"NOTIFY method" }, "src-sip-notify-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } }, "refer-cfg":{ "type":"object", "properties":{ "src-sip-refer-cfg-flag":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"REFER method" }, "src-sip-refer-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } }, "message-cfg":{ "type":"object", "properties":{ "src-sip-message-cfg-flag":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"MESSAGE method" }, "src-sip-message-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } }, "update-cfg":{ "type":"object", "properties":{ "src-sip-update-cfg-flag":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"UPDATE method" }, "src-sip-update-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":16000000, "partition-visibility":"shared" } } } } } } } } }, "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 }, "malformed-sip":{ "type":"object", "$ref":"/axapi/v3/ddos/template/sip/{sip-tmpl-name}/malformed-sip", "properties":{ "malformed-sip-check":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'enable-check': Enable malformed SIP parameters; ", "enum":[ "enable-check" ] }, "malformed-sip-max-line-size":{ "type":"number", "format":"number", "minimum":1, "maximum":32511, "default":32511, "partition-visibility":"shared", "description":"Set the maximum line size. Default value is 32511" }, "malformed-sip-max-uri-length":{ "type":"number", "format":"number", "minimum":1, "maximum":32511, "default":32511, "partition-visibility":"shared", "description":"Set the maximum uri size. Default value is 32511" }, "malformed-sip-max-header-name-length":{ "type":"number", "format":"number", "minimum":1, "maximum":63, "default":63, "partition-visibility":"shared", "description":"Set the maximum header name length. Default value is 63" }, "malformed-sip-max-header-value-length":{ "type":"number", "format":"number", "minimum":1, "maximum":32511, "default":32511, "partition-visibility":"shared", "description":"Set the maximum header value length. Default value is 32511" }, "malformed-sip-call-id-max-length":{ "type":"number", "format":"number", "minimum":1, "maximum":32511, "default":32511, "partition-visibility":"shared", "description":"Set the maximum call-id length. Default value is 32511" }, "malformed-sip-sdp-max-length":{ "type":"number", "format":"number", "minimum":1, "maximum":32511, "default":32511, "partition-visibility":"shared", "description":"Set the maxinum SDP content length. Default value is 32511" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } }, "filter-header-list":{ "type":"array", "minItems":1, "items":{ "type":"filter-header" }, "uniqueItems":true, "$ref":"/axapi/v3/ddos/template/sip/{sip-tmpl-name}/filter-header/{sip-filter-header-seq}", "array":[ { "properties":{ "sip-filter-header-seq":{ "type":"number", "format":"number", "minimum":1, "maximum":5, "partition-visibility":"shared", "description":"Sequence number", "optional":false }, "sip-filter-header-regex":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":1275, "partition-visibility":"shared", "description":"Regex Expression", "optional":true }, "sip-filter-header-unmatched":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"action taken when it does not match", "optional":true }, "sip-filter-header-blacklist":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Also blacklist the source when action is taken", "optional":true }, "sip-filter-header-whitelist":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Whitelist the source after filter passes, packets are dropped until then", "optional":true }, "sip-filter-header-count-only":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Take no action and continue processing the next filter", "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 } }, "required":[ "sip-filter-header-seq" ] } ] } }, "required":[ "sip-tmpl-name" ] } ] } } }