Skip to content
Snippets Groups Projects
tank-types.ts 30 KiB
Newer Older
  • Learn to ignore specific revisions
  •  * This file was auto-generated by `make update-types` at 2023-10-13 19:41:45.807Z.
    
     * DO NOT make changes to this file.
     */
    
    export interface paths {
      '/api/v1/playlists': {
        /**
         * List playlists
         * @description Lists all playlists.
         */
        get: {
    
          parameters: {
    
              /** @description Limit number of results */
    
              /** @description Start listing from offset */
    
              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: {
          parameters: {
            path: {
    
              /** @description ID of the playlist */
    
              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: {
    
          parameters: {
    
              /** @description Limit number of results */
    
              /** @description Start listing from offset */
    
              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: {
          parameters: {
            query?: {
    
              /** @description If given, all files and playlists will be copied from the show */
    
              /** @description Name of the show to be created */
    
              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: {
          parameters: {
            path: {
    
              /** @description Name of the show to be deleted */
    
              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: {
          parameters: {
            query?: {
    
              /** @description Limit number of results */
    
              /** @description Start listing from offset */
    
              /** @description Name of the show */
    
              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: {
          parameters: {
            query?: {
    
              /** @description running|done - If given, return not before import has the given state */
    
              /** @description Name of the show */
    
              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: {
          parameters: {
            path: {
    
              /** @description Name of the show */
    
              /** @description ID of the file */
    
              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: {
          parameters: {
            path: {
    
              /** @description Name of the show */
    
              /** @description ID of the file */
    
              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: {
          parameters: {
            path: {
    
              /** @description Name of the show */
    
              /** @description ID of the file */
    
              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: {
          parameters: {
            query?: {
    
              /** @description running|done - If given, return not before import has the given state */
    
              /** @description Name of the show */
    
              /** @description ID of the file */
    
              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: {
          parameters: {
            path: {
    
              /** @description Name of the show */
    
              /** @description ID of the file */
    
              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: {
          parameters: {
            path: {
    
              /** @description Name of the show */
    
              /** @description ID of the file */
    
              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: {
          parameters: {
            query: {
    
              /** @description A unique identifier for the uploaded file */
    
              /** @description Name of the show */
    
              /** @description ID of the file */
    
              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: {
          parameters: {
            path: {
    
              /** @description Name of the show */
    
              /** @description ID of the file */
    
              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: {
          parameters: {
            path: {
    
              /** @description Name of the show */
    
              /** @description ID of the file */
    
              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: {
          parameters: {
            path: {
    
              /** @description Name of the show */
    
              /** @description ID of the file */
    
              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: {
          parameters: {
            query?: {
    
              /** @description Limit number of results */
    
              /** @description Start listing from offset */
    
              /** @description Name of the show */
    
              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: {
          parameters: {
            query?: {
    
              /** @description Limit number of results */
    
              /** @description Start listing from offset */
    
              /** @description Name of the show */
    
              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: {
          parameters: {
            path: {
    
              /** @description Name of the show */
    
              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: {
          parameters: {
            path: {
    
              /** @description Name of the show */
    
              /** @description ID of the playlist */
    
              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: {
          parameters: {
            path: {
    
              /** @description Name of the show */
    
              /** @description ID of the playlist */
    
              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: {