| { |
| "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" |
| } |
| }, |
| "ids": { |
| "description": "IDs of the main atoms in this manifest (as opposed to dependencies)", |
| "type": "array", |
| "items": { |
| "$ref": "#/definitions/atomId" |
| } |
| }, |
| "root": { |
| "description": "Path to the root of the SDK, relative to this manifest", |
| "type": "string" |
| } |
| }, |
| "required": [ |
| "atoms", |
| "ids", |
| "root" |
| ], |
| "additionalProperties": false, |
| "definitions": { |
| "atomId": { |
| "description": "Unique identifier for an atom", |
| "type": "string", |
| "pattern": "^sdk://([a-z][a-z0-9-_\\.]+)(/([a-z][a-z0-9-_\\.]+))*$" |
| }, |
| "atom": { |
| "description": "An SDK artifact", |
| "type": "object", |
| "properties": { |
| "id": { |
| "description": "The atom's unique identifier", |
| "$ref": "#/definitions/atomId" |
| }, |
| "gn-label": { |
| "description": "Label of the GN target which generated the atom", |
| "type": "string" |
| }, |
| "meta": { |
| "description": "Path to the atom's metadata file in the SDK", |
| "type": "string" |
| }, |
| "category": { |
| "description": "Publication level of this atom", |
| "type": "string", |
| "enum": [ |
| "internal", |
| "compat_test", |
| "host_tool", |
| "prebuilt", |
| "partner" |
| ] |
| }, |
| "area": { |
| "description": "API council area that owns this atom", |
| "type": [ |
| "string", |
| "null" |
| ] |
| }, |
| "plasa": { |
| "description": "The plasa API fragment files", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "files": { |
| "description": "Paths to files making up the atom, relative to the SDK root", |
| "type": "array", |
| "items": { |
| "$ref": "#/definitions/atomFile" |
| } |
| }, |
| "deps": { |
| "description": "The ids of the atoms this atom directly depends on", |
| "type": "array", |
| "items": { |
| "$ref": "#/definitions/atomId" |
| } |
| }, |
| "type": { |
| "description": "The type of this atom's content", |
| "type": "string", |
| "enum": [ |
| "bind_library", |
| "cc_prebuilt_library", |
| "cc_source_library", |
| "companion_host_tool", |
| "dart_library", |
| "data", |
| "documentation", |
| "experimental_python_e2e_test", |
| "ffx_tool", |
| "fidl_library", |
| "host_tool", |
| "loadable_module", |
| "package", |
| "rust_3p_library", |
| "sysroot", |
| "version_history" |
| ] |
| }, |
| "stable": { |
| "description": "If true, the atom is subject to API compatibility policy. If false, it its experimental and may change without warning.", |
| "type": "boolean" |
| } |
| }, |
| "required": [ |
| "category", |
| "deps", |
| "files", |
| "gn-label", |
| "id", |
| "meta", |
| "plasa", |
| "stable", |
| "type" |
| ], |
| "additionalProperties": false |
| }, |
| "atomFile": { |
| "description": "Description of a file pertaining to an atom", |
| "type": "object", |
| "properties": { |
| "source": { |
| "description": "Path to the source file", |
| "type": "string" |
| }, |
| "destination": { |
| "description": "Destination path of the file relative to the SDK root", |
| "type": "string" |
| } |
| }, |
| "required": [ |
| "source", |
| "destination" |
| ], |
| "additionalProperties": false |
| } |
| } |
| } |