diff --git a/package-lock.json b/package-lock.json index 4fe2160..ae0441d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "@apollo/client": "^3.7.15", "axios": "^1.4.0", "graphql": "^16.6.0", + "openapi-fetch": "^0.2.1", "radix-icons-svelte": "^1.2.1", "svelte-apollo": "^0.5.0" }, @@ -34,6 +35,7 @@ "eslint-config-prettier": "^8.5.0", "eslint-plugin-svelte": "^2.26.0", "graphql-codegen-svelte-apollo": "^1.1.0", + "openapi-typescript": "^6.2.7", "postcss": "^8.4.24", "prettier": "^2.8.0", "prettier-plugin-svelte": "^2.8.1", @@ -3265,6 +3267,15 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -6311,6 +6322,40 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/openapi-fetch": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/openapi-fetch/-/openapi-fetch-0.2.1.tgz", + "integrity": "sha512-XrpiPz8fPUdYtgcXSU4u8jJ/At67PbFsj6XRZZbt6lMsrosKplWY7dUgnkstYaroschNz/NfYSPIiq0sOaY0nw==" + }, + "node_modules/openapi-typescript": { + "version": "6.2.7", + "resolved": "https://registry.npmjs.org/openapi-typescript/-/openapi-typescript-6.2.7.tgz", + "integrity": "sha512-SEdqtFLWmbc2CckzZVSF4/cpPgWlWZp02P0wVCLV/7mCE+7qKukIoiVCLfWJIVeklWuGLZkA/PdJ6OwWaqJ6Ig==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.3", + "fast-glob": "^3.2.12", + "js-yaml": "^4.1.0", + "supports-color": "^9.3.1", + "undici": "^5.22.1", + "yargs-parser": "^21.1.1" + }, + "bin": { + "openapi-typescript": "bin/cli.js" + } + }, + "node_modules/openapi-typescript/node_modules/supports-color": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.3.1.tgz", + "integrity": "sha512-knBY82pjmnIzK3NifMo3RxEIRD9E0kIzV4BKcyTZ9+9kWgLMxd4PrsTSMoFQUabgRBbF8KOLRDCyKgNV+iK44Q==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/optimism": { "version": "0.16.2", "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.2.tgz", diff --git a/package.json b/package.json index 7b763b5..5479767 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "eslint-config-prettier": "^8.5.0", "eslint-plugin-svelte": "^2.26.0", "graphql-codegen-svelte-apollo": "^1.1.0", + "openapi-typescript": "^6.2.7", "postcss": "^8.4.24", "prettier": "^2.8.0", "prettier-plugin-svelte": "^2.8.1", @@ -48,6 +49,7 @@ "@apollo/client": "^3.7.15", "axios": "^1.4.0", "graphql": "^16.6.0", + "openapi-fetch": "^0.2.1", "radix-icons-svelte": "^1.2.1", "svelte-apollo": "^0.5.0" } diff --git a/src/app.html b/src/app.html index 4b9b141..de1b55f 100644 --- a/src/app.html +++ b/src/app.html @@ -1,6 +1,7 @@ + Reiverr diff --git a/src/lib/apollo-client.ts b/src/lib/apollo-client.ts deleted file mode 100644 index 89fba66..0000000 --- a/src/lib/apollo-client.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ApolloClient, HttpLink, InMemoryCache } from '@apollo/client/core'; - -const client = new ApolloClient({ - link: new HttpLink({ - uri: 'http://localhost:4000/graphql' - }), - cache: new InMemoryCache({ - addTypename: false - }) -}); - -export default client; diff --git a/src/lib/graphql.ts b/src/lib/graphql.ts deleted file mode 100644 index 2b7a31a..0000000 --- a/src/lib/graphql.ts +++ /dev/null @@ -1,2113 +0,0 @@ -/* eslint-disable */ -/* this is a generated file, do not edit */ -import client from "$lib/apollo-client"; -import type { - ApolloQueryResult, ObservableQuery, WatchQueryOptions, MutationOptions - } from "@apollo/client"; -import { readable } from "svelte/store"; -import type { Readable } from "svelte/store"; -import gql from "graphql-tag" -export type Maybe = T | null; -export type InputMaybe = Maybe; -export type Exact = { [K in keyof T]: T[K] }; -export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; -export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; -export type MakeEmpty = { [_ in K]?: never }; -export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; -/** All built-in and custom scalars, mapped to their actual values */ -export type Scalars = { - ID: { input: string | number; output: string; } - String: { input: string; output: string; } - Boolean: { input: boolean; output: boolean; } - Int: { input: number; output: number; } - Float: { input: number; output: number; } - BigInt: { input: any; output: any; } - DateTime: { input: any; output: any; } -}; - -export enum DownloadableMediaState { - Downloaded = 'DOWNLOADED', - Downloading = 'DOWNLOADING', - Missing = 'MISSING', - Processed = 'PROCESSED', - Searching = 'SEARCHING' -} - -export type DownloadingMedia = { - __typename?: 'DownloadingMedia'; - id: Scalars['String']['output']; - quality: Scalars['String']['output']; - resourceId: Scalars['Float']['output']; - resourceType: FileType; - tag: Scalars['String']['output']; - title: Scalars['String']['output']; - torrent: Scalars['String']['output']; -}; - -export type EnrichedMovie = { - __typename?: 'EnrichedMovie'; - createdAt: Scalars['DateTime']['output']; - id: Scalars['Float']['output']; - originalTitle?: Maybe; - overview: Scalars['String']['output']; - posterPath?: Maybe; - releaseDate: Scalars['String']['output']; - runtime?: Maybe; - state: DownloadableMediaState; - title: Scalars['String']['output']; - tmdbId: Scalars['Float']['output']; - updatedAt: Scalars['DateTime']['output']; - voteAverage: Scalars['Float']['output']; -}; - -export type EnrichedTvEpisode = { - __typename?: 'EnrichedTVEpisode'; - createdAt: Scalars['DateTime']['output']; - episodeNumber: Scalars['Float']['output']; - id: Scalars['Float']['output']; - releaseDate: Scalars['String']['output']; - seasonNumber: Scalars['Float']['output']; - state: DownloadableMediaState; - tvShow: TvShow; - updatedAt: Scalars['DateTime']['output']; - voteAverage?: Maybe; -}; - -export type EnrichedTvShow = { - __typename?: 'EnrichedTVShow'; - createdAt: Scalars['DateTime']['output']; - id: Scalars['Float']['output']; - originalTitle?: Maybe; - overview: Scalars['String']['output']; - posterPath?: Maybe; - releaseDate: Scalars['String']['output']; - runtime?: Maybe; - title: Scalars['String']['output']; - tmdbId: Scalars['Float']['output']; - updatedAt: Scalars['DateTime']['output']; - voteAverage: Scalars['Float']['output']; -}; - -export enum Entertainment { - Movie = 'Movie', - TvShow = 'TvShow' -} - -export enum FileType { - Episode = 'EPISODE', - Movie = 'MOVIE', - Season = 'SEASON' -} - -export type GetTorrentStatusInput = { - resourceId: Scalars['Int']['input']; - resourceType: FileType; -}; - -export type GraphQlCommonResponse = { - __typename?: 'GraphQLCommonResponse'; - message?: Maybe; - success: Scalars['Boolean']['output']; -}; - -export type JackettFormattedResult = { - __typename?: 'JackettFormattedResult'; - downloadLink: Scalars['String']['output']; - id: Scalars['String']['output']; - link: Scalars['String']['output']; - normalizedTitle: Scalars['String']['output']; - normalizedTitleParts: Array; - peers: Scalars['Float']['output']; - publishDate: Scalars['String']['output']; - quality: Scalars['String']['output']; - qualityScore: Scalars['Float']['output']; - seeders: Scalars['Float']['output']; - size: Scalars['BigInt']['output']; - tag: Scalars['String']['output']; - tagScore: Scalars['Float']['output']; - title: Scalars['String']['output']; -}; - -export type JackettInput = { - downloadLink: Scalars['String']['input']; - quality: Scalars['String']['input']; - tag: Scalars['String']['input']; - title: Scalars['String']['input']; -}; - -export type LibraryCalendar = { - __typename?: 'LibraryCalendar'; - movies: Array; - tvEpisodes: Array; -}; - -export type LibraryFileDetails = { - __typename?: 'LibraryFileDetails'; - id: Scalars['Float']['output']; - libraryFileSize?: Maybe; - libraryPath: Scalars['String']['output']; - torrentFileName?: Maybe; -}; - -export type Movie = { - __typename?: 'Movie'; - createdAt: Scalars['DateTime']['output']; - id: Scalars['Float']['output']; - state: DownloadableMediaState; - title: Scalars['String']['output']; - tmdbId: Scalars['Float']['output']; - updatedAt: Scalars['DateTime']['output']; -}; - -export type Mutation = { - __typename?: 'Mutation'; - clearRedisCache: GraphQlCommonResponse; - downloadMovie: GraphQlCommonResponse; - downloadOwnTorrent: GraphQlCommonResponse; - downloadSeason: GraphQlCommonResponse; - downloadTVEpisode: GraphQlCommonResponse; - removeMovie: GraphQlCommonResponse; - removeTVShow: GraphQlCommonResponse; - resetLibrary: GraphQlCommonResponse; - saveQualityParams: GraphQlCommonResponse; - saveTags: GraphQlCommonResponse; - startDownloadMissingJob: GraphQlCommonResponse; - startFindNewEpisodesJob: GraphQlCommonResponse; - startScanLibraryJob: GraphQlCommonResponse; - trackMovie: Movie; - trackTVShow: TvShow; - updateParams: GraphQlCommonResponse; -}; - - -export type MutationDownloadMovieArgs = { - jackettResult: JackettInput; - movieId: Scalars['Int']['input']; -}; - - -export type MutationDownloadOwnTorrentArgs = { - mediaId: Scalars['Int']['input']; - mediaType: FileType; - torrent: Scalars['String']['input']; -}; - - -export type MutationDownloadSeasonArgs = { - jackettResult: JackettInput; - seasonNumber: Scalars['Int']['input']; - tvShowTMDBId: Scalars['Int']['input']; -}; - - -export type MutationDownloadTvEpisodeArgs = { - episodeId: Scalars['Int']['input']; - jackettResult: JackettInput; -}; - - -export type MutationRemoveMovieArgs = { - tmdbId: Scalars['Int']['input']; -}; - - -export type MutationRemoveTvShowArgs = { - tmdbId: Scalars['Int']['input']; -}; - - -export type MutationResetLibraryArgs = { - deleteFiles: Scalars['Boolean']['input']; - resetSettings: Scalars['Boolean']['input']; -}; - - -export type MutationSaveQualityParamsArgs = { - qualities: Array; -}; - - -export type MutationSaveTagsArgs = { - tags: Array; -}; - - -export type MutationTrackMovieArgs = { - title: Scalars['String']['input']; - tmdbId: Scalars['Int']['input']; -}; - - -export type MutationTrackTvShowArgs = { - seasonNumbers: Array; - tmdbId: Scalars['Int']['input']; -}; - - -export type MutationUpdateParamsArgs = { - params: Array; -}; - -export type OmdbInfo = { - __typename?: 'OMDBInfo'; - ratings: Ratings; -}; - -export type ParamsHash = { - __typename?: 'ParamsHash'; - jackett_api_key: Scalars['String']['output']; - language: Scalars['String']['output']; - max_movie_download_size: Scalars['String']['output']; - max_tvshow_episode_download_size: Scalars['String']['output']; - organize_library_strategy: Scalars['String']['output']; - region: Scalars['String']['output']; - tmdb_api_key: Scalars['String']['output']; -}; - -export type Quality = { - __typename?: 'Quality'; - createdAt: Scalars['DateTime']['output']; - id: Scalars['Float']['output']; - match: Array; - name: Scalars['String']['output']; - score: Scalars['Float']['output']; - type: Entertainment; - updatedAt: Scalars['DateTime']['output']; -}; - -export type QualityInput = { - id: Scalars['Float']['input']; - score: Scalars['Float']['input']; -}; - -export type Query = { - __typename?: 'Query'; - discover: TmdbPaginatedResult; - getCalendar: LibraryCalendar; - getDownloadingMedias: Array; - getGenres: TmdbGenresResults; - getLanguages: Array; - getMissingMovies: Array; - getMissingTVEpisodes: Array; - getMovieFileDetails: LibraryFileDetails; - getMovies: Array; - getParams: ParamsHash; - getPopular: TmdbSearchResults; - getQualityParams: Array; - getRecommendedMovies: Array; - getRecommendedTVShows: Array; - getSearchingMedias: Array; - getTVSeasonDetails: Array; - getTVShowSeasons: Array; - getTVShows: Array; - getTags: Array; - getTorrentStatus: Array; - omdbSearch: OmdbInfo; - search: TmdbSearchResults; - searchJackett: Array; -}; - - -export type QueryDiscoverArgs = { - entertainment?: InputMaybe; - genres?: InputMaybe>; - originLanguage?: InputMaybe; - page?: InputMaybe; - primaryReleaseYear?: InputMaybe; - score?: InputMaybe; -}; - - -export type QueryGetMovieFileDetailsArgs = { - tmdbId: Scalars['Int']['input']; -}; - - -export type QueryGetQualityParamsArgs = { - type: Entertainment; -}; - - -export type QueryGetTvSeasonDetailsArgs = { - seasonNumber: Scalars['Int']['input']; - tvShowTMDBId: Scalars['Int']['input']; -}; - - -export type QueryGetTvShowSeasonsArgs = { - tvShowTMDBId: Scalars['Int']['input']; -}; - - -export type QueryGetTorrentStatusArgs = { - torrents: Array; -}; - - -export type QueryOmdbSearchArgs = { - title: Scalars['String']['input']; -}; - - -export type QuerySearchArgs = { - query: Scalars['String']['input']; -}; - - -export type QuerySearchJackettArgs = { - query: Scalars['String']['input']; -}; - -export type Ratings = { - __typename?: 'Ratings'; - IMDB?: Maybe; - metaCritic?: Maybe; - rottenTomatoes?: Maybe; -}; - -export type SearchingMedia = { - __typename?: 'SearchingMedia'; - id: Scalars['String']['output']; - resourceId: Scalars['Float']['output']; - resourceType: FileType; - title: Scalars['String']['output']; -}; - -export type TmdbFormattedTvEpisode = { - __typename?: 'TMDBFormattedTVEpisode'; - airDate?: Maybe; - episodeNumber: Scalars['Float']['output']; - id: Scalars['Float']['output']; - name: Scalars['String']['output']; - overview: Scalars['String']['output']; - seasonNumber: Scalars['Float']['output']; - stillPath?: Maybe; - voteAverage?: Maybe; - voteCount?: Maybe; -}; - -export type TmdbFormattedTvSeason = { - __typename?: 'TMDBFormattedTVSeason'; - airDate?: Maybe; - episodeCount?: Maybe; - episodes?: Maybe>; - id: Scalars['Float']['output']; - inLibrary: Scalars['Boolean']['output']; - name: Scalars['String']['output']; - overview?: Maybe; - posterPath?: Maybe; - seasonNumber: Scalars['Float']['output']; -}; - -export type TmdbGenresResult = { - __typename?: 'TMDBGenresResult'; - id: Scalars['Float']['output']; - name: Scalars['String']['output']; -}; - -export type TmdbGenresResults = { - __typename?: 'TMDBGenresResults'; - movieGenres: Array; - tvShowGenres: Array; -}; - -export type TmdbLanguagesResult = { - __typename?: 'TMDBLanguagesResult'; - code: Scalars['String']['output']; - language: Scalars['String']['output']; -}; - -export type TmdbPaginatedResult = { - __typename?: 'TMDBPaginatedResult'; - page: Scalars['Float']['output']; - results: Array; - totalPages: Scalars['Float']['output']; - totalResults: Scalars['Float']['output']; -}; - -export type TmdbSearchResult = { - __typename?: 'TMDBSearchResult'; - id: Scalars['Float']['output']; - overview: Scalars['String']['output']; - posterPath?: Maybe; - releaseDate?: Maybe; - runtime?: Maybe; - title: Scalars['String']['output']; - tmdbId: Scalars['Float']['output']; - voteAverage: Scalars['Float']['output']; -}; - -export type TmdbSearchResults = { - __typename?: 'TMDBSearchResults'; - movies: Array; - tvShows: Array; -}; - -export type TvShow = { - __typename?: 'TVShow'; - createdAt: Scalars['DateTime']['output']; - id: Scalars['Float']['output']; - title: Scalars['String']['output']; - tmdbId: Scalars['Float']['output']; - updatedAt: Scalars['DateTime']['output']; -}; - -export type Tag = { - __typename?: 'Tag'; - createdAt: Scalars['DateTime']['output']; - id: Scalars['Float']['output']; - name: Scalars['String']['output']; - score: Scalars['Float']['output']; - updatedAt: Scalars['DateTime']['output']; -}; - -export type TagInput = { - name: Scalars['String']['input']; - score: Scalars['Float']['input']; -}; - -export type TorrentStatus = { - __typename?: 'TorrentStatus'; - id: Scalars['Int']['output']; - percentDone: Scalars['Float']['output']; - rateDownload: Scalars['Int']['output']; - rateUpload: Scalars['Int']['output']; - resourceId: Scalars['Int']['output']; - resourceType: FileType; - status: Scalars['Int']['output']; - totalSize: Scalars['BigInt']['output']; - uploadRatio: Scalars['Float']['output']; - uploadedEver: Scalars['BigInt']['output']; -}; - -export type UpdateParamsInput = { - key: Scalars['String']['input']; - value: Scalars['String']['input']; -}; - -export type ClearCacheMutationVariables = Exact<{ [key: string]: never; }>; - - -export type ClearCacheMutation = { __typename?: 'Mutation', result: { __typename?: 'GraphQLCommonResponse', success: boolean, message?: string | null } }; - -export type DownloadOwnTorrentMutationVariables = Exact<{ - mediaId: Scalars['Int']['input']; - mediaType: FileType; - torrent: Scalars['String']['input']; -}>; - - -export type DownloadOwnTorrentMutation = { __typename?: 'Mutation', downloadOwnTorrent: { __typename?: 'GraphQLCommonResponse', success: boolean, message?: string | null } }; - -export type StartScanLibraryMutationVariables = Exact<{ [key: string]: never; }>; - - -export type StartScanLibraryMutation = { __typename?: 'Mutation', result: { __typename?: 'GraphQLCommonResponse', success: boolean, message?: string | null } }; - -export type StartFindNewEpisodesMutationVariables = Exact<{ [key: string]: never; }>; - - -export type StartFindNewEpisodesMutation = { __typename?: 'Mutation', result: { __typename?: 'GraphQLCommonResponse', success: boolean, message?: string | null } }; - -export type StartDownloadMissingMutationVariables = Exact<{ [key: string]: never; }>; - - -export type StartDownloadMissingMutation = { __typename?: 'Mutation', result: { __typename?: 'GraphQLCommonResponse', success: boolean, message?: string | null } }; - -export type DownloadMovieMutationVariables = Exact<{ - movieId: Scalars['Int']['input']; - jackettResult: JackettInput; -}>; - - -export type DownloadMovieMutation = { __typename?: 'Mutation', result: { __typename?: 'GraphQLCommonResponse', success: boolean, message?: string | null } }; - -export type DownloadTvEpisodeMutationVariables = Exact<{ - episodeId: Scalars['Int']['input']; - jackettResult: JackettInput; -}>; - - -export type DownloadTvEpisodeMutation = { __typename?: 'Mutation', result: { __typename?: 'GraphQLCommonResponse', success: boolean, message?: string | null } }; - -export type DownloadSeasonMutationVariables = Exact<{ - tvShowTMDBId: Scalars['Int']['input']; - seasonNumber: Scalars['Int']['input']; - jackettResult: JackettInput; -}>; - - -export type DownloadSeasonMutation = { __typename?: 'Mutation', result: { __typename?: 'GraphQLCommonResponse', success: boolean, message?: string | null } }; - -export type RemoveMovieMutationVariables = Exact<{ - tmdbId: Scalars['Int']['input']; -}>; - - -export type RemoveMovieMutation = { __typename?: 'Mutation', result: { __typename?: 'GraphQLCommonResponse', success: boolean, message?: string | null } }; - -export type RemoveTvShowMutationVariables = Exact<{ - tmdbId: Scalars['Int']['input']; -}>; - - -export type RemoveTvShowMutation = { __typename?: 'Mutation', result: { __typename?: 'GraphQLCommonResponse', success: boolean, message?: string | null } }; - -export type ResetLibraryMutationVariables = Exact<{ - deleteFiles: Scalars['Boolean']['input']; - resetSettings: Scalars['Boolean']['input']; -}>; - - -export type ResetLibraryMutation = { __typename?: 'Mutation', result: { __typename?: 'GraphQLCommonResponse', success: boolean, message?: string | null } }; - -export type SaveQualityMutationVariables = Exact<{ - qualities: Array | QualityInput; -}>; - - -export type SaveQualityMutation = { __typename?: 'Mutation', result: { __typename?: 'GraphQLCommonResponse', success: boolean, message?: string | null } }; - -export type SaveTagsMutationVariables = Exact<{ - tags: Array | TagInput; -}>; - - -export type SaveTagsMutation = { __typename?: 'Mutation', result: { __typename?: 'GraphQLCommonResponse', success: boolean, message?: string | null } }; - -export type TrackMovieMutationVariables = Exact<{ - title: Scalars['String']['input']; - tmdbId: Scalars['Int']['input']; -}>; - - -export type TrackMovieMutation = { __typename?: 'Mutation', movie: { __typename?: 'Movie', id: number } }; - -export type TrackTvShowMutationVariables = Exact<{ - tmdbId: Scalars['Int']['input']; - seasonNumbers: Array | Scalars['Int']['input']; -}>; - - -export type TrackTvShowMutation = { __typename?: 'Mutation', tvShow: { __typename?: 'TVShow', id: number } }; - -export type UpdateParamsMutationVariables = Exact<{ - params: Array | UpdateParamsInput; -}>; - - -export type UpdateParamsMutation = { __typename?: 'Mutation', result: { __typename?: 'GraphQLCommonResponse', success: boolean, message?: string | null } }; - -export type GetCalendarQueryVariables = Exact<{ [key: string]: never; }>; - - -export type GetCalendarQuery = { __typename?: 'Query', calendar: { __typename?: 'LibraryCalendar', movies: Array<{ __typename?: 'EnrichedMovie', id: number, title: string, state: DownloadableMediaState, releaseDate: string }>, tvEpisodes: Array<{ __typename?: 'EnrichedTVEpisode', id: number, episodeNumber: number, seasonNumber: number, state: DownloadableMediaState, releaseDate: string, tvShow: { __typename?: 'TVShow', id: number, title: string } }> } }; - -export type GetDiscoverQueryVariables = Exact<{ - entertainment?: InputMaybe; - originLanguage?: InputMaybe; - primaryReleaseYear?: InputMaybe; - score?: InputMaybe; - genres?: InputMaybe | Scalars['Float']['input']>; - page?: InputMaybe; -}>; - - -export type GetDiscoverQuery = { __typename?: 'Query', TMDBResults: { __typename?: 'TMDBPaginatedResult', page: number, totalResults: number, totalPages: number, results: Array<{ __typename?: 'TMDBSearchResult', id: number, tmdbId: number, title: string, posterPath?: string | null, overview: string, runtime?: number | null, voteAverage: number, releaseDate?: string | null }> } }; - -export type GetDownloadingQueryVariables = Exact<{ [key: string]: never; }>; - - -export type GetDownloadingQuery = { __typename?: 'Query', searching: Array<{ __typename?: 'SearchingMedia', id: string, title: string, resourceId: number, resourceType: FileType }>, downloading: Array<{ __typename?: 'DownloadingMedia', id: string, title: string, tag: string, quality: string, torrent: string, resourceId: number, resourceType: FileType }> }; - -export type GetGenresQueryVariables = Exact<{ [key: string]: never; }>; - - -export type GetGenresQuery = { __typename?: 'Query', genres: { __typename?: 'TMDBGenresResults', movieGenres: Array<{ __typename?: 'TMDBGenresResult', id: number, name: string }>, tvShowGenres: Array<{ __typename?: 'TMDBGenresResult', id: number, name: string }> } }; - -export type GetLanguagesQueryVariables = Exact<{ [key: string]: never; }>; - - -export type GetLanguagesQuery = { __typename?: 'Query', languages: Array<{ __typename?: 'TMDBLanguagesResult', code: string, language: string }> }; - -export type GetLibraryMoviesQueryVariables = Exact<{ [key: string]: never; }>; - - -export type GetLibraryMoviesQuery = { __typename?: 'Query', movies: Array<{ __typename?: 'EnrichedMovie', id: number, tmdbId: number, title: string, originalTitle?: string | null, state: DownloadableMediaState, posterPath?: string | null, overview: string, runtime?: number | null, voteAverage: number, releaseDate: string, createdAt: any, updatedAt: any }> }; - -export type GetLibraryTvShowsQueryVariables = Exact<{ [key: string]: never; }>; - - -export type GetLibraryTvShowsQuery = { __typename?: 'Query', tvShows: Array<{ __typename?: 'EnrichedTVShow', id: number, tmdbId: number, title: string, originalTitle?: string | null, posterPath?: string | null, runtime?: number | null, overview: string, voteAverage: number, releaseDate: string, createdAt: any, updatedAt: any }> }; - -export type MissingTvEpisodesFragment = { __typename?: 'EnrichedTVEpisode', id: number, seasonNumber: number, episodeNumber: number, releaseDate: string, tvShow: { __typename?: 'TVShow', id: number, title: string } }; - -export type MissingMoviesFragment = { __typename?: 'EnrichedMovie', id: number, title: string, releaseDate: string }; - -export type GetMissingQueryVariables = Exact<{ [key: string]: never; }>; - - -export type GetMissingQuery = { __typename?: 'Query', tvEpisodes: Array<{ __typename?: 'EnrichedTVEpisode', id: number, seasonNumber: number, episodeNumber: number, releaseDate: string, tvShow: { __typename?: 'TVShow', id: number, title: string } }>, movies: Array<{ __typename?: 'EnrichedMovie', id: number, title: string, releaseDate: string }> }; - -export type GetMovieFileDetailsQueryVariables = Exact<{ - tmdbId: Scalars['Int']['input']; -}>; - - -export type GetMovieFileDetailsQuery = { __typename?: 'Query', details: { __typename?: 'LibraryFileDetails', id: number, libraryPath: string, libraryFileSize?: any | null, torrentFileName?: string | null } }; - -export type GetParamsQueryVariables = Exact<{ [key: string]: never; }>; - - -export type GetParamsQuery = { __typename?: 'Query', params: { __typename?: 'ParamsHash', region: string, language: string, tmdb_api_key: string, jackett_api_key: string, max_movie_download_size: string, max_tvshow_episode_download_size: string, organize_library_strategy: string } }; - -export type GetPopularQueryVariables = Exact<{ [key: string]: never; }>; - - -export type GetPopularQuery = { __typename?: 'Query', results: { __typename?: 'TMDBSearchResults', movies: Array<{ __typename?: 'TMDBSearchResult', id: number, tmdbId: number, title: string, releaseDate?: string | null, posterPath?: string | null, overview: string, runtime?: number | null, voteAverage: number }>, tvShows: Array<{ __typename?: 'TMDBSearchResult', id: number, tmdbId: number, title: string, releaseDate?: string | null, posterPath?: string | null, overview: string, runtime?: number | null, voteAverage: number }> } }; - -export type GetQualityQueryVariables = Exact<{ - type: Entertainment; -}>; - - -export type GetQualityQuery = { __typename?: 'Query', qualities: Array<{ __typename?: 'Quality', id: number, name: string, match: Array, score: number, updatedAt: any, createdAt: any, type: Entertainment }> }; - -export type GetRecommendedQueryVariables = Exact<{ [key: string]: never; }>; - - -export type GetRecommendedQuery = { __typename?: 'Query', tvShows: Array<{ __typename?: 'TMDBSearchResult', id: number, tmdbId: number, title: string, releaseDate?: string | null, posterPath?: string | null, overview: string, runtime?: number | null, voteAverage: number }>, movies: Array<{ __typename?: 'TMDBSearchResult', id: number, tmdbId: number, title: string, releaseDate?: string | null, posterPath?: string | null, overview: string, runtime?: number | null, voteAverage: number }> }; - -export type GetTagsQueryVariables = Exact<{ [key: string]: never; }>; - - -export type GetTagsQuery = { __typename?: 'Query', tags: Array<{ __typename?: 'Tag', id: number, name: string, score: number, createdAt: any, updatedAt: any }> }; - -export type GetTorrentStatusQueryVariables = Exact<{ - torrents: Array | GetTorrentStatusInput; -}>; - - -export type GetTorrentStatusQuery = { __typename?: 'Query', torrents: Array<{ __typename?: 'TorrentStatus', id: number, resourceId: number, resourceType: FileType, percentDone: number, rateDownload: number, rateUpload: number, uploadRatio: number, uploadedEver: any, totalSize: any, status: number }> }; - -export type GetTvSeasonDetailsQueryVariables = Exact<{ - tvShowTMDBId: Scalars['Int']['input']; - seasonNumber: Scalars['Int']['input']; -}>; - - -export type GetTvSeasonDetailsQuery = { __typename?: 'Query', episodes: Array<{ __typename?: 'EnrichedTVEpisode', id: number, episodeNumber: number, seasonNumber: number, state: DownloadableMediaState, updatedAt: any, voteAverage?: number | null, releaseDate: string, createdAt: any, tvShow: { __typename?: 'TVShow', id: number, title: string, tmdbId: number, updatedAt: any, createdAt: any } }> }; - -export type GetTvShowSeasonsQueryVariables = Exact<{ - tvShowTMDBId: Scalars['Int']['input']; -}>; - - -export type GetTvShowSeasonsQuery = { __typename?: 'Query', seasons: Array<{ __typename?: 'TMDBFormattedTVSeason', id: number, name: string, seasonNumber: number, episodeCount?: number | null, overview?: string | null, posterPath?: string | null, airDate?: string | null, inLibrary: boolean }> }; - -export type OmdbSearchQueryVariables = Exact<{ - title: Scalars['String']['input']; -}>; - - -export type OmdbSearchQuery = { __typename?: 'Query', result: { __typename?: 'OMDBInfo', ratings: { __typename?: 'Ratings', IMDB?: string | null, rottenTomatoes?: string | null, metaCritic?: string | null } } }; - -export type SearchTorrentQueryVariables = Exact<{ - query: Scalars['String']['input']; -}>; - - -export type SearchTorrentQuery = { __typename?: 'Query', results: Array<{ __typename?: 'JackettFormattedResult', id: string, title: string, quality: string, qualityScore: number, seeders: number, peers: number, link: string, downloadLink: string, tag: string, tagScore: number, normalizedTitle: string, normalizedTitleParts: Array, size: any, publishDate: string }> }; - -export type SearchQueryVariables = Exact<{ - query: Scalars['String']['input']; -}>; - - -export type SearchQuery = { __typename?: 'Query', results: { __typename?: 'TMDBSearchResults', movies: Array<{ __typename?: 'TMDBSearchResult', id: number, tmdbId: number, title: string, releaseDate?: string | null, posterPath?: string | null, overview: string, runtime?: number | null, voteAverage: number }>, tvShows: Array<{ __typename?: 'TMDBSearchResult', id: number, tmdbId: number, title: string, releaseDate?: string | null, posterPath?: string | null, overview: string, runtime?: number | null, voteAverage: number }> } }; - -export const MissingTvEpisodesFragmentDoc = gql` - fragment MissingTVEpisodes on EnrichedTVEpisode { - id - seasonNumber - episodeNumber - releaseDate - tvShow { - id - title - } -} - `; -export const MissingMoviesFragmentDoc = gql` - fragment MissingMovies on EnrichedMovie { - id - title - releaseDate -} - `; -export const ClearCacheDoc = gql` - mutation clearCache { - result: clearRedisCache { - success - message - } -} - `; -export const DownloadOwnTorrentDoc = gql` - mutation downloadOwnTorrent($mediaId: Int!, $mediaType: FileType!, $torrent: String!) { - downloadOwnTorrent(mediaId: $mediaId, mediaType: $mediaType, torrent: $torrent) { - success - message - } -} - `; -export const StartScanLibraryDoc = gql` - mutation startScanLibrary { - result: startScanLibraryJob { - success - message - } -} - `; -export const StartFindNewEpisodesDoc = gql` - mutation startFindNewEpisodes { - result: startFindNewEpisodesJob { - success - message - } -} - `; -export const StartDownloadMissingDoc = gql` - mutation startDownloadMissing { - result: startDownloadMissingJob { - success - message - } -} - `; -export const DownloadMovieDoc = gql` - mutation downloadMovie($movieId: Int!, $jackettResult: JackettInput!) { - result: downloadMovie(movieId: $movieId, jackettResult: $jackettResult) { - success - message - } -} - `; -export const DownloadTvEpisodeDoc = gql` - mutation downloadTVEpisode($episodeId: Int!, $jackettResult: JackettInput!) { - result: downloadTVEpisode(episodeId: $episodeId, jackettResult: $jackettResult) { - success - message - } -} - `; -export const DownloadSeasonDoc = gql` - mutation downloadSeason($tvShowTMDBId: Int!, $seasonNumber: Int!, $jackettResult: JackettInput!) { - result: downloadSeason( - tvShowTMDBId: $tvShowTMDBId - seasonNumber: $seasonNumber - jackettResult: $jackettResult - ) { - success - message - } -} - `; -export const RemoveMovieDoc = gql` - mutation removeMovie($tmdbId: Int!) { - result: removeMovie(tmdbId: $tmdbId) { - success - message - } -} - `; -export const RemoveTvShowDoc = gql` - mutation removeTVShow($tmdbId: Int!) { - result: removeTVShow(tmdbId: $tmdbId) { - success - message - } -} - `; -export const ResetLibraryDoc = gql` - mutation resetLibrary($deleteFiles: Boolean!, $resetSettings: Boolean!) { - result: resetLibrary(deleteFiles: $deleteFiles, resetSettings: $resetSettings) { - success - message - } -} - `; -export const SaveQualityDoc = gql` - mutation saveQuality($qualities: [QualityInput!]!) { - result: saveQualityParams(qualities: $qualities) { - success - message - } -} - `; -export const SaveTagsDoc = gql` - mutation saveTags($tags: [TagInput!]!) { - result: saveTags(tags: $tags) { - success - message - } -} - `; -export const TrackMovieDoc = gql` - mutation trackMovie($title: String!, $tmdbId: Int!) { - movie: trackMovie(title: $title, tmdbId: $tmdbId) { - id - } -} - `; -export const TrackTvShowDoc = gql` - mutation trackTVShow($tmdbId: Int!, $seasonNumbers: [Int!]!) { - tvShow: trackTVShow(tmdbId: $tmdbId, seasonNumbers: $seasonNumbers) { - id - } -} - `; -export const UpdateParamsDoc = gql` - mutation updateParams($params: [UpdateParamsInput!]!) { - result: updateParams(params: $params) { - success - message - } -} - `; -export const GetCalendarDoc = gql` - query getCalendar { - calendar: getCalendar { - movies { - id - title - state - releaseDate - } - tvEpisodes { - id - tvShow { - id - title - } - episodeNumber - seasonNumber - state - releaseDate - } - } -} - `; -export const GetDiscoverDoc = gql` - query getDiscover($entertainment: Entertainment, $originLanguage: String, $primaryReleaseYear: String, $score: Float, $genres: [Float!], $page: Float) { - TMDBResults: discover( - entertainment: $entertainment - originLanguage: $originLanguage - primaryReleaseYear: $primaryReleaseYear - score: $score - genres: $genres - page: $page - ) { - page - totalResults - totalPages - results { - id - tmdbId - title - posterPath - overview - runtime - voteAverage - releaseDate - } - } -} - `; -export const GetDownloadingDoc = gql` - query getDownloading { - searching: getSearchingMedias { - id - title - resourceId - resourceType - } - downloading: getDownloadingMedias { - id - title - tag - quality - torrent - resourceId - resourceType - } -} - `; -export const GetGenresDoc = gql` - query getGenres { - genres: getGenres { - movieGenres { - id - name - } - tvShowGenres { - id - name - } - } -} - `; -export const GetLanguagesDoc = gql` - query getLanguages { - languages: getLanguages { - code - language - } -} - `; -export const GetLibraryMoviesDoc = gql` - query getLibraryMovies { - movies: getMovies { - id - tmdbId - title - originalTitle - state - posterPath - overview - runtime - voteAverage - releaseDate - createdAt - updatedAt - } -} - `; -export const GetLibraryTvShowsDoc = gql` - query getLibraryTVShows { - tvShows: getTVShows { - id - tmdbId - title - originalTitle - posterPath - runtime - overview - voteAverage - releaseDate - createdAt - updatedAt - } -} - `; -export const GetMissingDoc = gql` - query getMissing { - tvEpisodes: getMissingTVEpisodes { - ...MissingTVEpisodes - } - movies: getMissingMovies { - ...MissingMovies - } -} - ${MissingTvEpisodesFragmentDoc} -${MissingMoviesFragmentDoc}`; -export const GetMovieFileDetailsDoc = gql` - query getMovieFileDetails($tmdbId: Int!) { - details: getMovieFileDetails(tmdbId: $tmdbId) { - id - libraryPath - libraryFileSize - torrentFileName - } -} - `; -export const GetParamsDoc = gql` - query getParams { - params: getParams { - region - language - tmdb_api_key - jackett_api_key - max_movie_download_size - max_tvshow_episode_download_size - organize_library_strategy - } -} - `; -export const GetPopularDoc = gql` - query getPopular { - results: getPopular { - movies { - id - tmdbId - title - releaseDate - posterPath - overview - runtime - voteAverage - } - tvShows { - id - tmdbId - title - releaseDate - posterPath - overview - runtime - voteAverage - } - } -} - `; -export const GetQualityDoc = gql` - query getQuality($type: Entertainment!) { - qualities: getQualityParams(type: $type) { - id - name - match - score - updatedAt - createdAt - type - } -} - `; -export const GetRecommendedDoc = gql` - query getRecommended { - tvShows: getRecommendedTVShows { - id - tmdbId - title - releaseDate - posterPath - overview - runtime - voteAverage - } - movies: getRecommendedMovies { - id - tmdbId - title - releaseDate - posterPath - overview - runtime - voteAverage - } -} - `; -export const GetTagsDoc = gql` - query getTags { - tags: getTags { - id - name - score - createdAt - updatedAt - } -} - `; -export const GetTorrentStatusDoc = gql` - query getTorrentStatus($torrents: [GetTorrentStatusInput!]!) { - torrents: getTorrentStatus(torrents: $torrents) { - id - resourceId - resourceType - percentDone - rateDownload - rateUpload - uploadRatio - uploadedEver - totalSize - status - } -} - `; -export const GetTvSeasonDetailsDoc = gql` - query getTVSeasonDetails($tvShowTMDBId: Int!, $seasonNumber: Int!) { - episodes: getTVSeasonDetails( - tvShowTMDBId: $tvShowTMDBId - seasonNumber: $seasonNumber - ) { - id - episodeNumber - seasonNumber - state - updatedAt - voteAverage - releaseDate - createdAt - tvShow { - id - title - tmdbId - updatedAt - createdAt - } - } -} - `; -export const GetTvShowSeasonsDoc = gql` - query getTVShowSeasons($tvShowTMDBId: Int!) { - seasons: getTVShowSeasons(tvShowTMDBId: $tvShowTMDBId) { - id - name - seasonNumber - episodeCount - overview - posterPath - airDate - inLibrary - } -} - `; -export const OmdbSearchDoc = gql` - query omdbSearch($title: String!) { - result: omdbSearch(title: $title) { - ratings { - IMDB - rottenTomatoes - metaCritic - } - } -} - `; -export const SearchTorrentDoc = gql` - query searchTorrent($query: String!) { - results: searchJackett(query: $query) { - id - title - quality - qualityScore - seeders - peers - link - downloadLink - tag - tagScore - normalizedTitle - normalizedTitleParts - size - publishDate - } -} - `; -export const SearchDoc = gql` - query search($query: String!) { - results: search(query: $query) { - movies { - id - tmdbId - title - releaseDate - posterPath - overview - runtime - voteAverage - } - tvShows { - id - tmdbId - title - releaseDate - posterPath - overview - runtime - voteAverage - } - } -} - `; -export const clearCache = ( - options: Omit< - MutationOptions, - "mutation" - > - ) => { - const m = client.mutate({ - mutation: ClearCacheDoc, - ...options, - }); - return m; - } -export const downloadOwnTorrent = ( - options: Omit< - MutationOptions, - "mutation" - > - ) => { - const m = client.mutate({ - mutation: DownloadOwnTorrentDoc, - ...options, - }); - return m; - } -export const startScanLibrary = ( - options: Omit< - MutationOptions, - "mutation" - > - ) => { - const m = client.mutate({ - mutation: StartScanLibraryDoc, - ...options, - }); - return m; - } -export const startFindNewEpisodes = ( - options: Omit< - MutationOptions, - "mutation" - > - ) => { - const m = client.mutate({ - mutation: StartFindNewEpisodesDoc, - ...options, - }); - return m; - } -export const startDownloadMissing = ( - options: Omit< - MutationOptions, - "mutation" - > - ) => { - const m = client.mutate({ - mutation: StartDownloadMissingDoc, - ...options, - }); - return m; - } -export const downloadMovie = ( - options: Omit< - MutationOptions, - "mutation" - > - ) => { - const m = client.mutate({ - mutation: DownloadMovieDoc, - ...options, - }); - return m; - } -export const downloadTVEpisode = ( - options: Omit< - MutationOptions, - "mutation" - > - ) => { - const m = client.mutate({ - mutation: DownloadTvEpisodeDoc, - ...options, - }); - return m; - } -export const downloadSeason = ( - options: Omit< - MutationOptions, - "mutation" - > - ) => { - const m = client.mutate({ - mutation: DownloadSeasonDoc, - ...options, - }); - return m; - } -export const removeMovie = ( - options: Omit< - MutationOptions, - "mutation" - > - ) => { - const m = client.mutate({ - mutation: RemoveMovieDoc, - ...options, - }); - return m; - } -export const removeTVShow = ( - options: Omit< - MutationOptions, - "mutation" - > - ) => { - const m = client.mutate({ - mutation: RemoveTvShowDoc, - ...options, - }); - return m; - } -export const resetLibrary = ( - options: Omit< - MutationOptions, - "mutation" - > - ) => { - const m = client.mutate({ - mutation: ResetLibraryDoc, - ...options, - }); - return m; - } -export const saveQuality = ( - options: Omit< - MutationOptions, - "mutation" - > - ) => { - const m = client.mutate({ - mutation: SaveQualityDoc, - ...options, - }); - return m; - } -export const saveTags = ( - options: Omit< - MutationOptions, - "mutation" - > - ) => { - const m = client.mutate({ - mutation: SaveTagsDoc, - ...options, - }); - return m; - } -export const trackMovie = ( - options: Omit< - MutationOptions, - "mutation" - > - ) => { - const m = client.mutate({ - mutation: TrackMovieDoc, - ...options, - }); - return m; - } -export const trackTVShow = ( - options: Omit< - MutationOptions, - "mutation" - > - ) => { - const m = client.mutate({ - mutation: TrackTvShowDoc, - ...options, - }); - return m; - } -export const updateParams = ( - options: Omit< - MutationOptions, - "mutation" - > - ) => { - const m = client.mutate({ - mutation: UpdateParamsDoc, - ...options, - }); - return m; - } -export const getCalendar = ( - options: Omit< - WatchQueryOptions, - "query" - > - ): Readable< - ApolloQueryResult & { - query: ObservableQuery< - GetCalendarQuery, - GetCalendarQueryVariables - >; - } - > => { - const q = client.watchQuery({ - query: GetCalendarDoc, - ...options, - }); - var result = readable< - ApolloQueryResult & { - query: ObservableQuery< - GetCalendarQuery, - GetCalendarQueryVariables - >; - } - >( - { data: {} as any, loading: true, error: undefined, networkStatus: 1, query: q }, - (set) => { - q.subscribe((v: any) => { - set({ ...v, query: q }); - }); - } - ); - return result; - } - -export const getDiscover = ( - options: Omit< - WatchQueryOptions, - "query" - > - ): Readable< - ApolloQueryResult & { - query: ObservableQuery< - GetDiscoverQuery, - GetDiscoverQueryVariables - >; - } - > => { - const q = client.watchQuery({ - query: GetDiscoverDoc, - ...options, - }); - var result = readable< - ApolloQueryResult & { - query: ObservableQuery< - GetDiscoverQuery, - GetDiscoverQueryVariables - >; - } - >( - { data: {} as any, loading: true, error: undefined, networkStatus: 1, query: q }, - (set) => { - q.subscribe((v: any) => { - set({ ...v, query: q }); - }); - } - ); - return result; - } - -export const getDownloading = ( - options: Omit< - WatchQueryOptions, - "query" - > - ): Readable< - ApolloQueryResult & { - query: ObservableQuery< - GetDownloadingQuery, - GetDownloadingQueryVariables - >; - } - > => { - const q = client.watchQuery({ - query: GetDownloadingDoc, - ...options, - }); - var result = readable< - ApolloQueryResult & { - query: ObservableQuery< - GetDownloadingQuery, - GetDownloadingQueryVariables - >; - } - >( - { data: {} as any, loading: true, error: undefined, networkStatus: 1, query: q }, - (set) => { - q.subscribe((v: any) => { - set({ ...v, query: q }); - }); - } - ); - return result; - } - -export const getGenres = ( - options: Omit< - WatchQueryOptions, - "query" - > - ): Readable< - ApolloQueryResult & { - query: ObservableQuery< - GetGenresQuery, - GetGenresQueryVariables - >; - } - > => { - const q = client.watchQuery({ - query: GetGenresDoc, - ...options, - }); - var result = readable< - ApolloQueryResult & { - query: ObservableQuery< - GetGenresQuery, - GetGenresQueryVariables - >; - } - >( - { data: {} as any, loading: true, error: undefined, networkStatus: 1, query: q }, - (set) => { - q.subscribe((v: any) => { - set({ ...v, query: q }); - }); - } - ); - return result; - } - -export const getLanguages = ( - options: Omit< - WatchQueryOptions, - "query" - > - ): Readable< - ApolloQueryResult & { - query: ObservableQuery< - GetLanguagesQuery, - GetLanguagesQueryVariables - >; - } - > => { - const q = client.watchQuery({ - query: GetLanguagesDoc, - ...options, - }); - var result = readable< - ApolloQueryResult & { - query: ObservableQuery< - GetLanguagesQuery, - GetLanguagesQueryVariables - >; - } - >( - { data: {} as any, loading: true, error: undefined, networkStatus: 1, query: q }, - (set) => { - q.subscribe((v: any) => { - set({ ...v, query: q }); - }); - } - ); - return result; - } - -export const getLibraryMovies = ( - options: Omit< - WatchQueryOptions, - "query" - > - ): Readable< - ApolloQueryResult & { - query: ObservableQuery< - GetLibraryMoviesQuery, - GetLibraryMoviesQueryVariables - >; - } - > => { - const q = client.watchQuery({ - query: GetLibraryMoviesDoc, - ...options, - }); - var result = readable< - ApolloQueryResult & { - query: ObservableQuery< - GetLibraryMoviesQuery, - GetLibraryMoviesQueryVariables - >; - } - >( - { data: {} as any, loading: true, error: undefined, networkStatus: 1, query: q }, - (set) => { - q.subscribe((v: any) => { - set({ ...v, query: q }); - }); - } - ); - return result; - } - -export const getLibraryTVShows = ( - options: Omit< - WatchQueryOptions, - "query" - > - ): Readable< - ApolloQueryResult & { - query: ObservableQuery< - GetLibraryTvShowsQuery, - GetLibraryTvShowsQueryVariables - >; - } - > => { - const q = client.watchQuery({ - query: GetLibraryTvShowsDoc, - ...options, - }); - var result = readable< - ApolloQueryResult & { - query: ObservableQuery< - GetLibraryTvShowsQuery, - GetLibraryTvShowsQueryVariables - >; - } - >( - { data: {} as any, loading: true, error: undefined, networkStatus: 1, query: q }, - (set) => { - q.subscribe((v: any) => { - set({ ...v, query: q }); - }); - } - ); - return result; - } - -export const getMissing = ( - options: Omit< - WatchQueryOptions, - "query" - > - ): Readable< - ApolloQueryResult & { - query: ObservableQuery< - GetMissingQuery, - GetMissingQueryVariables - >; - } - > => { - const q = client.watchQuery({ - query: GetMissingDoc, - ...options, - }); - var result = readable< - ApolloQueryResult & { - query: ObservableQuery< - GetMissingQuery, - GetMissingQueryVariables - >; - } - >( - { data: {} as any, loading: true, error: undefined, networkStatus: 1, query: q }, - (set) => { - q.subscribe((v: any) => { - set({ ...v, query: q }); - }); - } - ); - return result; - } - -export const getMovieFileDetails = ( - options: Omit< - WatchQueryOptions, - "query" - > - ): Readable< - ApolloQueryResult & { - query: ObservableQuery< - GetMovieFileDetailsQuery, - GetMovieFileDetailsQueryVariables - >; - } - > => { - const q = client.watchQuery({ - query: GetMovieFileDetailsDoc, - ...options, - }); - var result = readable< - ApolloQueryResult & { - query: ObservableQuery< - GetMovieFileDetailsQuery, - GetMovieFileDetailsQueryVariables - >; - } - >( - { data: {} as any, loading: true, error: undefined, networkStatus: 1, query: q }, - (set) => { - q.subscribe((v: any) => { - set({ ...v, query: q }); - }); - } - ); - return result; - } - -export const getParams = ( - options: Omit< - WatchQueryOptions, - "query" - > - ): Readable< - ApolloQueryResult & { - query: ObservableQuery< - GetParamsQuery, - GetParamsQueryVariables - >; - } - > => { - const q = client.watchQuery({ - query: GetParamsDoc, - ...options, - }); - var result = readable< - ApolloQueryResult & { - query: ObservableQuery< - GetParamsQuery, - GetParamsQueryVariables - >; - } - >( - { data: {} as any, loading: true, error: undefined, networkStatus: 1, query: q }, - (set) => { - q.subscribe((v: any) => { - set({ ...v, query: q }); - }); - } - ); - return result; - } - -export const getPopular = ( - options: Omit< - WatchQueryOptions, - "query" - > - ): Readable< - ApolloQueryResult & { - query: ObservableQuery< - GetPopularQuery, - GetPopularQueryVariables - >; - } - > => { - const q = client.watchQuery({ - query: GetPopularDoc, - ...options, - }); - var result = readable< - ApolloQueryResult & { - query: ObservableQuery< - GetPopularQuery, - GetPopularQueryVariables - >; - } - >( - { data: {} as any, loading: true, error: undefined, networkStatus: 1, query: q }, - (set) => { - q.subscribe((v: any) => { - set({ ...v, query: q }); - }); - } - ); - return result; - } - -export const getQuality = ( - options: Omit< - WatchQueryOptions, - "query" - > - ): Readable< - ApolloQueryResult & { - query: ObservableQuery< - GetQualityQuery, - GetQualityQueryVariables - >; - } - > => { - const q = client.watchQuery({ - query: GetQualityDoc, - ...options, - }); - var result = readable< - ApolloQueryResult & { - query: ObservableQuery< - GetQualityQuery, - GetQualityQueryVariables - >; - } - >( - { data: {} as any, loading: true, error: undefined, networkStatus: 1, query: q }, - (set) => { - q.subscribe((v: any) => { - set({ ...v, query: q }); - }); - } - ); - return result; - } - -export const getRecommended = ( - options: Omit< - WatchQueryOptions, - "query" - > - ): Readable< - ApolloQueryResult & { - query: ObservableQuery< - GetRecommendedQuery, - GetRecommendedQueryVariables - >; - } - > => { - const q = client.watchQuery({ - query: GetRecommendedDoc, - ...options, - }); - var result = readable< - ApolloQueryResult & { - query: ObservableQuery< - GetRecommendedQuery, - GetRecommendedQueryVariables - >; - } - >( - { data: {} as any, loading: true, error: undefined, networkStatus: 1, query: q }, - (set) => { - q.subscribe((v: any) => { - set({ ...v, query: q }); - }); - } - ); - return result; - } - -export const getTags = ( - options: Omit< - WatchQueryOptions, - "query" - > - ): Readable< - ApolloQueryResult & { - query: ObservableQuery< - GetTagsQuery, - GetTagsQueryVariables - >; - } - > => { - const q = client.watchQuery({ - query: GetTagsDoc, - ...options, - }); - var result = readable< - ApolloQueryResult & { - query: ObservableQuery< - GetTagsQuery, - GetTagsQueryVariables - >; - } - >( - { data: {} as any, loading: true, error: undefined, networkStatus: 1, query: q }, - (set) => { - q.subscribe((v: any) => { - set({ ...v, query: q }); - }); - } - ); - return result; - } - -export const getTorrentStatus = ( - options: Omit< - WatchQueryOptions, - "query" - > - ): Readable< - ApolloQueryResult & { - query: ObservableQuery< - GetTorrentStatusQuery, - GetTorrentStatusQueryVariables - >; - } - > => { - const q = client.watchQuery({ - query: GetTorrentStatusDoc, - ...options, - }); - var result = readable< - ApolloQueryResult & { - query: ObservableQuery< - GetTorrentStatusQuery, - GetTorrentStatusQueryVariables - >; - } - >( - { data: {} as any, loading: true, error: undefined, networkStatus: 1, query: q }, - (set) => { - q.subscribe((v: any) => { - set({ ...v, query: q }); - }); - } - ); - return result; - } - -export const getTVSeasonDetails = ( - options: Omit< - WatchQueryOptions, - "query" - > - ): Readable< - ApolloQueryResult & { - query: ObservableQuery< - GetTvSeasonDetailsQuery, - GetTvSeasonDetailsQueryVariables - >; - } - > => { - const q = client.watchQuery({ - query: GetTvSeasonDetailsDoc, - ...options, - }); - var result = readable< - ApolloQueryResult & { - query: ObservableQuery< - GetTvSeasonDetailsQuery, - GetTvSeasonDetailsQueryVariables - >; - } - >( - { data: {} as any, loading: true, error: undefined, networkStatus: 1, query: q }, - (set) => { - q.subscribe((v: any) => { - set({ ...v, query: q }); - }); - } - ); - return result; - } - -export const getTVShowSeasons = ( - options: Omit< - WatchQueryOptions, - "query" - > - ): Readable< - ApolloQueryResult & { - query: ObservableQuery< - GetTvShowSeasonsQuery, - GetTvShowSeasonsQueryVariables - >; - } - > => { - const q = client.watchQuery({ - query: GetTvShowSeasonsDoc, - ...options, - }); - var result = readable< - ApolloQueryResult & { - query: ObservableQuery< - GetTvShowSeasonsQuery, - GetTvShowSeasonsQueryVariables - >; - } - >( - { data: {} as any, loading: true, error: undefined, networkStatus: 1, query: q }, - (set) => { - q.subscribe((v: any) => { - set({ ...v, query: q }); - }); - } - ); - return result; - } - -export const omdbSearch = ( - options: Omit< - WatchQueryOptions, - "query" - > - ): Readable< - ApolloQueryResult & { - query: ObservableQuery< - OmdbSearchQuery, - OmdbSearchQueryVariables - >; - } - > => { - const q = client.watchQuery({ - query: OmdbSearchDoc, - ...options, - }); - var result = readable< - ApolloQueryResult & { - query: ObservableQuery< - OmdbSearchQuery, - OmdbSearchQueryVariables - >; - } - >( - { data: {} as any, loading: true, error: undefined, networkStatus: 1, query: q }, - (set) => { - q.subscribe((v: any) => { - set({ ...v, query: q }); - }); - } - ); - return result; - } - -export const searchTorrent = ( - options: Omit< - WatchQueryOptions, - "query" - > - ): Readable< - ApolloQueryResult & { - query: ObservableQuery< - SearchTorrentQuery, - SearchTorrentQueryVariables - >; - } - > => { - const q = client.watchQuery({ - query: SearchTorrentDoc, - ...options, - }); - var result = readable< - ApolloQueryResult & { - query: ObservableQuery< - SearchTorrentQuery, - SearchTorrentQueryVariables - >; - } - >( - { data: {} as any, loading: true, error: undefined, networkStatus: 1, query: q }, - (set) => { - q.subscribe((v: any) => { - set({ ...v, query: q }); - }); - } - ); - return result; - } - -export const search = ( - options: Omit< - WatchQueryOptions, - "query" - > - ): Readable< - ApolloQueryResult & { - query: ObservableQuery< - SearchQuery, - SearchQueryVariables - >; - } - > => { - const q = client.watchQuery({ - query: SearchDoc, - ...options, - }); - var result = readable< - ApolloQueryResult & { - query: ObservableQuery< - SearchQuery, - SearchQueryVariables - >; - } - >( - { data: {} as any, loading: true, error: undefined, networkStatus: 1, query: q }, - (set) => { - q.subscribe((v: any) => { - set({ ...v, query: q }); - }); - } - ); - return result; - } - \ No newline at end of file diff --git a/src/lib/mutations/clear-cache.mutation.graphql b/src/lib/mutations/clear-cache.mutation.graphql deleted file mode 100644 index 1d206ff..0000000 --- a/src/lib/mutations/clear-cache.mutation.graphql +++ /dev/null @@ -1,6 +0,0 @@ -mutation clearCache { - result: clearRedisCache { - success - message - } -} diff --git a/src/lib/mutations/download-own-torrent.mutation.graphql b/src/lib/mutations/download-own-torrent.mutation.graphql deleted file mode 100644 index db2695b..0000000 --- a/src/lib/mutations/download-own-torrent.mutation.graphql +++ /dev/null @@ -1,14 +0,0 @@ -mutation downloadOwnTorrent( - $mediaId: Int! - $mediaType: FileType! - $torrent: String! -) { - downloadOwnTorrent( - mediaId: $mediaId - mediaType: $mediaType - torrent: $torrent - ) { - success - message - } -} diff --git a/src/lib/mutations/jobs.mutation.graphql b/src/lib/mutations/jobs.mutation.graphql deleted file mode 100644 index b77280a..0000000 --- a/src/lib/mutations/jobs.mutation.graphql +++ /dev/null @@ -1,20 +0,0 @@ -mutation startScanLibrary { - result: startScanLibraryJob { - success - message - } -} - -mutation startFindNewEpisodes { - result: startFindNewEpisodesJob { - success - message - } -} - -mutation startDownloadMissing { - result: startDownloadMissingJob { - success - message - } -} diff --git a/src/lib/mutations/manual-download.mutation.graphql b/src/lib/mutations/manual-download.mutation.graphql deleted file mode 100644 index cb29e05..0000000 --- a/src/lib/mutations/manual-download.mutation.graphql +++ /dev/null @@ -1,31 +0,0 @@ -mutation downloadMovie($movieId: Int!, $jackettResult: JackettInput!) { - result: downloadMovie(movieId: $movieId, jackettResult: $jackettResult) { - success - message - } -} - -mutation downloadTVEpisode($episodeId: Int!, $jackettResult: JackettInput!) { - result: downloadTVEpisode( - episodeId: $episodeId - jackettResult: $jackettResult - ) { - success - message - } -} - -mutation downloadSeason( - $tvShowTMDBId: Int! - $seasonNumber: Int! - $jackettResult: JackettInput! -) { - result: downloadSeason( - tvShowTMDBId: $tvShowTMDBId - seasonNumber: $seasonNumber - jackettResult: $jackettResult - ) { - success - message - } -} diff --git a/src/lib/mutations/remove-movie.mutation.graphql b/src/lib/mutations/remove-movie.mutation.graphql deleted file mode 100644 index 862c974..0000000 --- a/src/lib/mutations/remove-movie.mutation.graphql +++ /dev/null @@ -1,6 +0,0 @@ -mutation removeMovie($tmdbId: Int!) { - result: removeMovie(tmdbId: $tmdbId) { - success - message - } -} diff --git a/src/lib/mutations/remove-tv-show.mutation.graphql b/src/lib/mutations/remove-tv-show.mutation.graphql deleted file mode 100644 index 86a56f4..0000000 --- a/src/lib/mutations/remove-tv-show.mutation.graphql +++ /dev/null @@ -1,6 +0,0 @@ -mutation removeTVShow($tmdbId: Int!) { - result: removeTVShow(tmdbId: $tmdbId) { - success - message - } -} diff --git a/src/lib/mutations/reset-library.mutation.graphql b/src/lib/mutations/reset-library.mutation.graphql deleted file mode 100644 index 8d6cb16..0000000 --- a/src/lib/mutations/reset-library.mutation.graphql +++ /dev/null @@ -1,9 +0,0 @@ -mutation resetLibrary($deleteFiles: Boolean!, $resetSettings: Boolean!) { - result: resetLibrary( - deleteFiles: $deleteFiles - resetSettings: $resetSettings - ) { - success - message - } -} diff --git a/src/lib/mutations/save-quality.mutation.graphql b/src/lib/mutations/save-quality.mutation.graphql deleted file mode 100644 index 4c1f796..0000000 --- a/src/lib/mutations/save-quality.mutation.graphql +++ /dev/null @@ -1,6 +0,0 @@ -mutation saveQuality($qualities: [QualityInput!]!) { - result: saveQualityParams(qualities: $qualities) { - success - message - } -} diff --git a/src/lib/mutations/save-tags.mutation.graphql b/src/lib/mutations/save-tags.mutation.graphql deleted file mode 100644 index 17b08d6..0000000 --- a/src/lib/mutations/save-tags.mutation.graphql +++ /dev/null @@ -1,6 +0,0 @@ -mutation saveTags($tags: [TagInput!]!) { - result: saveTags(tags: $tags) { - success - message - } -} diff --git a/src/lib/mutations/track-movie.mutation.graphql b/src/lib/mutations/track-movie.mutation.graphql deleted file mode 100644 index 62a7c71..0000000 --- a/src/lib/mutations/track-movie.mutation.graphql +++ /dev/null @@ -1,5 +0,0 @@ -mutation trackMovie($title: String!, $tmdbId: Int!) { - movie: trackMovie(title: $title, tmdbId: $tmdbId) { - id - } -} diff --git a/src/lib/mutations/track-tvshow.mutation.graphql b/src/lib/mutations/track-tvshow.mutation.graphql deleted file mode 100644 index a7cd4e3..0000000 --- a/src/lib/mutations/track-tvshow.mutation.graphql +++ /dev/null @@ -1,5 +0,0 @@ -mutation trackTVShow($tmdbId: Int!, $seasonNumbers: [Int!]!) { - tvShow: trackTVShow(tmdbId: $tmdbId, seasonNumbers: $seasonNumbers) { - id - } -} diff --git a/src/lib/mutations/update-params.mutation.graphql b/src/lib/mutations/update-params.mutation.graphql deleted file mode 100644 index 0651d1d..0000000 --- a/src/lib/mutations/update-params.mutation.graphql +++ /dev/null @@ -1,6 +0,0 @@ -mutation updateParams($params: [UpdateParamsInput!]!) { - result: updateParams(params: $params) { - success - message - } -} diff --git a/src/lib/queries/get-calendar.query.graphql b/src/lib/queries/get-calendar.query.graphql deleted file mode 100644 index 1c678ce..0000000 --- a/src/lib/queries/get-calendar.query.graphql +++ /dev/null @@ -1,22 +0,0 @@ -query getCalendar { - calendar: getCalendar { - movies { - id - title - state - releaseDate - } - - tvEpisodes { - id - tvShow { - id - title - } - episodeNumber - seasonNumber - state - releaseDate - } - } -} diff --git a/src/lib/queries/get-discovery.query.graphql b/src/lib/queries/get-discovery.query.graphql deleted file mode 100644 index 63470b3..0000000 --- a/src/lib/queries/get-discovery.query.graphql +++ /dev/null @@ -1,31 +0,0 @@ -query getDiscover( - $entertainment: Entertainment - $originLanguage: String - $primaryReleaseYear: String - $score: Float - $genres: [Float!] - $page: Float -) { - TMDBResults: discover( - entertainment: $entertainment - originLanguage: $originLanguage - primaryReleaseYear: $primaryReleaseYear - score: $score - genres: $genres - page: $page - ) { - page - totalResults - totalPages - results { - id - tmdbId - title - posterPath - overview - runtime - voteAverage - releaseDate - } - } -} diff --git a/src/lib/queries/get-downloading.query.graphql b/src/lib/queries/get-downloading.query.graphql deleted file mode 100644 index a15ff1f..0000000 --- a/src/lib/queries/get-downloading.query.graphql +++ /dev/null @@ -1,18 +0,0 @@ -query getDownloading { - searching: getSearchingMedias { - id - title - resourceId - resourceType - } - - downloading: getDownloadingMedias { - id - title - tag - quality - torrent - resourceId - resourceType - } -} diff --git a/src/lib/queries/get-genres.query.graphql b/src/lib/queries/get-genres.query.graphql deleted file mode 100644 index 8009ded..0000000 --- a/src/lib/queries/get-genres.query.graphql +++ /dev/null @@ -1,13 +0,0 @@ -query getGenres { - genres: getGenres { - movieGenres { - id, - name - } - - tvShowGenres { - id, - name - } - } -} diff --git a/src/lib/queries/get-languages.query.graphql b/src/lib/queries/get-languages.query.graphql deleted file mode 100644 index f51d560..0000000 --- a/src/lib/queries/get-languages.query.graphql +++ /dev/null @@ -1,6 +0,0 @@ -query getLanguages { - languages: getLanguages { - code, - language - } -} diff --git a/src/lib/queries/get-library-movies.query.graphql b/src/lib/queries/get-library-movies.query.graphql deleted file mode 100644 index 8962b39..0000000 --- a/src/lib/queries/get-library-movies.query.graphql +++ /dev/null @@ -1,16 +0,0 @@ -query getLibraryMovies { - movies: getMovies { - id - tmdbId - title - originalTitle - state - posterPath - overview - runtime - voteAverage - releaseDate - createdAt - updatedAt - } -} diff --git a/src/lib/queries/get-library-tvshows.query.graphql b/src/lib/queries/get-library-tvshows.query.graphql deleted file mode 100644 index 702a61e..0000000 --- a/src/lib/queries/get-library-tvshows.query.graphql +++ /dev/null @@ -1,15 +0,0 @@ -query getLibraryTVShows { - tvShows: getTVShows { - id - tmdbId - title - originalTitle - posterPath - runtime - overview - voteAverage - releaseDate - createdAt - updatedAt - } -} diff --git a/src/lib/queries/get-missing.query.graphql b/src/lib/queries/get-missing.query.graphql deleted file mode 100644 index c22d0f4..0000000 --- a/src/lib/queries/get-missing.query.graphql +++ /dev/null @@ -1,26 +0,0 @@ -fragment MissingTVEpisodes on EnrichedTVEpisode { - id - seasonNumber - episodeNumber - releaseDate - tvShow { - id - title - } -} - -fragment MissingMovies on EnrichedMovie { - id - title - releaseDate -} - -query getMissing { - tvEpisodes: getMissingTVEpisodes { - ...MissingTVEpisodes - } - - movies: getMissingMovies { - ...MissingMovies - } -} diff --git a/src/lib/queries/get-movie-file-details.query.graphql b/src/lib/queries/get-movie-file-details.query.graphql deleted file mode 100644 index 1b7df49..0000000 --- a/src/lib/queries/get-movie-file-details.query.graphql +++ /dev/null @@ -1,8 +0,0 @@ -query getMovieFileDetails($tmdbId: Int!) { - details: getMovieFileDetails(tmdbId: $tmdbId) { - id - libraryPath - libraryFileSize - torrentFileName - } -} diff --git a/src/lib/queries/get-params.query.graphql b/src/lib/queries/get-params.query.graphql deleted file mode 100644 index 7dd8f6b..0000000 --- a/src/lib/queries/get-params.query.graphql +++ /dev/null @@ -1,11 +0,0 @@ -query getParams { - params: getParams { - region - language - tmdb_api_key - jackett_api_key - max_movie_download_size - max_tvshow_episode_download_size - organize_library_strategy - } -} diff --git a/src/lib/queries/get-popular.query.graphql b/src/lib/queries/get-popular.query.graphql deleted file mode 100644 index d4ff85e..0000000 --- a/src/lib/queries/get-popular.query.graphql +++ /dev/null @@ -1,25 +0,0 @@ -query getPopular { - results: getPopular { - movies { - id - tmdbId - title - releaseDate - posterPath - overview - runtime - voteAverage - } - - tvShows { - id - tmdbId - title - releaseDate - posterPath - overview - runtime - voteAverage - } - } -} diff --git a/src/lib/queries/get-quality.query.graphql b/src/lib/queries/get-quality.query.graphql deleted file mode 100644 index 4ab4091..0000000 --- a/src/lib/queries/get-quality.query.graphql +++ /dev/null @@ -1,11 +0,0 @@ -query getQuality($type: Entertainment!) { - qualities: getQualityParams(type: $type) { - id - name - match - score - updatedAt - createdAt - type - } -} diff --git a/src/lib/queries/get-recommended.query.graphql b/src/lib/queries/get-recommended.query.graphql deleted file mode 100644 index 17a6f95..0000000 --- a/src/lib/queries/get-recommended.query.graphql +++ /dev/null @@ -1,23 +0,0 @@ -query getRecommended { - tvShows: getRecommendedTVShows { - id - tmdbId - title - releaseDate - posterPath - overview - runtime - voteAverage - } - - movies: getRecommendedMovies { - id - tmdbId - title - releaseDate - posterPath - overview - runtime - voteAverage - } -} diff --git a/src/lib/queries/get-tags.query.graphql b/src/lib/queries/get-tags.query.graphql deleted file mode 100644 index 29bec6b..0000000 --- a/src/lib/queries/get-tags.query.graphql +++ /dev/null @@ -1,9 +0,0 @@ -query getTags { - tags: getTags { - id - name - score - createdAt - updatedAt - } -} diff --git a/src/lib/queries/get-torrent-status.query.graphql b/src/lib/queries/get-torrent-status.query.graphql deleted file mode 100644 index a561bd2..0000000 --- a/src/lib/queries/get-torrent-status.query.graphql +++ /dev/null @@ -1,14 +0,0 @@ -query getTorrentStatus($torrents: [GetTorrentStatusInput!]!) { - torrents: getTorrentStatus(torrents: $torrents) { - id - resourceId - resourceType - percentDone - rateDownload - rateUpload - uploadRatio - uploadedEver - totalSize - status - } -} diff --git a/src/lib/queries/get-tv-season-details.query.graphql b/src/lib/queries/get-tv-season-details.query.graphql deleted file mode 100644 index 20cbcb0..0000000 --- a/src/lib/queries/get-tv-season-details.query.graphql +++ /dev/null @@ -1,22 +0,0 @@ -query getTVSeasonDetails($tvShowTMDBId: Int!, $seasonNumber: Int!) { - episodes: getTVSeasonDetails( - tvShowTMDBId: $tvShowTMDBId - seasonNumber: $seasonNumber - ) { - id - episodeNumber - seasonNumber - state - updatedAt - voteAverage - releaseDate - createdAt - tvShow { - id - title - tmdbId - updatedAt - createdAt - } - } -} diff --git a/src/lib/queries/get-tv-show-seasons.query.graphql b/src/lib/queries/get-tv-show-seasons.query.graphql deleted file mode 100644 index 7713472..0000000 --- a/src/lib/queries/get-tv-show-seasons.query.graphql +++ /dev/null @@ -1,12 +0,0 @@ -query getTVShowSeasons($tvShowTMDBId: Int!) { - seasons: getTVShowSeasons(tvShowTMDBId: $tvShowTMDBId) { - id - name - seasonNumber - episodeCount - overview - posterPath - airDate - inLibrary - } -} diff --git a/src/lib/queries/omdb-search.query.graphql b/src/lib/queries/omdb-search.query.graphql deleted file mode 100644 index be31464..0000000 --- a/src/lib/queries/omdb-search.query.graphql +++ /dev/null @@ -1,13 +0,0 @@ -query omdbSearch( - $title: String! -) { - result: omdbSearch( - title: $title - ) { - ratings { - IMDB - rottenTomatoes - metaCritic - } -} -} diff --git a/src/lib/queries/search-torrent.query.graphql b/src/lib/queries/search-torrent.query.graphql deleted file mode 100644 index c7bbf25..0000000 --- a/src/lib/queries/search-torrent.query.graphql +++ /dev/null @@ -1,18 +0,0 @@ -query searchTorrent($query: String!) { - results: searchJackett(query: $query) { - id - title - quality - qualityScore - seeders - peers - link - downloadLink - tag - tagScore - normalizedTitle - normalizedTitleParts - size - publishDate - } -} diff --git a/src/lib/queries/search.query.graphql b/src/lib/queries/search.query.graphql deleted file mode 100644 index c8ad894..0000000 --- a/src/lib/queries/search.query.graphql +++ /dev/null @@ -1,25 +0,0 @@ -query search($query: String!) { - results: search(query: $query) { - movies { - id - tmdbId - title - releaseDate - posterPath - overview - runtime - voteAverage - } - - tvShows { - id - tmdbId - title - releaseDate - posterPath - overview - runtime - voteAverage - } - } -} diff --git a/src/lib/radarr.d.ts b/src/lib/radarr.d.ts new file mode 100644 index 0000000..d39912d --- /dev/null +++ b/src/lib/radarr.d.ts @@ -0,0 +1,5289 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + + +export interface paths { + "/api/v3/alttitle": { + get: { + parameters: { + query?: { + movieId?: number; + movieMetadataId?: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["AlternativeTitleResource"])[]; + "application/json": (components["schemas"]["AlternativeTitleResource"])[]; + "text/json": (components["schemas"]["AlternativeTitleResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/alttitle/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["AlternativeTitleResource"]; + "application/json": components["schemas"]["AlternativeTitleResource"]; + "text/json": components["schemas"]["AlternativeTitleResource"]; + }; + }; + }; + }; + }; + "/api": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["ApiInfoResource"]; + }; + }; + }; + }; + }; + "/login": { + get: { + responses: { + /** @description Success */ + 200: never; + }; + }; + post: { + parameters: { + query?: { + returnUrl?: string; + }; + }; + requestBody?: { + content: { + "multipart/form-data": { + Username?: string; + Password?: string; + RememberMe?: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/logout": { + get: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/system/backup": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["BackupResource"])[]; + "application/json": (components["schemas"]["BackupResource"])[]; + "text/json": (components["schemas"]["BackupResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/system/backup/{id}": { + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/system/backup/restore/{id}": { + post: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/system/backup/restore/upload": { + post: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/blocklist": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["BlocklistResourcePagingResource"]; + }; + }; + }; + }; + }; + "/api/v3/blocklist/movie": { + get: { + parameters: { + query?: { + movieId?: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["BlocklistResource"])[]; + "application/json": (components["schemas"]["BlocklistResource"])[]; + "text/json": (components["schemas"]["BlocklistResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/blocklist/{id}": { + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/blocklist/bulk": { + delete: { + requestBody?: { + content: { + "application/json": components["schemas"]["BlocklistBulkResource"]; + "text/json": components["schemas"]["BlocklistBulkResource"]; + "application/*+json": components["schemas"]["BlocklistBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/calendar": { + get: { + parameters: { + query?: { + start?: string; + end?: string; + unmonitored?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["MovieResource"])[]; + "application/json": (components["schemas"]["MovieResource"])[]; + "text/json": (components["schemas"]["MovieResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/calendar/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["MovieResource"]; + "application/json": components["schemas"]["MovieResource"]; + "text/json": components["schemas"]["MovieResource"]; + }; + }; + }; + }; + }; + "/feed/v3/calendar/radarr.ics": { + get: { + parameters: { + query?: { + pastDays?: number; + futureDays?: number; + tags?: string; + unmonitored?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/collection": { + get: { + parameters: { + query?: { + tmdbId?: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["CollectionResource"])[]; + "application/json": (components["schemas"]["CollectionResource"])[]; + "text/json": (components["schemas"]["CollectionResource"])[]; + }; + }; + }; + }; + put: { + requestBody?: { + content: { + "application/json": components["schemas"]["CollectionUpdateResource"]; + "text/json": components["schemas"]["CollectionUpdateResource"]; + "application/*+json": components["schemas"]["CollectionUpdateResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/collection/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["CollectionResource"]; + "application/json": components["schemas"]["CollectionResource"]; + "text/json": components["schemas"]["CollectionResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["CollectionResource"]; + "text/json": components["schemas"]["CollectionResource"]; + "application/*+json": components["schemas"]["CollectionResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["CollectionResource"]; + "application/json": components["schemas"]["CollectionResource"]; + "text/json": components["schemas"]["CollectionResource"]; + }; + }; + }; + }; + }; + "/api/v3/command": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["CommandResource"])[]; + "application/json": (components["schemas"]["CommandResource"])[]; + "text/json": (components["schemas"]["CommandResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["CommandResource"]; + "text/json": components["schemas"]["CommandResource"]; + "application/*+json": components["schemas"]["CommandResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["CommandResource"]; + "application/json": components["schemas"]["CommandResource"]; + "text/json": components["schemas"]["CommandResource"]; + }; + }; + }; + }; + }; + "/api/v3/command/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["CommandResource"]; + "application/json": components["schemas"]["CommandResource"]; + "text/json": components["schemas"]["CommandResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/credit": { + get: { + parameters: { + query?: { + movieId?: number; + movieMetadataId?: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["CreditResource"])[]; + "application/json": (components["schemas"]["CreditResource"])[]; + "text/json": (components["schemas"]["CreditResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/credit/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["CreditResource"]; + "application/json": components["schemas"]["CreditResource"]; + "text/json": components["schemas"]["CreditResource"]; + }; + }; + }; + }; + }; + "/api/v3/customfilter": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["CustomFilterResource"])[]; + "application/json": (components["schemas"]["CustomFilterResource"])[]; + "text/json": (components["schemas"]["CustomFilterResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["CustomFilterResource"]; + "text/json": components["schemas"]["CustomFilterResource"]; + "application/*+json": components["schemas"]["CustomFilterResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["CustomFilterResource"]; + "application/json": components["schemas"]["CustomFilterResource"]; + "text/json": components["schemas"]["CustomFilterResource"]; + }; + }; + }; + }; + }; + "/api/v3/customfilter/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["CustomFilterResource"]; + "application/json": components["schemas"]["CustomFilterResource"]; + "text/json": components["schemas"]["CustomFilterResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["CustomFilterResource"]; + "text/json": components["schemas"]["CustomFilterResource"]; + "application/*+json": components["schemas"]["CustomFilterResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["CustomFilterResource"]; + "application/json": components["schemas"]["CustomFilterResource"]; + "text/json": components["schemas"]["CustomFilterResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/customformat": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["CustomFormatResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["CustomFormatResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["CustomFormatResource"]; + "application/json": components["schemas"]["CustomFormatResource"]; + "text/json": components["schemas"]["CustomFormatResource"]; + }; + }; + }; + }; + }; + "/api/v3/customformat/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["CustomFormatResource"]; + "application/json": components["schemas"]["CustomFormatResource"]; + "text/json": components["schemas"]["CustomFormatResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["CustomFormatResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["CustomFormatResource"]; + "application/json": components["schemas"]["CustomFormatResource"]; + "text/json": components["schemas"]["CustomFormatResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/customformat/schema": { + get: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/delayprofile": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["DelayProfileResource"])[]; + "application/json": (components["schemas"]["DelayProfileResource"])[]; + "text/json": (components["schemas"]["DelayProfileResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["DelayProfileResource"]; + "text/json": components["schemas"]["DelayProfileResource"]; + "application/*+json": components["schemas"]["DelayProfileResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["DelayProfileResource"]; + "application/json": components["schemas"]["DelayProfileResource"]; + "text/json": components["schemas"]["DelayProfileResource"]; + }; + }; + }; + }; + }; + "/api/v3/delayprofile/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["DelayProfileResource"]; + "application/json": components["schemas"]["DelayProfileResource"]; + "text/json": components["schemas"]["DelayProfileResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["DelayProfileResource"]; + "text/json": components["schemas"]["DelayProfileResource"]; + "application/*+json": components["schemas"]["DelayProfileResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["DelayProfileResource"]; + "application/json": components["schemas"]["DelayProfileResource"]; + "text/json": components["schemas"]["DelayProfileResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/diskspace": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["DiskSpaceResource"])[]; + "application/json": (components["schemas"]["DiskSpaceResource"])[]; + "text/json": (components["schemas"]["DiskSpaceResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/downloadclient": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["DownloadClientResource"])[]; + "application/json": (components["schemas"]["DownloadClientResource"])[]; + "text/json": (components["schemas"]["DownloadClientResource"])[]; + }; + }; + }; + }; + post: { + parameters: { + query?: { + forceSave?: boolean; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["DownloadClientResource"]; + "text/json": components["schemas"]["DownloadClientResource"]; + "application/*+json": components["schemas"]["DownloadClientResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["DownloadClientResource"]; + "application/json": components["schemas"]["DownloadClientResource"]; + "text/json": components["schemas"]["DownloadClientResource"]; + }; + }; + }; + }; + }; + "/api/v3/downloadclient/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["DownloadClientResource"]; + "application/json": components["schemas"]["DownloadClientResource"]; + "text/json": components["schemas"]["DownloadClientResource"]; + }; + }; + }; + }; + put: { + parameters: { + query?: { + forceSave?: boolean; + }; + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["DownloadClientResource"]; + "text/json": components["schemas"]["DownloadClientResource"]; + "application/*+json": components["schemas"]["DownloadClientResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["DownloadClientResource"]; + "application/json": components["schemas"]["DownloadClientResource"]; + "text/json": components["schemas"]["DownloadClientResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/downloadclient/bulk": { + put: { + requestBody?: { + content: { + "application/json": components["schemas"]["DownloadClientBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["DownloadClientResource"]; + "application/json": components["schemas"]["DownloadClientResource"]; + "text/json": components["schemas"]["DownloadClientResource"]; + }; + }; + }; + }; + delete: { + requestBody?: { + content: { + "application/json": components["schemas"]["DownloadClientBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/downloadclient/schema": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["DownloadClientResource"])[]; + "application/json": (components["schemas"]["DownloadClientResource"])[]; + "text/json": (components["schemas"]["DownloadClientResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/downloadclient/test": { + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["DownloadClientResource"]; + "text/json": components["schemas"]["DownloadClientResource"]; + "application/*+json": components["schemas"]["DownloadClientResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/downloadclient/testall": { + post: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/downloadclient/action/{name}": { + post: { + parameters: { + path: { + name: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["DownloadClientResource"]; + "text/json": components["schemas"]["DownloadClientResource"]; + "application/*+json": components["schemas"]["DownloadClientResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/config/downloadclient": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["DownloadClientConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/config/downloadclient/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["DownloadClientConfigResource"]; + "application/json": components["schemas"]["DownloadClientConfigResource"]; + "text/json": components["schemas"]["DownloadClientConfigResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["DownloadClientConfigResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["DownloadClientConfigResource"]; + "application/json": components["schemas"]["DownloadClientConfigResource"]; + "text/json": components["schemas"]["DownloadClientConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/extrafile": { + get: { + parameters: { + query?: { + movieId?: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["ExtraFileResource"])[]; + "application/json": (components["schemas"]["ExtraFileResource"])[]; + "text/json": (components["schemas"]["ExtraFileResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/filesystem": { + get: { + parameters: { + query?: { + path?: string; + includeFiles?: boolean; + allowFoldersWithoutTrailingSlashes?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/filesystem/type": { + get: { + parameters: { + query?: { + path?: string; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/filesystem/mediafiles": { + get: { + parameters: { + query?: { + path?: string; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/health": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["HealthResource"])[]; + "application/json": (components["schemas"]["HealthResource"])[]; + "text/json": (components["schemas"]["HealthResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/health/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["HealthResource"]; + "application/json": components["schemas"]["HealthResource"]; + "text/json": components["schemas"]["HealthResource"]; + }; + }; + }; + }; + }; + "/api/v3/history": { + get: { + parameters: { + query?: { + includeMovie?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["HistoryResourcePagingResource"]; + "application/json": components["schemas"]["HistoryResourcePagingResource"]; + "text/json": components["schemas"]["HistoryResourcePagingResource"]; + }; + }; + }; + }; + }; + "/api/v3/history/since": { + get: { + parameters: { + query?: { + date?: string; + eventType?: components["schemas"]["MovieHistoryEventType"]; + includeMovie?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["HistoryResource"])[]; + "application/json": (components["schemas"]["HistoryResource"])[]; + "text/json": (components["schemas"]["HistoryResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/history/movie": { + get: { + parameters: { + query?: { + movieId?: number; + eventType?: components["schemas"]["MovieHistoryEventType"]; + includeMovie?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["HistoryResource"])[]; + "application/json": (components["schemas"]["HistoryResource"])[]; + "text/json": (components["schemas"]["HistoryResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/history/failed/{id}": { + post: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/config/host": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["HostConfigResource"]; + "application/json": components["schemas"]["HostConfigResource"]; + "text/json": components["schemas"]["HostConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/config/host/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["HostConfigResource"]; + "application/json": components["schemas"]["HostConfigResource"]; + "text/json": components["schemas"]["HostConfigResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["HostConfigResource"]; + "text/json": components["schemas"]["HostConfigResource"]; + "application/*+json": components["schemas"]["HostConfigResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["HostConfigResource"]; + "application/json": components["schemas"]["HostConfigResource"]; + "text/json": components["schemas"]["HostConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/exclusions": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["ImportExclusionsResource"])[]; + "application/json": (components["schemas"]["ImportExclusionsResource"])[]; + "text/json": (components["schemas"]["ImportExclusionsResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["ImportExclusionsResource"]; + "text/json": components["schemas"]["ImportExclusionsResource"]; + "application/*+json": components["schemas"]["ImportExclusionsResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["ImportExclusionsResource"]; + "application/json": components["schemas"]["ImportExclusionsResource"]; + "text/json": components["schemas"]["ImportExclusionsResource"]; + }; + }; + }; + }; + }; + "/api/v3/exclusions/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["ImportExclusionsResource"]; + "application/json": components["schemas"]["ImportExclusionsResource"]; + "text/json": components["schemas"]["ImportExclusionsResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ImportExclusionsResource"]; + "text/json": components["schemas"]["ImportExclusionsResource"]; + "application/*+json": components["schemas"]["ImportExclusionsResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["ImportExclusionsResource"]; + "application/json": components["schemas"]["ImportExclusionsResource"]; + "text/json": components["schemas"]["ImportExclusionsResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/exclusions/bulk": { + post: { + requestBody?: { + content: { + "application/json": (components["schemas"]["ImportExclusionsResource"])[]; + "text/json": (components["schemas"]["ImportExclusionsResource"])[]; + "application/*+json": (components["schemas"]["ImportExclusionsResource"])[]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/importlist": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["ImportListResource"])[]; + "application/json": (components["schemas"]["ImportListResource"])[]; + "text/json": (components["schemas"]["ImportListResource"])[]; + }; + }; + }; + }; + post: { + parameters: { + query?: { + forceSave?: boolean; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ImportListResource"]; + "text/json": components["schemas"]["ImportListResource"]; + "application/*+json": components["schemas"]["ImportListResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["ImportListResource"]; + "application/json": components["schemas"]["ImportListResource"]; + "text/json": components["schemas"]["ImportListResource"]; + }; + }; + }; + }; + }; + "/api/v3/importlist/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["ImportListResource"]; + "application/json": components["schemas"]["ImportListResource"]; + "text/json": components["schemas"]["ImportListResource"]; + }; + }; + }; + }; + put: { + parameters: { + query?: { + forceSave?: boolean; + }; + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ImportListResource"]; + "text/json": components["schemas"]["ImportListResource"]; + "application/*+json": components["schemas"]["ImportListResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["ImportListResource"]; + "application/json": components["schemas"]["ImportListResource"]; + "text/json": components["schemas"]["ImportListResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/importlist/bulk": { + put: { + requestBody?: { + content: { + "application/json": components["schemas"]["ImportListBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["ImportListResource"]; + "application/json": components["schemas"]["ImportListResource"]; + "text/json": components["schemas"]["ImportListResource"]; + }; + }; + }; + }; + delete: { + requestBody?: { + content: { + "application/json": components["schemas"]["ImportListBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/importlist/schema": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["ImportListResource"])[]; + "application/json": (components["schemas"]["ImportListResource"])[]; + "text/json": (components["schemas"]["ImportListResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/importlist/test": { + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["ImportListResource"]; + "text/json": components["schemas"]["ImportListResource"]; + "application/*+json": components["schemas"]["ImportListResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/importlist/testall": { + post: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/importlist/action/{name}": { + post: { + parameters: { + path: { + name: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ImportListResource"]; + "text/json": components["schemas"]["ImportListResource"]; + "application/*+json": components["schemas"]["ImportListResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/config/importlist": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["ImportListConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/config/importlist/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["ImportListConfigResource"]; + "application/json": components["schemas"]["ImportListConfigResource"]; + "text/json": components["schemas"]["ImportListConfigResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ImportListConfigResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["ImportListConfigResource"]; + "application/json": components["schemas"]["ImportListConfigResource"]; + "text/json": components["schemas"]["ImportListConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/importlist/movie": { + get: { + parameters: { + query?: { + includeRecommendations?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + post: { + requestBody?: { + content: { + "application/json": (components["schemas"]["MovieResource"])[]; + "text/json": (components["schemas"]["MovieResource"])[]; + "application/*+json": (components["schemas"]["MovieResource"])[]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/indexer": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["IndexerResource"])[]; + "application/json": (components["schemas"]["IndexerResource"])[]; + "text/json": (components["schemas"]["IndexerResource"])[]; + }; + }; + }; + }; + post: { + parameters: { + query?: { + forceSave?: boolean; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["IndexerResource"]; + "text/json": components["schemas"]["IndexerResource"]; + "application/*+json": components["schemas"]["IndexerResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["IndexerResource"]; + "application/json": components["schemas"]["IndexerResource"]; + "text/json": components["schemas"]["IndexerResource"]; + }; + }; + }; + }; + }; + "/api/v3/indexer/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["IndexerResource"]; + "application/json": components["schemas"]["IndexerResource"]; + "text/json": components["schemas"]["IndexerResource"]; + }; + }; + }; + }; + put: { + parameters: { + query?: { + forceSave?: boolean; + }; + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["IndexerResource"]; + "text/json": components["schemas"]["IndexerResource"]; + "application/*+json": components["schemas"]["IndexerResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["IndexerResource"]; + "application/json": components["schemas"]["IndexerResource"]; + "text/json": components["schemas"]["IndexerResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/indexer/bulk": { + put: { + requestBody?: { + content: { + "application/json": components["schemas"]["IndexerBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["IndexerResource"]; + "application/json": components["schemas"]["IndexerResource"]; + "text/json": components["schemas"]["IndexerResource"]; + }; + }; + }; + }; + delete: { + requestBody?: { + content: { + "application/json": components["schemas"]["IndexerBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/indexer/schema": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["IndexerResource"])[]; + "application/json": (components["schemas"]["IndexerResource"])[]; + "text/json": (components["schemas"]["IndexerResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/indexer/test": { + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["IndexerResource"]; + "text/json": components["schemas"]["IndexerResource"]; + "application/*+json": components["schemas"]["IndexerResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/indexer/testall": { + post: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/indexer/action/{name}": { + post: { + parameters: { + path: { + name: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["IndexerResource"]; + "text/json": components["schemas"]["IndexerResource"]; + "application/*+json": components["schemas"]["IndexerResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/config/indexer": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["IndexerConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/config/indexer/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["IndexerConfigResource"]; + "application/json": components["schemas"]["IndexerConfigResource"]; + "text/json": components["schemas"]["IndexerConfigResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["IndexerConfigResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["IndexerConfigResource"]; + "application/json": components["schemas"]["IndexerConfigResource"]; + "text/json": components["schemas"]["IndexerConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/indexerflag": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["IndexerFlagResource"])[]; + "application/json": (components["schemas"]["IndexerFlagResource"])[]; + "text/json": (components["schemas"]["IndexerFlagResource"])[]; + }; + }; + }; + }; + }; + "/initialize.js": { + get: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/language": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["LanguageResource"])[]; + "application/json": (components["schemas"]["LanguageResource"])[]; + "text/json": (components["schemas"]["LanguageResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/language/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["LanguageResource"]; + "application/json": components["schemas"]["LanguageResource"]; + "text/json": components["schemas"]["LanguageResource"]; + }; + }; + }; + }; + }; + "/api/v3/localization": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": string; + "application/json": string; + "text/json": string; + }; + }; + }; + }; + }; + "/api/v3/log": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["LogResourcePagingResource"]; + "application/json": components["schemas"]["LogResourcePagingResource"]; + "text/json": components["schemas"]["LogResourcePagingResource"]; + }; + }; + }; + }; + }; + "/api/v3/log/file": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["LogFileResource"])[]; + "application/json": (components["schemas"]["LogFileResource"])[]; + "text/json": (components["schemas"]["LogFileResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/log/file/{filename}": { + get: { + parameters: { + path: { + filename: string; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/manualimport": { + get: { + parameters: { + query?: { + folder?: string; + downloadId?: string; + movieId?: number; + filterExistingFiles?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["ManualImportResource"])[]; + "application/json": (components["schemas"]["ManualImportResource"])[]; + "text/json": (components["schemas"]["ManualImportResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": (components["schemas"]["ManualImportReprocessResource"])[]; + "text/json": (components["schemas"]["ManualImportReprocessResource"])[]; + "application/*+json": (components["schemas"]["ManualImportReprocessResource"])[]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/mediacover/{movieId}/{filename}": { + get: { + parameters: { + path: { + movieId: number; + filename: string; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/config/mediamanagement": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["MediaManagementConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/config/mediamanagement/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["MediaManagementConfigResource"]; + "application/json": components["schemas"]["MediaManagementConfigResource"]; + "text/json": components["schemas"]["MediaManagementConfigResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["MediaManagementConfigResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["MediaManagementConfigResource"]; + "application/json": components["schemas"]["MediaManagementConfigResource"]; + "text/json": components["schemas"]["MediaManagementConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/metadata": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["MetadataResource"])[]; + "application/json": (components["schemas"]["MetadataResource"])[]; + "text/json": (components["schemas"]["MetadataResource"])[]; + }; + }; + }; + }; + post: { + parameters: { + query?: { + forceSave?: boolean; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["MetadataResource"]; + "text/json": components["schemas"]["MetadataResource"]; + "application/*+json": components["schemas"]["MetadataResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["MetadataResource"]; + "application/json": components["schemas"]["MetadataResource"]; + "text/json": components["schemas"]["MetadataResource"]; + }; + }; + }; + }; + }; + "/api/v3/metadata/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["MetadataResource"]; + "application/json": components["schemas"]["MetadataResource"]; + "text/json": components["schemas"]["MetadataResource"]; + }; + }; + }; + }; + put: { + parameters: { + query?: { + forceSave?: boolean; + }; + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["MetadataResource"]; + "text/json": components["schemas"]["MetadataResource"]; + "application/*+json": components["schemas"]["MetadataResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["MetadataResource"]; + "application/json": components["schemas"]["MetadataResource"]; + "text/json": components["schemas"]["MetadataResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/metadata/bulk": { + put: { + requestBody?: { + content: { + "application/json": components["schemas"]["MetadataBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["MetadataResource"]; + "application/json": components["schemas"]["MetadataResource"]; + "text/json": components["schemas"]["MetadataResource"]; + }; + }; + }; + }; + delete: { + requestBody?: { + content: { + "application/json": components["schemas"]["MetadataBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/metadata/schema": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["MetadataResource"])[]; + "application/json": (components["schemas"]["MetadataResource"])[]; + "text/json": (components["schemas"]["MetadataResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/metadata/test": { + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["MetadataResource"]; + "text/json": components["schemas"]["MetadataResource"]; + "application/*+json": components["schemas"]["MetadataResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/metadata/testall": { + post: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/metadata/action/{name}": { + post: { + parameters: { + path: { + name: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["MetadataResource"]; + "text/json": components["schemas"]["MetadataResource"]; + "application/*+json": components["schemas"]["MetadataResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/config/metadata": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["MetadataConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/config/metadata/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["MetadataConfigResource"]; + "application/json": components["schemas"]["MetadataConfigResource"]; + "text/json": components["schemas"]["MetadataConfigResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["MetadataConfigResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["MetadataConfigResource"]; + "application/json": components["schemas"]["MetadataConfigResource"]; + "text/json": components["schemas"]["MetadataConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/movie": { + get: { + parameters: { + query?: { + tmdbId?: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["MovieResource"])[]; + "application/json": (components["schemas"]["MovieResource"])[]; + "text/json": (components["schemas"]["MovieResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["MovieResource"]; + "text/json": components["schemas"]["MovieResource"]; + "application/*+json": components["schemas"]["MovieResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["MovieResource"]; + "application/json": components["schemas"]["MovieResource"]; + "text/json": components["schemas"]["MovieResource"]; + }; + }; + }; + }; + }; + "/api/v3/movie/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["MovieResource"]; + "application/json": components["schemas"]["MovieResource"]; + "text/json": components["schemas"]["MovieResource"]; + }; + }; + }; + }; + put: { + parameters: { + query?: { + moveFiles?: boolean; + }; + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["MovieResource"]; + "text/json": components["schemas"]["MovieResource"]; + "application/*+json": components["schemas"]["MovieResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["MovieResource"]; + "application/json": components["schemas"]["MovieResource"]; + "text/json": components["schemas"]["MovieResource"]; + }; + }; + }; + }; + delete: { + parameters: { + query?: { + deleteFiles?: boolean; + addImportExclusion?: boolean; + }; + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/movie/editor": { + put: { + requestBody?: { + content: { + "application/json": components["schemas"]["MovieEditorResource"]; + "text/json": components["schemas"]["MovieEditorResource"]; + "application/*+json": components["schemas"]["MovieEditorResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + delete: { + requestBody?: { + content: { + "application/json": components["schemas"]["MovieEditorResource"]; + "text/json": components["schemas"]["MovieEditorResource"]; + "application/*+json": components["schemas"]["MovieEditorResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/moviefile": { + get: { + parameters: { + query?: { + movieId?: number; + movieFileIds?: (number)[]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["MovieFileResource"])[]; + "application/json": (components["schemas"]["MovieFileResource"])[]; + "text/json": (components["schemas"]["MovieFileResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/moviefile/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["MovieFileResource"]; + "application/json": components["schemas"]["MovieFileResource"]; + "text/json": components["schemas"]["MovieFileResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["MovieFileResource"]; + "text/json": components["schemas"]["MovieFileResource"]; + "application/*+json": components["schemas"]["MovieFileResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["MovieFileResource"]; + "application/json": components["schemas"]["MovieFileResource"]; + "text/json": components["schemas"]["MovieFileResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/moviefile/editor": { + put: { + requestBody?: { + content: { + "application/json": components["schemas"]["MovieFileListResource"]; + "text/json": components["schemas"]["MovieFileListResource"]; + "application/*+json": components["schemas"]["MovieFileListResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/moviefile/bulk": { + delete: { + requestBody?: { + content: { + "application/json": components["schemas"]["MovieFileListResource"]; + "text/json": components["schemas"]["MovieFileListResource"]; + "application/*+json": components["schemas"]["MovieFileListResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/movie/import": { + post: { + requestBody?: { + content: { + "application/json": (components["schemas"]["MovieResource"])[]; + "text/json": (components["schemas"]["MovieResource"])[]; + "application/*+json": (components["schemas"]["MovieResource"])[]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/movie/import/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["MovieResource"]; + "application/json": components["schemas"]["MovieResource"]; + "text/json": components["schemas"]["MovieResource"]; + }; + }; + }; + }; + }; + "/api/v3/movie/lookup/tmdb": { + get: { + parameters: { + query?: { + tmdbId?: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/movie/lookup/imdb": { + get: { + parameters: { + query?: { + imdbId?: string; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/movie/lookup": { + get: { + parameters: { + query?: { + term?: string; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/movie/lookup/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["MovieResource"]; + "application/json": components["schemas"]["MovieResource"]; + "text/json": components["schemas"]["MovieResource"]; + }; + }; + }; + }; + }; + "/api/v3/config/naming": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["NamingConfigResource"]; + "application/json": components["schemas"]["NamingConfigResource"]; + "text/json": components["schemas"]["NamingConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/config/naming/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["NamingConfigResource"]; + "application/json": components["schemas"]["NamingConfigResource"]; + "text/json": components["schemas"]["NamingConfigResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["NamingConfigResource"]; + "text/json": components["schemas"]["NamingConfigResource"]; + "application/*+json": components["schemas"]["NamingConfigResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["NamingConfigResource"]; + "application/json": components["schemas"]["NamingConfigResource"]; + "text/json": components["schemas"]["NamingConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/config/naming/examples": { + get: { + parameters: { + query?: { + RenameMovies?: boolean; + ReplaceIllegalCharacters?: boolean; + ColonReplacementFormat?: components["schemas"]["ColonReplacementFormat"]; + StandardMovieFormat?: string; + MovieFolderFormat?: string; + IncludeQuality?: boolean; + ReplaceSpaces?: boolean; + Separator?: string; + NumberStyle?: string; + Id?: number; + ResourceName?: string; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/notification": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["NotificationResource"])[]; + "application/json": (components["schemas"]["NotificationResource"])[]; + "text/json": (components["schemas"]["NotificationResource"])[]; + }; + }; + }; + }; + post: { + parameters: { + query?: { + forceSave?: boolean; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["NotificationResource"]; + "text/json": components["schemas"]["NotificationResource"]; + "application/*+json": components["schemas"]["NotificationResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["NotificationResource"]; + "application/json": components["schemas"]["NotificationResource"]; + "text/json": components["schemas"]["NotificationResource"]; + }; + }; + }; + }; + }; + "/api/v3/notification/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["NotificationResource"]; + "application/json": components["schemas"]["NotificationResource"]; + "text/json": components["schemas"]["NotificationResource"]; + }; + }; + }; + }; + put: { + parameters: { + query?: { + forceSave?: boolean; + }; + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["NotificationResource"]; + "text/json": components["schemas"]["NotificationResource"]; + "application/*+json": components["schemas"]["NotificationResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["NotificationResource"]; + "application/json": components["schemas"]["NotificationResource"]; + "text/json": components["schemas"]["NotificationResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/notification/bulk": { + put: { + requestBody?: { + content: { + "application/json": components["schemas"]["NotificationBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["NotificationResource"]; + "application/json": components["schemas"]["NotificationResource"]; + "text/json": components["schemas"]["NotificationResource"]; + }; + }; + }; + }; + delete: { + requestBody?: { + content: { + "application/json": components["schemas"]["NotificationBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/notification/schema": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["NotificationResource"])[]; + "application/json": (components["schemas"]["NotificationResource"])[]; + "text/json": (components["schemas"]["NotificationResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/notification/test": { + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["NotificationResource"]; + "text/json": components["schemas"]["NotificationResource"]; + "application/*+json": components["schemas"]["NotificationResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/notification/testall": { + post: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/notification/action/{name}": { + post: { + parameters: { + path: { + name: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["NotificationResource"]; + "text/json": components["schemas"]["NotificationResource"]; + "application/*+json": components["schemas"]["NotificationResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/parse": { + get: { + parameters: { + query?: { + title?: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["ParseResource"]; + "application/json": components["schemas"]["ParseResource"]; + "text/json": components["schemas"]["ParseResource"]; + }; + }; + }; + }; + }; + "/ping": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["PingResource"]; + }; + }; + }; + }; + }; + "/api/v3/qualitydefinition/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["QualityDefinitionResource"]; + "application/json": components["schemas"]["QualityDefinitionResource"]; + "text/json": components["schemas"]["QualityDefinitionResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["QualityDefinitionResource"]; + "text/json": components["schemas"]["QualityDefinitionResource"]; + "application/*+json": components["schemas"]["QualityDefinitionResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["QualityDefinitionResource"]; + "application/json": components["schemas"]["QualityDefinitionResource"]; + "text/json": components["schemas"]["QualityDefinitionResource"]; + }; + }; + }; + }; + }; + "/api/v3/qualitydefinition": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["QualityDefinitionResource"])[]; + "application/json": (components["schemas"]["QualityDefinitionResource"])[]; + "text/json": (components["schemas"]["QualityDefinitionResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/qualitydefinition/update": { + put: { + requestBody?: { + content: { + "application/json": (components["schemas"]["QualityDefinitionResource"])[]; + "text/json": (components["schemas"]["QualityDefinitionResource"])[]; + "application/*+json": (components["schemas"]["QualityDefinitionResource"])[]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/qualityprofile": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["QualityProfileResource"])[]; + "application/json": (components["schemas"]["QualityProfileResource"])[]; + "text/json": (components["schemas"]["QualityProfileResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["QualityProfileResource"]; + "text/json": components["schemas"]["QualityProfileResource"]; + "application/*+json": components["schemas"]["QualityProfileResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["QualityProfileResource"]; + "application/json": components["schemas"]["QualityProfileResource"]; + "text/json": components["schemas"]["QualityProfileResource"]; + }; + }; + }; + }; + }; + "/api/v3/qualityprofile/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["QualityProfileResource"]; + "application/json": components["schemas"]["QualityProfileResource"]; + "text/json": components["schemas"]["QualityProfileResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["QualityProfileResource"]; + "text/json": components["schemas"]["QualityProfileResource"]; + "application/*+json": components["schemas"]["QualityProfileResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["QualityProfileResource"]; + "application/json": components["schemas"]["QualityProfileResource"]; + "text/json": components["schemas"]["QualityProfileResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/qualityprofile/schema": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["QualityProfileResource"]; + "application/json": components["schemas"]["QualityProfileResource"]; + "text/json": components["schemas"]["QualityProfileResource"]; + }; + }; + }; + }; + }; + "/api/v3/queue/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["QueueResource"]; + "application/json": components["schemas"]["QueueResource"]; + "text/json": components["schemas"]["QueueResource"]; + }; + }; + }; + }; + delete: { + parameters: { + query?: { + removeFromClient?: boolean; + blocklist?: boolean; + }; + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/queue/bulk": { + delete: { + parameters: { + query?: { + removeFromClient?: boolean; + blocklist?: boolean; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["QueueBulkResource"]; + "text/json": components["schemas"]["QueueBulkResource"]; + "application/*+json": components["schemas"]["QueueBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/queue": { + get: { + parameters: { + query?: { + includeUnknownMovieItems?: boolean; + includeMovie?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["QueueResourcePagingResource"]; + "application/json": components["schemas"]["QueueResourcePagingResource"]; + "text/json": components["schemas"]["QueueResourcePagingResource"]; + }; + }; + }; + }; + }; + "/api/v3/queue/grab/{id}": { + post: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/queue/grab/bulk": { + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["QueueBulkResource"]; + "text/json": components["schemas"]["QueueBulkResource"]; + "application/*+json": components["schemas"]["QueueBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/queue/details": { + get: { + parameters: { + query?: { + movieId?: number; + includeMovie?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["QueueResource"])[]; + "application/json": (components["schemas"]["QueueResource"])[]; + "text/json": (components["schemas"]["QueueResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/queue/details/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["QueueResource"]; + "application/json": components["schemas"]["QueueResource"]; + "text/json": components["schemas"]["QueueResource"]; + }; + }; + }; + }; + }; + "/api/v3/queue/status": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["QueueStatusResource"]; + "application/json": components["schemas"]["QueueStatusResource"]; + "text/json": components["schemas"]["QueueStatusResource"]; + }; + }; + }; + }; + }; + "/api/v3/queue/status/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["QueueStatusResource"]; + "application/json": components["schemas"]["QueueStatusResource"]; + "text/json": components["schemas"]["QueueStatusResource"]; + }; + }; + }; + }; + }; + "/api/v3/release": { + get: { + parameters: { + query?: { + movieId?: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["ReleaseResource"])[]; + "application/json": (components["schemas"]["ReleaseResource"])[]; + "text/json": (components["schemas"]["ReleaseResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["ReleaseResource"]; + "text/json": components["schemas"]["ReleaseResource"]; + "application/*+json": components["schemas"]["ReleaseResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/release/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["ReleaseResource"]; + "application/json": components["schemas"]["ReleaseResource"]; + "text/json": components["schemas"]["ReleaseResource"]; + }; + }; + }; + }; + }; + "/api/v3/release/push": { + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["ReleaseResource"]; + "text/json": components["schemas"]["ReleaseResource"]; + "application/*+json": components["schemas"]["ReleaseResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["ReleaseResource"])[]; + "application/json": (components["schemas"]["ReleaseResource"])[]; + "text/json": (components["schemas"]["ReleaseResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/release/push/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["ReleaseResource"]; + "application/json": components["schemas"]["ReleaseResource"]; + "text/json": components["schemas"]["ReleaseResource"]; + }; + }; + }; + }; + }; + "/api/v3/remotepathmapping": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["RemotePathMappingResource"])[]; + "application/json": (components["schemas"]["RemotePathMappingResource"])[]; + "text/json": (components["schemas"]["RemotePathMappingResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["RemotePathMappingResource"]; + "text/json": components["schemas"]["RemotePathMappingResource"]; + "application/*+json": components["schemas"]["RemotePathMappingResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["RemotePathMappingResource"]; + "application/json": components["schemas"]["RemotePathMappingResource"]; + "text/json": components["schemas"]["RemotePathMappingResource"]; + }; + }; + }; + }; + }; + "/api/v3/remotepathmapping/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["RemotePathMappingResource"]; + "application/json": components["schemas"]["RemotePathMappingResource"]; + "text/json": components["schemas"]["RemotePathMappingResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["RemotePathMappingResource"]; + "text/json": components["schemas"]["RemotePathMappingResource"]; + "application/*+json": components["schemas"]["RemotePathMappingResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["RemotePathMappingResource"]; + "application/json": components["schemas"]["RemotePathMappingResource"]; + "text/json": components["schemas"]["RemotePathMappingResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/rename": { + get: { + parameters: { + query?: { + movieId?: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["RenameMovieResource"])[]; + "application/json": (components["schemas"]["RenameMovieResource"])[]; + "text/json": (components["schemas"]["RenameMovieResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/restriction": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["RestrictionResource"])[]; + "application/json": (components["schemas"]["RestrictionResource"])[]; + "text/json": (components["schemas"]["RestrictionResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["RestrictionResource"]; + "text/json": components["schemas"]["RestrictionResource"]; + "application/*+json": components["schemas"]["RestrictionResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["RestrictionResource"]; + "application/json": components["schemas"]["RestrictionResource"]; + "text/json": components["schemas"]["RestrictionResource"]; + }; + }; + }; + }; + }; + "/api/v3/restriction/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["RestrictionResource"]; + "application/json": components["schemas"]["RestrictionResource"]; + "text/json": components["schemas"]["RestrictionResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["RestrictionResource"]; + "text/json": components["schemas"]["RestrictionResource"]; + "application/*+json": components["schemas"]["RestrictionResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["RestrictionResource"]; + "application/json": components["schemas"]["RestrictionResource"]; + "text/json": components["schemas"]["RestrictionResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/rootfolder": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["RootFolderResource"])[]; + "application/json": (components["schemas"]["RootFolderResource"])[]; + "text/json": (components["schemas"]["RootFolderResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["RootFolderResource"]; + "text/json": components["schemas"]["RootFolderResource"]; + "application/*+json": components["schemas"]["RootFolderResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["RootFolderResource"]; + "application/json": components["schemas"]["RootFolderResource"]; + "text/json": components["schemas"]["RootFolderResource"]; + }; + }; + }; + }; + }; + "/api/v3/rootfolder/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["RootFolderResource"]; + "application/json": components["schemas"]["RootFolderResource"]; + "text/json": components["schemas"]["RootFolderResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/content/{path}": { + get: { + parameters: { + path: { + path: string; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/": { + get: { + parameters: { + path: { + path: string; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/{path}": { + get: { + parameters: { + path: { + path: string; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/system/status": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["SystemResource"]; + "application/json": components["schemas"]["SystemResource"]; + "text/json": components["schemas"]["SystemResource"]; + }; + }; + }; + }; + }; + "/api/v3/system/routes": { + get: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/system/routes/duplicate": { + get: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/system/shutdown": { + post: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/system/restart": { + post: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/tag": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["TagResource"])[]; + "application/json": (components["schemas"]["TagResource"])[]; + "text/json": (components["schemas"]["TagResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["TagResource"]; + "text/json": components["schemas"]["TagResource"]; + "application/*+json": components["schemas"]["TagResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["TagResource"]; + "application/json": components["schemas"]["TagResource"]; + "text/json": components["schemas"]["TagResource"]; + }; + }; + }; + }; + }; + "/api/v3/tag/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["TagResource"]; + "application/json": components["schemas"]["TagResource"]; + "text/json": components["schemas"]["TagResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["TagResource"]; + "text/json": components["schemas"]["TagResource"]; + "application/*+json": components["schemas"]["TagResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["TagResource"]; + "application/json": components["schemas"]["TagResource"]; + "text/json": components["schemas"]["TagResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/tag/detail": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["TagDetailsResource"])[]; + "application/json": (components["schemas"]["TagDetailsResource"])[]; + "text/json": (components["schemas"]["TagDetailsResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/tag/detail/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["TagDetailsResource"]; + "application/json": components["schemas"]["TagDetailsResource"]; + "text/json": components["schemas"]["TagDetailsResource"]; + }; + }; + }; + }; + }; + "/api/v3/system/task": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["TaskResource"])[]; + "application/json": (components["schemas"]["TaskResource"])[]; + "text/json": (components["schemas"]["TaskResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/system/task/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["TaskResource"]; + "application/json": components["schemas"]["TaskResource"]; + "text/json": components["schemas"]["TaskResource"]; + }; + }; + }; + }; + }; + "/api/v3/config/ui/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["UiConfigResource"]; + "application/json": components["schemas"]["UiConfigResource"]; + "text/json": components["schemas"]["UiConfigResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["UiConfigResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["UiConfigResource"]; + "application/json": components["schemas"]["UiConfigResource"]; + "text/json": components["schemas"]["UiConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/config/ui": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["UiConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/update": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["UpdateResource"])[]; + "application/json": (components["schemas"]["UpdateResource"])[]; + "text/json": (components["schemas"]["UpdateResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/log/file/update": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["LogFileResource"])[]; + "application/json": (components["schemas"]["LogFileResource"])[]; + "text/json": (components["schemas"]["LogFileResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/log/file/update/{filename}": { + get: { + parameters: { + path: { + filename: string; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; +} + +export type webhooks = Record; + +export interface components { + schemas: { + /** @enum {string} */ + AddMovieMethod: "manual" | "list" | "collection"; + AddMovieOptions: { + ignoreEpisodesWithFiles?: boolean; + ignoreEpisodesWithoutFiles?: boolean; + monitor?: components["schemas"]["MonitorTypes"]; + searchForMovie?: boolean; + addMethod?: components["schemas"]["AddMovieMethod"]; + }; + AlternativeTitle: { + /** Format: int32 */ + id?: number; + sourceType?: components["schemas"]["SourceType"]; + /** Format: int32 */ + movieMetadataId?: number; + title?: string | null; + cleanTitle?: string | null; + /** Format: int32 */ + sourceId?: number; + /** Format: int32 */ + votes?: number; + /** Format: int32 */ + voteCount?: number; + language?: components["schemas"]["Language"]; + }; + AlternativeTitleResource: { + /** Format: int32 */ + id?: number; + sourceType?: components["schemas"]["SourceType"]; + /** Format: int32 */ + movieMetadataId?: number; + title?: string | null; + cleanTitle?: string | null; + /** Format: int32 */ + sourceId?: number; + /** Format: int32 */ + votes?: number; + /** Format: int32 */ + voteCount?: number; + language?: components["schemas"]["Language"]; + }; + ApiInfoResource: { + current?: string | null; + deprecated?: (string)[] | null; + }; + /** @enum {string} */ + ApplyTags: "add" | "remove" | "replace"; + /** @enum {string} */ + AuthenticationType: "none" | "basic" | "forms"; + BackupResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + path?: string | null; + type?: components["schemas"]["BackupType"]; + /** Format: int64 */ + size?: number; + /** Format: date-time */ + time?: string; + }; + /** @enum {string} */ + BackupType: "scheduled" | "manual" | "update"; + BlocklistBulkResource: { + ids?: (number)[] | null; + }; + BlocklistResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + movieId?: number; + sourceTitle?: string | null; + languages?: (components["schemas"]["Language"])[] | null; + quality?: components["schemas"]["QualityModel"]; + customFormats?: (components["schemas"]["CustomFormatResource"])[] | null; + /** Format: date-time */ + date?: string; + protocol?: components["schemas"]["DownloadProtocol"]; + indexer?: string | null; + message?: string | null; + movie?: components["schemas"]["MovieResource"]; + }; + BlocklistResourcePagingResource: { + /** Format: int32 */ + page?: number; + /** Format: int32 */ + pageSize?: number; + sortKey?: string | null; + sortDirection?: components["schemas"]["SortDirection"]; + filters?: (components["schemas"]["PagingResourceFilter"])[] | null; + /** Format: int32 */ + totalRecords?: number; + records?: (components["schemas"]["BlocklistResource"])[] | null; + }; + /** @enum {string} */ + CertificateValidationType: "enabled" | "disabledForLocalAddresses" | "disabled"; + CollectionMovieResource: { + /** Format: int32 */ + tmdbId?: number; + imdbId?: string | null; + title?: string | null; + cleanTitle?: string | null; + sortTitle?: string | null; + overview?: string | null; + /** Format: int32 */ + runtime?: number; + images?: (components["schemas"]["MediaCover"])[] | null; + /** Format: int32 */ + year?: number; + ratings?: components["schemas"]["Ratings"]; + genres?: (string)[] | null; + folder?: string | null; + }; + CollectionResource: { + /** Format: int32 */ + id?: number; + title?: string | null; + sortTitle?: string | null; + /** Format: int32 */ + tmdbId?: number; + images?: (components["schemas"]["MediaCover"])[] | null; + overview?: string | null; + monitored?: boolean; + rootFolderPath?: string | null; + /** Format: int32 */ + qualityProfileId?: number; + searchOnAdd?: boolean; + minimumAvailability?: components["schemas"]["MovieStatusType"]; + movies?: (components["schemas"]["CollectionMovieResource"])[] | null; + }; + CollectionUpdateResource: { + collectionIds?: (number)[] | null; + monitored?: boolean | null; + monitorMovies?: boolean | null; + /** Format: int32 */ + qualityProfileId?: number | null; + rootFolderPath?: string | null; + minimumAvailability?: components["schemas"]["MovieStatusType"]; + }; + /** @enum {string} */ + ColonReplacementFormat: "delete" | "dash" | "spaceDash" | "spaceDashSpace"; + Command: { + sendUpdatesToClient?: boolean; + updateScheduledTask?: boolean; + completionMessage?: string | null; + requiresDiskAccess?: boolean; + isExclusive?: boolean; + isTypeExclusive?: boolean; + isLongRunning?: boolean; + name?: string | null; + /** Format: date-time */ + lastExecutionTime?: string | null; + /** Format: date-time */ + lastStartTime?: string | null; + trigger?: components["schemas"]["CommandTrigger"]; + suppressMessages?: boolean; + clientUserAgent?: string | null; + }; + /** @enum {string} */ + CommandPriority: "normal" | "high" | "low"; + CommandResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + commandName?: string | null; + message?: string | null; + body?: components["schemas"]["Command"]; + priority?: components["schemas"]["CommandPriority"]; + status?: components["schemas"]["CommandStatus"]; + result?: components["schemas"]["CommandResult"]; + /** Format: date-time */ + queued?: string; + /** Format: date-time */ + started?: string | null; + /** Format: date-time */ + ended?: string | null; + duration?: components["schemas"]["TimeSpan"]; + exception?: string | null; + trigger?: components["schemas"]["CommandTrigger"]; + clientUserAgent?: string | null; + /** Format: date-time */ + stateChangeTime?: string | null; + sendUpdatesToClient?: boolean; + updateScheduledTask?: boolean; + /** Format: date-time */ + lastExecutionTime?: string | null; + }; + /** @enum {string} */ + CommandResult: "unknown" | "successful" | "unsuccessful"; + /** @enum {string} */ + CommandStatus: "queued" | "started" | "completed" | "failed" | "aborted" | "cancelled" | "orphaned"; + /** @enum {string} */ + CommandTrigger: "unspecified" | "manual" | "scheduled"; + CreditResource: { + /** Format: int32 */ + id?: number; + personName?: string | null; + creditTmdbId?: string | null; + /** Format: int32 */ + personTmdbId?: number; + /** Format: int32 */ + movieMetadataId?: number; + images?: (components["schemas"]["MediaCover"])[] | null; + department?: string | null; + job?: string | null; + character?: string | null; + /** Format: int32 */ + order?: number; + type?: components["schemas"]["CreditType"]; + }; + /** @enum {string} */ + CreditType: "cast" | "crew"; + CustomFilterResource: { + /** Format: int32 */ + id?: number; + type?: string | null; + label?: string | null; + filters?: ({ + [key: string]: unknown; + })[] | null; + }; + CustomFormatResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + includeCustomFormatWhenRenaming?: boolean | null; + specifications?: (components["schemas"]["CustomFormatSpecificationSchema"])[] | null; + }; + CustomFormatSpecificationSchema: { + /** Format: int32 */ + id?: number; + name?: string | null; + implementation?: string | null; + implementationName?: string | null; + infoLink?: string | null; + negate?: boolean; + required?: boolean; + fields?: (components["schemas"]["Field"])[] | null; + presets?: (components["schemas"]["CustomFormatSpecificationSchema"])[] | null; + }; + /** @enum {string} */ + DatabaseType: "sqLite" | "postgreSQL"; + DelayProfileResource: { + /** Format: int32 */ + id?: number; + enableUsenet?: boolean; + enableTorrent?: boolean; + preferredProtocol?: components["schemas"]["DownloadProtocol"]; + /** Format: int32 */ + usenetDelay?: number; + /** Format: int32 */ + torrentDelay?: number; + bypassIfHighestQuality?: boolean; + /** Format: int32 */ + order?: number; + tags?: (number)[] | null; + }; + DiskSpaceResource: { + /** Format: int32 */ + id?: number; + path?: string | null; + label?: string | null; + /** Format: int64 */ + freeSpace?: number; + /** Format: int64 */ + totalSpace?: number; + }; + DownloadClientBulkResource: { + ids?: (number)[] | null; + tags?: (number)[] | null; + applyTags?: components["schemas"]["ApplyTags"]; + enable?: boolean | null; + /** Format: int32 */ + priority?: number | null; + removeCompletedDownloads?: boolean | null; + removeFailedDownloads?: boolean | null; + }; + DownloadClientConfigResource: { + /** Format: int32 */ + id?: number; + downloadClientWorkingFolders?: string | null; + enableCompletedDownloadHandling?: boolean; + /** Format: int32 */ + checkForFinishedDownloadInterval?: number; + autoRedownloadFailed?: boolean; + }; + DownloadClientResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + fields?: (components["schemas"]["Field"])[] | null; + implementationName?: string | null; + implementation?: string | null; + configContract?: string | null; + infoLink?: string | null; + message?: components["schemas"]["ProviderMessage"]; + tags?: (number)[] | null; + presets?: (components["schemas"]["DownloadClientResource"])[] | null; + enable?: boolean; + protocol?: components["schemas"]["DownloadProtocol"]; + /** Format: int32 */ + priority?: number; + removeCompletedDownloads?: boolean; + removeFailedDownloads?: boolean; + }; + /** @enum {string} */ + DownloadProtocol: "unknown" | "usenet" | "torrent"; + ExtraFileResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + movieId?: number; + /** Format: int32 */ + movieFileId?: number | null; + relativePath?: string | null; + extension?: string | null; + type?: components["schemas"]["ExtraFileType"]; + }; + /** @enum {string} */ + ExtraFileType: "subtitle" | "metadata" | "other"; + Field: { + /** Format: int32 */ + order?: number; + name?: string | null; + label?: string | null; + unit?: string | null; + helpText?: string | null; + helpLink?: string | null; + value?: Record | null; + type?: string | null; + advanced?: boolean; + selectOptions?: (components["schemas"]["SelectOption"])[] | null; + selectOptionsProviderAction?: string | null; + section?: string | null; + hidden?: string | null; + placeholder?: string | null; + }; + /** @enum {string} */ + FileDateType: "none" | "cinemas" | "release"; + /** @enum {string} */ + HealthCheckResult: "ok" | "notice" | "warning" | "error"; + HealthResource: { + /** Format: int32 */ + id?: number; + source?: string | null; + type?: components["schemas"]["HealthCheckResult"]; + message?: string | null; + wikiUrl?: components["schemas"]["HttpUri"]; + }; + HistoryResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + movieId?: number; + sourceTitle?: string | null; + languages?: (components["schemas"]["Language"])[] | null; + quality?: components["schemas"]["QualityModel"]; + customFormats?: (components["schemas"]["CustomFormatResource"])[] | null; + /** Format: int32 */ + customFormatScore?: number; + qualityCutoffNotMet?: boolean; + /** Format: date-time */ + date?: string; + downloadId?: string | null; + eventType?: components["schemas"]["MovieHistoryEventType"]; + data?: ({ + [key: string]: (string | null) | undefined; + }) | null; + movie?: components["schemas"]["MovieResource"]; + }; + HistoryResourcePagingResource: { + /** Format: int32 */ + page?: number; + /** Format: int32 */ + pageSize?: number; + sortKey?: string | null; + sortDirection?: components["schemas"]["SortDirection"]; + filters?: (components["schemas"]["PagingResourceFilter"])[] | null; + /** Format: int32 */ + totalRecords?: number; + records?: (components["schemas"]["HistoryResource"])[] | null; + }; + HostConfigResource: { + /** Format: int32 */ + id?: number; + bindAddress?: string | null; + /** Format: int32 */ + port?: number; + /** Format: int32 */ + sslPort?: number; + enableSsl?: boolean; + launchBrowser?: boolean; + authenticationMethod?: components["schemas"]["AuthenticationType"]; + analyticsEnabled?: boolean; + username?: string | null; + password?: string | null; + logLevel?: string | null; + consoleLogLevel?: string | null; + branch?: string | null; + apiKey?: string | null; + sslCertPath?: string | null; + sslCertPassword?: string | null; + urlBase?: string | null; + instanceName?: string | null; + applicationUrl?: string | null; + updateAutomatically?: boolean; + updateMechanism?: components["schemas"]["UpdateMechanism"]; + updateScriptPath?: string | null; + proxyEnabled?: boolean; + proxyType?: components["schemas"]["ProxyType"]; + proxyHostname?: string | null; + /** Format: int32 */ + proxyPort?: number; + proxyUsername?: string | null; + proxyPassword?: string | null; + proxyBypassFilter?: string | null; + proxyBypassLocalAddresses?: boolean; + certificateValidation?: components["schemas"]["CertificateValidationType"]; + backupFolder?: string | null; + /** Format: int32 */ + backupInterval?: number; + /** Format: int32 */ + backupRetention?: number; + }; + HttpUri: { + fullUri?: string | null; + scheme?: string | null; + host?: string | null; + /** Format: int32 */ + port?: number | null; + path?: string | null; + query?: string | null; + fragment?: string | null; + }; + ImportExclusionsResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + fields?: (components["schemas"]["Field"])[] | null; + implementationName?: string | null; + implementation?: string | null; + configContract?: string | null; + infoLink?: string | null; + message?: components["schemas"]["ProviderMessage"]; + tags?: (number)[] | null; + presets?: (components["schemas"]["ImportExclusionsResource"])[] | null; + /** Format: int32 */ + tmdbId?: number; + movieTitle?: string | null; + /** Format: int32 */ + movieYear?: number; + }; + ImportListBulkResource: { + ids?: (number)[] | null; + tags?: (number)[] | null; + applyTags?: components["schemas"]["ApplyTags"]; + enableAuto?: boolean | null; + rootFolderPath?: string | null; + /** Format: int32 */ + profileId?: number | null; + }; + ImportListConfigResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + importListSyncInterval?: number; + listSyncLevel?: string | null; + importExclusions?: string | null; + }; + ImportListResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + fields?: (components["schemas"]["Field"])[] | null; + implementationName?: string | null; + implementation?: string | null; + configContract?: string | null; + infoLink?: string | null; + message?: components["schemas"]["ProviderMessage"]; + tags?: (number)[] | null; + presets?: (components["schemas"]["ImportListResource"])[] | null; + enabled?: boolean; + enableAuto?: boolean; + monitor?: components["schemas"]["MonitorTypes"]; + rootFolderPath?: string | null; + /** Format: int32 */ + qualityProfileId?: number; + searchOnAdd?: boolean; + minimumAvailability?: components["schemas"]["MovieStatusType"]; + listType?: components["schemas"]["ImportListType"]; + /** Format: int32 */ + listOrder?: number; + }; + /** @enum {string} */ + ImportListType: "program" | "tmdb" | "trakt" | "plex" | "other" | "advanced"; + IndexerBulkResource: { + ids?: (number)[] | null; + tags?: (number)[] | null; + applyTags?: components["schemas"]["ApplyTags"]; + enableRss?: boolean | null; + enableAutomaticSearch?: boolean | null; + enableInteractiveSearch?: boolean | null; + /** Format: int32 */ + priority?: number | null; + }; + IndexerConfigResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + minimumAge?: number; + /** Format: int32 */ + maximumSize?: number; + /** Format: int32 */ + retention?: number; + /** Format: int32 */ + rssSyncInterval?: number; + preferIndexerFlags?: boolean; + /** Format: int32 */ + availabilityDelay?: number; + allowHardcodedSubs?: boolean; + whitelistedHardcodedSubs?: string | null; + }; + IndexerFlagResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + nameLower?: string | null; + }; + IndexerResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + fields?: (components["schemas"]["Field"])[] | null; + implementationName?: string | null; + implementation?: string | null; + configContract?: string | null; + infoLink?: string | null; + message?: components["schemas"]["ProviderMessage"]; + tags?: (number)[] | null; + presets?: (components["schemas"]["IndexerResource"])[] | null; + enableRss?: boolean; + enableAutomaticSearch?: boolean; + enableInteractiveSearch?: boolean; + supportsRss?: boolean; + supportsSearch?: boolean; + protocol?: components["schemas"]["DownloadProtocol"]; + /** Format: int32 */ + priority?: number; + /** Format: int32 */ + downloadClientId?: number; + }; + Language: { + /** Format: int32 */ + id?: number; + name?: string | null; + }; + LanguageResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + nameLower?: string | null; + }; + LogFileResource: { + /** Format: int32 */ + id?: number; + filename?: string | null; + /** Format: date-time */ + lastWriteTime?: string; + contentsUrl?: string | null; + downloadUrl?: string | null; + }; + LogResource: { + /** Format: int32 */ + id?: number; + /** Format: date-time */ + time?: string; + exception?: string | null; + exceptionType?: string | null; + level?: string | null; + logger?: string | null; + message?: string | null; + method?: string | null; + }; + LogResourcePagingResource: { + /** Format: int32 */ + page?: number; + /** Format: int32 */ + pageSize?: number; + sortKey?: string | null; + sortDirection?: components["schemas"]["SortDirection"]; + filters?: (components["schemas"]["PagingResourceFilter"])[] | null; + /** Format: int32 */ + totalRecords?: number; + records?: (components["schemas"]["LogResource"])[] | null; + }; + ManualImportReprocessResource: { + /** Format: int32 */ + id?: number; + path?: string | null; + /** Format: int32 */ + movieId?: number; + movie?: components["schemas"]["MovieResource"]; + quality?: components["schemas"]["QualityModel"]; + languages?: (components["schemas"]["Language"])[] | null; + releaseGroup?: string | null; + downloadId?: string | null; + rejections?: (components["schemas"]["Rejection"])[] | null; + }; + ManualImportResource: { + /** Format: int32 */ + id?: number; + path?: string | null; + relativePath?: string | null; + folderName?: string | null; + name?: string | null; + /** Format: int64 */ + size?: number; + movie?: components["schemas"]["MovieResource"]; + quality?: components["schemas"]["QualityModel"]; + languages?: (components["schemas"]["Language"])[] | null; + releaseGroup?: string | null; + /** Format: int32 */ + qualityWeight?: number; + downloadId?: string | null; + customFormats?: (components["schemas"]["CustomFormatResource"])[] | null; + rejections?: (components["schemas"]["Rejection"])[] | null; + }; + MediaCover: { + coverType?: components["schemas"]["MediaCoverTypes"]; + url?: string | null; + remoteUrl?: string | null; + }; + /** @enum {string} */ + MediaCoverTypes: "unknown" | "poster" | "banner" | "fanart" | "screenshot" | "headshot" | "clearlogo"; + MediaInfoResource: { + /** Format: int32 */ + id?: number; + /** Format: int64 */ + audioBitrate?: number; + /** Format: double */ + audioChannels?: number; + audioCodec?: string | null; + audioLanguages?: string | null; + /** Format: int32 */ + audioStreamCount?: number; + /** Format: int32 */ + videoBitDepth?: number; + /** Format: int64 */ + videoBitrate?: number; + videoCodec?: string | null; + videoDynamicRangeType?: string | null; + /** Format: double */ + videoFps?: number; + resolution?: string | null; + runTime?: string | null; + scanType?: string | null; + subtitles?: string | null; + }; + MediaManagementConfigResource: { + /** Format: int32 */ + id?: number; + autoUnmonitorPreviouslyDownloadedMovies?: boolean; + recycleBin?: string | null; + /** Format: int32 */ + recycleBinCleanupDays?: number; + downloadPropersAndRepacks?: components["schemas"]["ProperDownloadTypes"]; + createEmptyMovieFolders?: boolean; + deleteEmptyFolders?: boolean; + fileDate?: components["schemas"]["FileDateType"]; + rescanAfterRefresh?: components["schemas"]["RescanAfterRefreshType"]; + autoRenameFolders?: boolean; + pathsDefaultStatic?: boolean; + setPermissionsLinux?: boolean; + chmodFolder?: string | null; + chownGroup?: string | null; + skipFreeSpaceCheckWhenImporting?: boolean; + /** Format: int32 */ + minimumFreeSpaceWhenImporting?: number; + copyUsingHardlinks?: boolean; + useScriptImport?: boolean; + scriptImportPath?: string | null; + importExtraFiles?: boolean; + extraFileExtensions?: string | null; + enableMediaInfo?: boolean; + }; + MetadataBulkResource: { + ids?: (number)[] | null; + tags?: (number)[] | null; + applyTags?: components["schemas"]["ApplyTags"]; + }; + MetadataConfigResource: { + /** Format: int32 */ + id?: number; + certificationCountry?: components["schemas"]["TMDbCountryCode"]; + }; + MetadataResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + fields?: (components["schemas"]["Field"])[] | null; + implementationName?: string | null; + implementation?: string | null; + configContract?: string | null; + infoLink?: string | null; + message?: components["schemas"]["ProviderMessage"]; + tags?: (number)[] | null; + presets?: (components["schemas"]["MetadataResource"])[] | null; + enable?: boolean; + }; + /** @enum {string} */ + Modifier: "none" | "regional" | "screener" | "rawhd" | "brdisk" | "remux"; + /** @enum {string} */ + MonitorTypes: "movieOnly" | "movieAndCollection" | "none"; + MovieCollection: { + /** Format: int32 */ + id?: number; + title?: string | null; + cleanTitle?: string | null; + sortTitle?: string | null; + /** Format: int32 */ + tmdbId?: number; + overview?: string | null; + monitored?: boolean; + /** Format: int32 */ + qualityProfileId?: number; + rootFolderPath?: string | null; + searchOnAdd?: boolean; + minimumAvailability?: components["schemas"]["MovieStatusType"]; + /** Format: date-time */ + lastInfoSync?: string | null; + images?: (components["schemas"]["MediaCover"])[] | null; + /** Format: date-time */ + added?: string; + movies?: (components["schemas"]["MovieMetadata"])[] | null; + }; + MovieEditorResource: { + movieIds?: (number)[] | null; + monitored?: boolean | null; + /** Format: int32 */ + qualityProfileId?: number | null; + minimumAvailability?: components["schemas"]["MovieStatusType"]; + rootFolderPath?: string | null; + tags?: (number)[] | null; + applyTags?: components["schemas"]["ApplyTags"]; + moveFiles?: boolean; + deleteFiles?: boolean; + addImportExclusion?: boolean; + }; + MovieFileListResource: { + movieFileIds?: (number)[] | null; + languages?: (components["schemas"]["Language"])[] | null; + quality?: components["schemas"]["QualityModel"]; + edition?: string | null; + releaseGroup?: string | null; + sceneName?: string | null; + /** Format: int32 */ + indexerFlags?: number | null; + }; + MovieFileResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + movieId?: number; + relativePath?: string | null; + path?: string | null; + /** Format: int64 */ + size?: number; + /** Format: date-time */ + dateAdded?: string; + sceneName?: string | null; + /** Format: int32 */ + indexerFlags?: number; + quality?: components["schemas"]["QualityModel"]; + customFormats?: (components["schemas"]["CustomFormatResource"])[] | null; + mediaInfo?: components["schemas"]["MediaInfoResource"]; + originalFilePath?: string | null; + qualityCutoffNotMet?: boolean; + languages?: (components["schemas"]["Language"])[] | null; + releaseGroup?: string | null; + edition?: string | null; + }; + /** @enum {string} */ + MovieHistoryEventType: "unknown" | "grabbed" | "downloadFolderImported" | "downloadFailed" | "movieFileDeleted" | "movieFolderImported" | "movieFileRenamed" | "downloadIgnored"; + MovieMetadata: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + tmdbId?: number; + images?: (components["schemas"]["MediaCover"])[] | null; + genres?: (string)[] | null; + /** Format: date-time */ + inCinemas?: string | null; + /** Format: date-time */ + physicalRelease?: string | null; + /** Format: date-time */ + digitalRelease?: string | null; + certification?: string | null; + /** Format: int32 */ + year?: number; + ratings?: components["schemas"]["Ratings"]; + /** Format: int32 */ + collectionTmdbId?: number; + collectionTitle?: string | null; + /** Format: date-time */ + lastInfoSync?: string | null; + /** Format: int32 */ + runtime?: number; + website?: string | null; + imdbId?: string | null; + title?: string | null; + cleanTitle?: string | null; + sortTitle?: string | null; + status?: components["schemas"]["MovieStatusType"]; + overview?: string | null; + alternativeTitles?: (components["schemas"]["AlternativeTitle"])[] | null; + translations?: (components["schemas"]["MovieTranslation"])[] | null; + /** Format: int32 */ + secondaryYear?: number | null; + youTubeTrailerId?: string | null; + studio?: string | null; + originalTitle?: string | null; + cleanOriginalTitle?: string | null; + originalLanguage?: components["schemas"]["Language"]; + recommendations?: (number)[] | null; + /** Format: float */ + popularity?: number; + isRecentMovie?: boolean; + }; + MovieResource: { + /** Format: int32 */ + id?: number; + title?: string | null; + originalTitle?: string | null; + originalLanguage?: components["schemas"]["Language"]; + alternateTitles?: (components["schemas"]["AlternativeTitleResource"])[] | null; + /** Format: int32 */ + secondaryYear?: number | null; + /** Format: int32 */ + secondaryYearSourceId?: number; + sortTitle?: string | null; + /** Format: int64 */ + sizeOnDisk?: number | null; + status?: components["schemas"]["MovieStatusType"]; + overview?: string | null; + /** Format: date-time */ + inCinemas?: string | null; + /** Format: date-time */ + physicalRelease?: string | null; + /** Format: date-time */ + digitalRelease?: string | null; + physicalReleaseNote?: string | null; + images?: (components["schemas"]["MediaCover"])[] | null; + website?: string | null; + remotePoster?: string | null; + /** Format: int32 */ + year?: number; + hasFile?: boolean; + youTubeTrailerId?: string | null; + studio?: string | null; + path?: string | null; + /** Format: int32 */ + qualityProfileId?: number; + monitored?: boolean; + minimumAvailability?: components["schemas"]["MovieStatusType"]; + isAvailable?: boolean; + folderName?: string | null; + /** Format: int32 */ + runtime?: number; + cleanTitle?: string | null; + imdbId?: string | null; + /** Format: int32 */ + tmdbId?: number; + titleSlug?: string | null; + rootFolderPath?: string | null; + folder?: string | null; + certification?: string | null; + genres?: (string)[] | null; + tags?: (number)[] | null; + /** Format: date-time */ + added?: string; + addOptions?: components["schemas"]["AddMovieOptions"]; + ratings?: components["schemas"]["Ratings"]; + movieFile?: components["schemas"]["MovieFileResource"]; + collection?: components["schemas"]["MovieCollection"]; + /** Format: float */ + popularity?: number; + }; + /** @enum {string} */ + MovieRuntimeFormatType: "hoursMinutes" | "minutes"; + /** @enum {string} */ + MovieStatusType: "tba" | "announced" | "inCinemas" | "released" | "deleted"; + MovieTranslation: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + movieMetadataId?: number; + title?: string | null; + cleanTitle?: string | null; + overview?: string | null; + language?: components["schemas"]["Language"]; + }; + NamingConfigResource: { + /** Format: int32 */ + id?: number; + renameMovies?: boolean; + replaceIllegalCharacters?: boolean; + colonReplacementFormat?: components["schemas"]["ColonReplacementFormat"]; + standardMovieFormat?: string | null; + movieFolderFormat?: string | null; + includeQuality?: boolean; + replaceSpaces?: boolean; + separator?: string | null; + numberStyle?: string | null; + }; + NotificationBulkResource: { + ids?: (number)[] | null; + tags?: (number)[] | null; + applyTags?: components["schemas"]["ApplyTags"]; + }; + NotificationResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + fields?: (components["schemas"]["Field"])[] | null; + implementationName?: string | null; + implementation?: string | null; + configContract?: string | null; + infoLink?: string | null; + message?: components["schemas"]["ProviderMessage"]; + tags?: (number)[] | null; + presets?: (components["schemas"]["NotificationResource"])[] | null; + link?: string | null; + onGrab?: boolean; + onDownload?: boolean; + onUpgrade?: boolean; + onRename?: boolean; + onMovieAdded?: boolean; + onMovieDelete?: boolean; + onMovieFileDelete?: boolean; + onMovieFileDeleteForUpgrade?: boolean; + onHealthIssue?: boolean; + onHealthRestored?: boolean; + onApplicationUpdate?: boolean; + onManualInteractionRequired?: boolean; + supportsOnGrab?: boolean; + supportsOnDownload?: boolean; + supportsOnUpgrade?: boolean; + supportsOnRename?: boolean; + supportsOnMovieAdded?: boolean; + supportsOnMovieDelete?: boolean; + supportsOnMovieFileDelete?: boolean; + supportsOnMovieFileDeleteForUpgrade?: boolean; + supportsOnHealthIssue?: boolean; + supportsOnHealthRestored?: boolean; + supportsOnApplicationUpdate?: boolean; + supportsOnManualInteractionRequired?: boolean; + includeHealthWarnings?: boolean; + testCommand?: string | null; + }; + PagingResourceFilter: { + key?: string | null; + value?: string | null; + }; + ParseResource: { + /** Format: int32 */ + id?: number; + title?: string | null; + parsedMovieInfo?: components["schemas"]["ParsedMovieInfo"]; + movie?: components["schemas"]["MovieResource"]; + }; + ParsedMovieInfo: { + movieTitles?: (string)[] | null; + originalTitle?: string | null; + releaseTitle?: string | null; + simpleReleaseTitle?: string | null; + quality?: components["schemas"]["QualityModel"]; + languages?: (components["schemas"]["Language"])[] | null; + releaseGroup?: string | null; + releaseHash?: string | null; + edition?: string | null; + /** Format: int32 */ + year?: number; + imdbId?: string | null; + /** Format: int32 */ + tmdbId?: number; + hardcodedSubs?: string | null; + movieTitle?: string | null; + primaryMovieTitle?: string | null; + }; + PingResource: { + status?: string | null; + }; + ProfileFormatItemResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + format?: number; + name?: string | null; + /** Format: int32 */ + score?: number; + }; + /** @enum {string} */ + ProperDownloadTypes: "preferAndUpgrade" | "doNotUpgrade" | "doNotPrefer"; + ProviderMessage: { + message?: string | null; + type?: components["schemas"]["ProviderMessageType"]; + }; + /** @enum {string} */ + ProviderMessageType: "info" | "warning" | "error"; + /** @enum {string} */ + ProxyType: "http" | "socks4" | "socks5"; + Quality: { + /** Format: int32 */ + id?: number; + name?: string | null; + source?: components["schemas"]["Source"]; + /** Format: int32 */ + resolution?: number; + modifier?: components["schemas"]["Modifier"]; + }; + QualityDefinitionResource: { + /** Format: int32 */ + id?: number; + quality?: components["schemas"]["Quality"]; + title?: string | null; + /** Format: int32 */ + weight?: number; + /** Format: double */ + minSize?: number | null; + /** Format: double */ + maxSize?: number | null; + /** Format: double */ + preferredSize?: number | null; + }; + QualityModel: { + quality?: components["schemas"]["Quality"]; + revision?: components["schemas"]["Revision"]; + }; + QualityProfileQualityItemResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + quality?: components["schemas"]["Quality"]; + items?: (components["schemas"]["QualityProfileQualityItemResource"])[] | null; + allowed?: boolean; + }; + QualityProfileResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + upgradeAllowed?: boolean; + /** Format: int32 */ + cutoff?: number; + items?: (components["schemas"]["QualityProfileQualityItemResource"])[] | null; + /** Format: int32 */ + minFormatScore?: number; + /** Format: int32 */ + cutoffFormatScore?: number; + formatItems?: (components["schemas"]["ProfileFormatItemResource"])[] | null; + language?: components["schemas"]["Language"]; + }; + QueueBulkResource: { + ids?: (number)[] | null; + }; + QueueResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + movieId?: number | null; + movie?: components["schemas"]["MovieResource"]; + languages?: (components["schemas"]["Language"])[] | null; + quality?: components["schemas"]["QualityModel"]; + customFormats?: (components["schemas"]["CustomFormatResource"])[] | null; + /** Format: double */ + size?: number; + title?: string | null; + /** Format: double */ + sizeleft?: number; + timeleft?: components["schemas"]["TimeSpan"]; + /** Format: date-time */ + estimatedCompletionTime?: string | null; + status?: string | null; + trackedDownloadStatus?: components["schemas"]["TrackedDownloadStatus"]; + trackedDownloadState?: components["schemas"]["TrackedDownloadState"]; + statusMessages?: (components["schemas"]["TrackedDownloadStatusMessage"])[] | null; + errorMessage?: string | null; + downloadId?: string | null; + protocol?: components["schemas"]["DownloadProtocol"]; + downloadClient?: string | null; + indexer?: string | null; + outputPath?: string | null; + }; + QueueResourcePagingResource: { + /** Format: int32 */ + page?: number; + /** Format: int32 */ + pageSize?: number; + sortKey?: string | null; + sortDirection?: components["schemas"]["SortDirection"]; + filters?: (components["schemas"]["PagingResourceFilter"])[] | null; + /** Format: int32 */ + totalRecords?: number; + records?: (components["schemas"]["QueueResource"])[] | null; + }; + QueueStatusResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + totalCount?: number; + /** Format: int32 */ + count?: number; + /** Format: int32 */ + unknownCount?: number; + errors?: boolean; + warnings?: boolean; + unknownErrors?: boolean; + unknownWarnings?: boolean; + }; + RatingChild: { + /** Format: int32 */ + votes?: number; + /** Format: double */ + value?: number; + type?: components["schemas"]["RatingType"]; + }; + /** @enum {string} */ + RatingType: "user" | "critic"; + Ratings: { + imdb?: components["schemas"]["RatingChild"]; + tmdb?: components["schemas"]["RatingChild"]; + metacritic?: components["schemas"]["RatingChild"]; + rottenTomatoes?: components["schemas"]["RatingChild"]; + }; + Rejection: { + reason?: string | null; + type?: components["schemas"]["RejectionType"]; + }; + /** @enum {string} */ + RejectionType: "permanent" | "temporary"; + ReleaseResource: { + /** Format: int32 */ + id?: number; + guid?: string | null; + quality?: components["schemas"]["QualityModel"]; + customFormats?: (components["schemas"]["CustomFormatResource"])[] | null; + /** Format: int32 */ + customFormatScore?: number; + /** Format: int32 */ + qualityWeight?: number; + /** Format: int32 */ + age?: number; + /** Format: double */ + ageHours?: number; + /** Format: double */ + ageMinutes?: number; + /** Format: int64 */ + size?: number; + /** Format: int32 */ + indexerId?: number; + indexer?: string | null; + releaseGroup?: string | null; + subGroup?: string | null; + releaseHash?: string | null; + title?: string | null; + sceneSource?: boolean; + movieTitles?: (string)[] | null; + languages?: (components["schemas"]["Language"])[] | null; + approved?: boolean; + temporarilyRejected?: boolean; + rejected?: boolean; + /** Format: int32 */ + tmdbId?: number; + /** Format: int32 */ + imdbId?: number; + rejections?: (string)[] | null; + /** Format: date-time */ + publishDate?: string; + commentUrl?: string | null; + downloadUrl?: string | null; + infoUrl?: string | null; + downloadAllowed?: boolean; + /** Format: int32 */ + releaseWeight?: number; + indexerFlags?: (string)[] | null; + edition?: string | null; + magnetUrl?: string | null; + infoHash?: string | null; + /** Format: int32 */ + seeders?: number | null; + /** Format: int32 */ + leechers?: number | null; + protocol?: components["schemas"]["DownloadProtocol"]; + /** Format: int32 */ + movieId?: number | null; + }; + RemotePathMappingResource: { + /** Format: int32 */ + id?: number; + host?: string | null; + remotePath?: string | null; + localPath?: string | null; + }; + RenameMovieResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + movieId?: number; + /** Format: int32 */ + movieFileId?: number; + existingPath?: string | null; + newPath?: string | null; + }; + /** @enum {string} */ + RescanAfterRefreshType: "always" | "afterManual" | "never"; + RestrictionResource: { + /** Format: int32 */ + id?: number; + required?: string | null; + preferred?: string | null; + ignored?: string | null; + tags?: (number)[] | null; + }; + Revision: { + /** Format: int32 */ + version?: number; + /** Format: int32 */ + real?: number; + isRepack?: boolean; + }; + RootFolderResource: { + /** Format: int32 */ + id?: number; + path?: string | null; + accessible?: boolean; + /** Format: int64 */ + freeSpace?: number | null; + unmappedFolders?: (components["schemas"]["UnmappedFolder"])[] | null; + }; + /** @enum {string} */ + RuntimeMode: "console" | "service" | "tray"; + SelectOption: { + /** Format: int32 */ + value?: number; + name?: string | null; + /** Format: int32 */ + order?: number; + hint?: string | null; + dividerAfter?: boolean; + }; + /** @enum {string} */ + SortDirection: "default" | "ascending" | "descending"; + /** @enum {string} */ + Source: "unknown" | "cam" | "telesync" | "telecine" | "workprint" | "dvd" | "tv" | "webdl" | "webrip" | "bluray"; + /** @enum {string} */ + SourceType: "tmdb" | "mappings" | "user" | "indexer"; + SystemResource: { + appName?: string | null; + instanceName?: string | null; + version?: string | null; + /** Format: date-time */ + buildTime?: string; + isDebug?: boolean; + isProduction?: boolean; + isAdmin?: boolean; + isUserInteractive?: boolean; + startupPath?: string | null; + appData?: string | null; + osName?: string | null; + osVersion?: string | null; + isNetCore?: boolean; + isLinux?: boolean; + isOsx?: boolean; + isWindows?: boolean; + isDocker?: boolean; + mode?: components["schemas"]["RuntimeMode"]; + branch?: string | null; + databaseType?: components["schemas"]["DatabaseType"]; + databaseVersion?: components["schemas"]["Version"]; + authentication?: components["schemas"]["AuthenticationType"]; + /** Format: int32 */ + migrationVersion?: number; + urlBase?: string | null; + runtimeVersion?: components["schemas"]["Version"]; + runtimeName?: string | null; + /** Format: date-time */ + startTime?: string; + packageVersion?: string | null; + packageAuthor?: string | null; + packageUpdateMechanism?: components["schemas"]["UpdateMechanism"]; + packageUpdateMechanismMessage?: string | null; + }; + /** @enum {string} */ + TMDbCountryCode: "au" | "br" | "ca" | "fr" | "de" | "gb" | "ie" | "it" | "es" | "us" | "nz"; + TagDetailsResource: { + /** Format: int32 */ + id?: number; + label?: string | null; + delayProfileIds?: (number)[] | null; + notificationIds?: (number)[] | null; + restrictionIds?: (number)[] | null; + importListIds?: (number)[] | null; + movieIds?: (number)[] | null; + indexerIds?: (number)[] | null; + }; + TagResource: { + /** Format: int32 */ + id?: number; + label?: string | null; + }; + TaskResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + taskName?: string | null; + /** Format: int32 */ + interval?: number; + /** Format: date-time */ + lastExecution?: string; + /** Format: date-time */ + lastStartTime?: string; + /** Format: date-time */ + nextExecution?: string; + lastDuration?: components["schemas"]["TimeSpan"]; + }; + TimeSpan: { + /** Format: int64 */ + ticks?: number; + /** Format: int32 */ + days?: number; + /** Format: int32 */ + hours?: number; + /** Format: int32 */ + milliseconds?: number; + /** Format: int32 */ + minutes?: number; + /** Format: int32 */ + seconds?: number; + /** Format: double */ + totalDays?: number; + /** Format: double */ + totalHours?: number; + /** Format: double */ + totalMilliseconds?: number; + /** Format: double */ + totalMinutes?: number; + /** Format: double */ + totalSeconds?: number; + }; + /** @enum {string} */ + TrackedDownloadState: "downloading" | "importPending" | "importing" | "imported" | "failedPending" | "failed" | "ignored"; + /** @enum {string} */ + TrackedDownloadStatus: "ok" | "warning" | "error"; + TrackedDownloadStatusMessage: { + title?: string | null; + messages?: (string)[] | null; + }; + UiConfigResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + firstDayOfWeek?: number; + calendarWeekColumnHeader?: string | null; + movieRuntimeFormat?: components["schemas"]["MovieRuntimeFormatType"]; + shortDateFormat?: string | null; + longDateFormat?: string | null; + timeFormat?: string | null; + showRelativeDates?: boolean; + enableColorImpairedMode?: boolean; + /** Format: int32 */ + movieInfoLanguage?: number; + /** Format: int32 */ + uiLanguage?: number; + theme?: string | null; + }; + UnmappedFolder: { + name?: string | null; + path?: string | null; + }; + UpdateChanges: { + new?: (string)[] | null; + fixed?: (string)[] | null; + }; + /** @enum {string} */ + UpdateMechanism: "builtIn" | "script" | "external" | "apt" | "docker"; + UpdateResource: { + /** Format: int32 */ + id?: number; + version?: components["schemas"]["Version"]; + branch?: string | null; + /** Format: date-time */ + releaseDate?: string; + fileName?: string | null; + url?: string | null; + installed?: boolean; + /** Format: date-time */ + installedOn?: string | null; + installable?: boolean; + latest?: boolean; + changes?: components["schemas"]["UpdateChanges"]; + hash?: string | null; + }; + Version: { + /** Format: int32 */ + major?: number; + /** Format: int32 */ + minor?: number; + /** Format: int32 */ + build?: number; + /** Format: int32 */ + revision?: number; + /** Format: int32 */ + majorRevision?: number; + /** Format: int32 */ + minorRevision?: number; + }; + }; + responses: never; + parameters: never; + requestBodies: never; + headers: never; + pathItems: never; +} + +export type external = Record; + +export type operations = Record; diff --git a/src/lib/servarr-api.ts b/src/lib/servarr-api.ts new file mode 100644 index 0000000..bbc2edd --- /dev/null +++ b/src/lib/servarr-api.ts @@ -0,0 +1,18 @@ +import createClient from 'openapi-fetch'; +import type { paths as radarrPaths } from '$lib/radarr'; +import type { paths as sonarrPaths } from '$lib/sonarr'; +import { PUBLIC_RADARR_API_KEY, PUBLIC_SONARR_API_KEY } from '$env/static/public'; + +export const radarrApi = createClient({ + baseUrl: 'http://radarr.home', + headers: { + 'X-Api-Key': PUBLIC_RADARR_API_KEY + } +}); + +export const sonarrApi = createClient({ + baseUrl: 'http://sonarr.home', + headers: { + 'X-Api-Key': PUBLIC_SONARR_API_KEY + } +}); diff --git a/src/lib/sonarr.d.ts b/src/lib/sonarr.d.ts new file mode 100644 index 0000000..8e82a0b --- /dev/null +++ b/src/lib/sonarr.d.ts @@ -0,0 +1,5087 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + + +export interface paths { + "/api": { + get: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/login": { + get: { + responses: { + /** @description Success */ + 200: never; + }; + }; + post: { + parameters: { + query?: { + returnUrl?: string; + }; + }; + requestBody?: { + content: { + "multipart/form-data": { + Username?: string; + Password?: string; + RememberMe?: string; + }; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/logout": { + get: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/autotagging": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["AutoTaggingResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["AutoTaggingResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["AutoTaggingResource"]; + "application/json": components["schemas"]["AutoTaggingResource"]; + "text/json": components["schemas"]["AutoTaggingResource"]; + }; + }; + }; + }; + }; + "/api/v3/autotagging/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["AutoTaggingResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["AutoTaggingResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["AutoTaggingResource"]; + "application/json": components["schemas"]["AutoTaggingResource"]; + "text/json": components["schemas"]["AutoTaggingResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/autotagging/schema": { + get: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/system/backup": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["BackupResource"])[]; + "application/json": (components["schemas"]["BackupResource"])[]; + "text/json": (components["schemas"]["BackupResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/system/backup/{id}": { + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/system/backup/restore/{id}": { + post: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/system/backup/restore/upload": { + post: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/blocklist": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["BlocklistResourcePagingResource"]; + }; + }; + }; + }; + }; + "/api/v3/blocklist/{id}": { + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/blocklist/bulk": { + delete: { + requestBody?: { + content: { + "application/json": components["schemas"]["BlocklistBulkResource"]; + "text/json": components["schemas"]["BlocklistBulkResource"]; + "application/*+json": components["schemas"]["BlocklistBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/calendar": { + get: { + parameters: { + query?: { + start?: string; + end?: string; + unmonitored?: boolean; + includeSeries?: boolean; + includeEpisodeFile?: boolean; + includeEpisodeImages?: boolean; + tags?: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["EpisodeResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/calendar/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["EpisodeResource"]; + }; + }; + }; + }; + }; + "/feed/v3/calendar/sonarr.ics": { + get: { + parameters: { + query?: { + pastDays?: number; + futureDays?: number; + tags?: string; + unmonitored?: boolean; + premieresOnly?: boolean; + asAllDay?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/command": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["CommandResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["CommandResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["CommandResource"]; + }; + }; + }; + }; + }; + "/api/v3/command/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["CommandResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/customfilter": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["CustomFilterResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["CustomFilterResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["CustomFilterResource"]; + "application/json": components["schemas"]["CustomFilterResource"]; + "text/json": components["schemas"]["CustomFilterResource"]; + }; + }; + }; + }; + }; + "/api/v3/customfilter/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["CustomFilterResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["CustomFilterResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["CustomFilterResource"]; + "application/json": components["schemas"]["CustomFilterResource"]; + "text/json": components["schemas"]["CustomFilterResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/customformat": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["CustomFormatResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["CustomFormatResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["CustomFormatResource"]; + "application/json": components["schemas"]["CustomFormatResource"]; + "text/json": components["schemas"]["CustomFormatResource"]; + }; + }; + }; + }; + }; + "/api/v3/customformat/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["CustomFormatResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["CustomFormatResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["CustomFormatResource"]; + "application/json": components["schemas"]["CustomFormatResource"]; + "text/json": components["schemas"]["CustomFormatResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/customformat/schema": { + get: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/wanted/cutoff": { + get: { + parameters: { + query?: { + includeSeries?: boolean; + includeEpisodeFile?: boolean; + includeImages?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["EpisodeResourcePagingResource"]; + }; + }; + }; + }; + }; + "/api/v3/wanted/cutoff/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["EpisodeResource"]; + }; + }; + }; + }; + }; + "/api/v3/delayprofile": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["DelayProfileResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["DelayProfileResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["DelayProfileResource"]; + "application/json": components["schemas"]["DelayProfileResource"]; + "text/json": components["schemas"]["DelayProfileResource"]; + }; + }; + }; + }; + }; + "/api/v3/delayprofile/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["DelayProfileResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["DelayProfileResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["DelayProfileResource"]; + "application/json": components["schemas"]["DelayProfileResource"]; + "text/json": components["schemas"]["DelayProfileResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/delayprofile/reorder/{id}": { + put: { + parameters: { + query?: { + after?: number; + }; + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["DelayProfileResource"])[]; + "application/json": (components["schemas"]["DelayProfileResource"])[]; + "text/json": (components["schemas"]["DelayProfileResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/diskspace": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["DiskSpaceResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/downloadclient": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["DownloadClientResource"])[]; + }; + }; + }; + }; + post: { + parameters: { + query?: { + forceSave?: boolean; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["DownloadClientResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["DownloadClientResource"]; + "application/json": components["schemas"]["DownloadClientResource"]; + "text/json": components["schemas"]["DownloadClientResource"]; + }; + }; + }; + }; + }; + "/api/v3/downloadclient/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["DownloadClientResource"]; + }; + }; + }; + }; + put: { + parameters: { + query?: { + forceSave?: boolean; + }; + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["DownloadClientResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["DownloadClientResource"]; + "application/json": components["schemas"]["DownloadClientResource"]; + "text/json": components["schemas"]["DownloadClientResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/downloadclient/bulk": { + put: { + requestBody?: { + content: { + "application/json": components["schemas"]["DownloadClientBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["DownloadClientResource"]; + "application/json": components["schemas"]["DownloadClientResource"]; + "text/json": components["schemas"]["DownloadClientResource"]; + }; + }; + }; + }; + delete: { + requestBody?: { + content: { + "application/json": components["schemas"]["DownloadClientBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/downloadclient/schema": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["DownloadClientResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/downloadclient/test": { + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["DownloadClientResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/downloadclient/testall": { + post: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/downloadclient/action/{name}": { + post: { + parameters: { + path: { + name: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["DownloadClientResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/config/downloadclient": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["DownloadClientConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/config/downloadclient/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["DownloadClientConfigResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["DownloadClientConfigResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["DownloadClientConfigResource"]; + "application/json": components["schemas"]["DownloadClientConfigResource"]; + "text/json": components["schemas"]["DownloadClientConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/episode": { + get: { + parameters: { + query?: { + seriesId?: number; + seasonNumber?: number; + episodeIds?: (number)[]; + episodeFileId?: number; + includeImages?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["EpisodeResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/episode/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["EpisodeResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: number; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["EpisodeResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["EpisodeResource"]; + "application/json": components["schemas"]["EpisodeResource"]; + "text/json": components["schemas"]["EpisodeResource"]; + }; + }; + }; + }; + }; + "/api/v3/episode/monitor": { + put: { + parameters: { + query?: { + includeImages?: boolean; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["EpisodesMonitoredResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/episodefile": { + get: { + parameters: { + query?: { + seriesId?: number; + episodeFileIds?: (number)[]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["EpisodeFileResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/episodefile/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["EpisodeFileResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["EpisodeFileResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["EpisodeFileResource"]; + "application/json": components["schemas"]["EpisodeFileResource"]; + "text/json": components["schemas"]["EpisodeFileResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/episodefile/editor": { + put: { + requestBody?: { + content: { + "application/json": components["schemas"]["EpisodeFileListResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/episodefile/bulk": { + put: { + requestBody?: { + content: { + "application/json": (components["schemas"]["EpisodeFileResource"])[]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + delete: { + requestBody?: { + content: { + "application/json": components["schemas"]["EpisodeFileListResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/filesystem": { + get: { + parameters: { + query?: { + path?: string; + includeFiles?: boolean; + allowFoldersWithoutTrailingSlashes?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/filesystem/type": { + get: { + parameters: { + query?: { + path?: string; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/filesystem/mediafiles": { + get: { + parameters: { + query?: { + path?: string; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/health": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["HealthResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/health/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["HealthResource"]; + }; + }; + }; + }; + }; + "/api/v3/history": { + get: { + parameters: { + query?: { + includeSeries?: boolean; + includeEpisode?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["HistoryResourcePagingResource"]; + }; + }; + }; + }; + }; + "/api/v3/history/since": { + get: { + parameters: { + query?: { + date?: string; + eventType?: components["schemas"]["EpisodeHistoryEventType"]; + includeSeries?: boolean; + includeEpisode?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["HistoryResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/history/series": { + get: { + parameters: { + query?: { + seriesId?: number; + seasonNumber?: number; + eventType?: components["schemas"]["EpisodeHistoryEventType"]; + includeSeries?: boolean; + includeEpisode?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["HistoryResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/history/failed/{id}": { + post: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/config/host": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["HostConfigResource"]; + "application/json": components["schemas"]["HostConfigResource"]; + "text/json": components["schemas"]["HostConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/config/host/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["HostConfigResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["HostConfigResource"]; + "text/json": components["schemas"]["HostConfigResource"]; + "application/*+json": components["schemas"]["HostConfigResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["HostConfigResource"]; + "application/json": components["schemas"]["HostConfigResource"]; + "text/json": components["schemas"]["HostConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/importlist": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["ImportListResource"])[]; + }; + }; + }; + }; + post: { + parameters: { + query?: { + forceSave?: boolean; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ImportListResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["ImportListResource"]; + "application/json": components["schemas"]["ImportListResource"]; + "text/json": components["schemas"]["ImportListResource"]; + }; + }; + }; + }; + }; + "/api/v3/importlist/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["ImportListResource"]; + }; + }; + }; + }; + put: { + parameters: { + query?: { + forceSave?: boolean; + }; + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ImportListResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["ImportListResource"]; + "application/json": components["schemas"]["ImportListResource"]; + "text/json": components["schemas"]["ImportListResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/importlist/bulk": { + put: { + requestBody?: { + content: { + "application/json": components["schemas"]["ImportListBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["ImportListResource"]; + "application/json": components["schemas"]["ImportListResource"]; + "text/json": components["schemas"]["ImportListResource"]; + }; + }; + }; + }; + delete: { + requestBody?: { + content: { + "application/json": components["schemas"]["ImportListBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/importlist/schema": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["ImportListResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/importlist/test": { + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["ImportListResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/importlist/testall": { + post: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/importlist/action/{name}": { + post: { + parameters: { + path: { + name: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ImportListResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/importlistexclusion": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["ImportListExclusionResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["ImportListExclusionResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["ImportListExclusionResource"]; + "application/json": components["schemas"]["ImportListExclusionResource"]; + "text/json": components["schemas"]["ImportListExclusionResource"]; + }; + }; + }; + }; + }; + "/api/v3/importlistexclusion/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["ImportListExclusionResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ImportListExclusionResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["ImportListExclusionResource"]; + "application/json": components["schemas"]["ImportListExclusionResource"]; + "text/json": components["schemas"]["ImportListExclusionResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/indexer": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["IndexerResource"])[]; + }; + }; + }; + }; + post: { + parameters: { + query?: { + forceSave?: boolean; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["IndexerResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["IndexerResource"]; + "application/json": components["schemas"]["IndexerResource"]; + "text/json": components["schemas"]["IndexerResource"]; + }; + }; + }; + }; + }; + "/api/v3/indexer/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["IndexerResource"]; + }; + }; + }; + }; + put: { + parameters: { + query?: { + forceSave?: boolean; + }; + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["IndexerResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["IndexerResource"]; + "application/json": components["schemas"]["IndexerResource"]; + "text/json": components["schemas"]["IndexerResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/indexer/bulk": { + put: { + requestBody?: { + content: { + "application/json": components["schemas"]["IndexerBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["IndexerResource"]; + "application/json": components["schemas"]["IndexerResource"]; + "text/json": components["schemas"]["IndexerResource"]; + }; + }; + }; + }; + delete: { + requestBody?: { + content: { + "application/json": components["schemas"]["IndexerBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/indexer/schema": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["IndexerResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/indexer/test": { + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["IndexerResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/indexer/testall": { + post: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/indexer/action/{name}": { + post: { + parameters: { + path: { + name: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["IndexerResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/config/indexer": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["IndexerConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/config/indexer/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["IndexerConfigResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["IndexerConfigResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["IndexerConfigResource"]; + "application/json": components["schemas"]["IndexerConfigResource"]; + "text/json": components["schemas"]["IndexerConfigResource"]; + }; + }; + }; + }; + }; + "/initialize.js": { + get: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/language": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["LanguageResource"])[]; + "application/json": (components["schemas"]["LanguageResource"])[]; + "text/json": (components["schemas"]["LanguageResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/language/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["LanguageResource"]; + }; + }; + }; + }; + }; + "/api/v3/languageprofile": { + /** @deprecated */ + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["LanguageProfileResource"])[]; + }; + }; + }; + }; + /** @deprecated */ + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["LanguageProfileResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["LanguageProfileResource"]; + }; + }; + }; + }; + }; + "/api/v3/languageprofile/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["LanguageProfileResource"]; + }; + }; + }; + }; + /** @deprecated */ + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["LanguageProfileResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["LanguageProfileResource"]; + }; + }; + }; + }; + /** @deprecated */ + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/languageprofile/schema": { + /** @deprecated */ + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["LanguageProfileResource"]; + }; + }; + }; + }; + }; + "/api/v3/languageprofile/schema/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["LanguageProfileResource"]; + }; + }; + }; + }; + }; + "/api/v3/localization": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["LocalizationResource"]; + }; + }; + }; + }; + }; + "/api/v3/localization/language": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["LocalizationLanguageResource"]; + }; + }; + }; + }; + }; + "/api/v3/localization/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["LocalizationResource"]; + }; + }; + }; + }; + }; + "/api/v3/log": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["LogResourcePagingResource"]; + }; + }; + }; + }; + }; + "/api/v3/log/file": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["LogFileResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/log/file/{filename}": { + get: { + parameters: { + path: { + filename: string; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/manualimport": { + get: { + parameters: { + query?: { + folder?: string; + downloadId?: string; + seriesId?: number; + seasonNumber?: number; + filterExistingFiles?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["ManualImportResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": (components["schemas"]["ManualImportReprocessResource"])[]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/mediacover/{seriesId}/{filename}": { + get: { + parameters: { + path: { + seriesId: number; + filename: string; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/config/mediamanagement": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["MediaManagementConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/config/mediamanagement/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["MediaManagementConfigResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["MediaManagementConfigResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["MediaManagementConfigResource"]; + "application/json": components["schemas"]["MediaManagementConfigResource"]; + "text/json": components["schemas"]["MediaManagementConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/metadata": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["MetadataResource"])[]; + }; + }; + }; + }; + post: { + parameters: { + query?: { + forceSave?: boolean; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["MetadataResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["MetadataResource"]; + "application/json": components["schemas"]["MetadataResource"]; + "text/json": components["schemas"]["MetadataResource"]; + }; + }; + }; + }; + }; + "/api/v3/metadata/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["MetadataResource"]; + }; + }; + }; + }; + put: { + parameters: { + query?: { + forceSave?: boolean; + }; + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["MetadataResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["MetadataResource"]; + "application/json": components["schemas"]["MetadataResource"]; + "text/json": components["schemas"]["MetadataResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/metadata/bulk": { + put: { + requestBody?: { + content: { + "application/json": components["schemas"]["MetadataBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["MetadataResource"]; + "application/json": components["schemas"]["MetadataResource"]; + "text/json": components["schemas"]["MetadataResource"]; + }; + }; + }; + }; + delete: { + requestBody?: { + content: { + "application/json": components["schemas"]["MetadataBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/metadata/schema": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["MetadataResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/metadata/test": { + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["MetadataResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/metadata/testall": { + post: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/metadata/action/{name}": { + post: { + parameters: { + path: { + name: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["MetadataResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/wanted/missing": { + get: { + parameters: { + query?: { + includeSeries?: boolean; + includeImages?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["EpisodeResourcePagingResource"]; + }; + }; + }; + }; + }; + "/api/v3/wanted/missing/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["EpisodeResource"]; + }; + }; + }; + }; + }; + "/api/v3/config/naming": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["NamingConfigResource"]; + "application/json": components["schemas"]["NamingConfigResource"]; + "text/json": components["schemas"]["NamingConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/config/naming/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["NamingConfigResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["NamingConfigResource"]; + "text/json": components["schemas"]["NamingConfigResource"]; + "application/*+json": components["schemas"]["NamingConfigResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["NamingConfigResource"]; + "application/json": components["schemas"]["NamingConfigResource"]; + "text/json": components["schemas"]["NamingConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/config/naming/examples": { + get: { + parameters: { + query?: { + RenameEpisodes?: boolean; + ReplaceIllegalCharacters?: boolean; + ColonReplacementFormat?: number; + MultiEpisodeStyle?: number; + StandardEpisodeFormat?: string; + DailyEpisodeFormat?: string; + AnimeEpisodeFormat?: string; + SeriesFolderFormat?: string; + SeasonFolderFormat?: string; + SpecialsFolderFormat?: string; + IncludeSeriesTitle?: boolean; + IncludeEpisodeTitle?: boolean; + IncludeQuality?: boolean; + ReplaceSpaces?: boolean; + Separator?: string; + NumberStyle?: string; + Id?: number; + ResourceName?: string; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/notification": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["NotificationResource"])[]; + }; + }; + }; + }; + post: { + parameters: { + query?: { + forceSave?: boolean; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["NotificationResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["NotificationResource"]; + "application/json": components["schemas"]["NotificationResource"]; + "text/json": components["schemas"]["NotificationResource"]; + }; + }; + }; + }; + }; + "/api/v3/notification/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["NotificationResource"]; + }; + }; + }; + }; + put: { + parameters: { + query?: { + forceSave?: boolean; + }; + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["NotificationResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["NotificationResource"]; + "application/json": components["schemas"]["NotificationResource"]; + "text/json": components["schemas"]["NotificationResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/notification/bulk": { + put: { + requestBody?: { + content: { + "application/json": components["schemas"]["NotificationBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["NotificationResource"]; + "application/json": components["schemas"]["NotificationResource"]; + "text/json": components["schemas"]["NotificationResource"]; + }; + }; + }; + }; + delete: { + requestBody?: { + content: { + "application/json": components["schemas"]["NotificationBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/notification/schema": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["NotificationResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/notification/test": { + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["NotificationResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/notification/testall": { + post: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/notification/action/{name}": { + post: { + parameters: { + path: { + name: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["NotificationResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/parse": { + get: { + parameters: { + query?: { + title?: string; + path?: string; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["ParseResource"]; + }; + }; + }; + }; + }; + "/ping": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["PingResource"]; + }; + }; + }; + }; + }; + "/api/v3/qualitydefinition/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["QualityDefinitionResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["QualityDefinitionResource"]; + "text/json": components["schemas"]["QualityDefinitionResource"]; + "application/*+json": components["schemas"]["QualityDefinitionResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["QualityDefinitionResource"]; + "application/json": components["schemas"]["QualityDefinitionResource"]; + "text/json": components["schemas"]["QualityDefinitionResource"]; + }; + }; + }; + }; + }; + "/api/v3/qualitydefinition": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["QualityDefinitionResource"])[]; + "application/json": (components["schemas"]["QualityDefinitionResource"])[]; + "text/json": (components["schemas"]["QualityDefinitionResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/qualitydefinition/update": { + put: { + requestBody?: { + content: { + "application/json": (components["schemas"]["QualityDefinitionResource"])[]; + "text/json": (components["schemas"]["QualityDefinitionResource"])[]; + "application/*+json": (components["schemas"]["QualityDefinitionResource"])[]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/qualityprofile": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["QualityProfileResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["QualityProfileResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["QualityProfileResource"]; + "application/json": components["schemas"]["QualityProfileResource"]; + "text/json": components["schemas"]["QualityProfileResource"]; + }; + }; + }; + }; + }; + "/api/v3/qualityprofile/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["QualityProfileResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["QualityProfileResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["QualityProfileResource"]; + "application/json": components["schemas"]["QualityProfileResource"]; + "text/json": components["schemas"]["QualityProfileResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/qualityprofile/schema": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["QualityProfileResource"]; + "application/json": components["schemas"]["QualityProfileResource"]; + "text/json": components["schemas"]["QualityProfileResource"]; + }; + }; + }; + }; + }; + "/api/v3/queue/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["QueueResource"]; + }; + }; + }; + }; + delete: { + parameters: { + query?: { + removeFromClient?: boolean; + blocklist?: boolean; + }; + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/queue/bulk": { + delete: { + parameters: { + query?: { + removeFromClient?: boolean; + blocklist?: boolean; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["QueueBulkResource"]; + "text/json": components["schemas"]["QueueBulkResource"]; + "application/*+json": components["schemas"]["QueueBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/queue": { + get: { + parameters: { + query?: { + includeUnknownSeriesItems?: boolean; + includeSeries?: boolean; + includeEpisode?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["QueueResourcePagingResource"]; + }; + }; + }; + }; + }; + "/api/v3/queue/grab/{id}": { + post: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/queue/grab/bulk": { + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["QueueBulkResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/queue/details": { + get: { + parameters: { + query?: { + seriesId?: number; + episodeIds?: (number)[]; + includeSeries?: boolean; + includeEpisode?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["QueueResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/queue/details/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["QueueResource"]; + }; + }; + }; + }; + }; + "/api/v3/queue/status": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["QueueStatusResource"]; + }; + }; + }; + }; + }; + "/api/v3/queue/status/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["QueueStatusResource"]; + }; + }; + }; + }; + }; + "/api/v3/release": { + get: { + parameters: { + query?: { + seriesId?: number; + episodeId?: number; + seasonNumber?: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["ReleaseResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["ReleaseResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/release/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["ReleaseResource"]; + }; + }; + }; + }; + }; + "/api/v3/releaseprofile": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["ReleaseProfileResource"])[]; + "application/json": (components["schemas"]["ReleaseProfileResource"])[]; + "text/json": (components["schemas"]["ReleaseProfileResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["ReleaseProfileResource"]; + "text/json": components["schemas"]["ReleaseProfileResource"]; + "application/*+json": components["schemas"]["ReleaseProfileResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["ReleaseProfileResource"]; + "application/json": components["schemas"]["ReleaseProfileResource"]; + "text/json": components["schemas"]["ReleaseProfileResource"]; + }; + }; + }; + }; + }; + "/api/v3/releaseprofile/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["ReleaseProfileResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["ReleaseProfileResource"]; + "text/json": components["schemas"]["ReleaseProfileResource"]; + "application/*+json": components["schemas"]["ReleaseProfileResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["ReleaseProfileResource"]; + "application/json": components["schemas"]["ReleaseProfileResource"]; + "text/json": components["schemas"]["ReleaseProfileResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/release/push": { + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["ReleaseResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["ReleaseResource"])[]; + "application/json": (components["schemas"]["ReleaseResource"])[]; + "text/json": (components["schemas"]["ReleaseResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/release/push/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["ReleaseResource"]; + }; + }; + }; + }; + }; + "/api/v3/remotepathmapping": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["RemotePathMappingResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["RemotePathMappingResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["RemotePathMappingResource"]; + "application/json": components["schemas"]["RemotePathMappingResource"]; + "text/json": components["schemas"]["RemotePathMappingResource"]; + }; + }; + }; + }; + }; + "/api/v3/remotepathmapping/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["RemotePathMappingResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["RemotePathMappingResource"]; + "text/json": components["schemas"]["RemotePathMappingResource"]; + "application/*+json": components["schemas"]["RemotePathMappingResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["RemotePathMappingResource"]; + "application/json": components["schemas"]["RemotePathMappingResource"]; + "text/json": components["schemas"]["RemotePathMappingResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/rename": { + get: { + parameters: { + query?: { + seriesId?: number; + seasonNumber?: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["RenameEpisodeResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/rootfolder": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["RootFolderResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["RootFolderResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["RootFolderResource"]; + "application/json": components["schemas"]["RootFolderResource"]; + "text/json": components["schemas"]["RootFolderResource"]; + }; + }; + }; + }; + }; + "/api/v3/rootfolder/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["RootFolderResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/seasonpass": { + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["SeasonPassResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/series": { + get: { + parameters: { + query?: { + tvdbId?: number; + includeSeasonImages?: boolean; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["SeriesResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["SeriesResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["SeriesResource"]; + "application/json": components["schemas"]["SeriesResource"]; + "text/json": components["schemas"]["SeriesResource"]; + }; + }; + }; + }; + }; + "/api/v3/series/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["SeriesResource"]; + }; + }; + }; + }; + put: { + parameters: { + query?: { + moveFiles?: boolean; + }; + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["SeriesResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["SeriesResource"]; + "application/json": components["schemas"]["SeriesResource"]; + "text/json": components["schemas"]["SeriesResource"]; + }; + }; + }; + }; + delete: { + parameters: { + query?: { + deleteFiles?: boolean; + addImportListExclusion?: boolean; + }; + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/series/editor": { + put: { + requestBody?: { + content: { + "application/json": components["schemas"]["SeriesEditorResource"]; + "text/json": components["schemas"]["SeriesEditorResource"]; + "application/*+json": components["schemas"]["SeriesEditorResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + delete: { + requestBody?: { + content: { + "application/json": components["schemas"]["SeriesEditorResource"]; + "text/json": components["schemas"]["SeriesEditorResource"]; + "application/*+json": components["schemas"]["SeriesEditorResource"]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/series/import": { + post: { + requestBody?: { + content: { + "application/json": (components["schemas"]["SeriesResource"])[]; + "text/json": (components["schemas"]["SeriesResource"])[]; + "application/*+json": (components["schemas"]["SeriesResource"])[]; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/series/lookup": { + get: { + parameters: { + query?: { + term?: string; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/content/{path}": { + get: { + parameters: { + path: { + path: string; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/": { + get: { + parameters: { + path: { + path: string; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/{path}": { + get: { + parameters: { + path: { + path: string; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/system/status": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["SystemResource"]; + }; + }; + }; + }; + }; + "/api/v3/system/routes": { + get: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/system/routes/duplicate": { + get: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/system/shutdown": { + post: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/system/restart": { + post: { + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/tag": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["TagResource"])[]; + }; + }; + }; + }; + post: { + requestBody?: { + content: { + "application/json": components["schemas"]["TagResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["TagResource"]; + "application/json": components["schemas"]["TagResource"]; + "text/json": components["schemas"]["TagResource"]; + }; + }; + }; + }; + }; + "/api/v3/tag/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["TagResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["TagResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["TagResource"]; + "application/json": components["schemas"]["TagResource"]; + "text/json": components["schemas"]["TagResource"]; + }; + }; + }; + }; + delete: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; + "/api/v3/tag/detail": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["TagDetailsResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/tag/detail/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["TagDetailsResource"]; + }; + }; + }; + }; + }; + "/api/v3/system/task": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": (components["schemas"]["TaskResource"])[]; + "application/json": (components["schemas"]["TaskResource"])[]; + "text/json": (components["schemas"]["TaskResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/system/task/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["TaskResource"]; + }; + }; + }; + }; + }; + "/api/v3/config/ui/{id}": { + get: { + parameters: { + path: { + id: number; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["UiConfigResource"]; + }; + }; + }; + }; + put: { + parameters: { + path: { + id: string; + }; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["UiConfigResource"]; + }; + }; + responses: { + /** @description Success */ + 200: { + content: { + "text/plain": components["schemas"]["UiConfigResource"]; + "application/json": components["schemas"]["UiConfigResource"]; + "text/json": components["schemas"]["UiConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/config/ui": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": components["schemas"]["UiConfigResource"]; + }; + }; + }; + }; + }; + "/api/v3/update": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["UpdateResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/log/file/update": { + get: { + responses: { + /** @description Success */ + 200: { + content: { + "application/json": (components["schemas"]["LogFileResource"])[]; + }; + }; + }; + }; + }; + "/api/v3/log/file/update/{filename}": { + get: { + parameters: { + path: { + filename: string; + }; + }; + responses: { + /** @description Success */ + 200: never; + }; + }; + }; +} + +export type webhooks = Record; + +export interface components { + schemas: { + AddSeriesOptions: { + ignoreEpisodesWithFiles?: boolean; + ignoreEpisodesWithoutFiles?: boolean; + monitor?: components["schemas"]["MonitorTypes"]; + searchForMissingEpisodes?: boolean; + searchForCutoffUnmetEpisodes?: boolean; + }; + AlternateTitleResource: { + title?: string | null; + /** Format: int32 */ + seasonNumber?: number | null; + /** Format: int32 */ + sceneSeasonNumber?: number | null; + sceneOrigin?: string | null; + comment?: string | null; + }; + /** @enum {string} */ + ApplyTags: "add" | "remove" | "replace"; + /** @enum {string} */ + AuthenticationRequiredType: "enabled" | "disabledForLocalAddresses"; + /** @enum {string} */ + AuthenticationType: "none" | "basic" | "forms" | "external"; + AutoTaggingResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + removeTagsAutomatically?: boolean; + tags?: (number)[] | null; + specifications?: (components["schemas"]["AutoTaggingSpecificationSchema"])[] | null; + }; + AutoTaggingSpecificationSchema: { + /** Format: int32 */ + id?: number; + name?: string | null; + implementation?: string | null; + implementationName?: string | null; + negate?: boolean; + required?: boolean; + fields?: (components["schemas"]["Field"])[] | null; + }; + BackupResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + path?: string | null; + type?: components["schemas"]["BackupType"]; + /** Format: int64 */ + size?: number; + /** Format: date-time */ + time?: string; + }; + /** @enum {string} */ + BackupType: "scheduled" | "manual" | "update"; + BlocklistBulkResource: { + ids?: (number)[] | null; + }; + BlocklistResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + seriesId?: number; + episodeIds?: (number)[] | null; + sourceTitle?: string | null; + languages?: (components["schemas"]["Language"])[] | null; + quality?: components["schemas"]["QualityModel"]; + customFormats?: (components["schemas"]["CustomFormatResource"])[] | null; + /** Format: date-time */ + date?: string; + protocol?: components["schemas"]["DownloadProtocol"]; + indexer?: string | null; + message?: string | null; + series?: components["schemas"]["SeriesResource"]; + }; + BlocklistResourcePagingResource: { + /** Format: int32 */ + page?: number; + /** Format: int32 */ + pageSize?: number; + sortKey?: string | null; + sortDirection?: components["schemas"]["SortDirection"]; + filters?: (components["schemas"]["PagingResourceFilter"])[] | null; + /** Format: int32 */ + totalRecords?: number; + records?: (components["schemas"]["BlocklistResource"])[] | null; + }; + /** @enum {string} */ + CertificateValidationType: "enabled" | "disabledForLocalAddresses" | "disabled"; + Command: { + sendUpdatesToClient?: boolean; + updateScheduledTask?: boolean; + completionMessage?: string | null; + requiresDiskAccess?: boolean; + isExclusive?: boolean; + isLongRunning?: boolean; + name?: string | null; + /** Format: date-time */ + lastExecutionTime?: string | null; + /** Format: date-time */ + lastStartTime?: string | null; + trigger?: components["schemas"]["CommandTrigger"]; + suppressMessages?: boolean; + clientUserAgent?: string | null; + }; + /** @enum {string} */ + CommandPriority: "normal" | "high" | "low"; + CommandResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + commandName?: string | null; + message?: string | null; + body?: components["schemas"]["Command"]; + priority?: components["schemas"]["CommandPriority"]; + status?: components["schemas"]["CommandStatus"]; + result?: components["schemas"]["CommandResult"]; + /** Format: date-time */ + queued?: string; + /** Format: date-time */ + started?: string | null; + /** Format: date-time */ + ended?: string | null; + duration?: components["schemas"]["TimeSpan"]; + exception?: string | null; + trigger?: components["schemas"]["CommandTrigger"]; + clientUserAgent?: string | null; + /** Format: date-time */ + stateChangeTime?: string | null; + sendUpdatesToClient?: boolean; + updateScheduledTask?: boolean; + /** Format: date-time */ + lastExecutionTime?: string | null; + }; + /** @enum {string} */ + CommandResult: "unknown" | "successful" | "unsuccessful"; + /** @enum {string} */ + CommandStatus: "queued" | "started" | "completed" | "failed" | "aborted" | "cancelled" | "orphaned"; + /** @enum {string} */ + CommandTrigger: "unspecified" | "manual" | "scheduled"; + CustomFilterResource: { + /** Format: int32 */ + id?: number; + type?: string | null; + label?: string | null; + filters?: ({ + [key: string]: unknown; + })[] | null; + }; + CustomFormatResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + includeCustomFormatWhenRenaming?: boolean | null; + specifications?: (components["schemas"]["CustomFormatSpecificationSchema"])[] | null; + }; + CustomFormatSpecificationSchema: { + /** Format: int32 */ + id?: number; + name?: string | null; + implementation?: string | null; + implementationName?: string | null; + infoLink?: string | null; + negate?: boolean; + required?: boolean; + fields?: (components["schemas"]["Field"])[] | null; + presets?: (components["schemas"]["CustomFormatSpecificationSchema"])[] | null; + }; + DelayProfileResource: { + /** Format: int32 */ + id?: number; + enableUsenet?: boolean; + enableTorrent?: boolean; + preferredProtocol?: components["schemas"]["DownloadProtocol"]; + /** Format: int32 */ + usenetDelay?: number; + /** Format: int32 */ + torrentDelay?: number; + bypassIfHighestQuality?: boolean; + bypassIfAboveCustomFormatScore?: boolean; + /** Format: int32 */ + minimumCustomFormatScore?: number; + /** Format: int32 */ + order?: number; + tags?: (number)[] | null; + }; + DiskSpaceResource: { + /** Format: int32 */ + id?: number; + path?: string | null; + label?: string | null; + /** Format: int64 */ + freeSpace?: number; + /** Format: int64 */ + totalSpace?: number; + }; + DownloadClientBulkResource: { + ids?: (number)[] | null; + tags?: (number)[] | null; + applyTags?: components["schemas"]["ApplyTags"]; + enable?: boolean | null; + /** Format: int32 */ + priority?: number | null; + removeCompletedDownloads?: boolean | null; + removeFailedDownloads?: boolean | null; + }; + DownloadClientConfigResource: { + /** Format: int32 */ + id?: number; + downloadClientWorkingFolders?: string | null; + enableCompletedDownloadHandling?: boolean; + autoRedownloadFailed?: boolean; + }; + DownloadClientResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + fields?: (components["schemas"]["Field"])[] | null; + implementationName?: string | null; + implementation?: string | null; + configContract?: string | null; + infoLink?: string | null; + message?: components["schemas"]["ProviderMessage"]; + tags?: (number)[] | null; + presets?: (components["schemas"]["DownloadClientResource"])[] | null; + enable?: boolean; + protocol?: components["schemas"]["DownloadProtocol"]; + /** Format: int32 */ + priority?: number; + removeCompletedDownloads?: boolean; + removeFailedDownloads?: boolean; + }; + /** @enum {string} */ + DownloadProtocol: "unknown" | "usenet" | "torrent"; + EpisodeFileListResource: { + episodeFileIds?: (number)[] | null; + languages?: (components["schemas"]["Language"])[] | null; + quality?: components["schemas"]["QualityModel"]; + sceneName?: string | null; + releaseGroup?: string | null; + }; + EpisodeFileResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + seriesId?: number; + /** Format: int32 */ + seasonNumber?: number; + relativePath?: string | null; + path?: string | null; + /** Format: int64 */ + size?: number; + /** Format: date-time */ + dateAdded?: string; + sceneName?: string | null; + releaseGroup?: string | null; + languages?: (components["schemas"]["Language"])[] | null; + quality?: components["schemas"]["QualityModel"]; + customFormats?: (components["schemas"]["CustomFormatResource"])[] | null; + mediaInfo?: components["schemas"]["MediaInfoResource"]; + qualityCutoffNotMet?: boolean; + }; + /** @enum {string} */ + EpisodeHistoryEventType: "unknown" | "grabbed" | "seriesFolderImported" | "downloadFolderImported" | "downloadFailed" | "episodeFileDeleted" | "episodeFileRenamed" | "downloadIgnored"; + EpisodeResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + seriesId?: number; + /** Format: int32 */ + tvdbId?: number; + /** Format: int32 */ + episodeFileId?: number; + /** Format: int32 */ + seasonNumber?: number; + /** Format: int32 */ + episodeNumber?: number; + title?: string | null; + airDate?: string | null; + /** Format: date-time */ + airDateUtc?: string | null; + /** Format: int32 */ + runtime?: number; + overview?: string | null; + episodeFile?: components["schemas"]["EpisodeFileResource"]; + hasFile?: boolean; + monitored?: boolean; + /** Format: int32 */ + absoluteEpisodeNumber?: number | null; + /** Format: int32 */ + sceneAbsoluteEpisodeNumber?: number | null; + /** Format: int32 */ + sceneEpisodeNumber?: number | null; + /** Format: int32 */ + sceneSeasonNumber?: number | null; + unverifiedSceneNumbering?: boolean; + /** Format: date-time */ + endTime?: string | null; + /** Format: date-time */ + grabDate?: string | null; + seriesTitle?: string | null; + series?: components["schemas"]["SeriesResource"]; + images?: (components["schemas"]["MediaCover"])[] | null; + grabbed?: boolean; + }; + EpisodeResourcePagingResource: { + /** Format: int32 */ + page?: number; + /** Format: int32 */ + pageSize?: number; + sortKey?: string | null; + sortDirection?: components["schemas"]["SortDirection"]; + filters?: (components["schemas"]["PagingResourceFilter"])[] | null; + /** Format: int32 */ + totalRecords?: number; + records?: (components["schemas"]["EpisodeResource"])[] | null; + }; + /** @enum {string} */ + EpisodeTitleRequiredType: "always" | "bulkSeasonReleases" | "never"; + EpisodesMonitoredResource: { + episodeIds?: (number)[] | null; + monitored?: boolean; + }; + Field: { + /** Format: int32 */ + order?: number; + name?: string | null; + label?: string | null; + unit?: string | null; + helpText?: string | null; + helpLink?: string | null; + value?: Record | null; + type?: string | null; + advanced?: boolean; + selectOptions?: (components["schemas"]["SelectOption"])[] | null; + selectOptionsProviderAction?: string | null; + section?: string | null; + hidden?: string | null; + privacy?: components["schemas"]["PrivacyLevel"]; + placeholder?: string | null; + }; + /** @enum {string} */ + FileDateType: "none" | "localAirDate" | "utcAirDate"; + /** @enum {string} */ + HealthCheckResult: "ok" | "notice" | "warning" | "error"; + HealthResource: { + /** Format: int32 */ + id?: number; + source?: string | null; + type?: components["schemas"]["HealthCheckResult"]; + message?: string | null; + wikiUrl?: components["schemas"]["HttpUri"]; + }; + HistoryResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + episodeId?: number; + /** Format: int32 */ + seriesId?: number; + sourceTitle?: string | null; + languages?: (components["schemas"]["Language"])[] | null; + quality?: components["schemas"]["QualityModel"]; + customFormats?: (components["schemas"]["CustomFormatResource"])[] | null; + /** Format: int32 */ + customFormatScore?: number; + qualityCutoffNotMet?: boolean; + /** Format: date-time */ + date?: string; + downloadId?: string | null; + eventType?: components["schemas"]["EpisodeHistoryEventType"]; + data?: ({ + [key: string]: (string | null) | undefined; + }) | null; + episode?: components["schemas"]["EpisodeResource"]; + series?: components["schemas"]["SeriesResource"]; + }; + HistoryResourcePagingResource: { + /** Format: int32 */ + page?: number; + /** Format: int32 */ + pageSize?: number; + sortKey?: string | null; + sortDirection?: components["schemas"]["SortDirection"]; + filters?: (components["schemas"]["PagingResourceFilter"])[] | null; + /** Format: int32 */ + totalRecords?: number; + records?: (components["schemas"]["HistoryResource"])[] | null; + }; + HostConfigResource: { + /** Format: int32 */ + id?: number; + bindAddress?: string | null; + /** Format: int32 */ + port?: number; + /** Format: int32 */ + sslPort?: number; + enableSsl?: boolean; + launchBrowser?: boolean; + authenticationMethod?: components["schemas"]["AuthenticationType"]; + authenticationRequired?: components["schemas"]["AuthenticationRequiredType"]; + analyticsEnabled?: boolean; + username?: string | null; + password?: string | null; + logLevel?: string | null; + consoleLogLevel?: string | null; + branch?: string | null; + apiKey?: string | null; + sslCertPath?: string | null; + sslCertPassword?: string | null; + urlBase?: string | null; + instanceName?: string | null; + applicationUrl?: string | null; + updateAutomatically?: boolean; + updateMechanism?: components["schemas"]["UpdateMechanism"]; + updateScriptPath?: string | null; + proxyEnabled?: boolean; + proxyType?: components["schemas"]["ProxyType"]; + proxyHostname?: string | null; + /** Format: int32 */ + proxyPort?: number; + proxyUsername?: string | null; + proxyPassword?: string | null; + proxyBypassFilter?: string | null; + proxyBypassLocalAddresses?: boolean; + certificateValidation?: components["schemas"]["CertificateValidationType"]; + backupFolder?: string | null; + /** Format: int32 */ + backupInterval?: number; + /** Format: int32 */ + backupRetention?: number; + }; + HttpUri: { + fullUri?: string | null; + scheme?: string | null; + host?: string | null; + /** Format: int32 */ + port?: number | null; + path?: string | null; + query?: string | null; + fragment?: string | null; + }; + ImportListBulkResource: { + ids?: (number)[] | null; + tags?: (number)[] | null; + applyTags?: components["schemas"]["ApplyTags"]; + enableAutomaticAdd?: boolean | null; + rootFolderPath?: string | null; + /** Format: int32 */ + qualityProfileId?: number | null; + }; + ImportListExclusionResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + tvdbId?: number; + title?: string | null; + }; + ImportListResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + fields?: (components["schemas"]["Field"])[] | null; + implementationName?: string | null; + implementation?: string | null; + configContract?: string | null; + infoLink?: string | null; + message?: components["schemas"]["ProviderMessage"]; + tags?: (number)[] | null; + presets?: (components["schemas"]["ImportListResource"])[] | null; + enableAutomaticAdd?: boolean; + shouldMonitor?: components["schemas"]["MonitorTypes"]; + rootFolderPath?: string | null; + /** Format: int32 */ + qualityProfileId?: number; + seriesType?: components["schemas"]["SeriesTypes"]; + seasonFolder?: boolean; + listType?: components["schemas"]["ImportListType"]; + /** Format: int32 */ + listOrder?: number; + minRefreshInterval?: components["schemas"]["TimeSpan"]; + }; + /** @enum {string} */ + ImportListType: "program" | "plex" | "trakt" | "simkl" | "other" | "advanced"; + IndexerBulkResource: { + ids?: (number)[] | null; + tags?: (number)[] | null; + applyTags?: components["schemas"]["ApplyTags"]; + enableRss?: boolean | null; + enableAutomaticSearch?: boolean | null; + enableInteractiveSearch?: boolean | null; + /** Format: int32 */ + priority?: number | null; + }; + IndexerConfigResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + minimumAge?: number; + /** Format: int32 */ + retention?: number; + /** Format: int32 */ + maximumSize?: number; + /** Format: int32 */ + rssSyncInterval?: number; + }; + IndexerResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + fields?: (components["schemas"]["Field"])[] | null; + implementationName?: string | null; + implementation?: string | null; + configContract?: string | null; + infoLink?: string | null; + message?: components["schemas"]["ProviderMessage"]; + tags?: (number)[] | null; + presets?: (components["schemas"]["IndexerResource"])[] | null; + enableRss?: boolean; + enableAutomaticSearch?: boolean; + enableInteractiveSearch?: boolean; + supportsRss?: boolean; + supportsSearch?: boolean; + protocol?: components["schemas"]["DownloadProtocol"]; + /** Format: int32 */ + priority?: number; + /** Format: int32 */ + seasonSearchMaximumSingleEpisodeAge?: number; + /** Format: int32 */ + downloadClientId?: number; + }; + Language: { + /** Format: int32 */ + id?: number; + name?: string | null; + }; + LanguageProfileItemResource: { + /** Format: int32 */ + id?: number; + language?: components["schemas"]["Language"]; + allowed?: boolean; + }; + LanguageProfileResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + upgradeAllowed?: boolean; + cutoff?: components["schemas"]["Language"]; + languages?: (components["schemas"]["LanguageProfileItemResource"])[] | null; + }; + LanguageResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + nameLower?: string | null; + }; + LocalizationLanguageResource: { + identifier?: string | null; + }; + LocalizationResource: { + /** Format: int32 */ + id?: number; + strings?: ({ + [key: string]: (string | null) | undefined; + }) | null; + }; + LogFileResource: { + /** Format: int32 */ + id?: number; + filename?: string | null; + /** Format: date-time */ + lastWriteTime?: string; + contentsUrl?: string | null; + downloadUrl?: string | null; + }; + LogResource: { + /** Format: int32 */ + id?: number; + /** Format: date-time */ + time?: string; + exception?: string | null; + exceptionType?: string | null; + level?: string | null; + logger?: string | null; + message?: string | null; + method?: string | null; + }; + LogResourcePagingResource: { + /** Format: int32 */ + page?: number; + /** Format: int32 */ + pageSize?: number; + sortKey?: string | null; + sortDirection?: components["schemas"]["SortDirection"]; + filters?: (components["schemas"]["PagingResourceFilter"])[] | null; + /** Format: int32 */ + totalRecords?: number; + records?: (components["schemas"]["LogResource"])[] | null; + }; + ManualImportReprocessResource: { + /** Format: int32 */ + id?: number; + path?: string | null; + /** Format: int32 */ + seriesId?: number; + /** Format: int32 */ + seasonNumber?: number | null; + episodes?: (components["schemas"]["EpisodeResource"])[] | null; + episodeIds?: (number)[] | null; + quality?: components["schemas"]["QualityModel"]; + languages?: (components["schemas"]["Language"])[] | null; + releaseGroup?: string | null; + downloadId?: string | null; + rejections?: (components["schemas"]["Rejection"])[] | null; + }; + ManualImportResource: { + /** Format: int32 */ + id?: number; + path?: string | null; + relativePath?: string | null; + folderName?: string | null; + name?: string | null; + /** Format: int64 */ + size?: number; + series?: components["schemas"]["SeriesResource"]; + /** Format: int32 */ + seasonNumber?: number | null; + episodes?: (components["schemas"]["EpisodeResource"])[] | null; + /** Format: int32 */ + episodeFileId?: number | null; + releaseGroup?: string | null; + quality?: components["schemas"]["QualityModel"]; + languages?: (components["schemas"]["Language"])[] | null; + /** Format: int32 */ + qualityWeight?: number; + downloadId?: string | null; + customFormats?: (components["schemas"]["CustomFormatResource"])[] | null; + rejections?: (components["schemas"]["Rejection"])[] | null; + }; + MediaCover: { + coverType?: components["schemas"]["MediaCoverTypes"]; + url?: string | null; + remoteUrl?: string | null; + }; + /** @enum {string} */ + MediaCoverTypes: "unknown" | "poster" | "banner" | "fanart" | "screenshot" | "headshot" | "clearlogo"; + MediaInfoResource: { + /** Format: int32 */ + id?: number; + /** Format: int64 */ + audioBitrate?: number; + /** Format: double */ + audioChannels?: number; + audioCodec?: string | null; + audioLanguages?: string | null; + /** Format: int32 */ + audioStreamCount?: number; + /** Format: int32 */ + videoBitDepth?: number; + /** Format: int64 */ + videoBitrate?: number; + videoCodec?: string | null; + /** Format: double */ + videoFps?: number; + videoDynamicRange?: string | null; + videoDynamicRangeType?: string | null; + resolution?: string | null; + runTime?: string | null; + scanType?: string | null; + subtitles?: string | null; + }; + MediaManagementConfigResource: { + /** Format: int32 */ + id?: number; + autoUnmonitorPreviouslyDownloadedEpisodes?: boolean; + recycleBin?: string | null; + /** Format: int32 */ + recycleBinCleanupDays?: number; + downloadPropersAndRepacks?: components["schemas"]["ProperDownloadTypes"]; + createEmptySeriesFolders?: boolean; + deleteEmptyFolders?: boolean; + fileDate?: components["schemas"]["FileDateType"]; + rescanAfterRefresh?: components["schemas"]["RescanAfterRefreshType"]; + setPermissionsLinux?: boolean; + chmodFolder?: string | null; + chownGroup?: string | null; + episodeTitleRequired?: components["schemas"]["EpisodeTitleRequiredType"]; + skipFreeSpaceCheckWhenImporting?: boolean; + /** Format: int32 */ + minimumFreeSpaceWhenImporting?: number; + copyUsingHardlinks?: boolean; + useScriptImport?: boolean; + scriptImportPath?: string | null; + importExtraFiles?: boolean; + extraFileExtensions?: string | null; + enableMediaInfo?: boolean; + }; + MetadataBulkResource: { + ids?: (number)[] | null; + tags?: (number)[] | null; + applyTags?: components["schemas"]["ApplyTags"]; + }; + MetadataResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + fields?: (components["schemas"]["Field"])[] | null; + implementationName?: string | null; + implementation?: string | null; + configContract?: string | null; + infoLink?: string | null; + message?: components["schemas"]["ProviderMessage"]; + tags?: (number)[] | null; + presets?: (components["schemas"]["MetadataResource"])[] | null; + enable?: boolean; + }; + /** @enum {string} */ + MonitorTypes: "unknown" | "all" | "future" | "missing" | "existing" | "firstSeason" | "latestSeason" | "pilot" | "monitorSpecials" | "unmonitorSpecials" | "none"; + MonitoringOptions: { + ignoreEpisodesWithFiles?: boolean; + ignoreEpisodesWithoutFiles?: boolean; + monitor?: components["schemas"]["MonitorTypes"]; + }; + NamingConfigResource: { + /** Format: int32 */ + id?: number; + renameEpisodes?: boolean; + replaceIllegalCharacters?: boolean; + /** Format: int32 */ + colonReplacementFormat?: number; + /** Format: int32 */ + multiEpisodeStyle?: number; + standardEpisodeFormat?: string | null; + dailyEpisodeFormat?: string | null; + animeEpisodeFormat?: string | null; + seriesFolderFormat?: string | null; + seasonFolderFormat?: string | null; + specialsFolderFormat?: string | null; + includeSeriesTitle?: boolean; + includeEpisodeTitle?: boolean; + includeQuality?: boolean; + replaceSpaces?: boolean; + separator?: string | null; + numberStyle?: string | null; + }; + NotificationBulkResource: { + ids?: (number)[] | null; + tags?: (number)[] | null; + applyTags?: components["schemas"]["ApplyTags"]; + }; + NotificationResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + fields?: (components["schemas"]["Field"])[] | null; + implementationName?: string | null; + implementation?: string | null; + configContract?: string | null; + infoLink?: string | null; + message?: components["schemas"]["ProviderMessage"]; + tags?: (number)[] | null; + presets?: (components["schemas"]["NotificationResource"])[] | null; + link?: string | null; + onGrab?: boolean; + onDownload?: boolean; + onUpgrade?: boolean; + onRename?: boolean; + onSeriesAdd?: boolean; + onSeriesDelete?: boolean; + onEpisodeFileDelete?: boolean; + onEpisodeFileDeleteForUpgrade?: boolean; + onHealthIssue?: boolean; + onHealthRestored?: boolean; + onApplicationUpdate?: boolean; + onManualInteractionRequired?: boolean; + supportsOnGrab?: boolean; + supportsOnDownload?: boolean; + supportsOnUpgrade?: boolean; + supportsOnRename?: boolean; + supportsOnSeriesAdd?: boolean; + supportsOnSeriesDelete?: boolean; + supportsOnEpisodeFileDelete?: boolean; + supportsOnEpisodeFileDeleteForUpgrade?: boolean; + supportsOnHealthIssue?: boolean; + supportsOnHealthRestored?: boolean; + supportsOnApplicationUpdate?: boolean; + supportsOnManualInteractionRequired?: boolean; + includeHealthWarnings?: boolean; + testCommand?: string | null; + }; + PagingResourceFilter: { + key?: string | null; + value?: string | null; + }; + ParseResource: { + /** Format: int32 */ + id?: number; + title?: string | null; + parsedEpisodeInfo?: components["schemas"]["ParsedEpisodeInfo"]; + series?: components["schemas"]["SeriesResource"]; + episodes?: (components["schemas"]["EpisodeResource"])[] | null; + }; + ParsedEpisodeInfo: { + releaseTitle?: string | null; + seriesTitle?: string | null; + seriesTitleInfo?: components["schemas"]["SeriesTitleInfo"]; + quality?: components["schemas"]["QualityModel"]; + /** Format: int32 */ + seasonNumber?: number; + episodeNumbers?: (number)[] | null; + absoluteEpisodeNumbers?: (number)[] | null; + specialAbsoluteEpisodeNumbers?: (number)[] | null; + airDate?: string | null; + languages?: (components["schemas"]["Language"])[] | null; + fullSeason?: boolean; + isPartialSeason?: boolean; + isMultiSeason?: boolean; + isSeasonExtra?: boolean; + special?: boolean; + releaseGroup?: string | null; + releaseHash?: string | null; + /** Format: int32 */ + seasonPart?: number; + releaseTokens?: string | null; + /** Format: int32 */ + dailyPart?: number | null; + isDaily?: boolean; + isAbsoluteNumbering?: boolean; + isPossibleSpecialEpisode?: boolean; + isPossibleSceneSeasonSpecial?: boolean; + }; + PingResource: { + status?: string | null; + }; + /** @enum {string} */ + PrivacyLevel: "normal" | "password" | "apiKey" | "userName"; + ProfileFormatItemResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + format?: number; + name?: string | null; + /** Format: int32 */ + score?: number; + }; + /** @enum {string} */ + ProperDownloadTypes: "preferAndUpgrade" | "doNotUpgrade" | "doNotPrefer"; + ProviderMessage: { + message?: string | null; + type?: components["schemas"]["ProviderMessageType"]; + }; + /** @enum {string} */ + ProviderMessageType: "info" | "warning" | "error"; + /** @enum {string} */ + ProxyType: "http" | "socks4" | "socks5"; + Quality: { + /** Format: int32 */ + id?: number; + name?: string | null; + source?: components["schemas"]["QualitySource"]; + /** Format: int32 */ + resolution?: number; + }; + QualityDefinitionResource: { + /** Format: int32 */ + id?: number; + quality?: components["schemas"]["Quality"]; + title?: string | null; + /** Format: int32 */ + weight?: number; + /** Format: double */ + minSize?: number | null; + /** Format: double */ + maxSize?: number | null; + /** Format: double */ + preferredSize?: number | null; + }; + QualityModel: { + quality?: components["schemas"]["Quality"]; + revision?: components["schemas"]["Revision"]; + }; + QualityProfileQualityItemResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + quality?: components["schemas"]["Quality"]; + items?: (components["schemas"]["QualityProfileQualityItemResource"])[] | null; + allowed?: boolean; + }; + QualityProfileResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + upgradeAllowed?: boolean; + /** Format: int32 */ + cutoff?: number; + items?: (components["schemas"]["QualityProfileQualityItemResource"])[] | null; + /** Format: int32 */ + minFormatScore?: number; + /** Format: int32 */ + cutoffFormatScore?: number; + formatItems?: (components["schemas"]["ProfileFormatItemResource"])[] | null; + }; + /** @enum {string} */ + QualitySource: "unknown" | "television" | "televisionRaw" | "web" | "webRip" | "dvd" | "bluray" | "blurayRaw"; + QueueBulkResource: { + ids?: (number)[] | null; + }; + QueueResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + seriesId?: number | null; + /** Format: int32 */ + episodeId?: number | null; + /** Format: int32 */ + seasonNumber?: number | null; + series?: components["schemas"]["SeriesResource"]; + episode?: components["schemas"]["EpisodeResource"]; + languages?: (components["schemas"]["Language"])[] | null; + quality?: components["schemas"]["QualityModel"]; + customFormats?: (components["schemas"]["CustomFormatResource"])[] | null; + /** Format: double */ + size?: number; + title?: string | null; + /** Format: double */ + sizeleft?: number; + timeleft?: components["schemas"]["TimeSpan"]; + /** Format: date-time */ + estimatedCompletionTime?: string | null; + status?: string | null; + trackedDownloadStatus?: components["schemas"]["TrackedDownloadStatus"]; + trackedDownloadState?: components["schemas"]["TrackedDownloadState"]; + statusMessages?: (components["schemas"]["TrackedDownloadStatusMessage"])[] | null; + errorMessage?: string | null; + downloadId?: string | null; + protocol?: components["schemas"]["DownloadProtocol"]; + downloadClient?: string | null; + indexer?: string | null; + outputPath?: string | null; + episodeHasFile?: boolean; + }; + QueueResourcePagingResource: { + /** Format: int32 */ + page?: number; + /** Format: int32 */ + pageSize?: number; + sortKey?: string | null; + sortDirection?: components["schemas"]["SortDirection"]; + filters?: (components["schemas"]["PagingResourceFilter"])[] | null; + /** Format: int32 */ + totalRecords?: number; + records?: (components["schemas"]["QueueResource"])[] | null; + }; + QueueStatusResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + totalCount?: number; + /** Format: int32 */ + count?: number; + /** Format: int32 */ + unknownCount?: number; + errors?: boolean; + warnings?: boolean; + unknownErrors?: boolean; + unknownWarnings?: boolean; + }; + Ratings: { + /** Format: int32 */ + votes?: number; + /** Format: double */ + value?: number; + }; + Rejection: { + reason?: string | null; + type?: components["schemas"]["RejectionType"]; + }; + /** @enum {string} */ + RejectionType: "permanent" | "temporary"; + ReleaseEpisodeResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + seasonNumber?: number; + /** Format: int32 */ + episodeNumber?: number; + /** Format: int32 */ + absoluteEpisodeNumber?: number | null; + title?: string | null; + }; + ReleaseProfileResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + enabled?: boolean; + required?: Record | null; + ignored?: Record | null; + /** Format: int32 */ + indexerId?: number; + tags?: (number)[] | null; + }; + ReleaseResource: { + /** Format: int32 */ + id?: number; + guid?: string | null; + quality?: components["schemas"]["QualityModel"]; + /** Format: int32 */ + qualityWeight?: number; + /** Format: int32 */ + age?: number; + /** Format: double */ + ageHours?: number; + /** Format: double */ + ageMinutes?: number; + /** Format: int64 */ + size?: number; + /** Format: int32 */ + indexerId?: number; + indexer?: string | null; + releaseGroup?: string | null; + subGroup?: string | null; + releaseHash?: string | null; + title?: string | null; + fullSeason?: boolean; + sceneSource?: boolean; + /** Format: int32 */ + seasonNumber?: number; + languages?: (components["schemas"]["Language"])[] | null; + /** Format: int32 */ + languageWeight?: number; + airDate?: string | null; + seriesTitle?: string | null; + episodeNumbers?: (number)[] | null; + absoluteEpisodeNumbers?: (number)[] | null; + /** Format: int32 */ + mappedSeasonNumber?: number | null; + mappedEpisodeNumbers?: (number)[] | null; + mappedAbsoluteEpisodeNumbers?: (number)[] | null; + /** Format: int32 */ + mappedSeriesId?: number | null; + mappedEpisodeInfo?: (components["schemas"]["ReleaseEpisodeResource"])[] | null; + approved?: boolean; + temporarilyRejected?: boolean; + rejected?: boolean; + /** Format: int32 */ + tvdbId?: number; + /** Format: int32 */ + tvRageId?: number; + rejections?: (string)[] | null; + /** Format: date-time */ + publishDate?: string; + commentUrl?: string | null; + downloadUrl?: string | null; + infoUrl?: string | null; + episodeRequested?: boolean; + downloadAllowed?: boolean; + /** Format: int32 */ + releaseWeight?: number; + customFormats?: (components["schemas"]["CustomFormatResource"])[] | null; + /** Format: int32 */ + customFormatScore?: number; + sceneMapping?: components["schemas"]["AlternateTitleResource"]; + magnetUrl?: string | null; + infoHash?: string | null; + /** Format: int32 */ + seeders?: number | null; + /** Format: int32 */ + leechers?: number | null; + protocol?: components["schemas"]["DownloadProtocol"]; + isDaily?: boolean; + isAbsoluteNumbering?: boolean; + isPossibleSpecialEpisode?: boolean; + special?: boolean; + /** Format: int32 */ + seriesId?: number | null; + /** Format: int32 */ + episodeId?: number | null; + episodeIds?: (number)[] | null; + /** Format: int32 */ + downloadClientId?: number | null; + shouldOverride?: boolean | null; + }; + RemotePathMappingResource: { + /** Format: int32 */ + id?: number; + host?: string | null; + remotePath?: string | null; + localPath?: string | null; + }; + RenameEpisodeResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + seriesId?: number; + /** Format: int32 */ + seasonNumber?: number; + episodeNumbers?: (number)[] | null; + /** Format: int32 */ + episodeFileId?: number; + existingPath?: string | null; + newPath?: string | null; + }; + /** @enum {string} */ + RescanAfterRefreshType: "always" | "afterManual" | "never"; + Revision: { + /** Format: int32 */ + version?: number; + /** Format: int32 */ + real?: number; + isRepack?: boolean; + }; + RootFolderResource: { + /** Format: int32 */ + id?: number; + path?: string | null; + accessible?: boolean; + /** Format: int64 */ + freeSpace?: number | null; + unmappedFolders?: (components["schemas"]["UnmappedFolder"])[] | null; + }; + /** @enum {string} */ + RuntimeMode: "console" | "service" | "tray"; + SeasonPassResource: { + series?: (components["schemas"]["SeasonPassSeriesResource"])[] | null; + monitoringOptions?: components["schemas"]["MonitoringOptions"]; + }; + SeasonPassSeriesResource: { + /** Format: int32 */ + id?: number; + monitored?: boolean | null; + seasons?: (components["schemas"]["SeasonResource"])[] | null; + }; + SeasonResource: { + /** Format: int32 */ + seasonNumber?: number; + monitored?: boolean; + statistics?: components["schemas"]["SeasonStatisticsResource"]; + images?: (components["schemas"]["MediaCover"])[] | null; + }; + SeasonStatisticsResource: { + /** Format: date-time */ + nextAiring?: string | null; + /** Format: date-time */ + previousAiring?: string | null; + /** Format: int32 */ + episodeFileCount?: number; + /** Format: int32 */ + episodeCount?: number; + /** Format: int32 */ + totalEpisodeCount?: number; + /** Format: int64 */ + sizeOnDisk?: number; + releaseGroups?: (string)[] | null; + /** Format: double */ + percentOfEpisodes?: number; + }; + SelectOption: { + /** Format: int32 */ + value?: number; + name?: string | null; + /** Format: int32 */ + order?: number; + hint?: string | null; + }; + SeriesEditorResource: { + seriesIds?: (number)[] | null; + monitored?: boolean | null; + /** Format: int32 */ + qualityProfileId?: number | null; + seriesType?: components["schemas"]["SeriesTypes"]; + seasonFolder?: boolean | null; + rootFolderPath?: string | null; + tags?: (number)[] | null; + applyTags?: components["schemas"]["ApplyTags"]; + moveFiles?: boolean; + deleteFiles?: boolean; + addImportListExclusion?: boolean; + }; + SeriesResource: { + /** Format: int32 */ + id?: number; + title?: string | null; + alternateTitles?: (components["schemas"]["AlternateTitleResource"])[] | null; + sortTitle?: string | null; + status?: components["schemas"]["SeriesStatusType"]; + ended?: boolean; + profileName?: string | null; + overview?: string | null; + /** Format: date-time */ + nextAiring?: string | null; + /** Format: date-time */ + previousAiring?: string | null; + network?: string | null; + airTime?: string | null; + images?: (components["schemas"]["MediaCover"])[] | null; + originalLanguage?: components["schemas"]["Language"]; + remotePoster?: string | null; + seasons?: (components["schemas"]["SeasonResource"])[] | null; + /** Format: int32 */ + year?: number; + path?: string | null; + /** Format: int32 */ + qualityProfileId?: number; + seasonFolder?: boolean; + monitored?: boolean; + useSceneNumbering?: boolean; + /** Format: int32 */ + runtime?: number; + /** Format: int32 */ + tvdbId?: number; + /** Format: int32 */ + tvRageId?: number; + /** Format: int32 */ + tvMazeId?: number; + /** Format: date-time */ + firstAired?: string | null; + seriesType?: components["schemas"]["SeriesTypes"]; + cleanTitle?: string | null; + imdbId?: string | null; + titleSlug?: string | null; + rootFolderPath?: string | null; + folder?: string | null; + certification?: string | null; + genres?: (string)[] | null; + tags?: (number)[] | null; + /** Format: date-time */ + added?: string; + addOptions?: components["schemas"]["AddSeriesOptions"]; + ratings?: components["schemas"]["Ratings"]; + statistics?: components["schemas"]["SeriesStatisticsResource"]; + episodesChanged?: boolean | null; + /** + * Format: int32 + * @deprecated + */ + languageProfileId?: number; + }; + SeriesStatisticsResource: { + /** Format: int32 */ + seasonCount?: number; + /** Format: int32 */ + episodeFileCount?: number; + /** Format: int32 */ + episodeCount?: number; + /** Format: int32 */ + totalEpisodeCount?: number; + /** Format: int64 */ + sizeOnDisk?: number; + releaseGroups?: (string)[] | null; + /** Format: double */ + percentOfEpisodes?: number; + }; + /** @enum {string} */ + SeriesStatusType: "continuing" | "ended" | "upcoming" | "deleted"; + SeriesTitleInfo: { + title?: string | null; + titleWithoutYear?: string | null; + /** Format: int32 */ + year?: number; + allTitles?: (string)[] | null; + }; + /** @enum {string} */ + SeriesTypes: "standard" | "daily" | "anime"; + /** @enum {string} */ + SortDirection: "default" | "ascending" | "descending"; + SystemResource: { + appName?: string | null; + instanceName?: string | null; + version?: string | null; + /** Format: date-time */ + buildTime?: string; + isDebug?: boolean; + isProduction?: boolean; + isAdmin?: boolean; + isUserInteractive?: boolean; + startupPath?: string | null; + appData?: string | null; + osName?: string | null; + osVersion?: string | null; + isNetCore?: boolean; + isLinux?: boolean; + isOsx?: boolean; + isWindows?: boolean; + isDocker?: boolean; + mode?: components["schemas"]["RuntimeMode"]; + branch?: string | null; + authentication?: components["schemas"]["AuthenticationType"]; + sqliteVersion?: components["schemas"]["Version"]; + /** Format: int32 */ + migrationVersion?: number; + urlBase?: string | null; + runtimeVersion?: components["schemas"]["Version"]; + runtimeName?: string | null; + /** Format: date-time */ + startTime?: string; + packageVersion?: string | null; + packageAuthor?: string | null; + packageUpdateMechanism?: components["schemas"]["UpdateMechanism"]; + packageUpdateMechanismMessage?: string | null; + }; + TagDetailsResource: { + /** Format: int32 */ + id?: number; + label?: string | null; + delayProfileIds?: (number)[] | null; + importListIds?: (number)[] | null; + notificationIds?: (number)[] | null; + restrictionIds?: (number)[] | null; + indexerIds?: (number)[] | null; + autoTagIds?: (number)[] | null; + seriesIds?: (number)[] | null; + }; + TagResource: { + /** Format: int32 */ + id?: number; + label?: string | null; + }; + TaskResource: { + /** Format: int32 */ + id?: number; + name?: string | null; + taskName?: string | null; + /** Format: int32 */ + interval?: number; + /** Format: date-time */ + lastExecution?: string; + /** Format: date-time */ + lastStartTime?: string; + /** Format: date-time */ + nextExecution?: string; + lastDuration?: components["schemas"]["TimeSpan"]; + }; + TimeSpan: { + /** Format: int64 */ + ticks?: number; + /** Format: int32 */ + days?: number; + /** Format: int32 */ + hours?: number; + /** Format: int32 */ + milliseconds?: number; + /** Format: int32 */ + minutes?: number; + /** Format: int32 */ + seconds?: number; + /** Format: double */ + totalDays?: number; + /** Format: double */ + totalHours?: number; + /** Format: double */ + totalMilliseconds?: number; + /** Format: double */ + totalMinutes?: number; + /** Format: double */ + totalSeconds?: number; + }; + /** @enum {string} */ + TrackedDownloadState: "downloading" | "importPending" | "importing" | "imported" | "failedPending" | "failed" | "ignored"; + /** @enum {string} */ + TrackedDownloadStatus: "ok" | "warning" | "error"; + TrackedDownloadStatusMessage: { + title?: string | null; + messages?: (string)[] | null; + }; + UiConfigResource: { + /** Format: int32 */ + id?: number; + /** Format: int32 */ + firstDayOfWeek?: number; + calendarWeekColumnHeader?: string | null; + shortDateFormat?: string | null; + longDateFormat?: string | null; + timeFormat?: string | null; + showRelativeDates?: boolean; + enableColorImpairedMode?: boolean; + theme?: string | null; + /** Format: int32 */ + uiLanguage?: number; + }; + UnmappedFolder: { + name?: string | null; + path?: string | null; + relativePath?: string | null; + }; + UpdateChanges: { + new?: (string)[] | null; + fixed?: (string)[] | null; + }; + /** @enum {string} */ + UpdateMechanism: "builtIn" | "script" | "external" | "apt" | "docker"; + UpdateResource: { + /** Format: int32 */ + id?: number; + version?: components["schemas"]["Version"]; + branch?: string | null; + /** Format: date-time */ + releaseDate?: string; + fileName?: string | null; + url?: string | null; + installed?: boolean; + /** Format: date-time */ + installedOn?: string | null; + installable?: boolean; + latest?: boolean; + changes?: components["schemas"]["UpdateChanges"]; + hash?: string | null; + }; + Version: { + /** Format: int32 */ + major?: number; + /** Format: int32 */ + minor?: number; + /** Format: int32 */ + build?: number; + /** Format: int32 */ + revision?: number; + /** Format: int32 */ + majorRevision?: number; + /** Format: int32 */ + minorRevision?: number; + }; + }; + responses: never; + parameters: never; + requestBodies: never; + headers: never; + pathItems: never; +} + +export type external = Record; + +export type operations = Record; diff --git a/src/lib/tmdb-api.ts b/src/lib/tmdb-api.ts index f0b4bf7..8dfc4ea 100644 --- a/src/lib/tmdb-api.ts +++ b/src/lib/tmdb-api.ts @@ -7,3 +7,11 @@ export const TmdbApi = axios.create({ Authorization: `Bearer ${PUBLIC_TMDB_API_KEY}` } }); + +export async function fetchMovieDetails(imdbId: string | number) { + return { + ...(await TmdbApi.get('/movie/' + imdbId).then((res) => res.data)), + videos: await TmdbApi.get('/movie/' + imdbId + '/videos').then((res) => res.data.results), + credits: await TmdbApi.get('/movie/' + imdbId + '/credits').then((res) => res.data.cast) + }; +} diff --git a/src/lib/types.ts b/src/lib/types.ts new file mode 100644 index 0000000..9858073 --- /dev/null +++ b/src/lib/types.ts @@ -0,0 +1,6 @@ +import type { components as radarrComponents } from '$lib/radarr'; +import type { components as sonarrComponents } from '$lib/sonarr'; + +export type MovieResource = radarrComponents['schemas']['MovieResource']; + +export type SeriesResource = sonarrComponents['schemas']['SeriesResource']; diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 3421483..535c571 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,10 +1,7 @@
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 7b05abd..422ef4f 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,156 +1,32 @@ -
-
-
- - - - - -
-

- September 2022 -

-

- Popular Now -

-

Top Gun: Maveric

-
+ + + -
-
Feel the need... The need for speed.
-
- After more than thirty years of service as one of the Navy’s top aviators, and dodging the - advancement in rank that would ground him, Pete “Maverick” Mitchell finds himself training - a detachment of TOP GUN graduates for a specialized mission the likes of which no living - pilot has ever seen. -
-
-
-
- - -
- -
-
-
-

Details

-
-
Action, Drama
-
2h 13min
-
Currently Streaming
-
83% IMDB
-
- -
-
-

Starring

-
-
Tom Cruise
-
Miles Teller
-
Jennifer Connelly
-
Jon Hamm
-
Glen Powell
-
-
-
-
- -
-
- - - - - -
- -
- -
-
-
- -
-
-
- -{#if $popular.loading} +{#if !data?.showcases?.length}
Loading
-{:else if $popular.error} -
Error: {$popular.error.message}
{:else} -
-
+
+

Continue Watching

- - - - - - - - - -
- {#each $popular.data.results.movies.splice(0, 5) as item (item.id)} - - {/each} - {#each $popular.data.results.tvShows.splice(0, 2) as item (item.id)} - + {#each data.showcases.splice(0, 5) as item (item.id)} + {/each}
diff --git a/src/routes/+page.ts b/src/routes/+page.ts new file mode 100644 index 0000000..e9d9f08 --- /dev/null +++ b/src/routes/+page.ts @@ -0,0 +1,12 @@ +import type { PageLoad } from './$types'; +import { radarrApi } from '$lib/servarr-api'; +import { fetchMovieDetails, TmdbApi } from '$lib/tmdb-api'; + +export const load = (async () => { + const movies = await TmdbApi.get('/movie/popular').then((res) => res.data.results.slice(0, 5)); + + console.log('movies', movies); + const showcases = await Promise.all(movies.map((m: any) => fetchMovieDetails(m.id))); + console.log('showcases: ', showcases); + return { showcases }; +}) satisfies PageLoad; diff --git a/src/routes/Navbar.svelte b/src/routes/Navbar.svelte index 05ed058..8181440 100644 --- a/src/routes/Navbar.svelte +++ b/src/routes/Navbar.svelte @@ -1,11 +1,16 @@ + +
+
+ {#if video.key} +