{ "id":"/axapi/v3/flowspec/{name}", "type":"object", "node-type":"list", "title":"flowspec", "description":"Configure Flowspec", "properties":{ "name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":64, "description":"Flowspec name", "optional":false }, "flowspec-action":{ "type":"string", "format":"enum", "description":"'deny': Drop all traffic; 'rate': Apply rate for this class of traffic; ", "enum":[ "deny", "rate" ], "optional":true }, "rate-limit":{ "type":"number", "format":"number", "minimum":1, "maximum":1000000, "description":"Apply rate for this class of traffic", "optional":true }, "src-addr-type":{ "type":"string", "format":"enum", "description":"'ip': IPv4 Address; 'ipv6': IPv6 Address; ", "enum":[ "ip", "ipv6" ], "optional":true }, "src-ip-host":{ "type":"string", "format":"ipv4-address", "not":"src-ip-subnet", "description":"IPv4 host address", "optional":true }, "src-ip-subnet":{ "type":"string", "format":"ipv4-cidr", "not":"src-ip-host", "description":"IPv4 Subnet address", "optional":true }, "src-ipv6-host":{ "type":"string", "format":"ipv6-address", "not":"src-ipv6-subnet", "description":"IPv6 host address", "optional":true }, "src-ipv6-subnet":{ "type":"string", "format":"ipv6-address-plen", "not":"src-ipv6-host", "description":"IPv6 Subnet address", "optional":true }, "dest-addr-type":{ "type":"string", "format":"enum", "description":"'ip': IPv4 Address; 'ipv6': IPv6 Address; ", "enum":[ "ip", "ipv6" ], "optional":true }, "dest-ip-host":{ "type":"string", "format":"ipv4-address", "not":"dest-ip-subnet", "description":"IPv4 host address", "optional":true }, "dest-ip-subnet":{ "type":"string", "format":"ipv4-cidr", "not":"dest-ip-host", "description":"IPv4 Subnet address", "optional":true }, "dest-ipv6-host":{ "type":"string", "format":"ipv6-address", "not":"dest-ipv6-subnet", "description":"IPv6 host address", "optional":true }, "dest-ipv6-subnet":{ "type":"string", "format":"ipv6-address-plen", "not":"dest-ipv6-host", "description":"IPv6 Subnet address", "optional":true }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "modify-not-allowed":1, "description":"uuid of the object", "optional":true }, "user-tag":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "description":"Customized tag", "optional":true }, "source-port-list":{ "type":"array", "minItems":1, "items":{ "type":"source-port" }, "uniqueItems":true, "$ref":"/axapi/v3/flowspec/{name}/source-port/{port-attribute}+{port-num}", "array":[ { "properties":{ "port-attribute":{ "type":"string", "format":"enum", "description":"'eq': Match only packets on a given source port; 'gt': Match only packets with a greater port number; 'lt': Match only packets with a lower port number; 'range': match only packets in the range of port numbers; ", "enum":[ "eq", "gt", "lt", "range" ], "optional":false }, "port-num":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "description":"Specify the port number", "optional":false }, "port-num-end":{ "type":"number", "format":"number", "minimum":2, "maximum":65535, "description":"Specify the port number", "optional":true }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "modify-not-allowed":1, "description":"uuid of the object", "optional":true } }, "required":[ "port-attribute", "port-num" ] } ] }, "destination-port-list":{ "type":"array", "minItems":1, "items":{ "type":"destination-port" }, "uniqueItems":true, "$ref":"/axapi/v3/flowspec/{name}/destination-port/{port-attribute}+{port-num}", "array":[ { "properties":{ "port-attribute":{ "type":"string", "format":"enum", "description":"'eq': Match only packets on a given destination port; 'gt': Match only packets with a greater port number; 'lt': Match only packets with a lower port number; 'range': match only packets in the range of port numbers; ", "enum":[ "eq", "gt", "lt", "range" ], "optional":false }, "port-num":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "description":"Specify the port number", "optional":false }, "port-num-end":{ "type":"number", "format":"number", "minimum":2, "maximum":65535, "description":"Specify the port number", "optional":true }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "modify-not-allowed":1, "description":"uuid of the object", "optional":true } }, "required":[ "port-attribute", "port-num" ] } ] }, "port-list":{ "type":"array", "minItems":1, "items":{ "type":"port" }, "uniqueItems":true, "$ref":"/axapi/v3/flowspec/{name}/port/{port-attribute}+{port-num}", "array":[ { "properties":{ "port-attribute":{ "type":"string", "format":"enum", "description":"'eq': Match only packets on a given port; 'gt': Match only packets with a greater port number; 'lt': Match only packets with a lower port number; 'range': match only packets in the range of port numbers; ", "enum":[ "eq", "gt", "lt", "range" ], "optional":false }, "port-num":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "description":"Specify the port number", "optional":false }, "port-num-end":{ "type":"number", "format":"number", "minimum":2, "maximum":65535, "description":"Specify the port number", "optional":true }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "modify-not-allowed":1, "description":"uuid of the object", "optional":true } }, "required":[ "port-attribute", "port-num" ] } ] }, "protocol-list":{ "type":"array", "minItems":1, "items":{ "type":"protocol" }, "uniqueItems":true, "$ref":"/axapi/v3/flowspec/{name}/protocol/{proto-attribute}+{proto-num}", "array":[ { "properties":{ "proto-attribute":{ "type":"string", "format":"enum", "description":"'eq': Match only packets on a given protocol; 'gt': Match only packets with a greater protocol number; 'lt': Match only packets with a lower protocol number; 'range': match only packets in the range of protocol numbers; ", "enum":[ "eq", "gt", "lt", "range" ], "optional":false }, "proto-num":{ "type":"number", "format":"number", "minimum":1, "maximum":255, "description":"Specify the protocol number(6 for TCP and 17 for UDP)", "optional":false }, "proto-num-end":{ "type":"number", "format":"number", "minimum":2, "maximum":255, "description":"Specify the protocol number", "optional":true }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "modify-not-allowed":1, "description":"uuid of the object", "optional":true } }, "required":[ "proto-attribute", "proto-num" ] } ] }, "fragmentation-option-list":{ "type":"array", "minItems":1, "items":{ "type":"fragmentation-option" }, "uniqueItems":true, "$ref":"/axapi/v3/flowspec/{name}/fragmentation-option/{frag-attribute}", "array":[ { "properties":{ "frag-attribute":{ "type":"string", "format":"enum", "description":"'is-fragment': Is fragmented packet; 'first-fragment': Is the first fragment packet; 'last-fragment': Is the last fragment; 'dont-fragment': Is DF bit set; ", "enum":[ "is-fragment", "first-fragment", "last-fragment", "dont-fragment" ], "optional":false }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "modify-not-allowed":1, "description":"uuid of the object", "optional":true } }, "required":[ "frag-attribute" ] } ] }, "operational-mode":{ "type":"object", "$ref":"/axapi/v3/flowspec/{name}/operational-mode", "properties":{ "mode":{ "type":"string", "format":"enum", "default":"disabled", "description":"'enabled': Enable the flowspec and send the prefix to BGP; 'disabled': Disable the flowspec and remove the prefix from BGP; ", "enum":[ "enabled", "disabled" ] }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "modify-not-allowed":1, "description":"uuid of the object" } } } }, "object-keys":[ "name" ], "required":[ "name" ] }