/* eslint-disable */ /* * This file was auto-generated by `make update-types` at 2023-06-07 10:59:39.668Z. * DO NOT make changes to this file. */ export interface paths { '/api/v1/playlists': { /** * List playlists * @description Lists all playlists. */ get: { /** * List playlists * @description Lists all playlists. */ parameters?: { /** @description Limit number of results */ /** @description Start listing from offset */ query?: { limit?: number offset?: number } } responses: { /** @description OK */ 200: { content: { 'application/json': components['schemas']['v1.PlaylistsListing'] } } /** @description Bad Request */ 400: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Forbidden */ 403: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } } } } '/api/v1/playlists/{id}': { /** * Retrieve playlist * @description Retrieves a playlist. */ get: { /** * Retrieve playlist * @description Retrieves a playlist. */ parameters: { /** @description ID of the playlist */ path: { id: number } } responses: { /** @description OK */ 200: { content: { 'application/json': components['schemas']['store.Playlist'] } } /** @description Bad Request */ 400: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Forbidden */ 403: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Not Found */ 404: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } } } } '/api/v1/shows': { /** * List shows * @description Lists all existing shows */ get: { /** * List shows * @description Lists all existing shows */ parameters?: { /** @description Limit number of results */ /** @description Start listing from offset */ query?: { limit?: number offset?: number } } responses: { /** @description OK */ 200: { content: { 'application/json': components['schemas']['v1.ShowsListing'] } } /** @description Bad Request */ 400: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } } } } '/api/v1/shows/{name}': { /** * Create show * @description Creates a new show */ post: { /** * Create show * @description Creates a new show */ parameters: { /** @description If given, all files and playlists will be copied from the show */ query?: { cloneFrom?: string } /** @description Name of the show to be created */ path: { name: string } } responses: { /** @description Created */ 201: { content: { 'application/json': components['schemas']['store.Show'] } } /** @description Forbidden */ 403: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Not Found */ 404: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Conflict */ 409: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } } } /** * Delete show * @description Deletes a show */ delete: { /** * Delete show * @description Deletes a show */ parameters: { /** @description Name of the show to be deleted */ path: { name: string } } responses: { /** @description No Content */ 204: { content: {} } /** @description Forbidden */ 403: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } } } } '/api/v1/shows/{name}/files': { /** * List files * @description Lists files of show */ get: { /** * List files * @description Lists files of show */ parameters: { /** @description Limit number of results */ /** @description Start listing from offset */ query?: { limit?: number offset?: number } /** @description Name of the show */ path: { name: string } } responses: { /** @description OK */ 200: { content: { 'application/json': components['schemas']['v1.FilesListing'] } } /** @description Bad Request */ 400: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Forbidden */ 403: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } } } /** * Add file * @description Adds a file and starts import */ post: { /** * Add file * @description Adds a file and starts import */ parameters: { /** @description running|done - If given, return not before import has the given state */ query?: { waitFor?: string } /** @description Name of the show */ path: { name: string } } /** @description URI of the file */ requestBody: { content: { 'application/json': components['schemas']['v1.FileCreateRequest'] } } responses: { /** @description Created */ 201: { content: { 'application/json': components['schemas']['store.File'] } } /** @description Bad Request */ 400: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Forbidden */ 403: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } } } } '/api/v1/shows/{name}/files/{id}': { /** * Retrieve file * @description Retrieves file object. */ get: { /** * Retrieve file * @description Retrieves file object. */ parameters: { /** @description Name of the show */ /** @description ID of the file */ path: { name: string id: number } } responses: { /** @description OK */ 200: { content: { 'application/json': components['schemas']['store.File'] } } /** @description Bad Request */ 400: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Forbidden */ 403: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Not Found */ 404: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } } } /** * Delete file * @description Removes a file. */ delete: { /** * Delete file * @description Removes a file. */ parameters: { /** @description Name of the show */ /** @description ID of the file */ path: { name: string id: number } } responses: { /** @description No Content */ 204: { content: {} } /** @description Bad Request */ 400: { content: { '*/*': components['schemas']['v1.ErrorResponse'] } } /** @description Forbidden */ 403: { content: { '*/*': components['schemas']['v1.ErrorResponse'] } } /** @description Not Found */ 404: { content: { '*/*': components['schemas']['v1.ErrorResponse'] } } /** @description Conflict */ 409: { content: { '*/*': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { '*/*': components['schemas']['v1.ErrorResponse'] } } } } /** * Update file * @description Updates file metadata. */ patch: { /** * Update file * @description Updates file metadata. */ parameters: { /** @description Name of the show */ /** @description ID of the file */ path: { name: string id: number } } /** @description File metadata */ requestBody?: { content: { 'application/json': components['schemas']['store.FileMetadata'] } } responses: { /** @description OK */ 200: { content: { 'application/json': components['schemas']['store.File'] } } /** @description Bad Request */ 400: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Forbidden */ 403: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Not Found */ 404: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } } } } '/api/v1/shows/{name}/files/{id}/import': { /** * Retrieve import status * @description Retrieves import status of the file. */ get: { /** * Retrieve import status * @description Retrieves import status of the file. */ parameters: { /** @description running|done - If given, return not before import has the given state */ query?: { waitFor?: string } /** @description Name of the show */ /** @description ID of the file */ path: { name: string id: number } } responses: { /** @description OK */ 200: { content: { 'application/json': components['schemas']['importer.Job'] } } /** @description Bad Request */ 400: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Forbidden */ 403: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description No job for this file */ 404: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } } } /** * Cancel file import * @description Cancels import of file. */ delete: { /** * Cancel file import * @description Cancels import of file. */ parameters: { /** @description Name of the show */ /** @description ID of the file */ path: { name: string id: number } } responses: { /** @description No Content */ 204: { content: {} } /** @description Bad Request */ 400: { content: { '*/*': components['schemas']['v1.ErrorResponse'] } } /** @description Forbidden */ 403: { content: { '*/*': components['schemas']['v1.ErrorResponse'] } } /** @description No job for this file */ 404: { content: { '*/*': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { '*/*': components['schemas']['v1.ErrorResponse'] } } } } } '/api/v1/shows/{name}/files/{id}/logs': { /** * Retrieve import logs * @description Retrieves import logs of the file. */ get: { /** * Retrieve import logs * @description Retrieves import logs of the file. */ parameters: { /** @description Name of the show */ /** @description ID of the file */ path: { name: string id: number } } responses: { /** @description OK */ 200: { content: { 'application/json': components['schemas']['v1.FileImportLogs'] } } /** @description Bad Request */ 400: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Forbidden */ 403: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Not Found */ 404: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } } } } '/api/v1/shows/{name}/files/{id}/upload': { /** * Upload file content * @description Uploads file content. Only available if file was created using SourceURI set to upload://-type and file import state is running. */ get: { /** * Upload file content * @description Uploads file content. Only available if file was created using SourceURI set to upload://-type and file import state is running. */ parameters: { /** @description A unique identifier for the uploaded file */ query: { flowIdentifier: string } /** @description Name of the show */ /** @description ID of the file */ path: { name: string id: number } } responses: { /** @description OK */ 200: { content: {} } /** @description No Content */ 204: { content: {} } /** @description Bad Request */ 400: { content: { '*/*': components['schemas']['v1.ErrorResponse'] } } /** @description Forbidden */ 403: { content: { '*/*': components['schemas']['v1.ErrorResponse'] } } /** @description Conflict */ 409: { content: { '*/*': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { '*/*': components['schemas']['v1.ErrorResponse'] } } } } /** * Upload file content * @description Uploads file content. Only available if file was created using SourceURI set to upload://-type and file import state is running. */ put: { /** * Upload file content * @description Uploads file content. Only available if file was created using SourceURI set to upload://-type and file import state is running. */ parameters: { /** @description Name of the show */ /** @description ID of the file */ path: { name: string id: number } } responses: { /** @description OK */ 200: { content: {} } /** @description Bad Request */ 400: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Forbidden */ 403: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Not Found */ 404: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } } } /** * Upload file content * @description Uploads file content via flow.js. Only available if file was created using SourceURI set to upload://-type and file import state is running. */ post: { /** * Upload file content * @description Uploads file content via flow.js. Only available if file was created using SourceURI set to upload://-type and file import state is running. */ parameters: { /** @description Name of the show */ /** @description ID of the file */ path: { name: string id: number } } responses: { /** @description OK */ 200: { content: {} } /** @description Bad Request */ 400: { content: { '*/*': components['schemas']['v1.ErrorResponse'] } } /** @description Forbidden */ 403: { content: { '*/*': components['schemas']['v1.ErrorResponse'] } } /** @description Conflict */ 409: { content: { '*/*': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { '*/*': components['schemas']['v1.ErrorResponse'] } } } } } '/api/v1/shows/{name}/files/{id}/usage': { /** * List referring playlists * @description Lists playlists referring to the file. */ get: { /** * List referring playlists * @description Lists playlists referring to the file. */ parameters: { /** @description Name of the show */ /** @description ID of the file */ path: { name: string id: number } } responses: { /** @description OK */ 200: { content: { 'application/json': components['schemas']['v1.FileUsageListing'] } } /** @description Bad Request */ 400: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Forbidden */ 403: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Not Found */ 404: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } } } } '/api/v1/shows/{name}/imports': { /** * List imports * @description Lists all running and pending imports */ get: { /** * List imports * @description Lists all running and pending imports */ parameters: { /** @description Limit number of results */ /** @description Start listing from offset */ query?: { limit?: number offset?: number } /** @description Name of the show */ path: { name: string } } responses: { /** @description OK */ 200: { content: { 'application/json': components['schemas']['v1.JobsListing'] } } /** @description Bad Request */ 400: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Forbidden */ 403: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } } } } '/api/v1/shows/{name}/playlists': { /** * List playlists * @description Lists playlists of show. */ get: { /** * List playlists * @description Lists playlists of show. */ parameters: { /** @description Limit number of results */ /** @description Start listing from offset */ query?: { limit?: number offset?: number } /** @description Name of the show */ path: { name: string } } responses: { /** @description OK */ 200: { content: { 'application/json': components['schemas']['v1.PlaylistsListing'] } } /** @description Bad Request */ 400: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Forbidden */ 403: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } } } /** * Create playlist * @description Creates a new playlist for the show. */ post: { /** * Create playlist * @description Creates a new playlist for the show. */ parameters: { /** @description Name of the show */ path: { name: string } } /** @description Playlist data */ requestBody: { content: { 'application/json': components['schemas']['store.Playlist'] } } responses: { /** @description Created */ 201: { content: { 'application/json': components['schemas']['store.Playlist'] } } /** @description Bad Request */ 400: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Forbidden */ 403: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } } } } '/api/v1/shows/{name}/playlists/{id}': { /** * Retrieve playlist * @description Retrieves a playlist of a show. */ get: { /** * Retrieve playlist * @description Retrieves a playlist of a show. */ parameters: { /** @description Name of the show */ /** @description ID of the playlist */ path: { name: string id: number } } responses: { /** @description OK */ 200: { content: { 'application/json': components['schemas']['store.Playlist'] } } /** @description Bad Request */ 400: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Forbidden */ 403: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Not Found */ 404: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } } } /** * Update playlist * @description Updates a playlist of a show. */ put: { /** * Update playlist * @description Updates a playlist of a show. */ parameters: { /** @description Name of the show */ /** @description ID of the playlist */ path: { name: string id: number } } /** @description Playlist data */ requestBody: { content: { 'application/json': components['schemas']['store.Playlist'] } } responses: { /** @description OK */ 200: { content: { 'application/json': components['schemas']['store.Playlist'] } } /** @description Bad Request */ 400: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Forbidden */ 403: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Not Found */ 404: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { 'application/json': components['schemas']['v1.ErrorResponse'] } } } } /** * Delete playlist * @description Deletes a playlist of a show. */ delete: { /** * Delete playlist * @description Deletes a playlist of a show. */ parameters: { /** @description Name of the show */ /** @description ID of the playlist */ path: { name: string id: number } } responses: { /** @description No Content */ 204: { content: {} } /** @description Bad Request */ 400: { content: { '*/*': components['schemas']['v1.ErrorResponse'] } } /** @description Forbidden */ 403: { content: { '*/*': components['schemas']['v1.ErrorResponse'] } } /** @description Not Found */ 404: { content: { '*/*': components['schemas']['v1.ErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { '*/*': components['schemas']['v1.ErrorResponse'] } } } } } '/auth/backends': { /** * List authentication backends * @description Lists authentication backends. */ get: { /** * List authentication backends * @description Lists authentication backends. */ responses: { /** @description OK */ 200: { content: { 'application/json': components['schemas']['auth.AuthBackendInfo'][] } } /** @description Not Found */ 404: { content: { 'application/json': components['schemas']['auth.HTTPErrorResponse'] } } } } } '/auth/oidc/callback': { /** * Complete OIDC login * @description Completes OIDC login. */ get: { /** * Complete OIDC login * @description Completes OIDC login. */ parameters: { /** @description OIDC state */ /** @description OIDC code */ query: { state: string code: string } } responses: { /** @description OK */ 200: { content: { 'application/json': string } } /** @description Bad Request */ 400: { content: { 'application/json': components['schemas']['auth.HTTPErrorResponse'] } } /** @description Unauthorized */ 401: { content: { 'application/json': components['schemas']['auth.HTTPErrorResponse'] } } /** @description Conflict */ 409: { content: { 'application/json': components['schemas']['auth.HTTPErrorResponse'] } } /** @description Gone */ 410: { content: { 'application/json': components['schemas']['auth.HTTPErrorResponse'] } } /** @description Internal Server Error */ 500: { content: { 'application/json': components['schemas']['auth.HTTPErrorResponse'] } } } } } '/auth/oidc/login': { /** * Create OIDC session * @description Creates a session via OIDC. Redirects to identity provider. */ get: { /** * Create OIDC session * @description Creates a session via OIDC. Redirects to identity provider. */ parameters: { /** @description OIDC session ID */ query: { 'session-id': string } } responses: { /** @description Found */ 302: { content: {} } /** @description Bad Request */ 400: { content: { 'application/json': components['schemas']['auth.HTTPErrorResponse'] } } /** @description Unauthorized */ 401: { content: { 'application/json': components['schemas']['auth.HTTPErrorResponse'] } } /** @description Conflict */ 409: { content: { 'application/json': components['schemas']['auth.HTTPErrorResponse'] } } } } } '/auth/session': { /** * Retrieve session info * @description Retrieves session info. */ get: { /** * Retrieve session info * @description Retrieves session info. */ responses: { /** @description OK */ 200: { content: { 'application/json': components['schemas']['auth.Session'] } } /** @description Bad Request */ 400: { content: { 'application/json': components['schemas']['auth.HTTPErrorResponse'] } } /** @description Not Found */ 404: { content: { 'application/json': components['schemas']['auth.HTTPErrorResponse'] } } /** @description Request Timeout */ 408: { content: { 'application/json': components['schemas']['auth.HTTPErrorResponse'] } } } } /** * Create session * @description Creates a new session. */ post: { /** * Create session * @description Creates a new session. */ /** @description Request data according to backend */ requestBody: { content: { 'application/json': components['schemas']['auth.NewSessionRequest'] } } responses: { /** @description OK */ 200: { content: { 'application/json': components['schemas']['auth.NewSessionResponse'] } } /** @description Bad Request */ 400: { content: { 'application/json': components['schemas']['auth.HTTPErrorResponse'] } } /** @description Conflict */ 409: { content: { 'application/json': components['schemas']['auth.HTTPErrorResponse'] } } } } /** * Delete session * @description Deletes the session. */ delete: { /** * Delete session * @description Deletes the session. */ responses: { /** @description OK */ 200: { content: { 'application/json': string } } /** @description Bad Request */ 400: { content: { 'application/json': components['schemas']['auth.HTTPErrorResponse'] } } /** @description Unauthorized */ 401: { content: { 'application/json': components['schemas']['auth.HTTPErrorResponse'] } } } } } '/healthz': { /** * Check health * @description Checks daemon health. */ get: { /** * Check health * @description Checks daemon health. */ responses: { /** @description OK */ 200: { content: { 'application/json': components['schemas']['main.Health'] } } /** @description Service Unavailable */ 503: { content: { 'application/json': components['schemas']['main.Health'] } } } } } } export type webhooks = Record<string, never> export interface components { schemas: { 'auth.AuthBackendInfo': { description?: string name?: string /** @enum {string} */ state?: 'new' | 'initializing' | 'ready' | 'failed' | 'destroyed' | 'unknown' } 'auth.HTTPErrorResponse': { error?: string } 'auth.NewSessionRequest': { arguments?: number[] backend?: string } 'auth.NewSessionResponse': { session?: components['schemas']['auth.Session'] token?: string } 'auth.Session': { 'all-shows'?: boolean privileged?: boolean 'public-shows'?: string[] readonly?: boolean shows?: string[] username?: string } 'importer.Job': { created?: string id?: number progress?: number refID?: string show?: string source?: components['schemas']['importer.SourceURL'] started?: number state?: number username?: string } 'importer.SourceURL': string 'main.Health': { auth?: string importer?: string store?: string } 'store.File': { created?: string duration?: number id?: number metadata?: components['schemas']['store.FileMetadata'] showName?: string size?: number source?: components['schemas']['store.FileSource'] updated?: string } 'store.FileMetadata': { album?: string /** @description actually a full-text index would be nice here... */ artist?: string isrc?: string organization?: string title?: string } 'store.FileSource': { hash?: string import?: components['schemas']['store.Import'] uri?: string } 'store.Import': { error?: string state?: string } 'store.ImportLogs': { [key: string]: components['schemas']['store.Log'] | undefined } 'store.Log': Record<string, never> 'store.Playlist': { created?: string description?: string entries?: components['schemas']['store.PlaylistEntry'][] id?: number playoutMode?: string showName?: string updated?: string } 'store.PlaylistEntry': { duration?: number file?: components['schemas']['store.File'] uri?: string } 'store.Show': { created?: string name?: string updated?: string } 'url.Userinfo': Record<string, never> 'v1.ErrorResponse': { detail?: Record<string, never> error?: string } 'v1.FileCreateRequest': { /** @enum {string} */ sourceURI?: 'upload://<filename>' | 'https://<host>/<path>' | 'file:///<path>' } 'v1.FileImportLogs': { results?: components['schemas']['store.ImportLogs'] } 'v1.FileUsageListing': { results?: components['schemas']['v1_FileUsageListing_results'] } 'v1.FilesListing': { results?: components['schemas']['store.File'][] } 'v1.JobsListing': { results?: components['schemas']['importer.Job'][] } 'v1.PlaylistsListing': { results?: components['schemas']['store.Playlist'][] } 'v1.ShowsListing': { results?: components['schemas']['store.Show'][] } v1_FileUsageListing_results: { playlists?: components['schemas']['store.Playlist'][] } } responses: never parameters: never requestBodies: never headers: never pathItems: never } export type external = Record<string, never> export type operations = Record<string, never>