{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://raw.githubusercontent.com/arduino/arduino-lint/main/etc/schemas/arduino-package-index-definitions-schema.json", "title": "Shared definitions for the Arduino Package Index schemas", "$comment": "This is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.", "definitions": { "root": { "base": { "object": { "type": "object", "required": ["packages"] } }, "permissive": { "object": { "allOf": [ { "$ref": "#/definitions/root/base/object" }, { "properties": { "packages": { "$ref": "#/definitions/propertiesObjects/packages/permissive/object" } }, "additionalProperties": false } ] } }, "specification": { "object": { "allOf": [ { "$ref": "#/definitions/root/base/object" }, { "properties": { "packages": { "$ref": "#/definitions/propertiesObjects/packages/specification/object" } }, "additionalProperties": false } ] } }, "strict": { "object": { "allOf": [ { "$ref": "#/definitions/root/base/object" }, { "properties": { "packages": { "$ref": "#/definitions/propertiesObjects/packages/strict/object" } }, "additionalProperties": false } ] } } }, "propertiesObjects": { "packages": { "base": { "object": { "type": "array", "items": { "type": "object", "$comment": "help property is currently undocumented, so considered optional.", "required": ["name", "maintainer", "websiteURL", "email", "platforms", "tools"] } } }, "permissive": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/packages/base/object" }, { "items": { "properties": { "name": { "$ref": "#/definitions/propertiesObjects/packageName/permissive/object" }, "maintainer": { "$ref": "#/definitions/propertiesObjects/maintainer/permissive/object" }, "websiteURL": { "$ref": "#/definitions/propertiesObjects/websiteURL/permissive/object" }, "email": { "$ref": "#/definitions/propertiesObjects/email/permissive/object" }, "help": { "$ref": "#/definitions/propertiesObjects/help/permissive/object" }, "platforms": { "$ref": "#/definitions/propertiesObjects/platforms/permissive/object" }, "tools": { "$ref": "#/definitions/propertiesObjects/tools/permissive/object" } }, "additionalProperties": false } } ] } }, "specification": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/packages/base/object" }, { "items": { "properties": { "name": { "$ref": "#/definitions/propertiesObjects/packageName/specification/object" }, "maintainer": { "$ref": "#/definitions/propertiesObjects/maintainer/specification/object" }, "websiteURL": { "$ref": "#/definitions/propertiesObjects/websiteURL/specification/object" }, "email": { "$ref": "#/definitions/propertiesObjects/email/specification/object" }, "help": { "$ref": "#/definitions/propertiesObjects/help/specification/object" }, "platforms": { "$ref": "#/definitions/propertiesObjects/platforms/specification/object" }, "tools": { "$ref": "#/definitions/propertiesObjects/tools/specification/object" } }, "additionalProperties": false } } ] } }, "strict": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/packages/base/object" }, { "items": { "properties": { "name": { "$ref": "#/definitions/propertiesObjects/packageName/strict/object" }, "maintainer": { "$ref": "#/definitions/propertiesObjects/maintainer/strict/object" }, "websiteURL": { "$ref": "#/definitions/propertiesObjects/websiteURL/strict/object" }, "email": { "$ref": "#/definitions/propertiesObjects/email/strict/object" }, "help": { "$ref": "#/definitions/propertiesObjects/help/strict/object" }, "platforms": { "$ref": "#/definitions/propertiesObjects/platforms/strict/object" }, "tools": { "$ref": "#/definitions/propertiesObjects/tools/strict/object" } }, "additionalProperties": false } } ] } } }, "packageName": { "base": { "object": { "type": "string", "minLength": 1 } }, "permissive": { "object": { "$ref": "#/definitions/propertiesObjects/packageName/base/object" } }, "specification": { "definitions": { "patternObjects": { "notArduino": { "not": { "pattern": "^[aA][rR][dD][uU][iI][nN][oO]$" } } } }, "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/packageName/base/object" }, { "$comment": "Only official Arduino packages are allowed to use the \"arduino\" vendor name", "$ref": "#/definitions/propertiesObjects/packageName/specification/definitions/patternObjects/notArduino" } ] } }, "strict": { "object": { "$ref": "#/definitions/propertiesObjects/packageName/specification/object" } } }, "maintainer": { "base": { "object": { "type": "string", "minLength": 1 } }, "permissive": { "object": { "$ref": "#/definitions/propertiesObjects/maintainer/base/object" } }, "specification": { "object": { "$ref": "#/definitions/propertiesObjects/maintainer/base/object" } }, "strict": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/maintainer/specification/object" }, { "$comment": "Only official Arduino packages are allowed to have maintainer field starting with \"Arduino\"", "$ref": "general-definitions-schema.json#/definitions/patternObjects/notStartsWithArduino" } ] } } }, "websiteURL": { "base": { "object": { "type": "string", "format": "uri" } }, "permissive": { "object": { "$ref": "#/definitions/propertiesObjects/websiteURL/base/object" } }, "specification": { "object": { "$ref": "#/definitions/propertiesObjects/websiteURL/base/object" } }, "strict": { "object": { "$ref": "#/definitions/propertiesObjects/websiteURL/specification/object" } } }, "email": { "base": { "object": { "type": "string" } }, "permissive": { "object": { "$ref": "#/definitions/propertiesObjects/email/base/object" } }, "specification": { "object": { "$ref": "#/definitions/propertiesObjects/email/base/object" } }, "strict": { "object": { "$ref": "#/definitions/propertiesObjects/email/specification/object" } } }, "help": { "$comment": "Schema for package and platform help objects.", "base": { "object": { "type": "object", "required": ["online"] } }, "permissive": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/help/base/object" }, { "properties": { "online": { "$ref": "#/definitions/propertiesObjects/online/permissive/object" } }, "additionalProperties": false } ] } }, "specification": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/help/base/object" }, { "properties": { "online": { "$ref": "#/definitions/propertiesObjects/online/specification/object" } }, "additionalProperties": false } ] } }, "strict": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/help/base/object" }, { "properties": { "online": { "$ref": "#/definitions/propertiesObjects/online/strict/object" } }, "additionalProperties": false } ] } } }, "online": { "base": { "object": { "type": "string", "format": "uri" } }, "permissive": { "object": { "$ref": "#/definitions/propertiesObjects/online/base/object" } }, "specification": { "object": { "$ref": "#/definitions/propertiesObjects/online/base/object" } }, "strict": { "object": { "$ref": "#/definitions/propertiesObjects/online/specification/object" } } }, "platforms": { "base": { "object": { "type": "array", "items": { "type": "object", "required": [ "name", "architecture", "version", "category", "help", "url", "archiveFileName", "checksum", "size", "boards", "toolsDependencies" ] } } }, "permissive": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/platforms/base/object" }, { "items": { "properties": { "name": { "$ref": "#/definitions/propertiesObjects/platformName/permissive/object" }, "architecture": { "$ref": "#/definitions/propertiesObjects/architecture/permissive/object" }, "version": { "$ref": "#/definitions/propertiesObjects/platformVersion/permissive/object" }, "deprecated": { "$ref": "#/definitions/propertiesObjects/deprecated/permissive/object" }, "category": { "$ref": "#/definitions/propertiesObjects/category/permissive/object" }, "help": { "$ref": "#/definitions/propertiesObjects/help/permissive/object" }, "url": { "$ref": "#/definitions/propertiesObjects/archiveUrl/permissive/object" }, "archiveFileName": { "$ref": "#/definitions/propertiesObjects/archiveFileName/permissive/object" }, "checksum": { "$ref": "#/definitions/propertiesObjects/checksum/permissive/object" }, "size": { "$ref": "#/definitions/propertiesObjects/size/permissive/object" }, "boards": { "$ref": "#/definitions/propertiesObjects/boards/permissive/object" }, "toolsDependencies": { "$ref": "#/definitions/propertiesObjects/toolsDependencies/permissive/object" }, "discoveryDependencies": { "$ref": "#/definitions/propertiesObjects/discoveryDependencies/permissive/object" }, "monitorDependencies": { "$ref": "#/definitions/propertiesObjects/monitorDependencies/permissive/object" } }, "additionalProperties": false } } ] } }, "specification": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/platforms/base/object" }, { "items": { "properties": { "name": { "$ref": "#/definitions/propertiesObjects/platformName/specification/object" }, "architecture": { "$ref": "#/definitions/propertiesObjects/architecture/specification/object" }, "version": { "$ref": "#/definitions/propertiesObjects/platformVersion/specification/object" }, "deprecated": { "$ref": "#/definitions/propertiesObjects/deprecated/specification/object" }, "category": { "$ref": "#/definitions/propertiesObjects/category/specification/object" }, "help": { "$ref": "#/definitions/propertiesObjects/help/specification/object" }, "url": { "$ref": "#/definitions/propertiesObjects/archiveUrl/specification/object" }, "archiveFileName": { "$ref": "#/definitions/propertiesObjects/archiveFileName/specification/object" }, "checksum": { "$ref": "#/definitions/propertiesObjects/checksum/specification/object" }, "size": { "$ref": "#/definitions/propertiesObjects/size/specification/object" }, "boards": { "$ref": "#/definitions/propertiesObjects/boards/specification/object" }, "toolsDependencies": { "$ref": "#/definitions/propertiesObjects/toolsDependencies/specification/object" }, "discoveryDependencies": { "$ref": "#/definitions/propertiesObjects/discoveryDependencies/specification/object" }, "monitorDependencies": { "$ref": "#/definitions/propertiesObjects/monitorDependencies/specification/object" } }, "additionalProperties": false } } ] } }, "strict": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/platforms/base/object" }, { "items": { "properties": { "name": { "$ref": "#/definitions/propertiesObjects/platformName/strict/object" }, "architecture": { "$ref": "#/definitions/propertiesObjects/architecture/strict/object" }, "version": { "$ref": "#/definitions/propertiesObjects/platformVersion/strict/object" }, "deprecated": { "$ref": "#/definitions/propertiesObjects/deprecated/strict/object" }, "category": { "$ref": "#/definitions/propertiesObjects/category/strict/object" }, "help": { "$ref": "#/definitions/propertiesObjects/help/strict/object" }, "url": { "$ref": "#/definitions/propertiesObjects/archiveUrl/strict/object" }, "archiveFileName": { "$ref": "#/definitions/propertiesObjects/archiveFileName/strict/object" }, "checksum": { "$ref": "#/definitions/propertiesObjects/checksum/strict/object" }, "size": { "$ref": "#/definitions/propertiesObjects/size/strict/object" }, "boards": { "$ref": "#/definitions/propertiesObjects/boards/strict/object" }, "toolsDependencies": { "$ref": "#/definitions/propertiesObjects/toolsDependencies/strict/object" }, "discoveryDependencies": { "$ref": "#/definitions/propertiesObjects/discoveryDependencies/strict/object" }, "monitorDependencies": { "$ref": "#/definitions/propertiesObjects/monitorDependencies/strict/object" } }, "additionalProperties": false } } ] } } }, "platformName": { "base": { "object": { "type": "string", "minLength": 1 } }, "permissive": { "object": { "$ref": "#/definitions/propertiesObjects/platformName/base/object" } }, "specification": { "object": { "$ref": "#/definitions/propertiesObjects/platformName/base/object" } }, "strict": { "object": { "$ref": "#/definitions/propertiesObjects/platformName/specification/object" } } }, "architecture": { "base": { "object": { "type": "string", "minLength": 1 } }, "permissive": { "object": { "$ref": "#/definitions/propertiesObjects/architecture/base/object" } }, "specification": { "object": { "$ref": "#/definitions/propertiesObjects/architecture/base/object" } }, "strict": { "object": { "$ref": "#/definitions/propertiesObjects/architecture/specification/object" } } }, "platformVersion": { "base": { "object": { "type": "string" } }, "permissive": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/platformVersion/base/object" }, { "$ref": "general-definitions-schema.json#/definitions/patternObjects/relaxedSemver" } ] } }, "specification": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/platformVersion/base/object" }, { "$ref": "general-definitions-schema.json#/definitions/patternObjects/relaxedSemver" } ] } }, "strict": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/platformVersion/base/object" }, { "$ref": "general-definitions-schema.json#/definitions/patternObjects/semver" } ] } } }, "deprecated": { "base": { "object": { "type": "boolean" } }, "permissive": { "object": { "$ref": "#/definitions/propertiesObjects/deprecated/base/object" } }, "specification": { "object": { "$ref": "#/definitions/propertiesObjects/deprecated/base/object" } }, "strict": { "object": { "$ref": "#/definitions/propertiesObjects/deprecated/specification/object" } } }, "category": { "base": { "object": { "type": "string", "enum": ["Contributed"] } }, "permissive": { "object": { "$ref": "#/definitions/propertiesObjects/category/base/object" } }, "specification": { "object": { "$ref": "#/definitions/propertiesObjects/category/base/object" } }, "strict": { "object": { "$ref": "#/definitions/propertiesObjects/category/specification/object" } } }, "archiveUrl": { "$comment": "Schema for platform and tool archive URLs", "base": { "object": { "type": "string", "format": "uri" } }, "permissive": { "object": { "$ref": "#/definitions/propertiesObjects/archiveUrl/base/object" } }, "specification": { "object": { "$ref": "#/definitions/propertiesObjects/archiveUrl/base/object" } }, "strict": { "object": { "$ref": "#/definitions/propertiesObjects/archiveUrl/specification/object" } } }, "archiveFileName": { "$comment": "Schema for platform and tool archive filenames.", "base": { "definitions": { "validExtensionPattern": { "pattern": "^.+\\.(tar\\.bz2|tar\\.gz|zip)$" } }, "object": { "allOf": [ { "type": "string", "minLength": 1 }, { "$ref": "#/definitions/propertiesObjects/archiveFileName/base/definitions/validExtensionPattern" } ] } }, "permissive": { "object": { "$ref": "#/definitions/propertiesObjects/archiveFileName/base/object" } }, "specification": { "object": { "$ref": "#/definitions/propertiesObjects/archiveFileName/base/object" } }, "strict": { "object": { "$ref": "#/definitions/propertiesObjects/archiveFileName/specification/object" } } }, "checksum": { "$comment": "Schema for platform and tool archive checksums.", "base": { "object": { "type": "string", "pattern": "^(MD5|SHA-1|SHA-256):[0-9a-fA-F]+$" } }, "permissive": { "object": { "$ref": "#/definitions/propertiesObjects/checksum/base/object" } }, "specification": { "object": { "$ref": "#/definitions/propertiesObjects/checksum/base/object" } }, "strict": { "definitions": { "patternObjects": { "usesSHA256": { "pattern": "^SHA-256:" } } }, "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/checksum/specification/object" }, { "$ref": "#/definitions/propertiesObjects/checksum/strict/definitions/patternObjects/usesSHA256" } ] } } }, "size": { "$comment": "Schema for platform and tool archive file sizes.", "base": { "object": { "type": "string", "pattern": "^[0-9]+$" } }, "permissive": { "object": { "$ref": "#/definitions/propertiesObjects/size/base/object" } }, "specification": { "object": { "$ref": "#/definitions/propertiesObjects/size/base/object" } }, "strict": { "object": { "$ref": "#/definitions/propertiesObjects/size/specification/object" } } }, "boards": { "base": { "object": { "type": "array", "items": { "type": "object", "required": ["name"] } } }, "permissive": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/boards/base/object" }, { "items": { "properties": { "name": { "$ref": "#/definitions/propertiesObjects/boardName/permissive/object" } }, "additionalProperties": false } } ] } }, "specification": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/boards/base/object" }, { "items": { "properties": { "name": { "$ref": "#/definitions/propertiesObjects/boardName/specification/object" } }, "additionalProperties": false } } ] } }, "strict": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/boards/base/object" }, { "items": { "properties": { "name": { "$ref": "#/definitions/propertiesObjects/boardName/strict/object" } }, "additionalProperties": false } } ] } } }, "boardName": { "base": { "object": { "type": "string", "minLength": 1 } }, "permissive": { "object": { "$ref": "#/definitions/propertiesObjects/boardName/base/object" } }, "specification": { "object": { "$ref": "#/definitions/propertiesObjects/boardName/base/object" } }, "strict": { "object": { "$ref": "#/definitions/propertiesObjects/boardName/specification/object" } } }, "toolsDependencies": { "base": { "object": { "type": "array", "items": { "type": "object", "required": ["packager", "name", "version"] } } }, "permissive": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/toolsDependencies/base/object" }, { "items": { "properties": { "packager": { "$ref": "#/definitions/propertiesObjects/packager/permissive/object" }, "name": { "$ref": "#/definitions/propertiesObjects/toolName/permissive/object" }, "version": { "$ref": "#/definitions/propertiesObjects/toolVersion/permissive/object" } }, "additionalProperties": false } } ] } }, "specification": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/toolsDependencies/base/object" }, { "items": { "properties": { "packager": { "$ref": "#/definitions/propertiesObjects/packager/specification/object" }, "name": { "$ref": "#/definitions/propertiesObjects/toolName/specification/object" }, "version": { "$ref": "#/definitions/propertiesObjects/toolVersion/specification/object" } }, "additionalProperties": false } } ] } }, "strict": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/toolsDependencies/base/object" }, { "items": { "properties": { "packager": { "$ref": "#/definitions/propertiesObjects/packager/strict/object" }, "name": { "$ref": "#/definitions/propertiesObjects/toolName/strict/object" }, "version": { "$ref": "#/definitions/propertiesObjects/toolVersion/strict/object" } }, "additionalProperties": false } } ] } } }, "discoveryDependencies": { "base": { "object": { "type": "array", "items": { "type": "object", "required": ["packager", "name"] } } }, "permissive": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/discoveryDependencies/base/object" }, { "items": { "properties": { "packager": { "$ref": "#/definitions/propertiesObjects/packager/permissive/object" }, "name": { "$ref": "#/definitions/propertiesObjects/toolName/permissive/object" } }, "additionalProperties": false } } ] } }, "specification": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/discoveryDependencies/base/object" }, { "items": { "properties": { "packager": { "$ref": "#/definitions/propertiesObjects/packager/specification/object" }, "name": { "$ref": "#/definitions/propertiesObjects/toolName/specification/object" } }, "additionalProperties": false } } ] } }, "strict": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/discoveryDependencies/base/object" }, { "items": { "properties": { "packager": { "$ref": "#/definitions/propertiesObjects/packager/strict/object" }, "name": { "$ref": "#/definitions/propertiesObjects/toolName/strict/object" } }, "additionalProperties": false } } ] } } }, "monitorDependencies": { "base": { "object": { "type": "array", "items": { "type": "object", "required": ["packager", "name"] } } }, "permissive": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/monitorDependencies/base/object" }, { "items": { "properties": { "packager": { "$ref": "#/definitions/propertiesObjects/packager/permissive/object" }, "name": { "$ref": "#/definitions/propertiesObjects/toolName/permissive/object" } }, "additionalProperties": false } } ] } }, "specification": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/monitorDependencies/base/object" }, { "items": { "properties": { "packager": { "$ref": "#/definitions/propertiesObjects/packager/specification/object" }, "name": { "$ref": "#/definitions/propertiesObjects/toolName/specification/object" } }, "additionalProperties": false } } ] } }, "strict": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/monitorDependencies/base/object" }, { "items": { "properties": { "packager": { "$ref": "#/definitions/propertiesObjects/packager/strict/object" }, "name": { "$ref": "#/definitions/propertiesObjects/toolName/strict/object" } }, "additionalProperties": false } } ] } } }, "packager": { "base": { "object": { "type": "string", "minLength": 1 } }, "permissive": { "object": { "$ref": "#/definitions/propertiesObjects/packager/base/object" } }, "specification": { "object": { "$ref": "#/definitions/propertiesObjects/packager/base/object" } }, "strict": { "object": { "$ref": "#/definitions/propertiesObjects/packager/specification/object" } } }, "tools": { "base": { "object": { "type": "array", "items": { "type": "object", "required": ["name", "version", "systems"] } } }, "permissive": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/tools/base/object" }, { "items": { "properties": { "name": { "$ref": "#/definitions/propertiesObjects/toolName/permissive/object" }, "version": { "$ref": "#/definitions/propertiesObjects/toolVersion/permissive/object" }, "systems": { "$ref": "#/definitions/propertiesObjects/systems/permissive/object" } }, "additionalProperties": false } } ] } }, "specification": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/tools/base/object" }, { "items": { "properties": { "name": { "$ref": "#/definitions/propertiesObjects/toolName/specification/object" }, "version": { "$ref": "#/definitions/propertiesObjects/toolVersion/specification/object" }, "systems": { "$ref": "#/definitions/propertiesObjects/systems/specification/object" } }, "additionalProperties": false } } ] } }, "strict": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/tools/base/object" }, { "items": { "properties": { "name": { "$ref": "#/definitions/propertiesObjects/toolName/strict/object" }, "version": { "$ref": "#/definitions/propertiesObjects/toolVersion/strict/object" }, "systems": { "$ref": "#/definitions/propertiesObjects/systems/strict/object" } }, "additionalProperties": false } } ] } } }, "toolName": { "base": { "object": { "type": "string", "minLength": 1 } }, "permissive": { "object": { "$ref": "#/definitions/propertiesObjects/toolName/base/object" } }, "specification": { "object": { "$ref": "#/definitions/propertiesObjects/toolName/base/object" } }, "strict": { "object": { "$ref": "#/definitions/propertiesObjects/toolName/specification/object" } } }, "toolVersion": { "base": { "object": { "type": "string" } }, "permissive": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/toolVersion/base/object" }, { "$ref": "general-definitions-schema.json#/definitions/patternObjects/relaxedSemver" } ] } }, "specification": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/toolVersion/base/object" }, { "$ref": "general-definitions-schema.json#/definitions/patternObjects/relaxedSemver" } ] } }, "strict": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/toolVersion/base/object" }, { "$ref": "general-definitions-schema.json#/definitions/patternObjects/semver" } ] } } }, "systems": { "base": { "object": { "type": "array", "items": { "type": "object", "required": ["host", "url", "archiveFileName", "size", "checksum"] } } }, "permissive": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/systems/base/object" }, { "items": { "properties": { "host": { "$ref": "#/definitions/propertiesObjects/host/permissive/object" }, "url": { "$ref": "#/definitions/propertiesObjects/archiveUrl/permissive/object" }, "archiveFileName": { "$ref": "#/definitions/propertiesObjects/archiveFileName/permissive/object" }, "checksum": { "$ref": "#/definitions/propertiesObjects/checksum/permissive/object" }, "size": { "$ref": "#/definitions/propertiesObjects/size/permissive/object" } }, "additionalProperties": false } } ] } }, "specification": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/systems/base/object" }, { "items": { "properties": { "host": { "$ref": "#/definitions/propertiesObjects/host/specification/object" }, "url": { "$ref": "#/definitions/propertiesObjects/archiveUrl/specification/object" }, "archiveFileName": { "$ref": "#/definitions/propertiesObjects/archiveFileName/specification/object" }, "checksum": { "$ref": "#/definitions/propertiesObjects/checksum/specification/object" }, "size": { "$ref": "#/definitions/propertiesObjects/size/specification/object" } }, "additionalProperties": false } } ] } }, "strict": { "object": { "allOf": [ { "$ref": "#/definitions/propertiesObjects/systems/base/object" }, { "items": { "properties": { "host": { "$ref": "#/definitions/propertiesObjects/host/strict/object" }, "url": { "$ref": "#/definitions/propertiesObjects/archiveUrl/strict/object" }, "archiveFileName": { "$ref": "#/definitions/propertiesObjects/archiveFileName/strict/object" }, "checksum": { "$ref": "#/definitions/propertiesObjects/checksum/strict/object" }, "size": { "$ref": "#/definitions/propertiesObjects/size/strict/object" } }, "additionalProperties": false } } ] } } }, "host": { "base": { "definitions": { "patternObjects": { "validHost": { "$comment": "https://github.com/arduino/arduino-cli/blob/cdbebe98f895c18146ea2607cfb706d002b01191/arduino/cores/tools.go#L144-L155", "anyOf": [ { "pattern": "^all$" }, { "pattern": "^arm.*-linux-gnueabihf$" }, { "pattern": "^(aarch64|arm64)-linux-gnu$" }, { "pattern": "^x86_64-.*linux-gnu$" }, { "pattern": "^i[3456]86-.*linux-gnu$" }, { "pattern": "^i[3456]86-.*(mingw32|cygwin)$" }, { "pattern": "^(amd64|x86_64)-.*(mingw32|cygwin)$" }, { "pattern": "^x86_64-apple-darwin.*$" }, { "pattern": "^i[3456]86-apple-darwin.*$" }, { "pattern": "^arm64-apple-darwin.*$" }, { "pattern": "^arm.*-freebsd[0-9]*$" }, { "pattern": "^i?[3456]86-freebsd[0-9]*$" }, { "pattern": "^amd64-freebsd[0-9]*$" } ] } } }, "object": { "allOf": [ { "type": "string" }, { "$ref": "#/definitions/propertiesObjects/host/base/definitions/patternObjects/validHost" } ] } }, "permissive": { "object": { "$ref": "#/definitions/propertiesObjects/host/base/object" } }, "specification": { "object": { "$ref": "#/definitions/propertiesObjects/host/base/object" } }, "strict": { "object": { "$ref": "#/definitions/propertiesObjects/host/specification/object" } } } } } }