blob: 16acc5146dedd7817413f4f450d6f2125bb19cac [file] [log] [blame]
{
"$schema": "http://json-schema.org/schema#",
"title": "Schema for a .cmx's `fuchsia.module` facet",
"definitions": {
"facets": {
"type": "object",
"properties": {
"fuchsia.module": {
"$ref": "#/definitions/moduleFacet"
}
}
},
"moduleFacet": {
"type": "object",
"properties": {
"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"
}
},
"dependencies": {
"intent_filters": {
"required": [
"@version"
]
}
},
"additionalProperties": false
},
"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": {
"facets": {
"$ref": "#/definitions/facets"
}
},
"additionalProperties": true
}