blob: 065c8f521eb7675843db63511aa60bc72d501f78 [file] [log] [blame]
{
"description": "Schema for a build-generated SDK manifest",
"type": "object",
"properties": {
"atoms": {
"description": "The set of all atoms in the current manifest, forming a complete dependency graph",
"type": "array",
"items": {
"$ref": "#/definitions/atom"
}
},
"names": {
"description": "Names of the main atoms in this manifest (as opposed to dependencies)",
"type": "array",
"items": {
"$ref": "#/definitions/atomId"
}
}
},
"required": [
"atoms",
"names"
],
"additionalProperties": false,
"definitions": {
"atomId": {
"description": "Unique identifier for an atom",
"type": "object",
"properties": {
"domain": {
"description": "The group of atoms this atom belongs to (e.g. 'c', 'dart', etc...)",
"type": "string"
},
"name": {
"description": "The name of this atom, unique within its domain",
"type": "string"
}
},
"required": [
"domain",
"name"
],
"additionalProperties": false
},
"atom": {
"description": "An SDK artifact",
"type": "object",
"properties": {
"id": {
"description": "The atom's unique identifier",
"$ref": "#/definitions/atomId"
},
"files": {
"description": "The files making up the atom",
"type": "object",
"additionalProperties": {
"description": "The property name is the path of the file relative to the destination root of the atom; the value is the path to the source file",
"type": "string"
}
},
"deps": {
"description": "The ids of the atoms this atom directly depends on",
"type": "array",
"items": {
"$ref": "#/definitions/atomId"
}
},
"tags": {
"description": "A collection of potentially domain-specific metadata",
"type": "object",
"properties": {
"gn-label": {
"description": "Label of the GN target that generated this atom",
"type": "string",
}
},
"required": [
"gn-label"
],
"additionalProperties": true
}
},
"required": [
"deps",
"files",
"id",
"tags"
],
"additionalProperties": false
}
}
}