diff options
author | Sam Thursfield <sam@afuera.me.uk> | 2016-02-20 11:38:51 +0000 |
---|---|---|
committer | Sam Thursfield <sam@afuera.me.uk> | 2016-02-20 12:31:53 +0000 |
commit | 6c4c284968b0d541ffca465f9116ec842d711f77 (patch) | |
tree | 5047da7f0338405b2a569ec50f5fa5e54d5ecc3d /schemas/007/system.json-schema | |
download | spec-6c4c284968b0d541ffca465f9116ec842d711f77.tar.gz |
Creation of Baserock definitions format specification repo
This contains:
- textual description of the Baserock definitions format, and the list
of changes since version 0, taken from: git://baserock.branchable.com/
- migrations and schemas taken from
git://git.baserock.org/baserock/baserock/definitions.
Diffstat (limited to 'schemas/007/system.json-schema')
-rw-r--r-- | schemas/007/system.json-schema | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/schemas/007/system.json-schema b/schemas/007/system.json-schema new file mode 100644 index 0000000..a2fc0c5 --- /dev/null +++ b/schemas/007/system.json-schema @@ -0,0 +1,59 @@ +$schema: http://json-schema.org/draft-04/schema# +id: http://git.baserock.org/cgi-bin/cgit.cgi/baserock/baserock/definitions.git/tree/schemas/system.json-schema + +description: | + This is a JSON-Schema description of a 'system' .morph file, which is part of + the Baserock definitions YAML representation format. + + This JSON-Schema file is valid for VERSION 7 of the Baserock definitions + YAML serialisation format. + + The Baserock definitions format is the recommended way of representing + Baserock definitions on disk. The actual data model is described separately. + See https://wiki.baserock.org/definitions for more information. + + This schema is represented as YAML, so that it can be edited more easily. + You may need to convert to JSON if using a JSON-Schema tool that expects + its input to be an actual string containing data serialised as JSON. + +definitions: + # In the Baserock data model, this becomes a list of links to StratumArtifact + # entities. + stratum-reference: + type: object + + required: [ 'morph' ] + additionalProperties: false + + properties: + name: { type: string } + morph: { type: string } + artifacts: + type: array + items: { type: string } + + +# Corresponds to System in Baserock data model. +system: +type: object + +required: [ 'name', 'kind', 'strata' ] +additionalProperties: false + +properties: + name: { type: string } + kind: { enum: [ "system" ] } + description: { type: string } + + # Morph and YBD will only accept certain values for 'arch' based on + # hardcoded conditions in those tools. + arch: { type: string } + + strata: + type: array + items: + $ref: "#/definitions/stratum-reference" + + configuration-extensions: + type: array + items: { type: string } |