Hex.pm · Schema

Hex.pm Release

Schema for a Hex.pm package release as returned by the API.

Package RegistryErlangElixirGleamBEAMOpen SourcePackage Manager

Properties

Name Type Description
version string Semantic version string.
checksum string SHA-256 checksum of the release tarball.
has_docs boolean Whether documentation has been published for this release.
url string
package_url string
docs_html_url stringnull
html_url string
downloads integer
meta object Release metadata.
retirement objectnull Retirement information, if the release is retired.
requirements object Package dependencies keyed by package name.
inserted_at string
updated_at string
View JSON Schema on GitHub

JSON Schema

release.json Raw ↑
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/hex-pm/main/json-schema/release.json",
  "title": "Hex.pm Release",
  "description": "Schema for a Hex.pm package release as returned by the API.",
  "type": "object",
  "properties": {
    "version": {
      "type": "string",
      "description": "Semantic version string."
    },
    "checksum": {
      "type": "string",
      "description": "SHA-256 checksum of the release tarball."
    },
    "has_docs": {
      "type": "boolean",
      "description": "Whether documentation has been published for this release."
    },
    "url": { "type": "string", "format": "uri" },
    "package_url": { "type": "string", "format": "uri" },
    "docs_html_url": { "type": ["string", "null"], "format": "uri" },
    "html_url": { "type": "string", "format": "uri" },
    "downloads": { "type": "integer", "minimum": 0 },
    "meta": {
      "type": "object",
      "description": "Release metadata.",
      "properties": {
        "app": { "type": "string", "description": "OTP application name." },
        "build_tools": {
          "type": "array",
          "items": { "type": "string" },
          "description": "Build tools used (e.g. mix, rebar3)."
        },
        "elixir": { "type": "string", "description": "Required Elixir version constraint." }
      }
    },
    "retirement": {
      "type": ["object", "null"],
      "description": "Retirement information, if the release is retired.",
      "properties": {
        "reason": {
          "type": "string",
          "enum": ["other", "invalid", "security", "deprecated", "renamed"]
        },
        "message": { "type": ["string", "null"] }
      },
      "required": ["reason"]
    },
    "requirements": {
      "type": "object",
      "description": "Package dependencies keyed by package name.",
      "additionalProperties": {
        "type": "object",
        "properties": {
          "requirement": { "type": "string", "description": "Version requirement constraint." },
          "optional": { "type": "boolean", "default": false },
          "app": { "type": "string", "description": "OTP application name override." },
          "repository": { "type": "string", "description": "Repository name if not from main hex.pm." }
        },
        "required": ["requirement"]
      }
    },
    "inserted_at": { "type": "string", "format": "date-time" },
    "updated_at": { "type": "string", "format": "date-time" }
  },
  "required": ["version", "url"]
}