{ "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/Document", "definitions": { "ApkFileRecord": { "required": [ "path" ], "properties": { "path": { "type": "string" }, "ownerUid": { "type": "string" }, "ownerGid": { "type": "string" }, "permissions": { "type": "string" }, "checksum": { "type": "string" } }, "additionalProperties": true, "type": "object" }, "ApkMetadata": { "required": [ "package", "originPackage", "maintainer", "version", "license", "architecture", "url", "description", "size", "installedSize", "pullDependencies", "pullChecksum", "gitCommitOfApkPort", "files" ], "properties": { "package": { "type": "string" }, "originPackage": { "type": "string" }, "maintainer": { "type": "string" }, "version": { "type": "string" }, "license": { "type": "string" }, "architecture": { "type": "string" }, "url": { "type": "string" }, "description": { "type": "string" }, "size": { "type": "integer" }, "installedSize": { "type": "integer" }, "pullDependencies": { "type": "string" }, "pullChecksum": { "type": "string" }, "gitCommitOfApkPort": { "type": "string" }, "files": { "items": { "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/ApkFileRecord" }, "type": "array" } }, "additionalProperties": true, "type": "object" }, "CargoPackageMetadata": { "required": [ "name", "version", "source", "checksum", "dependencies" ], "properties": { "name": { "type": "string" }, "version": { "type": "string" }, "source": { "type": "string" }, "checksum": { "type": "string" }, "dependencies": { "items": { "type": "string" }, "type": "array" } }, "additionalProperties": true, "type": "object" }, "Descriptor": { "required": [ "name", "version" ], "properties": { "name": { "type": "string" }, "version": { "type": "string" }, "configuration": { "additionalProperties": true } }, "additionalProperties": true, "type": "object" }, "Digest": { "required": [ "algorithm", "value" ], "properties": { "algorithm": { "type": "string" }, "value": { "type": "string" } }, "additionalProperties": true, "type": "object" }, "Distribution": { "required": [ "name", "version", "idLike" ], "properties": { "name": { "type": "string" }, "version": { "type": "string" }, "idLike": { "type": "string" } }, "additionalProperties": true, "type": "object" }, "Document": { "required": [ "artifacts", "artifactRelationships", "source", "distro", "descriptor", "schema" ], "properties": { "fileMetadata": { "items": { "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/FileMetadata" }, "type": "array" }, "artifacts": { "items": { "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/Package" }, "type": "array" }, "artifactRelationships": { "items": { "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/Relationship" }, "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" }, "schema": { "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/Schema" }, "artifacts.metadata": { "anyOf": [ { "type": "null" }, { "$ref": "#/definitions/ApkMetadata" }, { "$ref": "#/definitions/CargoPackageMetadata" }, { "$ref": "#/definitions/DpkgMetadata" }, { "$ref": "#/definitions/GemMetadata" }, { "$ref": "#/definitions/JavaMetadata" }, { "$ref": "#/definitions/NpmPackageJSONMetadata" }, { "$ref": "#/definitions/PythonPackageMetadata" }, { "$ref": "#/definitions/RpmdbMetadata" } ] } }, "additionalProperties": true, "type": "object" }, "DpkgFileRecord": { "required": [ "path", "md5" ], "properties": { "path": { "type": "string" }, "md5": { "type": "string" } }, "additionalProperties": true, "type": "object" }, "DpkgMetadata": { "required": [ "package", "source", "version", "sourceVersion", "architecture", "maintainer", "installedSize", "files" ], "properties": { "package": { "type": "string" }, "source": { "type": "string" }, "version": { "type": "string" }, "sourceVersion": { "type": "string" }, "architecture": { "type": "string" }, "maintainer": { "type": "string" }, "installedSize": { "type": "integer" }, "files": { "items": { "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/DpkgFileRecord" }, "type": "array" } }, "additionalProperties": true, "type": "object" }, "FileMetadata": { "required": [ "location", "metadata" ], "properties": { "location": { "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/Location" }, "metadata": { "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/FileMetadataEntry" } }, "additionalProperties": true, "type": "object" }, "FileMetadataEntry": { "required": [ "mode", "type", "userID", "groupID" ], "properties": { "mode": { "type": "integer" }, "type": { "type": "string" }, "linkDestination": { "type": "string" }, "userID": { "type": "integer" }, "groupID": { "type": "integer" }, "digests": { "items": { "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/Digest" }, "type": "array" } }, "additionalProperties": true, "type": "object" }, "GemMetadata": { "required": [ "name", "version" ], "properties": { "name": { "type": "string" }, "version": { "type": "string" }, "files": { "items": { "type": "string" }, "type": "array" }, "authors": { "items": { "type": "string" }, "type": "array" }, "licenses": { "items": { "type": "string" }, "type": "array" }, "homepage": { "type": "string" } }, "additionalProperties": true, "type": "object" }, "JavaManifest": { "properties": { "main": { "patternProperties": { ".*": { "type": "string" } }, "type": "object" }, "namedSections": { "patternProperties": { ".*": { "patternProperties": { ".*": { "type": "string" } }, "type": "object" } }, "type": "object" } }, "additionalProperties": true, "type": "object" }, "JavaMetadata": { "required": [ "virtualPath" ], "properties": { "virtualPath": { "type": "string" }, "manifest": { "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/JavaManifest" }, "pomProperties": { "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/PomProperties" } }, "additionalProperties": true, "type": "object" }, "Location": { "required": [ "path" ], "properties": { "path": { "type": "string" }, "layerID": { "type": "string" } }, "additionalProperties": true, "type": "object" }, "NpmPackageJSONMetadata": { "required": [ "author", "licenses", "homepage", "description", "url" ], "properties": { "files": { "items": { "type": "string" }, "type": "array" }, "author": { "type": "string" }, "licenses": { "items": { "type": "string" }, "type": "array" }, "homepage": { "type": "string" }, "description": { "type": "string" }, "url": { "type": "string" } }, "additionalProperties": true, "type": "object" }, "Package": { "required": [ "id", "name", "version", "type", "foundBy", "locations", "licenses", "language", "cpes", "purl", "metadataType", "metadata" ], "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "version": { "type": "string" }, "type": { "type": "string" }, "foundBy": { "type": "string" }, "locations": { "items": { "$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": true, "type": "object" }, "PomProperties": { "required": [ "path", "name", "groupId", "artifactId", "version", "extraFields" ], "properties": { "path": { "type": "string" }, "name": { "type": "string" }, "groupId": { "type": "string" }, "artifactId": { "type": "string" }, "version": { "type": "string" }, "extraFields": { "patternProperties": { ".*": { "type": "string" } }, "type": "object" } }, "additionalProperties": true, "type": "object" }, "PythonFileDigest": { "required": [ "algorithm", "value" ], "properties": { "algorithm": { "type": "string" }, "value": { "type": "string" } }, "additionalProperties": true, "type": "object" }, "PythonFileRecord": { "required": [ "path" ], "properties": { "path": { "type": "string" }, "digest": { "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/PythonFileDigest" }, "size": { "type": "string" } }, "additionalProperties": true, "type": "object" }, "PythonPackageMetadata": { "required": [ "name", "version", "license", "author", "authorEmail", "platform", "sitePackagesRootPath" ], "properties": { "name": { "type": "string" }, "version": { "type": "string" }, "license": { "type": "string" }, "author": { "type": "string" }, "authorEmail": { "type": "string" }, "platform": { "type": "string" }, "files": { "items": { "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/PythonFileRecord" }, "type": "array" }, "sitePackagesRootPath": { "type": "string" }, "topLevelPackages": { "items": { "type": "string" }, "type": "array" } }, "additionalProperties": true, "type": "object" }, "Relationship": { "required": [ "parent", "child", "type", "metadata" ], "properties": { "parent": { "type": "string" }, "child": { "type": "string" }, "type": { "type": "string" }, "metadata": { "additionalProperties": true } }, "additionalProperties": true, "type": "object" }, "RpmdbFileRecord": { "required": [ "path", "mode", "size", "sha256" ], "properties": { "path": { "type": "string" }, "mode": { "type": "integer" }, "size": { "type": "integer" }, "sha256": { "type": "string" } }, "additionalProperties": true, "type": "object" }, "RpmdbMetadata": { "required": [ "name", "version", "epoch", "architecture", "release", "sourceRpm", "size", "license", "vendor", "files" ], "properties": { "name": { "type": "string" }, "version": { "type": "string" }, "epoch": { "type": "integer" }, "architecture": { "type": "string" }, "release": { "type": "string" }, "sourceRpm": { "type": "string" }, "size": { "type": "integer" }, "license": { "type": "string" }, "vendor": { "type": "string" }, "files": { "items": { "$schema": "http://json-schema.org/draft-04/schema#", "$ref": "#/definitions/RpmdbFileRecord" }, "type": "array" } }, "additionalProperties": true, "type": "object" }, "Schema": { "required": [ "version", "url" ], "properties": { "version": { "type": "string" }, "url": { "type": "string" } }, "additionalProperties": true, "type": "object" }, "Source": { "required": [ "type", "target" ], "properties": { "type": { "type": "string" }, "target": { "additionalProperties": true } }, "additionalProperties": true, "type": "object" } } }