2013-06-23 23:37:21 +02:00
|
|
|
{
|
|
|
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
|
|
|
"title": "Generic manifest",
|
|
|
|
"type": "object",
|
|
|
|
"properties": {
|
|
|
|
"provider": {
|
|
|
|
"type": "string"
|
|
|
|
},
|
2013-06-27 23:26:29 +02:00
|
|
|
"bootstrapper": {
|
|
|
|
"type": "object",
|
|
|
|
"properties": {
|
2013-10-29 22:41:29 +01:00
|
|
|
"workspace": { "$ref": "#/definitions/path" },
|
|
|
|
"mirror": { "type": "string", "format": "uri" },
|
|
|
|
"tarball": { "type": "boolean" }
|
2013-06-27 23:26:29 +02:00
|
|
|
},
|
2013-09-15 16:11:45 +02:00
|
|
|
"required": ["workspace"]
|
2013-06-27 23:26:29 +02:00
|
|
|
},
|
2014-01-05 14:03:04 +01:00
|
|
|
"image": {
|
|
|
|
"type": "object",
|
|
|
|
"properties": {
|
|
|
|
"name": { "type": "string" }
|
|
|
|
},
|
|
|
|
"required": ["name"]
|
|
|
|
},
|
2013-06-27 23:26:29 +02:00
|
|
|
"system": {
|
|
|
|
"type": "object",
|
|
|
|
"properties": {
|
2014-01-25 15:52:58 +01:00
|
|
|
"release": { "enum": ["wheezy", "testing", "unstable"] },
|
|
|
|
"sections": { "type": "array" },
|
2013-10-29 22:41:29 +01:00
|
|
|
"architecture": { "enum": ["i386", "amd64"] },
|
2013-12-30 12:14:43 +01:00
|
|
|
"bootloader": { "enum": ["pvgrub", "grub", "extlinux"] },
|
2013-10-29 22:41:29 +01:00
|
|
|
"timezone": { "type": "string" },
|
|
|
|
"locale": { "type": "string" },
|
|
|
|
"charmap": { "type": "string" }
|
2013-06-27 23:26:29 +02:00
|
|
|
},
|
2013-12-30 12:14:43 +01:00
|
|
|
"required": ["release", "architecture", "bootloader", "timezone", "locale", "charmap"]
|
2013-06-27 21:31:52 +02:00
|
|
|
},
|
2013-12-29 16:09:47 +01:00
|
|
|
"packages": {
|
|
|
|
"type": "object",
|
|
|
|
"properties": {
|
2013-12-29 22:50:35 +01:00
|
|
|
"mirror": { "type": "string", "format": "uri" },
|
2013-12-29 16:09:47 +01:00
|
|
|
"sources": {
|
|
|
|
"type": "object",
|
|
|
|
"patternProperties": {
|
|
|
|
"^\\w+$": {
|
|
|
|
"type": "array",
|
2014-01-09 17:24:47 +01:00
|
|
|
"items": {
|
|
|
|
"type": "string",
|
|
|
|
"pattern": "^(deb|deb-src)\\s+(\\[\\s*(.+\\S)?\\s*\\]\\s+)?\\S+\\s+\\S+(\\s+(.+\\S))?\\s*$"
|
|
|
|
},
|
2013-12-29 16:09:47 +01:00
|
|
|
"minItems": 1
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"additionalProperties": false,
|
|
|
|
"minItems": 1
|
|
|
|
},
|
2014-01-12 12:46:59 +01:00
|
|
|
"trusted-keys": {
|
|
|
|
"type": "array",
|
|
|
|
"items": { "$ref": "#/definitions/absolute_path" },
|
|
|
|
"minItems": 1
|
|
|
|
},
|
|
|
|
"install": {
|
2013-12-29 16:09:47 +01:00
|
|
|
"type": "array",
|
|
|
|
"items": {
|
|
|
|
"anyOf": [
|
2014-01-12 12:46:59 +01:00
|
|
|
{ "pattern": "^[^/]+(/[^/]+)?$" },
|
|
|
|
{ "$ref": "#/definitions/absolute_path" }
|
2013-12-29 16:09:47 +01:00
|
|
|
]
|
|
|
|
},
|
|
|
|
"minItems": 1
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"additionalProperties": false
|
|
|
|
},
|
2013-06-24 19:05:46 +02:00
|
|
|
"volume": {
|
2013-10-29 22:41:29 +01:00
|
|
|
"type": "object",
|
|
|
|
"properties": {
|
|
|
|
"backing": { "type": "string" },
|
|
|
|
"partitions": {
|
|
|
|
"type": "object",
|
|
|
|
"oneOf": [
|
|
|
|
{ "$ref": "#/definitions/no_partitions" },
|
|
|
|
{ "$ref": "#/definitions/partition_table" }
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"required": ["partitions"]
|
2013-06-24 19:05:46 +02:00
|
|
|
},
|
2013-06-23 23:37:21 +02:00
|
|
|
"plugins": {
|
|
|
|
"type": "object",
|
|
|
|
"patternProperties": {
|
|
|
|
"^\\w+$": {
|
2013-11-21 16:00:59 +01:00
|
|
|
"type": "object"
|
2013-06-23 23:37:21 +02:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"additionalProperties": false
|
2013-06-27 23:26:29 +02:00
|
|
|
}
|
|
|
|
},
|
2014-01-05 14:03:04 +01:00
|
|
|
"required": ["provider", "bootstrapper", "image", "volume", "system"],
|
2013-10-29 22:41:29 +01:00
|
|
|
"definitions": {
|
|
|
|
"path": {
|
|
|
|
"type": "string",
|
|
|
|
"pattern": "^[^\\0]+$"
|
|
|
|
},
|
2013-12-29 16:09:47 +01:00
|
|
|
"absolute_path": {
|
|
|
|
"type": "string",
|
|
|
|
"pattern": "^/[^\\0]+$"
|
|
|
|
},
|
2014-01-19 12:39:07 +01:00
|
|
|
"bytes": {
|
|
|
|
"type": "string",
|
|
|
|
"pattern": "^\\d+([KMGT]i?B|B)$"
|
|
|
|
},
|
2013-10-29 22:41:29 +01:00
|
|
|
"no_partitions": {
|
|
|
|
"type": "object",
|
|
|
|
"properties": {
|
|
|
|
"type": { "enum": ["none"] },
|
|
|
|
"root": { "$ref": "#/definitions/partition" }
|
|
|
|
},
|
|
|
|
"required": ["root"],
|
|
|
|
"additionalProperties": false
|
|
|
|
},
|
|
|
|
"partition_table": {
|
|
|
|
"type": "object",
|
|
|
|
"properties": {
|
2014-01-18 21:23:54 +00:00
|
|
|
"type": { "enum": ["msdos", "gpt"] },
|
2013-10-29 22:41:29 +01:00
|
|
|
"boot": { "$ref": "#/definitions/partition" },
|
|
|
|
"root": { "$ref": "#/definitions/partition" },
|
|
|
|
"swap": {
|
|
|
|
"type": "object",
|
2014-01-19 12:39:07 +01:00
|
|
|
"properties": { "size": { "$ref": "#/definitions/bytes" } },
|
2013-10-29 22:41:29 +01:00
|
|
|
"required": ["size"]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"required": ["root"],
|
|
|
|
"additionalProperties": false
|
|
|
|
},
|
|
|
|
"partition": {
|
|
|
|
"type": "object",
|
|
|
|
"properties": {
|
2014-01-19 12:39:07 +01:00
|
|
|
"size": { "$ref": "#/definitions/bytes" },
|
2013-10-29 22:41:29 +01:00
|
|
|
"filesystem": { "enum": ["ext2", "ext3", "ext4", "xfs"] }
|
|
|
|
},
|
|
|
|
"required": ["size", "filesystem"]
|
|
|
|
}
|
|
|
|
},
|
2013-12-29 22:35:40 +01:00
|
|
|
"required": ["provider", "bootstrapper", "system", "packages", "volume"]
|
2013-06-23 23:37:21 +02:00
|
|
|
}
|