summaryrefslogtreecommitdiff
path: root/schema/definitions-schema.json
blob: 6afab78ae1aba7453b2301f109a712d8c46e7274 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "id": "http://wiki.baserock.org/schemas/definitions#",

    "definitions": {
        "definition": {
            "type": "object",
            "properties": {
                "name": { "type": "string" },
                "morph": { "type": "string" },
                "repo": { "type": "string" },
                "ref": { "type": "string" },
                "unpetrify-ref": { "anyOf": [ 
                    { "type": "string" },
                    { "type": "number" }
                ] },
                "description": { "oneOf": [
                    { "type": "string" },
                    { "type": "array", "items": { "type": "string" } }
                 ] },    
                "kind": {
                    "type": "string",
                    "enum": ["chunk", "stratum", "system", "cluster"]
                },
                "build-depends": {
                    "type": "array",
                    "items": { "anyOf": [
                        { "$ref": "#/definitions/definition" },
                        "morph": "string"
                    ] }
                },
                "chunks": { 
                    "type": "array",
                    "items": { "$ref": "#/definitions/definition" }
                },
                "strata": { 
                    "type": "array",
                    "items": { "anyOf": [
                        { "$ref": "#/definitions/definition" },
                        "morph": "string"
                    ] }
                },
                "build-system": {
                    "type": "string",
                    "enum": [
                        "python-distutils",
                        "autotools",
                        "cmake",
                        "manual",
                        "cpan"
                    ]
                },
                "product": {
                    "artifact": { "type": "string" },
                    "include": { "type": "array", "items": "string" }
                },
                "dependencies": {
                    "repo": ["ref", "unpetrify-ref"],
                    "ref": ["repo", "unpetrify-ref"],
                    "unpetrify-ref": ["repo", "ref"]
                }
            }
        }
    },

    "type": "object",
    "$ref": "#/definitions/definition"
}