{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "name",
    "createdAt",
    "updatedAt",
    "version",
    "packageType",
    "project",
    "tags",
    "pipelines",
    "versions",
    "metadata",
    "status"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "createdAt": {
      "type": "string"
    },
    "updatedAt": {
      "type": "string"
    },
    "version": {
      "type": ["string", "null"]
    },
    "packageType": {
      "type": ["string"],
      "enum": [
        "MAVEN",
        "NPM",
        "CONAN",
        "NUGET",
        "PYPI",
        "COMPOSER",
        "GENERIC",
        "GOLANG",
        "RUBYGEMS",
        "DEBIAN"
      ]
    },
    "tags": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "pageInfo": { "type": "object" },
        "edges": { "type": "array" },
        "nodes": { "type": "array" }
      }
    },
    "project": {
      "type": "object"
    },
    "pipelines": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "pageInfo": { "type": "object" },
        "count": { "type": "integer" },
        "edges": { "type": "array" },
        "nodes": { "type": "array" }
      }
    },
    "versions": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "pageInfo": { "type": "object" },
        "edges": { "type": "array" },
        "nodes": { "type": "array" }
      }
    },
    "metadata": {
      "anyOf": [
        { "$ref": "./package_composer_metadata.json" },
        { "$ref": "./package_conan_metadata.json" },
        { "$ref": "./package_maven_metadata.json" },
        { "$ref": "./package_nuget_metadata.json" },
        { "$ref": "./package_pypi_metadata.json" },
        { "type": "null" }
      ]
    },
    "packageFiles": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "pageInfo": { "type": "object" },
        "edges": { "type": "array" },
        "nodes": { "type": "array" }
      }
    },
    "status": {
      "type": ["string"],
      "enum": ["DEFAULT", "HIDDEN", "PROCESSING", "ERROR"]
    }
  }
}