{ "id": "http://netfilter.org/nftables/ruleset-schema", "$schema": "http://json-schema.org/draft-06/schema#", "description": "schema for an nftables ruleset dump", "type": "array", "minitems": 0, "items": { "type": "object", "required": [ "name", "family" ], "properties": { "name": { "type": "string" }, "family": { "type": "string" }, "sets": { "$ref": "#/definitions/sets" }, "chains": { "$ref": "#/definitions/chains" } } }, "uniqueItems": true, "definitions": { "expression": { "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string" }, "name": { "type": "string" }, "field": { "type": "string" }, "val": { "oneOf": [ { "type": "string" }, { "type": "integer" } ] } } }, "set": { "type": "object", "required": [ "name", "type" ], "properties": { "name": { "type": "string" }, "type": { "type": "string" }, "elements": { "type": "array", "minitems": 0, "items": { "type": "string" } } } }, "sets": { "type": "array", "minitems": 0, "items": { "$ref": "#/definitions/set" }, "uniqueItems": true }, "statement": { "type": "object", "oneOf": [{ "required": [ "match" ], "properties": { "match": { "type": "object", "required": [ "left", "right" ], "properties": { "left": { "$ref": "#/definitions/expression" }, "op": { "enum": [ "EQ", "NEQ", "LT", "GT", "GTE", "LTE" ] }, "right": { "$ref": "#/definitions/expression" } } } } }, { "required": [ "accept" ], "properties": { "accept": { "type": "string" } } }, { "required": [ "drop" ], "properties": { "drop": { "type": "string" } } }, { "required": [ "reject" ], "properties": { "reject": { "type": "string" } } }, { "required": [ "jump" ], "properties": { "jump": { "type": "string" } } }] }, "statements": { "type": "array", "minitems": 0, "items": { "$ref": "#/definitions/statement" } }, "rule": { "type": "object", "required": [ "handle" ], "properties": { "handle": { "type": "integer", "minimum": 1 }, "statements": { "$ref": "#/definitions/statements" } } }, "rules": { "type": "array", "minitems": 0, "items": { "$ref": "#/definitions/rule" } }, "chain": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string" }, "type": { "type": "string" }, "hook": { "type": "string" }, "priority": { "type": "integer", "minimum": -1000, "maximum": 1000 }, "policy": { "type": "string" }, "rules": { "$ref": "#/definitions/rules" } } }, "chains": { "type": "array", "minitems": 0, "items": { "$ref": "#/definitions/chain" }, "uniqueItems": true } } }