{ "$id": "https://github.com/theoremlp/rules_multitool/lockfile.schema.json", "title": "Describes binaries and instructions for fetching them under Bazel", "type": "object", "definitions": { "supported_os": { "enum": ["macos", "linux", "windows"] }, "supported_cpu": { "enum": ["x86_64", "arm64"] }, "file_type": { "type": "object", "properties": { "kind": { "enum": ["file"] }, "url": { "type": "string" }, "sha256": { "type": "string" }, "os": { "$ref": "#/definitions/supported_os" }, "cpu": { "$ref": "#/definitions/supported_cpu" }, "headers": { "type": "object", "docs": "headers to pass to the downloader (supported on Bazel >= 7.1.0)", "additionalProperties": { "type": "string" } }, "auth_patterns": { "type": "object", "docs": "See https://bazel.build/rules/lib/repo/http#http_archive-auth_patterns", "additionalProperties": { "type": "string" } } }, "required": ["kind", "url", "os", "cpu"] }, "archive_type": { "type": "object", "properties": { "kind": { "enum": ["archive"] }, "url": { "type": "string" }, "sha256": { "type": "string" }, "file": { "type": "string", "docs": "archive root relative path to binary" }, "os": { "$ref": "#/definitions/supported_os" }, "cpu": { "$ref": "#/definitions/supported_cpu" }, "headers": { "type": "object", "docs": "headers to pass to the downloader (supported on Bazel >= 7.1.0)", "additionalProperties": { "type": "string" } }, "type": { "enum": [ "zip", "jar", "war", "aar", "tar", "tar.gz", "tgz", "tar.xz", "txz", ".tar.zst", ".tzst", "tar.bz2", ".tbz", ".ar", ".deb" ] }, "auth_patterns": { "type": "object", "docs": "See https://bazel.build/rules/lib/repo/http#http_archive-auth_patterns", "additionalProperties": { "type": "string" } } }, "required": ["kind", "url", "os", "cpu", "file"] }, "pkg_type": { "type": "object", "properties": { "kind": { "enum": ["pkg"] }, "url": { "type": "string" }, "sha256": { "type": "string" }, "file": { "type": "string", "docs": "pkg archive root relative path to binary" }, "os": { "$ref": "#/definitions/supported_os" }, "cpu": { "$ref": "#/definitions/supported_cpu" }, "headers": { "type": "object", "docs": "headers to pass to the downloader (supported on Bazel >= 7.1.0)", "additionalProperties": { "type": "string" } }, "auth_patterns": { "type": "object", "docs": "See https://bazel.build/rules/lib/repo/http#http_archive-auth_patterns", "additionalProperties": { "type": "string" } } }, "required": ["kind", "url", "os", "cpu", "file"] } }, "properties": { "$schema": { "type": "string" } }, "additionalProperties": { "type": "object", "properties": { "binaries": { "type": "array", "items": { "anyOf": [ { "$ref": "#/definitions/file_type" }, { "$ref": "#/definitions/archive_type" }, { "$ref": "#/definitions/pkg_type" } ] } } } } }