{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/canonical/main/json-schema/canonical-legacy-interface-object-schema.json", "title": "LegacyInterfaceObject", "description": "The legacy interface object.", "x-generated": "2026-10-04", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/canonical-interfaces-api-openapi.yml#/components/schemas/LegacyInterfaceObject", "type": "object", "properties": { "plugs": { "type": "array", "description": "A list of plugs on the system matching the search criteria.", "items": { "$ref": "#/$defs/Plug" } }, "slots": { "type": "array", "description": "A list of slots on the system matching the search criteria.", "items": { "$ref": "#/$defs/Slot" } } }, "$defs": { "Plug": { "type": "object", "description": "Detailed information about a plug.", "properties": { "snap": { "type": "string", "description": "The name of the snap providing the plug." }, "plug": { "type": "string", "description": "The name of the plug itself." }, "interface": { "type": "string", "description": "The interface name for the plug." }, "attrs": { "type": "object", "additionalProperties": true, "description": "A static map of the plug's attributes.\nThese are attributes that belong to the plug" }, "apps": { "type": "array", "items": { "type": "string" }, "description": "A list of apps associated with this plug." }, "label": { "type": "string", "description": "The display label for the plug." }, "connections": { "type": "array", "items": { "$ref": "#/$defs/SlotRef" }, "description": "A list of slots this plug is connected to." } } }, "PlugRef": { "type": "object", "description": "A reference to a specific plug.", "properties": { "snap": { "type": "string", "description": "The name of the snap providing the plug." }, "plug": { "type": "string", "description": "The name of the plug." } } }, "Slot": { "type": "object", "description": "Detailed information about a slot.", "properties": { "snap": { "type": "string", "description": "The name of the snap providing the slot." }, "slot": { "type": "string", "description": "The name of the slot itself." }, "interface": { "type": "string", "description": "The interface name for the slot." }, "attrs": { "type": "object", "additionalProperties": true, "description": "A static map of the slot's attributes.\nThese are attributes that belong to the slot" }, "apps": { "type": "array", "items": { "type": "string" }, "description": "A list of apps associated with this slot." }, "label": { "type": "string", "description": "The display label for the slot." }, "connections": { "type": "array", "items": { "$ref": "#/$defs/PlugRef" }, "description": "A list of plugs connected to this slot." } } }, "SlotRef": { "type": "object", "description": "A reference to a specific slot.", "properties": { "snap": { "type": "string", "description": "The name of the snap providing the slot." }, "slot": { "type": "string", "description": "The name of the slot." } } } } }