{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/anchore/syft/syft/formats/syftjson/model/document",
  "$ref": "#/$defs/Document",
  "$defs": {
    "AlpmFileRecord": {
      "properties": {
        "path": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "uid": {
          "type": "string"
        },
        "gid": {
          "type": "string"
        },
        "time": {
          "type": "string",
          "format": "date-time"
        },
        "size": {
          "type": "string"
        },
        "link": {
          "type": "string"
        },
        "digest": {
          "items": {
            "$ref": "#/$defs/Digest"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "AlpmMetadata": {
      "properties": {
        "basepackage": {
          "type": "string"
        },
        "package": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "architecture": {
          "type": "string"
        },
        "size": {
          "type": "integer"
        },
        "packager": {
          "type": "string"
        },
        "license": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "validation": {
          "type": "string"
        },
        "reason": {
          "type": "integer"
        },
        "files": {
          "items": {
            "$ref": "#/$defs/AlpmFileRecord"
          },
          "type": "array"
        },
        "backup": {
          "items": {
            "$ref": "#/$defs/AlpmFileRecord"
          },
          "type": "array"
        }
      },
      "type": "object",
      "required": [
        "basepackage",
        "package",
        "version",
        "description",
        "architecture",
        "size",
        "packager",
        "license",
        "url",
        "validation",
        "reason",
        "files",
        "backup"
      ]
    },
    "ApkFileRecord": {
      "properties": {
        "path": {
          "type": "string"
        },
        "ownerUid": {
          "type": "string"
        },
        "ownerGid": {
          "type": "string"
        },
        "permissions": {
          "type": "string"
        },
        "digest": {
          "$ref": "#/$defs/Digest"
        }
      },
      "type": "object",
      "required": [
        "path"
      ]
    },
    "ApkMetadata": {
      "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": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "provides": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "pullChecksum": {
          "type": "string"
        },
        "gitCommitOfApkPort": {
          "type": "string"
        },
        "files": {
          "items": {
            "$ref": "#/$defs/ApkFileRecord"
          },
          "type": "array"
        }
      },
      "type": "object",
      "required": [
        "package",
        "originPackage",
        "maintainer",
        "version",
        "license",
        "architecture",
        "url",
        "description",
        "size",
        "installedSize",
        "pullDependencies",
        "provides",
        "pullChecksum",
        "gitCommitOfApkPort",
        "files"
      ]
    },
    "CargoPackageMetadata": {
      "properties": {
        "name": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "source": {
          "type": "string"
        },
        "checksum": {
          "type": "string"
        },
        "dependencies": {
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object",
      "required": [
        "name",
        "version",
        "source",
        "checksum",
        "dependencies"
      ]
    },
    "Classification": {
      "properties": {
        "class": {
          "type": "string"
        },
        "virtual_path": {
          "type": "string"
        },
        "metadata": {
          "patternProperties": {
            ".*": {
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object",
      "required": [
        "class",
        "virtual_path",
        "metadata"
      ]
    },
    "CocoapodsMetadata": {
      "properties": {
        "checksum": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "checksum"
      ]
    },
    "ConanLockMetadata": {
      "properties": {
        "ref": {
          "type": "string"
        },
        "package_id": {
          "type": "string"
        },
        "prev": {
          "type": "string"
        },
        "requires": {
          "type": "string"
        },
        "build_requires": {
          "type": "string"
        },
        "py_requires": {
          "type": "string"
        },
        "options": {
          "patternProperties": {
            ".*": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "path": {
          "type": "string"
        },
        "context": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "ref"
      ]
    },
    "ConanMetadata": {
      "properties": {
        "ref": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "ref"
      ]
    },
    "Coordinates": {
      "properties": {
        "path": {
          "type": "string"
        },
        "layerID": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "path"
      ]
    },
    "DartPubMetadata": {
      "properties": {
        "name": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "hosted_url": {
          "type": "string"
        },
        "vcs_url": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "name",
        "version"
      ]
    },
    "Descriptor": {
      "properties": {
        "name": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "configuration": true
      },
      "type": "object",
      "required": [
        "name",
        "version"
      ]
    },
    "Digest": {
      "properties": {
        "algorithm": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "algorithm",
        "value"
      ]
    },
    "Document": {
      "properties": {
        "artifacts": {
          "items": {
            "$ref": "#/$defs/Package"
          },
          "type": "array"
        },
        "artifactRelationships": {
          "items": {
            "$ref": "#/$defs/Relationship"
          },
          "type": "array"
        },
        "files": {
          "items": {
            "$ref": "#/$defs/File"
          },
          "type": "array"
        },
        "secrets": {
          "items": {
            "$ref": "#/$defs/Secrets"
          },
          "type": "array"
        },
        "source": {
          "$ref": "#/$defs/Source"
        },
        "distro": {
          "$ref": "#/$defs/LinuxRelease"
        },
        "descriptor": {
          "$ref": "#/$defs/Descriptor"
        },
        "schema": {
          "$ref": "#/$defs/Schema"
        }
      },
      "type": "object",
      "required": [
        "artifacts",
        "artifactRelationships",
        "source",
        "distro",
        "descriptor",
        "schema"
      ]
    },
    "DotnetDepsMetadata": {
      "properties": {
        "name": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "sha512": {
          "type": "string"
        },
        "hashPath": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "name",
        "version",
        "path",
        "sha512",
        "hashPath"
      ]
    },
    "DpkgFileRecord": {
      "properties": {
        "path": {
          "type": "string"
        },
        "digest": {
          "$ref": "#/$defs/Digest"
        },
        "isConfigFile": {
          "type": "boolean"
        }
      },
      "type": "object",
      "required": [
        "path",
        "isConfigFile"
      ]
    },
    "DpkgMetadata": {
      "properties": {
        "package": {
          "type": "string"
        },
        "source": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "sourceVersion": {
          "type": "string"
        },
        "architecture": {
          "type": "string"
        },
        "maintainer": {
          "type": "string"
        },
        "installedSize": {
          "type": "integer"
        },
        "files": {
          "items": {
            "$ref": "#/$defs/DpkgFileRecord"
          },
          "type": "array"
        }
      },
      "type": "object",
      "required": [
        "package",
        "source",
        "version",
        "sourceVersion",
        "architecture",
        "maintainer",
        "installedSize",
        "files"
      ]
    },
    "File": {
      "properties": {
        "id": {
          "type": "string"
        },
        "location": {
          "$ref": "#/$defs/Coordinates"
        },
        "metadata": {
          "$ref": "#/$defs/FileMetadataEntry"
        },
        "contents": {
          "type": "string"
        },
        "digests": {
          "items": {
            "$ref": "#/$defs/Digest"
          },
          "type": "array"
        },
        "classifications": {
          "items": {
            "$ref": "#/$defs/Classification"
          },
          "type": "array"
        }
      },
      "type": "object",
      "required": [
        "id",
        "location"
      ]
    },
    "FileMetadataEntry": {
      "properties": {
        "mode": {
          "type": "integer"
        },
        "type": {
          "type": "string"
        },
        "linkDestination": {
          "type": "string"
        },
        "userID": {
          "type": "integer"
        },
        "groupID": {
          "type": "integer"
        },
        "mimeType": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "mode",
        "type",
        "userID",
        "groupID",
        "mimeType"
      ]
    },
    "GemMetadata": {
      "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"
        }
      },
      "type": "object",
      "required": [
        "name",
        "version"
      ]
    },
    "GolangBinMetadata": {
      "properties": {
        "goBuildSettings": {
          "patternProperties": {
            ".*": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "goCompiledVersion": {
          "type": "string"
        },
        "architecture": {
          "type": "string"
        },
        "h1Digest": {
          "type": "string"
        },
        "mainModule": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "goCompiledVersion",
        "architecture"
      ]
    },
    "HackageMetadata": {
      "properties": {
        "name": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "pkgHash": {
          "type": "string"
        },
        "snapshotURL": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "name",
        "version"
      ]
    },
    "IDLikes": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "JavaManifest": {
      "properties": {
        "main": {
          "patternProperties": {
            ".*": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "namedSections": {
          "patternProperties": {
            ".*": {
              "patternProperties": {
                ".*": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    },
    "JavaMetadata": {
      "properties": {
        "virtualPath": {
          "type": "string"
        },
        "manifest": {
          "$ref": "#/$defs/JavaManifest"
        },
        "pomProperties": {
          "$ref": "#/$defs/PomProperties"
        },
        "pomProject": {
          "$ref": "#/$defs/PomProject"
        },
        "digest": {
          "items": {
            "$ref": "#/$defs/Digest"
          },
          "type": "array"
        }
      },
      "type": "object",
      "required": [
        "virtualPath"
      ]
    },
    "KbPackageMetadata": {
      "properties": {
        "product_id": {
          "type": "string"
        },
        "kb": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "product_id",
        "kb"
      ]
    },
    "LinuxRelease": {
      "properties": {
        "prettyName": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "idLike": {
          "$ref": "#/$defs/IDLikes"
        },
        "version": {
          "type": "string"
        },
        "versionID": {
          "type": "string"
        },
        "versionCodename": {
          "type": "string"
        },
        "buildID": {
          "type": "string"
        },
        "imageID": {
          "type": "string"
        },
        "imageVersion": {
          "type": "string"
        },
        "variant": {
          "type": "string"
        },
        "variantID": {
          "type": "string"
        },
        "homeURL": {
          "type": "string"
        },
        "supportURL": {
          "type": "string"
        },
        "bugReportURL": {
          "type": "string"
        },
        "privacyPolicyURL": {
          "type": "string"
        },
        "cpeName": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "NpmPackageJSONMetadata": {
      "properties": {
        "name": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "files": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "author": {
          "type": "string"
        },
        "licenses": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "homepage": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "private": {
          "type": "boolean"
        }
      },
      "type": "object",
      "required": [
        "name",
        "version",
        "author",
        "licenses",
        "homepage",
        "description",
        "url",
        "private"
      ]
    },
    "Package": {
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "foundBy": {
          "type": "string"
        },
        "locations": {
          "items": {
            "$ref": "#/$defs/Coordinates"
          },
          "type": "array"
        },
        "licenses": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "language": {
          "type": "string"
        },
        "cpes": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "purl": {
          "type": "string"
        },
        "metadataType": {
          "type": "string"
        },
        "metadata": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "$ref": "#/$defs/AlpmMetadata"
            },
            {
              "$ref": "#/$defs/ApkMetadata"
            },
            {
              "$ref": "#/$defs/CargoPackageMetadata"
            },
            {
              "$ref": "#/$defs/CocoapodsMetadata"
            },
            {
              "$ref": "#/$defs/ConanLockMetadata"
            },
            {
              "$ref": "#/$defs/ConanMetadata"
            },
            {
              "$ref": "#/$defs/DartPubMetadata"
            },
            {
              "$ref": "#/$defs/DotnetDepsMetadata"
            },
            {
              "$ref": "#/$defs/DpkgMetadata"
            },
            {
              "$ref": "#/$defs/GemMetadata"
            },
            {
              "$ref": "#/$defs/GolangBinMetadata"
            },
            {
              "$ref": "#/$defs/HackageMetadata"
            },
            {
              "$ref": "#/$defs/JavaMetadata"
            },
            {
              "$ref": "#/$defs/KbPackageMetadata"
            },
            {
              "$ref": "#/$defs/NpmPackageJSONMetadata"
            },
            {
              "$ref": "#/$defs/PhpComposerJSONMetadata"
            },
            {
              "$ref": "#/$defs/PortageMetadata"
            },
            {
              "$ref": "#/$defs/PythonPackageMetadata"
            },
            {
              "$ref": "#/$defs/RpmMetadata"
            }
          ]
        }
      },
      "type": "object",
      "required": [
        "id",
        "name",
        "version",
        "type",
        "foundBy",
        "locations",
        "licenses",
        "language",
        "cpes",
        "purl"
      ]
    },
    "PhpComposerAuthors": {
      "properties": {
        "name": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "homepage": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "PhpComposerExternalReference": {
      "properties": {
        "type": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "reference": {
          "type": "string"
        },
        "shasum": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "type",
        "url",
        "reference"
      ]
    },
    "PhpComposerJSONMetadata": {
      "properties": {
        "name": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "source": {
          "$ref": "#/$defs/PhpComposerExternalReference"
        },
        "dist": {
          "$ref": "#/$defs/PhpComposerExternalReference"
        },
        "require": {
          "patternProperties": {
            ".*": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "provide": {
          "patternProperties": {
            ".*": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "require-dev": {
          "patternProperties": {
            ".*": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "suggest": {
          "patternProperties": {
            ".*": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": {
          "type": "string"
        },
        "notification-url": {
          "type": "string"
        },
        "bin": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "license": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "authors": {
          "items": {
            "$ref": "#/$defs/PhpComposerAuthors"
          },
          "type": "array"
        },
        "description": {
          "type": "string"
        },
        "homepage": {
          "type": "string"
        },
        "keywords": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "time": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "name",
        "version",
        "source",
        "dist"
      ]
    },
    "PomParent": {
      "properties": {
        "groupId": {
          "type": "string"
        },
        "artifactId": {
          "type": "string"
        },
        "version": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "groupId",
        "artifactId",
        "version"
      ]
    },
    "PomProject": {
      "properties": {
        "path": {
          "type": "string"
        },
        "parent": {
          "$ref": "#/$defs/PomParent"
        },
        "groupId": {
          "type": "string"
        },
        "artifactId": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "url": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "path",
        "groupId",
        "artifactId",
        "version",
        "name"
      ]
    },
    "PomProperties": {
      "properties": {
        "path": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "groupId": {
          "type": "string"
        },
        "artifactId": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "extraFields": {
          "patternProperties": {
            ".*": {
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object",
      "required": [
        "path",
        "name",
        "groupId",
        "artifactId",
        "version"
      ]
    },
    "PortageFileRecord": {
      "properties": {
        "path": {
          "type": "string"
        },
        "digest": {
          "$ref": "#/$defs/Digest"
        }
      },
      "type": "object",
      "required": [
        "path"
      ]
    },
    "PortageMetadata": {
      "properties": {
        "installedSize": {
          "type": "integer"
        },
        "files": {
          "items": {
            "$ref": "#/$defs/PortageFileRecord"
          },
          "type": "array"
        }
      },
      "type": "object",
      "required": [
        "installedSize",
        "files"
      ]
    },
    "PythonDirectURLOriginInfo": {
      "properties": {
        "url": {
          "type": "string"
        },
        "commitId": {
          "type": "string"
        },
        "vcs": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "url"
      ]
    },
    "PythonFileDigest": {
      "properties": {
        "algorithm": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "algorithm",
        "value"
      ]
    },
    "PythonFileRecord": {
      "properties": {
        "path": {
          "type": "string"
        },
        "digest": {
          "$ref": "#/$defs/PythonFileDigest"
        },
        "size": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "path"
      ]
    },
    "PythonPackageMetadata": {
      "properties": {
        "name": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "license": {
          "type": "string"
        },
        "author": {
          "type": "string"
        },
        "authorEmail": {
          "type": "string"
        },
        "platform": {
          "type": "string"
        },
        "files": {
          "items": {
            "$ref": "#/$defs/PythonFileRecord"
          },
          "type": "array"
        },
        "sitePackagesRootPath": {
          "type": "string"
        },
        "topLevelPackages": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "directUrlOrigin": {
          "$ref": "#/$defs/PythonDirectURLOriginInfo"
        }
      },
      "type": "object",
      "required": [
        "name",
        "version",
        "license",
        "author",
        "authorEmail",
        "platform",
        "sitePackagesRootPath"
      ]
    },
    "Relationship": {
      "properties": {
        "parent": {
          "type": "string"
        },
        "child": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "metadata": true
      },
      "type": "object",
      "required": [
        "parent",
        "child",
        "type"
      ]
    },
    "RpmMetadata": {
      "properties": {
        "name": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "epoch": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        },
        "architecture": {
          "type": "string"
        },
        "release": {
          "type": "string"
        },
        "sourceRpm": {
          "type": "string"
        },
        "size": {
          "type": "integer"
        },
        "license": {
          "type": "string"
        },
        "vendor": {
          "type": "string"
        },
        "modularityLabel": {
          "type": "string"
        },
        "files": {
          "items": {
            "$ref": "#/$defs/RpmdbFileRecord"
          },
          "type": "array"
        }
      },
      "type": "object",
      "required": [
        "name",
        "version",
        "epoch",
        "architecture",
        "release",
        "sourceRpm",
        "size",
        "license",
        "vendor",
        "modularityLabel",
        "files"
      ]
    },
    "RpmdbFileRecord": {
      "properties": {
        "path": {
          "type": "string"
        },
        "mode": {
          "type": "integer"
        },
        "size": {
          "type": "integer"
        },
        "digest": {
          "$ref": "#/$defs/Digest"
        },
        "userName": {
          "type": "string"
        },
        "groupName": {
          "type": "string"
        },
        "flags": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "path",
        "mode",
        "size",
        "digest",
        "userName",
        "groupName",
        "flags"
      ]
    },
    "Schema": {
      "properties": {
        "version": {
          "type": "string"
        },
        "url": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "version",
        "url"
      ]
    },
    "SearchResult": {
      "properties": {
        "classification": {
          "type": "string"
        },
        "lineNumber": {
          "type": "integer"
        },
        "lineOffset": {
          "type": "integer"
        },
        "seekPosition": {
          "type": "integer"
        },
        "length": {
          "type": "integer"
        },
        "value": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "classification",
        "lineNumber",
        "lineOffset",
        "seekPosition",
        "length"
      ]
    },
    "Secrets": {
      "properties": {
        "location": {
          "$ref": "#/$defs/Coordinates"
        },
        "secrets": {
          "items": {
            "$ref": "#/$defs/SearchResult"
          },
          "type": "array"
        }
      },
      "type": "object",
      "required": [
        "location",
        "secrets"
      ]
    },
    "Source": {
      "properties": {
        "id": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "target": true
      },
      "type": "object",
      "required": [
        "id",
        "type",
        "target"
      ]
    }
  }
}
