{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://digitalasset.com/component", "title": "dpm component manifest schema", "type": "object", "definitions": { "Command": { "type": "object", "required": ["path", "name"], "properties": { "path": { "type": "string" }, "name": { "description": "the command name to be displayed in dpm available commands", "type": "string" }, "desc": { "type": "string" }, "exec-args": { "type": "array", "items": { "type": "string" } }, "aliases": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "JarCommand": { "type": "object", "required": ["path", "name"], "properties": { "path": { "type": "string" }, "name": { "description": "the command name to be displayed in dpm available commands", "type": "string" }, "desc": { "type": "string" }, "jar-args": { "description": "args passed to the jar", "type": "array", "items": { "type": "string" } }, "jvm-args": { "description": "args passed to the jvm", "type": "array", "items": { "type": "string" } }, "aliases": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "exports": { "description": "Defines a list of imports ( -> ) that'll be part of the resolution file that's generated by dpm at runtime", "type": "object", "additionalProperties": { "type": "object", "required": ["conflict-strategy", "paths"], "properties": { "conflict-strategy": { "description": "collision resolution strategy. With \"extend\", the same key can be provided by multiple components and the final effective path list is the concatenation. Single will fail the assembly if the more than one component defined the same key", "type": "string", "enum": ["extend", "fail"] }, "paths": { "description": "list of paths to files/directories within the component", "type": "array", "items": { "type": "string" } } } } } }, "properties": { "apiVersion": { "type": "string" }, "kind": { "type": "string" }, "spec": { "type": "object", "properties": { "commands": { "type": "array", "description": "List of commands backed by native binaries", "items": { "$ref": "#/definitions/Command" } }, "jar-commands": { "type": "array", "description": "List of commands backed by JARs", "items": { "$ref": "#/definitions/JarCommand" } }, "dependency-paths": { "type": "object", "additionalProperties": true, "description": "a map specifying any components that this component depends on, where the key is the component name, and the value is an env var to hold the absolute path to the dependency's root. Dpm will inject the specified env var into this component's commands." }, "exports": { "$ref": "#/definitions/exports" } }, "additionalProperties": false } }, "required": ["apiVersion", "kind", "spec"], "additionalProperties": false }