{ "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/Document", "definitions": { "Descriptor": { "required": [ "name", "version" ], "properties": { "name": { "type": "string" }, "version": { "type": "string" } }, "additionalProperties": false, "type": "object" }, "Distribution": { "required": [ "name", "version", "idLike" ], "properties": { "name": { "type": "string" }, "version": { "type": "string" }, "idLike": { "type": "string" } }, "additionalProperties": false, "type": "object" }, "Document": { "required": [ "artifacts", "source", "distro", "descriptor" ], "properties": { "artifacts": { "items": { "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/Package" }, "type": "array" }, "source": { "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/Source" }, "distro": { "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/Distribution" }, "descriptor": { "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/Descriptor" } }, "additionalProperties": false, "type": "object" }, "Location": { "required": [ "path" ], "properties": { "path": { "type": "string" }, "layerID": { "type": "string" } }, "additionalProperties": false, "type": "object" }, "Package": { "required": [ "name", "version", "type", "foundBy", "locations", "licenses", "language", "cpes", "purl", "metadataType" ], "properties": { "name": { "type": "string" }, "version": { "type": "string" }, "type": { "type": "string" }, "foundBy": { "type": "string" }, "locations": { "items": { "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/Location" }, "type": "array" }, "licenses": { "items": { "type": "string" }, "type": "array" }, "language": { "type": "string" }, "cpes": { "items": { "type": "string" }, "type": "array" }, "purl": { "type": "string" }, "metadataType": { "type": "string" }, "metadata": { "additionalProperties": true } }, "additionalProperties": false, "type": "object" }, "Source": { "required": [ "type", "target" ], "properties": { "type": { "type": "string" }, "target": { "additionalProperties": true } }, "additionalProperties": false, "type": "object" } } }