{ "type": "object", "description": "The schema for vulnerability finding details", "additionalProperties": false, "patternProperties": { "^.*$": { "allOf": [ { "$ref": "#/definitions/named_field" }, { "$ref": "#/definitions/type_list" } ] } }, "definitions": { "type_list": { "oneOf": [ { "$ref": "#/definitions/named_list" }, { "$ref": "#/definitions/list" }, { "$ref": "#/definitions/table" }, { "$ref": "#/definitions/text" }, { "$ref": "#/definitions/url" }, { "$ref": "#/definitions/code" }, { "$ref": "#/definitions/int" }, { "$ref": "#/definitions/commit" }, { "$ref": "#/definitions/file_location" }, { "$ref": "#/definitions/module_location" } ] }, "lang_text": { "type": "object", "required": [ "value", "lang" ], "properties": { "lang": { "type": "string" }, "value": { "type": "string" } } }, "lang_text_list": { "type": "array", "items": { "$ref": "#/definitions/lang_text" } }, "named_field": { "type": "object", "required": [ "name" ], "properties": { "name": { "$ref": "#/definitions/lang_text_list" }, "description": { "$ref": "#/definitions/lang_text_list" } } }, "named_list": { "type": "object", "description": "An object with named and typed fields", "required": [ "type", "items" ], "properties": { "type": { "const": "named-list" }, "items": { "type": "object", "patternProperties": { "^.*$": { "allOf": [ { "$ref": "#/definitions/named_field" }, { "$ref": "#/definitions/type_list" } ] } } } } }, "list": { "type": "object", "description": "A list of typed fields", "required": [ "type", "items" ], "properties": { "type": { "const": "list" }, "items": { "type": "array", "items": { "$ref": "#/definitions/type_list" } } } }, "table": { "type": "object", "description": "A table of typed fields", "required": [], "properties": { "type": { "const": "table" }, "items": { "type": "object", "properties": { "header": { "type": "array", "items": { "$ref": "#/definitions/type_list" } }, "rows": { "type": "array", "items": { "type": "array", "items": { "$ref": "#/definitions/type_list" } } } } } } }, "text": { "type": "object", "description": "Raw text", "required": [ "type", "value" ], "properties": { "type": { "const": "text" }, "value": { "$ref": "#/definitions/lang_text_list" } } }, "url": { "type": "object", "description": "A single URL", "required": [ "type", "href" ], "properties": { "type": { "const": "url" }, "text": { "$ref": "#/definitions/lang_text_list" }, "href": { "type": "string" } } }, "code": { "type": "object", "description": "A codeblock", "required": [ "type", "value" ], "properties": { "type": { "const": "code" }, "value": { "type": "string" }, "lang": { "type": "string" } } }, "int": { "type": "object", "description": "An integer", "required": [ "type", "value" ], "properties": { "type": { "const": "int" }, "value": { "type": "integer" }, "format": { "type": "string", "enum": [ "default", "hex" ] } } }, "commit": { "type": "object", "description": "A specific commit within the project", "required": [ "type", "value" ], "properties": { "type": { "const": "commit" }, "value": { "type": "string", "description": "The commit SHA" } } }, "file_location": { "type": "object", "description": "A location within a file in the project", "required": [ "type", "file_name", "line_start" ], "properties": { "type": { "const": "file-location" }, "file_name": { "type": "string" }, "line_start": { "type": "integer" }, "line_end": { "type": "integer" } } }, "module_location": { "type": "object", "description": "A location within a binary module of the form module+relative_offset", "required": [ "type", "module_name", "offset" ], "properties": { "type": { "const": "module-location" }, "module_name": { "type": "string" }, "offset": { "type": "integer" } } } } }