GarminHomeAssistant/config.schema.json
Philip Abbey 1df64286f0 Updated README
Also missed schema changes of the previous commit. Added a photo of the confirmation view.
2023-12-01 09:54:23 +00:00

84 lines
2.3 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"title": { "type": "string" },
"items": { "$ref": "#/$defs/items" },
"required": ["title", "items"],
"additionalProperties": false
},
"$defs": {
"toggle": {
"type": "object",
"properties": {
"entity": { "$ref": "#/$defs/entity" },
"name": { "type": "string" },
"type": { "const": "toggle" }
},
"required": ["entity", "name", "type"],
"additionalProperties": false
},
"tap": {
"type": "object",
"properties": {
"entity": { "$ref": "#/$defs/entity" },
"name": { "title": "Your familiar name", "type": "string" },
"type": { "const": "tap" },
"service": {
"$ref": "#/$defs/entity",
"deprecated": true,
"title": "Schema change:",
"description": "Use 'tap_action' instead to mirror Home Assistant."
},
"tap_action": { "$ref": "#/$defs/action" }
},
"oneOf": [
{ "required": ["entity", "name", "type", "service"] },
{ "required": ["entity", "name", "type", "tap_action"] }
],
"additionalProperties": false
},
"menu": {
"type": "object",
"properties": {
"entity": { "$ref": "#/$defs/entity" },
"name": { "type": "string" },
"title": { "type": "string" },
"type": { "const": "group" },
"items": { "$ref": "#/$defs/items" }
},
"required": ["entity", "name", "title", "type", "items"],
"additionalProperties": false
},
"items": {
"type": "array",
"items": {
"oneOf": [
{ "$ref": "#/$defs/toggle" },
{ "$ref": "#/$defs/tap" },
{ "$ref": "#/$defs/menu" }
]
}
},
"entity": {
"title": "Home Assistant entity name",
"type": "string",
"pattern": "^[^.]+\\.[^.]+$"
},
"action": {
"title": "Action",
"description": "Field 'confirm' is optional.",
"type": "object",
"properties": {
"service": { "$ref": "#/$defs/entity" },
"confirm": {
"type": "boolean",
"default": false,
"description": "Confirm the action before execution as a precaution."
}
},
"required": ["service"]
}
}
}