{ "$schema": "http://json-schema.org/draft-06/schema#", "id": "http://opendev.org/openstack/interop/doc/source/schema/2.0.json", "type": "object", "properties": { "metadata": { "type": "object", "properties": { "id": { "type": "string" }, "schema": { "type": "string" }, "reference": { "type": "string" }, "source": { "type": "string" }, "scoring": { "type": "object", "properties": { "cutoff_score": { "type": "integer" }, "criteria": { "type": "object", "patternProperties": { "^[A-Za-z0-9_-]+": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "weight": { "type": "integer" } }, "required": [ "name", "description", "weight" ] } } } } }, "os_trademark_approval": { "type": "object", "properties": { "target_approval": { "type": "string", "pattern": "\\d\\d\\d\\d.\\d\\d" }, "replaces": { "type": "string", "pattern": "\\d\\d\\d\\d.\\d\\d" }, "releases": { "type": "array", "minItems": 1, "items": { "type": "string" }, "uniqueItems": true }, "status": { "enum": ["draft", "advisory", "approved", "superseded"] } }, "required": [ "target_approval", "releases", "status" ], "additionalProperties": false } }, "required": [ "id", "schema", "reference", "source" ], "additionalProperties": true }, "platforms": { "type": "object", "patternProperties": { "^\\w+$": { "type": "object", "additionalProperties": false, "required": [ "components" ], "properties": { "description": { "type": "string" }, "components": { "$ref": "#/definitions/component_reference", "type": "array", "items": { "type": "object", "required": ["name"], "additionalProperties": false, "properties": { "source": { "type": "string" }, "name": { "type": "string" } } } } } } } }, "add-ons": { "type": "object", "patternProperties": { "^\\w+$": { "type": "object", "additionalProperties": false, "properties": { "description": { "type": "string" }, "components": { "$ref": "#/definitions/component_reference", "type": "array", "items": { "type": "object", "required": ["name"], "additionalProperties": false, "properties": { "source": { "type": "string" }, "name": { "type": "string" } } } }, "required_platform_components": { "$ref": "#/definitions/component_reference", "type": "array", "items": { "type": "object", "required": ["name"], "additionalProperties": false, "properties": { "source": { "type": "string" }, "name": { "type": "string" } } } }, "optional_platform_components": { "$ref": "#/definitions/component_reference", "type": "array", "items": { "type": "object", "required": ["name"], "additionalProperties": false, "properties": { "source": { "type": "string" }, "name": { "type": "string" } } } } } } } }, "components": { "type": "object", "patternProperties": { "^\\w+$": { "type": "object", "patternProperties": { "capabilities|designated_sections": { "type": "object", "additionalProperties": false, "patternProperties": { "required|advisory|deprecated|removed": { "type": "array", "items": { "type": "string" } } } } } } } }, "capabilities": { "type": "object", "patternProperties": { "^\\w+$": { "type": "object", "properties": { "achievements": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, "admin": { "type": "boolean" }, "required_since": { "type": "string", "pattern": "\\d\\d\\d\\d.\\d\\d" }, "description": { "type": "string" }, "tests": { "type": "object", "patternProperties": { "^\\w+$": { "type": "object", "required": [ "idempotent_id" ], "properties": { "idempotent_id": { "type": "string" }, "aliases": { "type": "array", "items": { "type": "string" }, "minItems": 1, "uniqueItems": true }, "flag": { "type": "object", "required": [ "reason", "action", "date" ], "properties": { "reason": { "type": "string", "pattern": "^D\\d{3} \\w+" }, "action": { "type": "string" }, "date": { "type": "string", "pattern": "\\d{4}-\\d{2}-\\d{2}" } } } } } } }, "project": { "type": "string" } }, "required": [ "achievements", "admin", "description", "project", "tests" ], "additionalProperties": false } } }, "designated_sections": { "type": "object", "patternProperties": { "^\\w+$": { "type": "object", "patternProperties": { "required|advisory|deprecated|removed|informational": { "type": "object", "required": [ "guidance", "sections"], "properties": { "guidance": { "type": "string" }, "comment": { "type": "string" }, "sections": { "type": "object", "patternProperties": { "^\\w+$": { "type": "object", "required": ["description", "designated"], "properties": { "description": { "type": "string" }, "designated": { "type": "boolean" }, "comment": { "type": "string" } } } } } } } } } } }, "test_repositories": { "type": "object", "patternProperties": { "^\\w+$": { "type": "object", "additionalProperties": false, "required": [ "repository" ], "properties": { "repository": { "type": "string" }, "reference": { "type": "string" }, "description": { "type": "string" } } } } } }, "required": [ "metadata", "components", "capabilities", "designated_sections", "test_repositories" ], "additionalProperties": false, "definitions": { "component_reference": { "type": "array", "items": { "type": "object", "required": [ "name" ], "additionalProperties": false, "properties": { "name": { "type": "string" }, "source": { "type": "string" } } } } } }