openapi: 3.0.0 info: description: This is the public API for the Companion Satellite client. version: 0.1.0 title: Bitfocus Companion Satellite Configuration API paths: /status: get: summary: Get Connection status to Companion operationId: getConnectionStatus responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/StatusResponse' '400': description: failed operation content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /surfaces: get: summary: Get Connected surfaces operationId: getConnectedSurfaces responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/SurfaceInfo' '400': description: failed operation content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /surfaces/rescan: post: summary: Rescan for connected surfaces operationId: postSurfaceesScan responses: '200': description: successful operation '400': description: failed operation content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /surfaces/plugins/installed: get: summary: Get installed surface plugins operationId: getSurfacePluginsInstalled responses: '200': description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/SurfacePluginInfo' '400': description: failed operation content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /surfaces/plugins/enabled: get: summary: Get enabled status of surface plugins operationId: getSurfacePluginsEnabled responses: '200': description: successful operation content: application/json: schema: type: object additionalProperties: type: boolean '400': description: failed operation content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' post: summary: Update enabled status of surface plugins operationId: updateSurfacePluginsEnabled requestBody: content: application/json: schema: type: object additionalProperties: type: boolean responses: '200': description: successful operation content: application/json: schema: type: object additionalProperties: type: boolean '400': description: failed operation content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /config: get: summary: Get current configuration operationId: getConfig responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ConfigData' '400': description: failed operation content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' post: summary: Update current configuration operationId: updateConfig requestBody: content: application/json: schema: $ref: '#/components/schemas/ConfigDataUpdate' responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/ConfigData' '400': description: failed operation content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' components: schemas: ErrorResponse: type: object properties: error: type: string required: - error StatusResponse: type: object properties: connected: type: boolean description: Whether the client is connected to the Companion Satellite companionVersion: type: string nullable: true description: Version of the Companion Satellite companionApiVersion: type: string nullable: true description: API version of the Companion Satellite companionUnsupportedApi: type: boolean description: Whether the last successful Companion connection was with an unsupported API version required: - connected - companionVersion - companionApiVersion - companionUnsupportedApi ConfigData: type: object properties: protocol: type: string enum: ['tcp', 'ws'] description: Protocol to use for the connection host: type: string description: Address of the Companion server to connect to, for TCP protocol port: type: number description: Port number of the Companion server to connect to, for TCP protocol wsAddress: type: string description: Address of the Companion server to connect to, for WS protocol installationName: type: string description: Name of the installation, reported in the mDNS announcement mdnsEnabled: type: boolean description: Enable mDNS announcement to allow automatic discovery of the Companion Satellite httpEnabled: type: boolean description: Enable the HTTP api. This is readonly in the HTTP api httpPort: type: number description: Port number of the HTTP api. This is readonly in the HTTP api required: - protocol - host - port - wsAddress - installationName - mdnsEnabled - httpEnabled - httpPort ConfigDataUpdate: type: object properties: protocol: type: string enum: ['tcp', 'ws'] description: Protocol to use for the connection host: type: string description: Address of the Companion server to connect to, for TCP protocol port: type: number description: Port number of the Companion server to connect to, for TCP protocol wsAddress: type: string description: Address of the Companion server to connect to, for WS protocol installationName: type: string description: Name of the installation, reported in the mDNS announcement mdnsEnabled: type: boolean description: Enable mDNS announcement to allow automatic discovery of the Companion Satellite SurfaceInfo: type: object properties: surfaceId: type: string description: ID of the surface productName: type: string description: Product Name of the surface pluginId: type: string description: Plugin ID of the surface pluginName: type: string description: Plugin name of the surface # isOpen: # type: boolean # description: Whether the surface is currently open required: - surfaceId - productName - pluginId - pluginName # - isOpen SurfacePluginInfo: type: object properties: pluginId: type: string description: Plugin ID of the surface pluginName: type: string description: Plugin name of the surface version: type: string description: Version of the plugin pluginComment: type: array items: type: string description: Comment about the plugin required: - pluginId - pluginName - version