573in1/schema/cdrom.json

151 lines
3.5 KiB
JSON
Raw Permalink Normal View History

2024-06-03 23:12:31 +02:00
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "schema/cdrom.json",
"title": "Root",
"type": "object",
"required": [ "entries" ],
"properties": {
"identifiers": {
"title": "ISO9660 identifier strings",
"type": "object",
"additionalProperties": false,
"properties": {
"system": {
"title": "System identifier",
"type": "string"
},
"volume": {
"title": "Volume identifier",
"type": "string"
},
"volumeSet": {
"title": "Volume set identifier",
"type": "string"
},
"publisher": {
"title": "Publisher identifier",
"type": "string"
},
"dataPreparer": {
"title": "Data preparer identifier",
"type": "string"
},
"application": {
"title": "Application identifier",
"type": "string"
},
"copyright": {
"title": "Copyright file identifier",
"type": "string"
},
"abstract": {
"title": "Abstract file identifier",
"type": "string"
},
"bibliographic": {
"title": "Bibliographic file identifier",
"type": "string"
}
}
},
"entries": {
"title": "File and directory entries",
"type": "array",
"uniqueItems": true,
"items": {
"title": "Entry object",
"type": "object",
"required": [ "type", "name" ],
"properties": {
"type": {
"title": "Entry type",
"description": "Must be 'empty' (empty or zerofilled file), 'file', 'directory', 'fileAlias' or 'directoryAlias' (hard link to another entry).",
"type": "string",
"enum": [
"empty",
"file",
"directory",
"fileAlias",
"directoryAlias"
]
},
"name": {
"title": "Entry path",
"description": "Full path of the entry within the CD-ROM image. Should follow ISO9660 file name restrictions (upper case alphanumeric characters and underscores only, with an optional period-separated extension for files).",
"type": "string"
}
},
"oneOf": [
{
"additionalProperties": false,
"properties": {
"type": { "const": "empty" },
"name": { "type": "string" },
"size": {
"title": "File size",
"description": "Number of dummy null bytes to fill the file with. If zero or omitted, the file will be empty.",
"type": "integer",
"minimum": 0
}
}
},
{
"required": [ "source" ],
"additionalProperties": false,
"properties": {
"type": { "const": "file" },
"name": { "type": "string" },
"source": {
"title": "Path to source file",
"description": "Path to the source file to add to the image, relative to the configuration file's directory by default.",
"type": "string",
"format": "uri-reference"
}
}
},
{
"additionalProperties": false,
"properties": {
"type": { "const": "directory" },
"name": { "type": "string" }
}
},
{
"required": [ "source" ],
"additionalProperties": false,
"properties": {
"type": { "pattern": "^fileAlias|directoryAlias$" },
"name": { "type": "string" },
"source": {
"title": "Path to linked entry",
"description": "Full path to the entry in the CD-ROM image this entry shall be a hard link to.",
"type": "string"
}
}
}
]
}
}
}
}