{
  "$schema": "https://packageurl.org/schemas/purl-type-definition.schema-1.0.json",
  "$id": "https://packageurl.org/types/otp-definition.json",
  "type": "otp",
  "type_name": "BEAM/OTP Application",
  "description": "BEAM/OTP applications written in Elixir, Erlang, Gleam and other BEAM languages",
  "note": "- If the component was fetched from a Hex repository, prefer a ``hex`` purl\n  because Hex provides a global, collision-free namespace that uniquely ties\n  the version to the published source.\n- There is no default package repository. When the application can be\n  fetched from a known location, add a general qualifier such as\n  `repository_url`, `download_url` or `vcs_url`.",
  "repository": {
    "use_repository": false
  },
  "namespace_definition": {
    "requirement": "prohibited",
    "note": "The component is unused and MUST be empty"
  },
  "name_definition": {
    "case_sensitive": false,
    "native_name": "name",
    "note": "The OTP application name from the `.app` file; it is case-insensitive and MUST be lower-cased.",
    "requirement": "required"
  },
  "version_definition": {
    "native_name": "version",
    "note": "The OTP application version (the `vsn` attribute).",
    "requirement": "optional"
  },
  "subpath_definition": {
    "case_sensitive": false,
    "native_name": "May be added to reference a specific file or directory inside the OTP application.",
    "requirement": "optional"
  },
  "qualifiers_definition": [
    {
      "key": "repository_url",
      "requirement": "optional",
      "native_name": "Repository URL",
      "description": "The canonical origin of the OTP application source. This qualifier is optional, but it should be included whenever the origin is known, and should point to a trusted source repository."
    },
    {
      "key": "platform",
      "requirement": "optional",
      "native_name": "platform",
      "description": "The target operating system for native code (e.g. ``linux``, ``darwin``, ``freebsd``, ``sunos``, ``win32``; case-insensitive)."
    },
    {
      "key": "arch",
      "requirement": "optional",
      "native_name": "arch",
      "description": "The arch is the qualifiers key for a package architecture."
    }
  ],
  "examples": [
    "pkg:otp/erts@10.6.3?platform=linux&arch=amd64&repository_url=https:%2F%2Fgithub.com%2Ferlang%2Fotp&vcs_url=git%2Bhttps:%2F%2Fgithub.com%2Ferlang%2Fotp.git",
    "pkg:otp/stdlib@3.11.2?repository_url=https:%2F%2Fgithub.com%2Ferlang%2Fotp&vcs_url=git%2Bhttps:%2F%2Fgithub.com%2Ferlang%2Fotp.git",
    "pkg:otp/crypto@4.6.4?platform=darwin&arch=x86_64&repository_url=https:%2F%2Fgithub.com%2Ferlang%2Fotp&vcs_url=git%2Bhttps:%2F%2Fgithub.com%2Ferlang%2Fotp.git",
    "pkg:otp/elixir@1.10.0?repository_url=https:%2F%2Fgithub.com%2Felixir-lang%2Felixir&vcs_url=git%2Bhttps:%2F%2Fgithub.com%2Felixir-lang%2Felixir.git",
    "pkg:otp/eex@1.10.0?repository_url=https:%2F%2Fgithub.com%2Felixir-lang%2Felixir&vcs_url=git%2Bhttps:%2F%2Fgithub.com%2Felixir-lang%2Felixir.git",
    "pkg:otp/logger@1.10.0?repository_url=https:%2F%2Fgithub.com%2Felixir-lang%2Felixir&vcs_url=git%2Bhttps:%2F%2Fgithub.com%2Felixir-lang%2Felixir.git",
    "pkg:otp/rebar@3.13.0?repository_url=https:%2F%2Fgithub.com%2Ferlang%2Frebar3&vcs_url=git%2Bhttps:%2F%2Fgithub.com%2Ferlang%2Frebar3.git",
    "pkg:otp/hex@2.1.1?repository_url=https:%2F%2Fgithub.com%2Fhexpm%2Fhex&vcs_url=git%2Bhttps:%2F%2Fgithub.com%2Fhexpm%2Fhex.git"
  ]
}
