{ "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "AbsolutePathBuf": { "description": "A path that is guaranteed to be absolute and normalized (though it is not guaranteed to be canonicalized or exist on the filesystem).\n\nIMPORTANT: When deserializing an `AbsolutePathBuf`, a base path must be set using [AbsolutePathBufGuard::new]. If no base path is set, the deserialization will fail unless the path being deserialized is already absolute.", "type": "string" }, "PluginAuthPolicy": { "enum": [ "ON_INSTALL", "ON_USE" ], "type": "string" }, "PluginInstallPolicy": { "enum": [ "NOT_AVAILABLE", "AVAILABLE", "INSTALLED_BY_DEFAULT" ], "type": "string" }, "PluginInterface": { "properties": { "brandColor": { "type": [ "string", "null" ] }, "capabilities": { "items": { "type": "string" }, "type": "array" }, "category": { "type": [ "string", "null" ] }, "composerIcon": { "anyOf": [ { "$ref": "#/definitions/AbsolutePathBuf" }, { "type": "null" } ] }, "defaultPrompt": { "type": [ "string", "null" ] }, "developerName": { "type": [ "string", "null" ] }, "displayName": { "type": [ "string", "null" ] }, "logo": { "anyOf": [ { "$ref": "#/definitions/AbsolutePathBuf" }, { "type": "null" } ] }, "longDescription": { "type": [ "string", "null" ] }, "privacyPolicyUrl": { "type": [ "string", "null" ] }, "screenshots": { "items": { "$ref": "#/definitions/AbsolutePathBuf" }, "type": "array" }, "shortDescription": { "type": [ "string", "null" ] }, "termsOfServiceUrl": { "type": [ "string", "null" ] }, "websiteUrl": { "type": [ "string", "null" ] } }, "required": [ "capabilities", "screenshots" ], "type": "object" }, "PluginMarketplaceEntry": { "properties": { "name": { "type": "string" }, "path": { "$ref": "#/definitions/AbsolutePathBuf" }, "plugins": { "items": { "$ref": "#/definitions/PluginSummary" }, "type": "array" } }, "required": [ "name", "path", "plugins" ], "type": "object" }, "PluginSource": { "oneOf": [ { "properties": { "path": { "$ref": "#/definitions/AbsolutePathBuf" }, "type": { "enum": [ "local" ], "title": "LocalPluginSourceType", "type": "string" } }, "required": [ "path", "type" ], "title": "LocalPluginSource", "type": "object" } ] }, "PluginSummary": { "properties": { "authPolicy": { "$ref": "#/definitions/PluginAuthPolicy" }, "enabled": { "type": "boolean" }, "id": { "type": "string" }, "installPolicy": { "$ref": "#/definitions/PluginInstallPolicy" }, "installed": { "type": "boolean" }, "interface": { "anyOf": [ { "$ref": "#/definitions/PluginInterface" }, { "type": "null" } ] }, "name": { "type": "string" }, "source": { "$ref": "#/definitions/PluginSource" } }, "required": [ "authPolicy", "enabled", "id", "installPolicy", "installed", "name", "source" ], "type": "object" } }, "properties": { "marketplaces": { "items": { "$ref": "#/definitions/PluginMarketplaceEntry" }, "type": "array" }, "remoteSyncError": { "type": [ "string", "null" ] } }, "required": [ "marketplaces" ], "title": "PluginListResponse", "type": "object" }