blob: a7720457ec72faa5644ed506285136fbe27df703 [file] [log] [blame]
{
"$schema": "http://json-schema.org/draft-07/schema#",
"allOf": [
{
"$ref": "common.json#/definitions/versioned_sdk_element"
},
{
"properties": {
"data": {
"properties": {
"device_refs": {
"description": "A list of physical or virtual device names this product can run on.",
"items": {
"minLength": 1,
"type": "string"
},
"minItems": 1,
"type": "array"
},
"images": {
"description": "A list of system image bundles.",
"items": {
"$ref": "#/definitions/image_bundle"
},
"minItems": 1,
"type": "array"
},
"manifests": {
"description": "Manifests describing how to boot the product on a device.",
"properties": {
"emu": {
"$ref": "emu_manifest.json#/definitions/manifest"
},
"flash": {
"$ref": "flash_manifest-835e8f26.json#/definitions/manifest"
}
},
"type": "object"
},
"metadata": {
"$ref": "common.json#/definitions/key_value_list",
"description": "A list of key-value pairs describing product dimensions. Tools must not rely on the presence or absence of certain keys. Tools may display them to the human user in order to assist them in selecting a desired image or log them for the sake of analytics. Typical metadata keys are: build_info_board, build_info_product, is_debug."
},
"packages": {
"description": "A list of package bundles.",
"items": {
"$ref": "#/definitions/package_bundle"
},
"minItems": 1,
"type": "array"
},
"type": {
"allOf": [
{
"$ref": "common.json#/definitions/kind"
},
{
"enum": [
"product_bundle"
]
}
]
}
},
"required": [
"device_refs",
"images",
"type",
"name",
"packages"
],
"type": "object"
}
},
"type": "object"
}
],
"definitions": {
"bundle_uri": {
"description": "Allowed system image and package bundle URIs.",
"format": "uri",
"pattern": "^(?:http|https|gs|file)://",
"type": "string"
},
"image_bundle": {
"additionalProperties": false,
"description": "A set of artifacts necessary to provision a physical or virtual device.",
"properties": {
"base_uri": {
"$ref": "#/definitions/bundle_uri",
"description": "A base URI for accessing artifacts in the bundle."
},
"format": {
"description": "Bundle format: files - a directory layout; tgz - a gzipped tarball.",
"enum": [
"files",
"tgz"
]
}
},
"required": [
"base_uri",
"format"
],
"type": "object"
},
"package_bundle": {
"additionalProperties": false,
"description": "A set of artifacts necessary to run a physical or virtual device.",
"properties": {
"blob_uri": {
"$ref": "#/definitions/bundle_uri",
"description": "An optional blob repository URI. If omitted, it is assumed to be <repo_uri>/blobs. If repo_uri refers to a gzipped tarball, ./blobs directory is expected to be found inside the tarball."
},
"format": {
"description": "Repository format: files - a directory layout; tgz - a gzipped tarball.",
"enum": [
"files",
"tgz"
]
},
"repo_uri": {
"$ref": "#/definitions/bundle_uri",
"description": "A package repository URI. This may be an archive or a directory."
}
},
"required": [
"repo_uri",
"format"
],
"type": "object"
}
},
"description": "Artifacts required to boot and run software on a device.",
"id": "http://fuchsia.com/schemas/sdk/product_bundle-6320eef1.json",
"type": "object"
}