1{
2    "description": "OpenEmbedder Layer Setup Manifest",
3    "type": "object",
4    "additionalProperties": false,
5    "required": [
6        "version"
7    ],
8    "properties": {
9        "version": {
10            "description": "The version of this document; currently '1.0'",
11            "enum": ["1.0"]
12        },
13        "sources": {
14            "description": "The dict of layer sources",
15            "type": "object",
16            "patternProperties": { ".*" : {
17                "type": "object",
18                "description": "The upstream source from which a set of layers may be fetched",
19                "additionalProperties": false,
20                "required": [
21                    "path"
22                ],
23                "properties": {
24                    "path": {
25                        "description": "The path where this layer source will be placed when fetching",
26                        "type": "string"
27                    },
28                    "contains_this_file": {
29                        "description": "Whether the directory with the layer source also contains this json description. Tools may want to skip the checkout of the source then.",
30                        "type": "boolean"
31                    },
32                    "git-remote": {
33                                "description": "A remote git source from which to fetch",
34                                "type": "object",
35                                "additionalProperties": false,
36                                "required": [
37                                    "rev"
38                                ],
39                                "properties": {
40                                    "branch": {
41                                        "description": "The git branch to fetch (optional)",
42                                        "type": "string"
43                                    },
44                                    "rev": {
45                                        "description": "The git revision to checkout",
46                                        "type": "string"
47                                    },
48                                    "describe": {
49                                        "description": "The output of 'git describe' (human readable description of the revision using tags in revision history).",
50                                        "type": "string"
51                                    },
52                                    "remotes": {
53                                        "description": "The dict of git remotes to add to this repository",
54                                        "type": "object",
55                                        "patternProperties": { ".*" : {
56                                            "description": "A git remote",
57                                            "type": "object",
58                                            "addtionalProperties": false,
59                                            "required": [
60                                                "uri"
61                                            ],
62                                            "properties": {
63                                                "uri": {
64                                                    "description": "The URI for the remote",
65                                                    "type": "string"
66                                                }
67                                            }
68                                        }}
69                                    }
70                                }
71                    }
72                }
73            }
74        }}
75    }
76}
77