Files
codex-telegram-bot/schemas/v2/PluginShareListResponse.json
2026-05-21 08:40:16 +00:00

474 lines
11 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "PluginShareListResponse",
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/definitions/PluginShareListItem"
}
}
},
"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": {
"type": "string",
"enum": [
"ON_INSTALL",
"ON_USE"
]
},
"PluginAvailability": {
"oneOf": [
{
"type": "string",
"enum": [
"DISABLED_BY_ADMIN"
]
},
{
"description": "Plugin-service currently sends `\"ENABLED\"` for available remote plugins. Codex app-server exposes `\"AVAILABLE\"` in its API; the alias keeps decoding compatible with that upstream response.",
"type": "string",
"enum": [
"AVAILABLE"
]
}
]
},
"PluginInstallPolicy": {
"type": "string",
"enum": [
"NOT_AVAILABLE",
"AVAILABLE",
"INSTALLED_BY_DEFAULT"
]
},
"PluginInterface": {
"type": "object",
"required": [
"capabilities",
"screenshotUrls",
"screenshots"
],
"properties": {
"brandColor": {
"type": [
"string",
"null"
]
},
"capabilities": {
"type": "array",
"items": {
"type": "string"
}
},
"category": {
"type": [
"string",
"null"
]
},
"composerIcon": {
"description": "Local composer icon path, resolved from the installed plugin package.",
"anyOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
},
{
"type": "null"
}
]
},
"composerIconUrl": {
"description": "Remote composer icon URL from the plugin catalog.",
"type": [
"string",
"null"
]
},
"defaultPrompt": {
"description": "Starter prompts for the plugin. Capped at 3 entries with a maximum of 128 characters per entry.",
"type": [
"array",
"null"
],
"items": {
"type": "string"
}
},
"developerName": {
"type": [
"string",
"null"
]
},
"displayName": {
"type": [
"string",
"null"
]
},
"logo": {
"description": "Local logo path, resolved from the installed plugin package.",
"anyOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
},
{
"type": "null"
}
]
},
"logoUrl": {
"description": "Remote logo URL from the plugin catalog.",
"type": [
"string",
"null"
]
},
"longDescription": {
"type": [
"string",
"null"
]
},
"privacyPolicyUrl": {
"type": [
"string",
"null"
]
},
"screenshotUrls": {
"description": "Remote screenshot URLs from the plugin catalog.",
"type": "array",
"items": {
"type": "string"
}
},
"screenshots": {
"description": "Local screenshot paths, resolved from the installed plugin package.",
"type": "array",
"items": {
"$ref": "#/definitions/AbsolutePathBuf"
}
},
"shortDescription": {
"type": [
"string",
"null"
]
},
"termsOfServiceUrl": {
"type": [
"string",
"null"
]
},
"websiteUrl": {
"type": [
"string",
"null"
]
}
}
},
"PluginShareContext": {
"type": "object",
"required": [
"remotePluginId"
],
"properties": {
"creatorAccountUserId": {
"type": [
"string",
"null"
]
},
"creatorName": {
"type": [
"string",
"null"
]
},
"discoverability": {
"anyOf": [
{
"$ref": "#/definitions/PluginShareDiscoverability"
},
{
"type": "null"
}
]
},
"remotePluginId": {
"type": "string"
},
"remoteVersion": {
"description": "Version of the remote shared plugin release when available.",
"default": null,
"type": [
"string",
"null"
]
},
"sharePrincipals": {
"type": [
"array",
"null"
],
"items": {
"$ref": "#/definitions/PluginSharePrincipal"
}
},
"shareUrl": {
"type": [
"string",
"null"
]
}
}
},
"PluginShareDiscoverability": {
"type": "string",
"enum": [
"LISTED",
"UNLISTED",
"PRIVATE"
]
},
"PluginShareListItem": {
"type": "object",
"required": [
"plugin"
],
"properties": {
"localPluginPath": {
"anyOf": [
{
"$ref": "#/definitions/AbsolutePathBuf"
},
{
"type": "null"
}
]
},
"plugin": {
"$ref": "#/definitions/PluginSummary"
}
}
},
"PluginSharePrincipal": {
"type": "object",
"required": [
"name",
"principalId",
"principalType",
"role"
],
"properties": {
"name": {
"type": "string"
},
"principalId": {
"type": "string"
},
"principalType": {
"$ref": "#/definitions/PluginSharePrincipalType"
},
"role": {
"$ref": "#/definitions/PluginSharePrincipalRole"
}
}
},
"PluginSharePrincipalRole": {
"type": "string",
"enum": [
"reader",
"editor",
"owner"
]
},
"PluginSharePrincipalType": {
"type": "string",
"enum": [
"user",
"group",
"workspace"
]
},
"PluginSource": {
"oneOf": [
{
"type": "object",
"required": [
"path",
"type"
],
"properties": {
"path": {
"$ref": "#/definitions/AbsolutePathBuf"
},
"type": {
"type": "string",
"enum": [
"local"
],
"title": "LocalPluginSourceType"
}
},
"title": "LocalPluginSource"
},
{
"type": "object",
"required": [
"type",
"url"
],
"properties": {
"path": {
"type": [
"string",
"null"
]
},
"refName": {
"type": [
"string",
"null"
]
},
"sha": {
"type": [
"string",
"null"
]
},
"type": {
"type": "string",
"enum": [
"git"
],
"title": "GitPluginSourceType"
},
"url": {
"type": "string"
}
},
"title": "GitPluginSource"
},
{
"description": "The plugin is available in the remote catalog. Download metadata is kept server-side and is not exposed through the app-server API.",
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"remote"
],
"title": "RemotePluginSourceType"
}
},
"title": "RemotePluginSource"
}
]
},
"PluginSummary": {
"type": "object",
"required": [
"authPolicy",
"enabled",
"id",
"installPolicy",
"installed",
"name",
"source"
],
"properties": {
"authPolicy": {
"$ref": "#/definitions/PluginAuthPolicy"
},
"availability": {
"description": "Availability state for installing and using the plugin.",
"default": "AVAILABLE",
"allOf": [
{
"$ref": "#/definitions/PluginAvailability"
}
]
},
"enabled": {
"type": "boolean"
},
"id": {
"type": "string"
},
"installPolicy": {
"$ref": "#/definitions/PluginInstallPolicy"
},
"installed": {
"type": "boolean"
},
"interface": {
"anyOf": [
{
"$ref": "#/definitions/PluginInterface"
},
{
"type": "null"
}
]
},
"keywords": {
"default": [],
"type": "array",
"items": {
"type": "string"
}
},
"localVersion": {
"description": "Version of the locally materialized plugin package when available.",
"default": null,
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"remotePluginId": {
"description": "Backend remote plugin identifier when available.",
"type": [
"string",
"null"
]
},
"shareContext": {
"description": "Remote sharing context associated with this plugin when available.",
"anyOf": [
{
"$ref": "#/definitions/PluginShareContext"
},
{
"type": "null"
}
]
},
"source": {
"$ref": "#/definitions/PluginSource"
}
}
}
}
}