{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://coulomb.social/resource-control/reef-view.schema.json", "title": "Resource-control view of a reef v0.1", "type": "object", "additionalProperties": false, "required": [ "schema_version", "reef_id", "repo", "declaration_ref", "procuring_entity_id", "role", "resources", "consumers_potential", "consumers_actual" ], "properties": { "schema_version": {"const": "0.1"}, "reef_id": {"type": "string", "pattern": "^reef-[a-z0-9]+(-[a-z0-9]+)*$"}, "repo": {"type": "string", "pattern": "^reef-[a-z0-9]+(-[a-z0-9]+)*$"}, "declaration_ref": {"type": "string", "pattern": "^reef:"}, "procuring_entity_id": {"type": "string", "pattern": "^entity:[a-z0-9]+$"}, "financial_entity_id": {"type": ["string", "null"], "pattern": "^entity:[a-z0-9]+$"}, "role": {"enum": ["compute_substrate", "storage_substrate", "other_substrate"]}, "resources": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": ["resource_id", "role"], "properties": { "resource_id": {"type": "string", "pattern": "^resource:"}, "role": {"enum": ["member_capacity", "hosted_runtime", "hosted_service", "object_store", "other"]} } } }, "consumers_potential": {"type": "array", "items": {"type": "string"}}, "consumers_actual": {"type": "array", "items": {"type": "string"}}, "notes": {"type": "array", "items": {"type": "string"}} } }