/* 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>