error-pages/schemas/config/1.0.schema.json
2022-01-27 17:29:49 +05:00

109 lines
4.1 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Error-Pages config file schema",
"description": "Error-Pages config file schema.",
"type": "object",
"properties": {
"templates": {
"type": "array",
"description": "Templates list",
"items": {
"type": "object",
"description": "Template properties",
"properties": {
"path": {
"type": "string",
"description": "Path to the template file",
"examples": [
"./templates/ghost.html",
"/opt/tpl/ghost.htm"
]
},
"name": {
"type": "string",
"description": "Template name (optional, if path is defined)",
"examples": [
"ghost"
]
},
"content": {
"type": "string",
"description": "Template content, if path is not defined",
"examples": [
"<html><body>{{ code }}: {{ message }}</body></html>"
]
}
},
"additionalProperties": false
}
},
"formats": {
"type": "object",
"description": "Responses, based on requested content-type format",
"properties": {
"json": {
"type": "object",
"description": "JSON format",
"properties": {
"content": {
"type": "string",
"description": "JSON response body (template tags are allowed here)",
"examples": [
"{\"error\": true, \"code\": {{ code | json }}, \"message\": {{ message | json }}}"
]
}
},
"additionalProperties": false
},
"xml": {
"type": "object",
"description": "XML format",
"properties": {
"content": {
"type": "string",
"description": "XML response body (template tags are allowed here)",
"examples": [
"<?xml version=\"1.0\" encoding=\"utf-8\"?><error><code>{{ code }}</code><message>{{ message }}</message></error>"
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"pages": {
"type": "object",
"description": "Error pages (codes)",
"patternProperties": {
"^[a-zA-Z0-9_-]+$": {
"type": "object",
"description": "Error page (code)",
"properties": {
"message": {
"type": "string",
"description": "Error page message (title)",
"examples": [
"Bad Request"
]
},
"description": {
"type": "string",
"description": "Error page description",
"examples": [
"The server did not understand the request"
]
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"additionalProperties": false,
"required": [
"templates"
]
}