blob: 04f59afc772e4cc3f0c89aa5b8e1db1219c6f220 [file] [log] [blame]
{
"$schema": "http://json-schema.org/schema#",
"title": "Schema for `module_manifest.json` metadata file",
"definitions": {
"intentFilterArray": {
"type": "array",
"items": {
"$ref": "#/definitions/intentFilter"
},
"additionalItems": false,
"uniqueItems": true,
"minItems": 1
},
"intentFilter": {
"type": "object",
"properties": {
"action": {
"type": "string"
},
"parameters": {
"$ref": "#/definitions/parameterArray"
}
},
"required": ["action", "parameters"]
},
"parameterArray": {
"type": "array",
"items": {
"$ref": "#/definitions/parameter"
},
"additionalItems": false,
"uniqueItems": true
},
"parameter": {
"type": "object",
"properties": {
"name": {
"$ref": "#/definitions/alphaNumString"
},
"type": {
"type": "string"
},
"required": {
"type": "boolean"
}
},
"required": ["name", "type"],
"additionalProperties": false
},
"alphaNumString": {
"type": "string",
"pattern": "^[a-zA-Z0-9_]+$"
},
"compositionPattern": {
"type": "string",
"enum": ["ticker", "comments-right"]
},
"hexColor": {
"type": "string",
"pattern": "^#([A-Fa-f0-9]{6})$"
}
},
"type": "object",
"properties": {
"binary": {
"type": "string"
},
"suggestion_headline": {
"type": "string"
},
"intent_filters": {
"$ref": "#/definitions/intentFilterArray"
},
"composition_pattern": {
"$ref": "#/definitions/compositionPattern"
},
"action": {
"type": "string"
},
"parameters": {
"$ref": "#/definitions/parameterArray"
},
"@version": {
"type": "integer"
},
"placeholder_color": {
"$ref": "#definitions/hexColor"
}
},
"required": ["binary"],
"dependencies": {
"intent_filters": {
"required": ["@version"]
}
},
"additionalProperties": false
}