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
-
-
- 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
-
-
Starring
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{#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}
+ VIDEO
+ {/if}
+
+
+
+
+
+
+ {monthNames[releaseDate.getMonth()]}
+ {releaseDate.getFullYear()}
+
+
+
+ {remoteResource.original_title}
+
+
+
+
+
{remoteResource.tagline}
+
+ {remoteResource.overview}
+
+
+
+
+
(focusTrailer = true)}
+ on:mouseleave={() => (focusTrailer = false)}
+ on:click={openTrailer}
+ class="border-2 border-white cursor-pointer transition-colors px-8 py-3.5 uppercase tracking-widest font-semibold text-xs hover:bg-white hover:text-black opacity-100"
+ >Watch Trailer
+
+
+
+
Details
+
+
Starring
+
+ {#each remoteResource.credits.slice(0, 5) as a}
+
+ {/each}
+
+
+
+
+
+
+
diff --git a/src/routes/ResourceDetailsControls.svelte b/src/routes/ResourceDetailsControls.svelte
new file mode 100644
index 0000000..6a1d705
--- /dev/null
+++ b/src/routes/ResourceDetailsControls.svelte
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/routes/SmallPoster.svelte b/src/routes/SmallPoster.svelte
index d7ecc13..620ffa4 100644
--- a/src/routes/SmallPoster.svelte
+++ b/src/routes/SmallPoster.svelte
@@ -60,9 +60,10 @@
class="bg-white border-2 border-white hover:bg-amber-400 hover:border-amber-400 transition-colors text-zinc-900 px-8 py-2.5 uppercase tracking-widest font-extrabold cursor-pointer text-xs"
>Stream
-
Details Details
diff --git a/src/routes/discover/+page.svelte b/src/routes/discover/+page.svelte
new file mode 100644
index 0000000..cf94a9a
--- /dev/null
+++ b/src/routes/discover/+page.svelte
@@ -0,0 +1,9 @@
+
+ Does not contain any of the titles in library.
+
Discover
+
For You
+
Popular Movies
+
Popular TV Shows
+
Networks
+
Categories
+
diff --git a/src/routes/library/+page.svelte b/src/routes/library/+page.svelte
new file mode 100644
index 0000000..178802b
--- /dev/null
+++ b/src/routes/library/+page.svelte
@@ -0,0 +1,6 @@
+
+ Contains all the titles available locally, the ones already watched previously (greyed out at the
+ bottom), and the ones that are in some sort of watchlist and available via any source.
+
+
Library
+
diff --git a/src/routes/movie/[id]/+page.svelte b/src/routes/movie/[id]/+page.svelte
new file mode 100644
index 0000000..2b0393c
--- /dev/null
+++ b/src/routes/movie/[id]/+page.svelte
@@ -0,0 +1,9 @@
+
+
+
diff --git a/src/routes/movie/[id]/+page.ts b/src/routes/movie/[id]/+page.ts
new file mode 100644
index 0000000..7bb830b
--- /dev/null
+++ b/src/routes/movie/[id]/+page.ts
@@ -0,0 +1,18 @@
+import type { PageLoad } from './$types';
+import { radarrApi } from '$lib/servarr-api';
+import { fetchMovieDetails, TmdbApi } from '$lib/tmdb-api';
+
+export const load = (async ({ params }) => {
+ return {
+ movie: await radarrApi
+ .get('/api/v3/movie', {
+ params: {
+ query: {
+ tmdbId: Number(params.id)
+ }
+ }
+ })
+ .then((res) => res.data?.[0]),
+ remoteMovie: fetchMovieDetails(params.id)
+ };
+}) satisfies PageLoad;
diff --git a/src/routes/settings/+page.svelte b/src/routes/settings/+page.svelte
new file mode 100644
index 0000000..f798432
--- /dev/null
+++ b/src/routes/settings/+page.svelte
@@ -0,0 +1 @@
+
Settings
diff --git a/src/routes/show/[id]/+page.svelte b/src/routes/show/[id]/+page.svelte
new file mode 100644
index 0000000..1dacaf2
--- /dev/null
+++ b/src/routes/show/[id]/+page.svelte
@@ -0,0 +1,6 @@
+
+
+
TV Show of {data.tmdbId}
diff --git a/src/routes/show/[id]/+page.ts b/src/routes/show/[id]/+page.ts
new file mode 100644
index 0000000..1d56513
--- /dev/null
+++ b/src/routes/show/[id]/+page.ts
@@ -0,0 +1,3 @@
+import type { PageLoad } from './$types';
+
+export const load = (({ params }) => ({ tmdbId: params.id })) satisfies PageLoad;
diff --git a/src/routes/sources/+page.svelte b/src/routes/sources/+page.svelte
new file mode 100644
index 0000000..fa4eaec
--- /dev/null
+++ b/src/routes/sources/+page.svelte
@@ -0,0 +1,11 @@
+
+
Sources
+
Streaming services
+
(P2P network?)
+
Configure Sonarr
+
Configure Radarr
+
(Configure Plex)
+
(Configure Jellyfinn)
+
(Configure IMDB)
+
(Configure TMDB)
+