summaryrefslogtreecommitdiff
path: root/api_resource_description-2.schema.json
diff options
context:
space:
mode:
Diffstat (limited to 'api_resource_description-2.schema.json')
-rw-r--r--api_resource_description-2.schema.json35
1 files changed, 35 insertions, 0 deletions
diff --git a/api_resource_description-2.schema.json b/api_resource_description-2.schema.json
new file mode 100644
index 0000000..1157977
--- /dev/null
+++ b/api_resource_description-2.schema.json
@@ -0,0 +1,35 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "$id": "https://hydrilla.koszko.org/schemas/api_resource_description-2.schema.json",
+ "title": "Resource description",
+ "description": "Definition of a Hydrilla resource, as served through HTTP API",
+ "allOf": [{
+ "$ref": "./common_definitions-2.schema.json#/definitions/resource_definition_base"
+ }, {
+ "$ref": "./common_definitions-2.schema.json#/definitions/item_definition"
+ }, {
+ "type": "object",
+ "required": ["$schema", "type"],
+ "properties": {
+ "$schema": {
+ "description": "Mark this instance as conforming to resource description schema 2.x",
+ "type": "string",
+ "pattern": "^https://hydrilla\\.koszko\\.org/schemas/api_resource_description-2\\.(([1-9][0-9]*|0)\\.)*schema\\.json$"
+ },
+ "type": {
+ "description": "Identify this item as a resource",
+ "const": "resource"
+ },
+ "scripts": {
+ "description": "Which files are resource's scripts and need to be installed",
+ "$ref": "./common_definitions-2.schema.json#/definitions/file_ref_list_sha256",
+ "default": []
+ },
+ "dependencies": {
+ "description": "Which other resources this resource depends on",
+ "$ref": "./common_definitions-2.schema.json#/definitions/item_dep_specifier_array",
+ "default": []
+ }
+ }
+ }]
+}