diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..fe1152b
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,30 @@
+**/.classpath
+**/.dockerignore
+**/.env
+**/.git
+**/.gitignore
+**/.project
+**/.settings
+**/.toolstarget
+**/.vs
+**/.vscode
+**/*.*proj.user
+**/*.dbmdl
+**/*.jfm
+**/azds.yaml
+**/bin
+**/charts
+**/docker-compose*
+**/Dockerfile*
+**/node_modules
+**/npm-debug.log
+**/obj
+**/secrets.dev.yaml
+**/values.dev.yaml
+LICENSE
+README.md
+!**/.gitignore
+!.git/HEAD
+!.git/config
+!.git/packed-refs
+!.git/refs/heads/**
\ No newline at end of file
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..1ff0c42
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,63 @@
+###############################################################################
+# Set default behavior to automatically normalize line endings.
+###############################################################################
+* text=auto
+
+###############################################################################
+# Set default behavior for command prompt diff.
+#
+# This is need for earlier builds of msysgit that does not have it on by
+# default for csharp files.
+# Note: This is only used by command line
+###############################################################################
+#*.cs diff=csharp
+
+###############################################################################
+# Set the merge driver for project and solution files
+#
+# Merging from the command prompt will add diff markers to the files if there
+# are conflicts (Merging from VS is not affected by the settings below, in VS
+# the diff markers are never inserted). Diff markers may cause the following
+# file extensions to fail to load in VS. An alternative would be to treat
+# these files as binary and thus will always conflict and require user
+# intervention with every merge. To do so, just uncomment the entries below
+###############################################################################
+#*.sln merge=binary
+#*.csproj merge=binary
+#*.vbproj merge=binary
+#*.vcxproj merge=binary
+#*.vcproj merge=binary
+#*.dbproj merge=binary
+#*.fsproj merge=binary
+#*.lsproj merge=binary
+#*.wixproj merge=binary
+#*.modelproj merge=binary
+#*.sqlproj merge=binary
+#*.wwaproj merge=binary
+
+###############################################################################
+# behavior for image files
+#
+# image files are treated as binary by default.
+###############################################################################
+#*.jpg binary
+#*.png binary
+#*.gif binary
+
+###############################################################################
+# diff behavior for common document formats
+#
+# Convert binary document formats to text before diffing them. This feature
+# is only available from the command line. Turn it on by uncommenting the
+# entries below.
+###############################################################################
+#*.doc diff=astextplain
+#*.DOC diff=astextplain
+#*.docx diff=astextplain
+#*.DOCX diff=astextplain
+#*.dot diff=astextplain
+#*.DOT diff=astextplain
+#*.pdf diff=astextplain
+#*.PDF diff=astextplain
+#*.rtf diff=astextplain
+#*.RTF diff=astextplain
diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml
new file mode 100644
index 0000000..b892d74
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug-report.yml
@@ -0,0 +1,53 @@
+name: Bug Report
+description: File a bug report.
+title: "[Bug]: "
+labels: ["bug", "triage"]
+assignees:
+ - Fazzani
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thanks for taking the time to fill out this bug report!
+ - type: input
+ id: contact
+ attributes:
+ label: Contact Details
+ description: How can we get in touch with you if we need more info?
+ placeholder: ex. email@example.com
+ validations:
+ required: false
+ - type: textarea
+ id: what-happened
+ attributes:
+ label: What happened?
+ description: Also tell us, what did you expect to happen?
+ placeholder: Tell us what you see!
+ value: "A bug happened!"
+ validations:
+ required: true
+ - type: dropdown
+ id: version
+ attributes:
+ label: Version
+ description: What version of our software are you running?
+ options:
+ - 1.0.2 (Default)
+ - 1.0.3 (Edge)
+ default: 0
+ validations:
+ required: true
+ - type: textarea
+ id: logs
+ attributes:
+ label: Relevant log output
+ description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
+ render: shell
+ - type: checkboxes
+ id: terms
+ attributes:
+ label: Code of Conduct
+ description: By submitting this issue, you agree to follow our [Code of Conduct](https://example.com).
+ options:
+ - label: I agree to follow this project's Code of Conduct
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml
new file mode 100644
index 0000000..c593a63
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature-request.yml
@@ -0,0 +1,35 @@
+name: Feature Report
+description: File a new Feature Proposal Template
+title: "[Feature]: "
+labels: ["feature", "enhancement"]
+assignees:
+ - Fazzani
+body:
+ - type: markdown
+ attributes:
+ value: |
+ New Feature Proposal
+ - type: input
+ id: contact
+ attributes:
+ label: Contact Details
+ description: How can we get in touch with you if we need more info?
+ placeholder: ex. email@example.com
+ validations:
+ required: false
+ - type: textarea
+ id: short-description
+ attributes:
+ label: Short description
+ description: Provide a short single paragraph description for the feature.
+ placeholder: short description.
+ validations:
+ required: true
+ - type: textarea
+ id: constraints
+ attributes:
+ label: Constraints and Assumptions?
+ description: Also tell us, what did you expect to happen?
+ placeholder: Provide a high level description of what did you expect to happen
+ validations:
+ required: false
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
new file mode 100644
index 0000000..c7e22b5
--- /dev/null
+++ b/.github/pull_request_template.md
@@ -0,0 +1,17 @@
+## Proposed changes
+
+Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. If it fixes a bug or resolves a feature request, be sure to link to that issue.
+
+## Types of changes
+
+What types of changes does your code introduce to Appium?
+_Put an `x` in the boxes that apply_
+
+- [ ] Bugfix (non-breaking change which fixes an issue)
+- [ ] New feature (non-breaking change which adds functionality)
+- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
+- [ ] Documentation Update (if none of the other choices apply)
+
+## Further comments
+
+If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...
diff --git a/.github/release.yml b/.github/release.yml
new file mode 100644
index 0000000..1771f0c
--- /dev/null
+++ b/.github/release.yml
@@ -0,0 +1,26 @@
+# .github/release.yml
+
+changelog:
+ exclude:
+ labels:
+ - ignore-for-release
+ authors:
+ - dependabot
+ categories:
+ - title: Breaking Changes 🛠
+ labels:
+ - Semver-Major
+ - breaking-change
+ - title: Exciting New Features 🎉
+ labels:
+ - Semver-Minor
+ - enhancement
+ - title: Other Changes
+ labels:
+ - "*"
+ exclude:
+ labels:
+ - dependencies
+ - title: 👒 Dependencies
+ labels:
+ - dependencies
diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml
new file mode 100644
index 0000000..b007253
--- /dev/null
+++ b/.github/workflows/docker-image.yml
@@ -0,0 +1,42 @@
+name: Docker Image CI
+
+on:
+ push:
+ tags:
+ - "v*.*.*"
+
+jobs:
+
+ build:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+ - name: Docker meta
+ id: meta
+ uses: docker/metadata-action@v5
+ with:
+ images: |
+ synker/proxarr
+ tags: |
+ type=semver,pattern={{version}}
+ type=semver,pattern={{major}}.{{minor}}
+ type=semver,pattern={{major}}
+ type=sha
+ - name: Login to Docker Hub
+ uses: docker/login-action@v3
+ with:
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
+
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v3
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
+
+ - name: Build and push
+ uses: docker/build-push-action@v6
+ with:
+ push: true
+ tags: ${{ steps.meta.outputs.tags }}
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
new file mode 100644
index 0000000..1149871
--- /dev/null
+++ b/.github/workflows/pr.yml
@@ -0,0 +1,28 @@
+name: .NET
+
+on:
+ push:
+ branches: [ "master" ]
+ pull_request:
+ branches: [ "master" ]
+
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: 9.0.x
+ - name: Restore dependencies
+ run: dotnet restore
+ working-directory: ./src
+ - name: Build
+ run: dotnet build --no-restore
+ working-directory: ./src
+ - name: Test
+ run: dotnet test --no-build --verbosity normal
+ working-directory: ./src
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..36b0c1c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,365 @@
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+##
+## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
+
+# User-specific files
+*.rsuser
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Mono auto generated files
+mono_crash.*
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+[Ww][Ii][Nn]32/
+[Aa][Rr][Mm]/
+[Aa][Rr][Mm]64/
+bld/
+[Bb]in/
+[Oo]bj/
+[Oo]ut/
+[Ll]og/
+[Ll]ogs/
+
+# Visual Studio 2015/2017 cache/options directory
+.vs/
+# Uncomment if you have tasks that create the project's static files in wwwroot
+#wwwroot/
+
+# Visual Studio 2017 auto generated files
+Generated\ Files/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUnit
+*.VisualState.xml
+TestResult.xml
+nunit-*.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# Benchmark Results
+BenchmarkDotNet.Artifacts/
+
+# .NET Core
+project.lock.json
+project.fragment.lock.json
+artifacts/
+
+# ASP.NET Scaffolding
+ScaffoldingReadMe.txt
+
+# StyleCop
+StyleCopReport.xml
+
+# Files built by Visual Studio
+*_i.c
+*_p.c
+*_h.h
+*.ilk
+*.meta
+*.obj
+*.iobj
+*.pch
+*.pdb
+*.ipdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*_wpftmp.csproj
+*.log
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opendb
+*.opensdf
+*.sdf
+*.cachefile
+*.VC.db
+*.VC.VC.opendb
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+*.sap
+
+# Visual Studio Trace Files
+*.e2e
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# AxoCover is a Code Coverage Tool
+.axoCover/*
+!.axoCover/settings.json
+
+# Coverlet is a free, cross platform Code Coverage Tool
+coverage*.json
+coverage*.xml
+coverage*.info
+
+# Visual Studio code coverage results
+*.coverage
+*.coveragexml
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+nCrunchTemp_*
+
+# MightyMoose
+*.mm.*
+AutoTest.Net/
+
+# Web workbench (sass)
+.sass-cache/
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.[Pp]ublish.xml
+*.azurePubxml
+# Note: Comment the next line if you want to checkin your web deploy settings,
+# but database connection strings (with potential passwords) will be unencrypted
+*.pubxml
+*.publishproj
+
+# Microsoft Azure Web App publish settings. Comment the next line if you want to
+# checkin your Azure Web App publish settings, but sensitive information contained
+# in these scripts will be unencrypted
+PublishScripts/
+
+# NuGet Packages
+*.nupkg
+# NuGet Symbol Packages
+*.snupkg
+# The packages folder can be ignored because of Package Restore
+**/[Pp]ackages/*
+# except build/, which is used as an MSBuild target.
+!**/[Pp]ackages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/[Pp]ackages/repositories.config
+# NuGet v3's project.json files produces more ignorable files
+*.nuget.props
+*.nuget.targets
+
+# Microsoft Azure Build Output
+csx/
+*.build.csdef
+
+# Microsoft Azure Emulator
+ecf/
+rcf/
+
+# Windows Store app package directories and files
+AppPackages/
+BundleArtifacts/
+Package.StoreAssociation.xml
+_pkginfo.txt
+*.appx
+*.appxbundle
+*.appxupload
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+*.[Cc]ache
+# but keep track of directories ending in .cache
+!?*.[Cc]ache/
+
+# Others
+ClientBin/
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.jfm
+*.pfx
+*.publishsettings
+orleans.codegen.cs
+
+# Including strong name files can present a security risk
+# (https://github.com/github/gitignore/pull/2483#issue-259490424)
+#*.snk
+
+# Since there are multiple workflows, uncomment next line to ignore bower_components
+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
+#bower_components/
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+ServiceFabricBackup/
+*.rptproj.bak
+
+# SQL Server files
+*.mdf
+*.ldf
+*.ndf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+*.rptproj.rsuser
+*- [Bb]ackup.rdl
+*- [Bb]ackup ([0-9]).rdl
+*- [Bb]ackup ([0-9][0-9]).rdl
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# GhostDoc plugin setting file
+*.GhostDoc.xml
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+node_modules/
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
+*.vbw
+
+# Visual Studio LightSwitch build output
+**/*.HTMLClient/GeneratedArtifacts
+**/*.DesktopClient/GeneratedArtifacts
+**/*.DesktopClient/ModelManifest.xml
+**/*.Server/GeneratedArtifacts
+**/*.Server/ModelManifest.xml
+_Pvt_Extensions
+
+# Paket dependency manager
+.paket/paket.exe
+paket-files/
+
+# FAKE - F# Make
+.fake/
+
+# CodeRush personal settings
+.cr/personal
+
+# Python Tools for Visual Studio (PTVS)
+__pycache__/
+*.pyc
+
+# Cake - Uncomment if you are using it
+# tools/**
+# !tools/packages.config
+
+# Tabs Studio
+*.tss
+
+# Telerik's JustMock configuration file
+*.jmconfig
+
+# BizTalk build output
+*.btp.cs
+*.btm.cs
+*.odx.cs
+*.xsd.cs
+
+# OpenCover UI analysis results
+OpenCover/
+
+# Azure Stream Analytics local run output
+ASALocalRun/
+
+# MSBuild Binary and Structured Log
+*.binlog
+
+# NVidia Nsight GPU debugger configuration file
+*.nvuser
+
+# MFractors (Xamarin productivity tool) working folder
+.mfractor/
+
+# Local History for Visual Studio
+.localhistory/
+
+# BeatPulse healthcheck temp database
+healthchecksdb
+
+# Backup folder for Package Reference Convert tool in Visual Studio 2017
+MigrationBackup/
+
+# Ionide (cross platform F# VS Code tools) working folder
+.ionide/
+
+# Fody - auto-generated XML schema
+FodyWeavers.xsd
+
+**/config.local.yml
\ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..789d9dd
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,2 @@
+# How to contribute
+
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..cc6994b
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,47 @@
+FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
+USER $APP_UID
+WORKDIR /app
+
+ENV ASPNETCORE_HTTP_PORTS=8880
+
+EXPOSE $ASPNETCORE_HTTP_PORTS
+
+ENV LOG_FOLDER=/logs
+ENV LOG_LEVEL=Information
+ENV CONFIG_PATH=/app/config
+ENV Serilog__MinimumLevel=$LOG_LEVEL
+
+# This stage is used to build the service project
+FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
+ARG BUILD_CONFIGURATION=Release
+WORKDIR /src
+COPY ["src/Proxarr.Api/Proxarr.Api.csproj", "Proxarr.Api/"]
+RUN dotnet restore "./Proxarr.Api/Proxarr.Api.csproj"
+COPY ./src .
+WORKDIR "/src/Proxarr.Api"
+RUN dotnet build "./Proxarr.Api.csproj" -c $BUILD_CONFIGURATION -o /app/build
+
+# This stage is used to publish the service project to be copied to the final stage
+FROM build AS publish
+ARG BUILD_CONFIGURATION=Release
+RUN dotnet publish "./Proxarr.Api.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false
+
+# This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration)
+FROM base AS final
+
+WORKDIR /app
+VOLUME ${LOG_FOLDER}/
+VOLUME ${CONFIG_PATH}/
+COPY --from=publish /app/publish .
+
+USER root
+
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ curl \
+ && rm -rf /var/lib/apt/lists/*
+
+USER $APP_UID
+
+HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 CMD curl -f http://localhost:$ASPNETCORE_HTTP_PORTS/health || exit 1
+
+ENTRYPOINT ["dotnet", "Proxarr.Api.dll"]
\ No newline at end of file
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..8aa2645
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) [year] [fullname]
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..445e2ce
--- /dev/null
+++ b/README.md
@@ -0,0 +1,181 @@
+
+[![Contributors][contributors-shield]][contributors-url]
+[![Forks][forks-shield]][forks-url]
+[![Stargazers][stars-shield]][stars-url]
+[![Issues][issues-shield]][issues-url]
+[![project_license][license-shield]][license-url]
+[![LinkedIn][linkedin-shield]][linkedin-url]
+
+[![Docker Image CI](https://github.com/Fazzani/Proxarr/actions/workflows/docker-image.yml/badge.svg)](https://github.com/Fazzani/Proxarr/actions/workflows/docker-image.yml)
+
+[![.NET](https://github.com/Fazzani/Proxarr/actions/workflows/pr.yml/badge.svg)](https://github.com/Fazzani/Proxarr/actions/workflows/pr.yml)
+
+
+
+
+
+
+
+
+
+ Automatically categorize your requested movies and TV shows from your watching providers.
+
+ Report Bug
+ ·
+ Request Feature
+
+
+
+
+
+ Table of Contents
+
+
+ About The Project
+
+
+ Getting Started
+
+
+ Usage
+ Roadmap
+ Contributing
+ License
+ Contact
+
+
+
+
+## About The Project
+
+Proxarr is a lightweight proxy server for automatically qualify requested media items based in countries served by watching providers.
+It uses TMDB to find out which streaming services are available in the selected region.
+
+
+
+(back to top )
+
+
+## Getting Started
+
+### Prerequisites
+
+* Acquire TMDB API KEY
+ [How](https://dev.to/codexive_zech/streamlining-your-contribution-how-to-get-your-tmdb-api-key-for-ldbflix-contribution-52gf#:~:text=How%20to%20Obtain%20a%20TMDB%20API%20Key)
+* Obtain SONARR/RADARR API KEY
+
+
+### Installation
+
+1. Clone the repo
+ ```sh
+ git clone https://github.com/Fazzani/Proxarr.git
+ ```
+
+2. Update your [config.yml](./src/Proxarr.Api/config.yml) with your API keys according to your setup
+ ```yaml
+ AppConfiguration:
+ TMDB_API_KEY: "{{ TMDB API KEY}}"
+ TAG_NAME: "q"
+ WATCH_PROVIDERS: "YOUR PROVIDERS HERE seperated by comma (ex: FR:Netflix,US:Amazon Prime Video)"
+ Clients: # Add as many clients as you want
+ - ApiKey: "{{ SONAR OR RADARR API KEY }}"
+ BaseUrl: "{{ SONARR OR RADARR BASE URL }}"
+ ```
+
+3. Run the application
+ ```sh
+ dotnet run ./src/Proxarr.Api/Proxarr.Api.csproj
+ ```
+(back to top )
+
+
+## Usage
+
+### Standalone docker container example
+
+```shell
+docker run -itd --rm -e LOG_LEVEL=Debug -p 8880:8880 -v ${PWD}/config:/app/config --name proxarr synker/proxarr:latest
+```
+### Full example with docker compose
+
+```shell
+docker compose -f docker-compose.yml up -d
+```
+(back to top )
+
+### Watching providers configuration
+
+- [TMDB API to get available regions](https://developer.themoviedb.org/reference/watch-providers-available-regions)
+- [TMDB API to get available movie providers by region](https://developer.themoviedb.org/reference/watch-providers-movie-list)
+- [TMDB API to get available tv providers by region](https://developer.themoviedb.org/reference/watch-providers-tv-list)
+
+
+## Roadmap
+
+- [ ] Add more documentation
+- [ ] Add more providers (JustWatch, Reelgood, etc)
+- [ ] Add more tests
+- [ ] Improve logging and error handling
+- [ ] Add Full scan library feature
+- [ ] Add Api versioning
+
+See the [open issues](https://github.com/Fazzani/Proxarr/issues) for a full list of proposed features (and known issues).
+
+(back to top )
+
+
+## Contributing
+
+Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
+
+If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
+Don't forget to give the project a star! Thanks again!
+
+1. Fork the Project
+2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
+3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
+4. Push to the Branch (`git push origin feature/AmazingFeature`)
+5. Open a Pull Request
+
+(back to top )
+
+### Top contributors:
+
+
+
+
+
+
+## License
+
+Distributed under the project_license. See `LICENSE.txt` for more information.
+
+(back to top )
+
+
+## Contact
+
+Fazzani - heni.fazzani@gmail.com
+
+Project Link: [https://github.com/Fazzani/Proxarr](https://github.com/Fazzani/Proxarr)
+
+(back to top )
+
+
+[contributors-shield]: https://img.shields.io/github/contributors/Fazzani/Proxarr.svg?style=for-the-badge
+[contributors-url]: https://github.com/Fazzani/Proxarr/graphs/contributors
+[forks-shield]: https://img.shields.io/github/forks/Fazzani/Proxarr.svg?style=for-the-badge
+[forks-url]: https://github.com/Fazzani/Proxarr/network/members
+[stars-shield]: https://img.shields.io/github/stars/Fazzani/Proxarr.svg?style=for-the-badge
+[stars-url]: https://github.com/Fazzani/Proxarr/stargazers
+[issues-shield]: https://img.shields.io/github/issues/Fazzani/Proxarr.svg?style=for-the-badge
+[issues-url]: https://github.com/Fazzani/Proxarr/issues
+[license-shield]: https://img.shields.io/github/license/Fazzani/Proxarr.svg?style=for-the-badge
+[license-url]: https://github.com/Fazzani/Proxarr/blob/master/LICENSE.txt
+[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
+[linkedin-url]: https://www.linkedin.com/in/heni-fazzani
+[arr-api-key]: images/arr_api_key.png
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..9805046
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,58 @@
+---
+
+services:
+
+ sonarr:
+ image: lscr.io/linuxserver/sonarr:latest
+ restart: unless-stopped
+ container_name: "sonarr"
+ depends_on:
+ prowlarr:
+ condition: service_started
+ ports:
+ - "8989:8989"
+ healthcheck:
+ test: curl --fail http://localhost:8989 || exit 1
+ interval: 20s
+ retries: 5
+ start_period: 7s
+ timeout: 10s
+
+ radarr:
+ image: lscr.io/linuxserver/radarr:latest
+ restart: unless-stopped
+ container_name: "radarr"
+ depends_on:
+ prowlarr:
+ condition: service_started
+ ports:
+ - "7878:7878"
+ healthcheck:
+ test: curl --fail http://localhost:7878 || exit 1
+ interval: 20s
+ retries: 5
+ start_period: 7s
+ timeout: 10s
+
+ proxarr:
+ image: synker/proxarr:latest
+ container_name: proxarr
+ restart: unless-stopped
+ depends_on:
+ sonarr:
+ condition: service_healthy
+ radarr:
+ condition: service_healthy
+ healthcheck:
+ test: curl --fail http://localhost:8880/health || exit 1
+ interval: 10s
+ retries: 3
+ start_period: 5s
+ timeout: 3s
+ ports:
+ - "8880:8880"
+ environment:
+ - LOG_LEVEL=Information
+ volumes:
+ - ./src/Proxarr.Api:/app/config
+ - "./:/logs"
diff --git a/images/application_url.png b/images/application_url.png
new file mode 100644
index 0000000..e166bfa
Binary files /dev/null and b/images/application_url.png differ
diff --git a/images/arr_api_key.png b/images/arr_api_key.png
new file mode 100644
index 0000000..b654a96
Binary files /dev/null and b/images/arr_api_key.png differ
diff --git a/images/logo.png b/images/logo.png
new file mode 100644
index 0000000..206c19a
Binary files /dev/null and b/images/logo.png differ
diff --git a/images/logo.svg b/images/logo.svg
new file mode 100644
index 0000000..0adb1fa
--- /dev/null
+++ b/images/logo.svg
@@ -0,0 +1 @@
+ Proxarr
\ No newline at end of file
diff --git a/images/tagging-indexers.png b/images/tagging-indexers.png
new file mode 100644
index 0000000..1e58c10
Binary files /dev/null and b/images/tagging-indexers.png differ
diff --git a/images/webhook_config.png b/images/webhook_config.png
new file mode 100644
index 0000000..7bedbb3
Binary files /dev/null and b/images/webhook_config.png differ
diff --git a/images/workflow.gif b/images/workflow.gif
new file mode 100644
index 0000000..32f59af
Binary files /dev/null and b/images/workflow.gif differ
diff --git a/src/Proxarr.Api/AppConfiguration.cs b/src/Proxarr.Api/AppConfiguration.cs
new file mode 100644
index 0000000..148837d
--- /dev/null
+++ b/src/Proxarr.Api/AppConfiguration.cs
@@ -0,0 +1,55 @@
+namespace Proxarr.Api
+{
+ public sealed class AppConfiguration
+ {
+ public const string SECTION_NAME = nameof(AppConfiguration);
+
+ public string LOG_FOLDER { get; set; }
+
+ public string TAG_NAME { get; set; }
+
+ public string TMDB_API_KEY { get; set; }
+
+ Dictionary _watchProviders;
+
+ ///
+ /// Watch providers (ex: US:Netflix,US:Amazon Prime Video)
+ ///
+ public Dictionary WatchProviders
+ {
+ get
+ {
+ _watchProviders ??= InitProviders();
+ return _watchProviders;
+ }
+ }
+
+ public string WATCH_PROVIDERS { get; set; }
+
+ private Dictionary InitProviders()
+ {
+ ArgumentNullException.ThrowIfNull(WATCH_PROVIDERS);
+
+ var dict = new Dictionary();
+
+ foreach (var region in WATCH_PROVIDERS!.Split(','))
+ {
+ var parts = region.Split(':');
+ if (parts.Length != 2)
+ {
+ throw new FormatException("WATCH_PROVIDERS must ");
+ }
+ if (!dict.TryGetValue(parts[0], out string[]? value))
+ {
+ dict.Add(parts[0], [parts[1]]);
+ }
+ else
+ {
+ dict[parts[0]] = [.. value, parts[1]];
+ }
+ }
+
+ return dict;
+ }
+ }
+}
diff --git a/src/Proxarr.Api/Configuration/ClientConfiguration.cs b/src/Proxarr.Api/Configuration/ClientConfiguration.cs
new file mode 100644
index 0000000..cfc475a
--- /dev/null
+++ b/src/Proxarr.Api/Configuration/ClientConfiguration.cs
@@ -0,0 +1,9 @@
+namespace Proxarr.Api.Configuration
+{
+ public sealed class ClientConfiguration
+ {
+ public const string SECTION_NAME = $"{AppConfiguration.SECTION_NAME}:Clients";
+ public required string ApiKey { get; set; }
+ public required string BaseUrl { get; set; }
+ }
+}
diff --git a/src/Proxarr.Api/Controllers/QualifierController.cs b/src/Proxarr.Api/Controllers/QualifierController.cs
new file mode 100644
index 0000000..f50751b
--- /dev/null
+++ b/src/Proxarr.Api/Controllers/QualifierController.cs
@@ -0,0 +1,65 @@
+using Microsoft.AspNetCore.Mvc;
+using Proxarr.Api.Models;
+using Proxarr.Api.Services;
+using TMDbLib.Objects.Movies;
+
+namespace Proxarr.Api.Controllers
+{
+ [ApiController]
+ [Route("api/[controller]")]
+ public class QualifierController : ControllerBase
+ {
+ private readonly ILogger _logger;
+ private readonly IRadarrService _radarrService;
+ private readonly ISonarrService _sonarrService;
+
+ public QualifierController(ILogger logger,
+ IRadarrService radarrService,
+ ISonarrService sonarrService)
+ {
+ _logger = logger;
+ _radarrService = radarrService;
+ _sonarrService = sonarrService;
+ }
+
+ [HttpPost("movie")]
+ [ProducesResponseType(StatusCodes.Status200OK)]
+ [ProducesResponseType(StatusCodes.Status404NotFound)]
+ public async Task QualifiedMovie(MovieAdded movie, CancellationToken cancellationToken)
+ {
+ if (movie.EventType.Equals("test", StringComparison.OrdinalIgnoreCase))
+ {
+ return Ok();
+ }
+
+ var result = await _radarrService.Qualify(movie, cancellationToken).ConfigureAwait(false);
+
+ if (result == nameof(NotFound))
+ {
+ _logger.LogError("Movie not found in Radarr {Title}", movie.Movie.Title);
+ return NotFound();
+ }
+ return Ok();
+ }
+
+ [HttpPost("tv")]
+ [ProducesResponseType(StatusCodes.Status200OK)]
+ [ProducesResponseType(StatusCodes.Status404NotFound)]
+ public async Task QualifiedTv(TvAdded tvAdded, CancellationToken cancellationToken)
+ {
+ if (tvAdded.EventType.Equals("test", StringComparison.OrdinalIgnoreCase))
+ {
+ return Ok();
+ }
+
+ var result = await _sonarrService.Qualify(tvAdded, cancellationToken).ConfigureAwait(false);
+
+ if (result == nameof(NotFound))
+ {
+ _logger.LogError("Tv not found in Sonarr {Title}", tvAdded.Series.Title);
+ return NotFound();
+ }
+ return Ok();
+ }
+ }
+}
diff --git a/src/Proxarr.Api/Core/ApiKeyDelegatingHandler.cs b/src/Proxarr.Api/Core/ApiKeyDelegatingHandler.cs
new file mode 100644
index 0000000..8c6d48a
--- /dev/null
+++ b/src/Proxarr.Api/Core/ApiKeyDelegatingHandler.cs
@@ -0,0 +1,33 @@
+using Proxarr.Api.Configuration;
+
+namespace Proxarr.Api.Core
+{
+ public class ApiKeyDelegatingHandler : DelegatingHandler
+ {
+ private const string API_KEY_HEADER_NAME = "X-API-KEY";
+
+ private readonly IConfiguration _configuration;
+
+ public ApiKeyDelegatingHandler(IConfiguration configuration)
+ {
+ _configuration = configuration;
+ }
+
+ protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
+ {
+ if (!request.Headers.Contains(API_KEY_HEADER_NAME) && request.RequestUri != null)
+ {
+ var key = $"{request.RequestUri.Scheme}://{request.RequestUri.Host}";
+ var clients = _configuration.GetSection(ClientConfiguration.SECTION_NAME).Get>();
+ var clientConfig = clients?.FirstOrDefault(x => x.BaseUrl.Equals(key, StringComparison.OrdinalIgnoreCase));
+
+ if (clientConfig != null)
+ {
+ request.Headers.Add(API_KEY_HEADER_NAME, clientConfig.ApiKey);
+ }
+ }
+
+ return await base.SendAsync(request, cancellationToken);
+ }
+ }
+}
diff --git a/src/Proxarr.Api/Models/MovieAdded.cs b/src/Proxarr.Api/Models/MovieAdded.cs
new file mode 100644
index 0000000..da4abf0
--- /dev/null
+++ b/src/Proxarr.Api/Models/MovieAdded.cs
@@ -0,0 +1,82 @@
+using System.Text.Json.Serialization;
+
+namespace Proxarr.Api.Models
+{
+ public class MovieAdded
+ {
+ [JsonPropertyName("movie")]
+ public required Movie Movie { get; set; }
+
+ [JsonPropertyName("addMethod")]
+ public string? AddMethod { get; set; }
+
+ [JsonPropertyName("eventType")]
+ public required string EventType { get; set; }
+
+ [JsonPropertyName("instanceName")]
+ public required string InstanceName { get; set; }
+
+ [JsonPropertyName("applicationUrl")]
+ public required string ApplicationUrl { get; set; }
+ }
+
+ public class Movie
+ {
+ [JsonPropertyName("id")]
+ public required int Id { get; set; }
+
+ [JsonPropertyName("title")]
+ public required string Title { get; set; }
+
+ [JsonPropertyName("year")]
+ public int Year { get; set; }
+
+ [JsonPropertyName("releaseDate")]
+ public string? ReleaseDate { get; set; }
+
+ [JsonPropertyName("folderPath")]
+ public required string FolderPath { get; set; }
+
+ [JsonPropertyName("tmdbId")]
+ public int TmdbId { get; set; }
+
+ [JsonPropertyName("imdbId")]
+ public string? ImdbId { get; set; }
+
+ [JsonPropertyName("overview")]
+ public string? Overview { get; set; }
+
+ [JsonPropertyName("genres")]
+ public string[]? Genres { get; set; }
+
+ [JsonPropertyName("images")]
+ public Image[]? Images { get; set; }
+
+ [JsonPropertyName("tags")]
+ public string[]? Tags { get; set; }
+
+ [JsonPropertyName("originalLanguage")]
+ public Originallanguage? OriginalLanguage { get; set; }
+ }
+
+ public class Originallanguage
+ {
+ [JsonPropertyName("id")]
+ public int? Id { get; set; }
+
+ [JsonPropertyName("name")]
+ public string? Name { get; set; }
+ }
+
+ public class Image
+ {
+ [JsonPropertyName("coverType")]
+ public string? CoverType { get; set; }
+
+ [JsonPropertyName("url")]
+ public string? Url { get; set; }
+
+ [JsonPropertyName("remoteUrl")]
+ public string? RemoteUrl { get; set; }
+ }
+}
diff --git a/src/Proxarr.Api/Models/TvAdded.cs b/src/Proxarr.Api/Models/TvAdded.cs
new file mode 100644
index 0000000..a44d4dc
--- /dev/null
+++ b/src/Proxarr.Api/Models/TvAdded.cs
@@ -0,0 +1,61 @@
+using System.Text.Json.Serialization;
+
+namespace Proxarr.Api.Models
+{
+ public class TvAdded
+ {
+ [JsonPropertyName("series")]
+ public required Series Series { get; set; }
+
+ [JsonPropertyName("eventType")]
+ public required string EventType { get; set; }
+
+ [JsonPropertyName("instanceName")]
+ public required string InstanceName { get; set; }
+
+ [JsonPropertyName("applicationUrl")]
+ public required string ApplicationUrl { get; set; }
+ }
+
+ public class Series
+ {
+ [JsonPropertyName("id")]
+ public required int Id { get; set; }
+
+ [JsonPropertyName("title")]
+ public required string Title { get; set; }
+
+ [JsonPropertyName("titleSlug")]
+ public string? TitleSlug { get; set; }
+
+ [JsonPropertyName("path")]
+ public string? Path { get; set; }
+
+ [JsonPropertyName("tvdbId")]
+ public int TvdbId { get; set; }
+
+ [JsonPropertyName("tvMazeId")]
+ public int TvMazeId { get; set; }
+
+ [JsonPropertyName("tmdbId")]
+ public int TmdbId { get; set; }
+
+ [JsonPropertyName("imdbId")]
+ public string? ImdbId { get; set; }
+
+ [JsonPropertyName("type")]
+ public string? Type { get; set; }
+
+ [JsonPropertyName("year")]
+ public int? Year { get; set; }
+
+ [JsonPropertyName("genres")]
+ public string[]? Genres { get; set; }
+
+ [JsonPropertyName("images")]
+ public Image[]? Images { get; set; }
+
+ [JsonPropertyName("tags")]
+ public string[]? Tags { get; set; }
+ }
+}
diff --git a/src/Proxarr.Api/Program.cs b/src/Proxarr.Api/Program.cs
new file mode 100644
index 0000000..e70f406
--- /dev/null
+++ b/src/Proxarr.Api/Program.cs
@@ -0,0 +1,73 @@
+using Proxarr.Api;
+using Proxarr.Api.Core;
+using Proxarr.Api.Services;
+using Radarr.Http.Client;
+using Scalar.AspNetCore;
+using Serilog;
+using Sonarr.Http.Client;
+using TMDbLib.Client;
+
+
+var builder = WebApplication.CreateBuilder(args);
+
+var configFileName = "config.yml";
+
+#if DEBUG
+configFileName = "config.local.yml";
+#endif
+
+// Load configuration
+
+var configDirPath = Environment.GetEnvironmentVariable("CONFIG_PATH") ?? Directory.GetCurrentDirectory();
+builder.Configuration
+ .AddEnvironmentVariables()
+ .AddYamlFile(Path.Combine(configDirPath, configFileName), optional: false, reloadOnChange: true);
+
+// Add log configuration
+
+var logger = new LoggerConfiguration()
+ .ReadFrom.Configuration(builder.Configuration)
+ .Enrich.FromLogContext()
+ .CreateLogger();
+
+builder.Logging.ClearProviders();
+builder.Logging.AddSerilog(logger);
+
+// Add services to the container.
+
+builder.Services.AddControllers();
+
+builder.Services.AddHealthChecks();
+// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi
+builder.Services.AddOpenApi();
+
+builder.Services.AddSingleton(x => new TMDbClient(builder.Configuration.GetValue("AppConfiguration:TMDB_API_KEY")));
+builder.Services.Configure(builder.Configuration.GetSection(AppConfiguration.SECTION_NAME));
+builder.Services.AddTransient();
+builder.Services.AddScoped();
+builder.Services.AddScoped();
+
+builder.Services
+ .AddHttpClient()
+ .AddHttpMessageHandler();
+
+builder.Services
+ .AddHttpClient()
+ .AddHttpMessageHandler();
+
+var app = builder.Build();
+
+// Configure the HTTP request pipeline.
+if (app.Environment.IsDevelopment())
+{
+ app.MapOpenApi();
+ app.MapScalarApiReference();
+}
+
+app.UseAuthorization();
+
+app.MapControllers();
+
+app.MapHealthChecks("/health");
+
+await app.RunAsync();
\ No newline at end of file
diff --git a/src/Proxarr.Api/Properties/launchSettings.json b/src/Proxarr.Api/Properties/launchSettings.json
new file mode 100644
index 0000000..ecab1e3
--- /dev/null
+++ b/src/Proxarr.Api/Properties/launchSettings.json
@@ -0,0 +1,35 @@
+{
+ "profiles": {
+ "http": {
+ "commandName": "Project",
+ "launchUrl": "http://localhost:5056/scalar/v1",
+ "launchBrowser": true,
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development",
+ "LOG_FOLDER": "../../logs",
+ "LOG_LEVEL": "Debug"
+ },
+ "dotnetRunMessages": true,
+ "applicationUrl": "http://localhost:5056"
+ },
+ "https": {
+ "commandName": "Project",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ },
+ "dotnetRunMessages": true,
+ "applicationUrl": "https://localhost:7064;http://localhost:5056"
+ },
+ "Container (Dockerfile)": {
+ "commandName": "Docker",
+ "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
+ "environmentVariables": {
+ "ASPNETCORE_HTTPS_PORTS": "8881",
+ "ASPNETCORE_HTTP_PORTS": "8880"
+ },
+ "publishAllPorts": true,
+ "useSSL": true
+ }
+ },
+ "$schema": "https://json.schemastore.org/launchsettings.json"
+}
\ No newline at end of file
diff --git a/src/Proxarr.Api/Proxarr.Api.csproj b/src/Proxarr.Api/Proxarr.Api.csproj
new file mode 100644
index 0000000..8f6db4e
--- /dev/null
+++ b/src/Proxarr.Api/Proxarr.Api.csproj
@@ -0,0 +1,43 @@
+
+
+
+ net9.0
+ enable
+ enable
+ 4b8be289-6bae-402e-9d46-60720983d770
+ Linux
+
+
+
+
+ PreserveNewest
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Proxarr.Api/Proxarr.Api.http b/src/Proxarr.Api/Proxarr.Api.http
new file mode 100644
index 0000000..3fc4da3
--- /dev/null
+++ b/src/Proxarr.Api/Proxarr.Api.http
@@ -0,0 +1,176 @@
+@Proxarr.Api_HostAddress = http://localhost:5056
+@Radarr.ApplicationUrl = https://radarr
+@Sonarr.ApplicationUrl = https://sonarr
+
+### Movie qualify endpoint
+
+POST {{Proxarr.Api_HostAddress}}/api/qualifier/movie
+Content-Type: application/json
+Accept: application/json
+{
+ "movie": {
+ "id": 75,
+ "title": "Carry-On",
+ "year": 2024,
+ "releaseDate": "9999-12-31",
+ "folderPath": "/Videos/Videos/movies/Carry-On (2024)",
+ "tmdbId": 1005331,
+ "imdbId": "tt21382296",
+ "overview": "An airport security officer races to outsmart a mysterious traveler forcing him to let a dangerous item slip onto a Christmas Eve flight.",
+ "genres": [
+ "Action",
+ "Thriller"
+ ],
+ "images": [
+ {
+ "coverType": "poster",
+ "url": "/MediaCover/75/poster.jpg",
+ "remoteUrl": "https://image.tmdb.org/t/p/original/sjMN7DRi4sGiledsmllEw5HJjPy.jpg"
+ },
+ {
+ "coverType": "fanart",
+ "url": "/MediaCover/75/fanart.jpg",
+ "remoteUrl": "https://image.tmdb.org/t/p/original/rhc8Mtuo3Kh8CndnlmTNMF8o9pU.jpg"
+ }
+ ],
+ "tags": [
+ "1 - heni"
+ ],
+ "originalLanguage": {
+ "id": 1,
+ "name": "English"
+ }
+ },
+ "addMethod": "manual",
+ "eventType": "MovieAdded",
+ "instanceName": "Radarr",
+ "applicationUrl": "https://radarr.synker.ovh"
+}
+
+### Movie qualify endpoint TEST
+
+POST {{Proxarr.Api_HostAddress}}/api/qualifier/movie
+Content-Type: application/json
+Accept: application/json
+{
+ "movie": {
+ "id": 1,
+ "title": "Test Title",
+ "year": 1970,
+ "releaseDate": "1970-01-01",
+ "folderPath": "C:\\testpath",
+ "tmdbId": 0,
+ "tags": [
+ "test-tag"
+ ]
+ },
+ "remoteMovie": {
+ "tmdbId": 1234,
+ "imdbId": "5678",
+ "title": "Test title",
+ "year": 1970
+ },
+ "release": {
+ "quality": "Test Quality",
+ "qualityVersion": 1,
+ "releaseGroup": "Test Group",
+ "releaseTitle": "Test Title",
+ "indexer": "Test Indexer",
+ "size": 9999999,
+ "customFormatScore": 0
+ },
+ "eventType": "Test",
+ "instanceName": "Radarr",
+ "applicationUrl": "https://radarr.synker.ovh"
+}
+
+### TV qualify endpoint
+
+POST {{Proxarr.Api_HostAddress}}/api/qualifier/tv
+Content-Type: application/json
+Accept: application/json
+{
+ "series": {
+ "id": 25,
+ "title": "Lost",
+ "titleSlug": "lost",
+ "path": "/Videos/Videos/shows/Lost",
+ "tvdbId": 73739,
+ "tvMazeId": 123,
+ "tmdbId": 4607,
+ "imdbId": "tt0411008",
+ "type": "standard",
+ "year": 2004,
+ "genres": [
+ "Action",
+ "Adventure",
+ "Drama",
+ "Fantasy",
+ "Mystery",
+ "Science Fiction",
+ "Thriller"
+ ],
+ "images": [
+ {
+ "coverType": "banner",
+ "url": "/MediaCover/25/banner.jpg?lastWrite=638707559740506834",
+ "remoteUrl": "https://artworks.thetvdb.com/banners/graphical/73739-g4.jpg"
+ },
+ {
+ "coverType": "poster",
+ "url": "/MediaCover/25/poster.jpg?lastWrite=638707559740745300",
+ "remoteUrl": "https://artworks.thetvdb.com/banners/posters/73739-11.jpg"
+ },
+ {
+ "coverType": "fanart",
+ "url": "/MediaCover/25/fanart.jpg?lastWrite=638707559742200054",
+ "remoteUrl": "https://artworks.thetvdb.com/banners/fanart/original/73739-34.jpg"
+ },
+ {
+ "coverType": "clearlogo",
+ "url": "/MediaCover/25/clearlogo.png?lastWrite=638707559742579613",
+ "remoteUrl": "https://artworks.thetvdb.com/banners/v4/series/73739/clearlogo/622b30b555156.png"
+ }
+ ],
+ "tags": [
+ "1 - heni"
+ ]
+ },
+ "eventType": "SeriesAdd",
+ "instanceName": "Sonarr",
+ "applicationUrl": "{{Sonarr.ApplicationUrl}}"
+}
+
+### TV qualify endpoint TEST
+
+POST {{Proxarr.Api_HostAddress}}/api/qualifier/tv
+Content-Type: application/json
+Accept: application/json
+{
+ "series": {
+ "id": 1,
+ "title": "Test Title",
+ "path": "C:\\testpath",
+ "tvdbId": 1234,
+ "tvMazeId": 0,
+ "tmdbId": 0,
+ "type": "standard",
+ "year": 0,
+ "tags": [
+ "test-tag"
+ ]
+ },
+ "episodes": [
+ {
+ "id": 123,
+ "episodeNumber": 1,
+ "seasonNumber": 1,
+ "title": "Test title",
+ "seriesId": 0,
+ "tvdbId": 0
+ }
+ ],
+ "eventType": "Test",
+ "instanceName": "Sonarr",
+ "applicationUrl": "http://sonarr"
+}
\ No newline at end of file
diff --git a/src/Proxarr.Api/Services/IRadarrService.cs b/src/Proxarr.Api/Services/IRadarrService.cs
new file mode 100644
index 0000000..18fb760
--- /dev/null
+++ b/src/Proxarr.Api/Services/IRadarrService.cs
@@ -0,0 +1,9 @@
+using Proxarr.Api.Models;
+
+namespace Proxarr.Api.Services
+{
+ public interface IRadarrService
+ {
+ Task Qualify(MovieAdded movieAdded, CancellationToken cancellationToken);
+ }
+}
\ No newline at end of file
diff --git a/src/Proxarr.Api/Services/ISonarrService.cs b/src/Proxarr.Api/Services/ISonarrService.cs
new file mode 100644
index 0000000..eb752b3
--- /dev/null
+++ b/src/Proxarr.Api/Services/ISonarrService.cs
@@ -0,0 +1,9 @@
+using Proxarr.Api.Models;
+
+namespace Proxarr.Api.Services
+{
+ public interface ISonarrService
+ {
+ Task Qualify(TvAdded tvAdded, CancellationToken cancellationToken);
+ }
+}
\ No newline at end of file
diff --git a/src/Proxarr.Api/Services/RadarrService.cs b/src/Proxarr.Api/Services/RadarrService.cs
new file mode 100644
index 0000000..e36964a
--- /dev/null
+++ b/src/Proxarr.Api/Services/RadarrService.cs
@@ -0,0 +1,122 @@
+using Microsoft.Extensions.Options;
+using Proxarr.Api.Models;
+using Radarr.Http.Client;
+using TMDbLib.Client;
+
+namespace Proxarr.Api.Services
+{
+ public class RadarrService : IRadarrService
+ {
+ private readonly ILogger _logger;
+ private readonly TMDbClient _tMDbClient;
+ private readonly AppConfiguration _appConfiguration;
+ private readonly RadarrClient _radarrClient;
+
+ public RadarrService(ILogger logger,
+ TMDbClient tMDbClient,
+ IOptions appConfiguration,
+ RadarrClient radarrClient)
+ {
+ _logger = logger;
+ _tMDbClient = tMDbClient;
+ _appConfiguration = appConfiguration?.Value ?? throw new ArgumentNullException(nameof(appConfiguration));
+ _radarrClient = radarrClient;
+ }
+
+ //
+ public async Task Qualify(MovieAdded movieAdded, CancellationToken cancellationToken)
+ {
+ ArgumentNullException.ThrowIfNull(movieAdded);
+
+ _logger.LogInformation("Qualifying movie {Title}", movieAdded.Movie.Title);
+
+ var tmdbItem = await _tMDbClient
+ .GetMovieAsync(movieAdded.Movie.TmdbId, TMDbLib.Objects.Movies.MovieMethods.WatchProviders, cancellationToken)
+ .ConfigureAwait(false);
+
+ if (tmdbItem != null && tmdbItem.WatchProviders.Results?.Count > 0)
+ {
+ _radarrClient.BaseUrl = movieAdded.ApplicationUrl;
+ var movieRadarr = await _radarrClient.MovieGET2Async(movieAdded.Movie.Id, cancellationToken).ConfigureAwait(false);
+
+ if (movieRadarr == null)
+ {
+ _logger.LogError("Movie not found in Radarr {Title}", movieAdded.Movie.Title);
+ return "NotFound";
+ }
+
+ await UpdateTags(tmdbItem, movieRadarr, cancellationToken).ConfigureAwait(false);
+ await _radarrClient
+ .MoviePUTAsync(false, movieRadarr.Id.ToString(), movieRadarr, cancellationToken)
+ .ConfigureAwait(false);
+ }
+
+ return string.Empty;
+ }
+
+ private async Task UpdateTags(TMDbLib.Objects.Movies.Movie tmdbItem,
+ MovieResource movieRadarr,
+ CancellationToken cancellationToken)
+ {
+ var matched = false;
+ var existingTags = await _radarrClient.TagAllAsync(cancellationToken).ConfigureAwait(false);
+
+ foreach (var provider in _appConfiguration.WatchProviders)
+ {
+ if (tmdbItem.WatchProviders.Results.TryGetValue(provider.Key, out var matchedProvider))
+ {
+ foreach (var pr in provider.Value)
+ {
+ var providerTag = pr.Replace(" ", "_");
+
+ if (matchedProvider.Free?.Any(x => x.ProviderName.Equals(pr, StringComparison.OrdinalIgnoreCase)) == true ||
+ matchedProvider.FlatRate?.Any(x => x.ProviderName.Equals(pr, StringComparison.OrdinalIgnoreCase)) == true)
+ {
+ _logger.LogInformation("Matched Free/FlatRate provider {WatchProvider} for {Title}", pr, movieRadarr.Title);
+ matched |= await AddTag(movieRadarr, matched, existingTags, providerTag, cancellationToken).ConfigureAwait(false);
+ }
+ if (matchedProvider.Buy?.Any(x => x.ProviderName.Equals(pr, StringComparison.OrdinalIgnoreCase)) == true)
+ {
+ _logger.LogInformation("Found buy provider {WatchProvider} for {Title}", pr, movieRadarr.Title);
+ }
+ if (matchedProvider.Rent?.Any(x => x.ProviderName.Equals(pr, StringComparison.OrdinalIgnoreCase)) == true)
+ {
+ _logger.LogInformation("Found rent provider {WatchProvider} for {Title}", pr, movieRadarr.Title);
+ }
+ }
+ }
+ }
+
+ if (!matched)
+ {
+ await AddTag(movieRadarr, matched, existingTags, _appConfiguration.TAG_NAME, cancellationToken).ConfigureAwait(false);
+ }
+ }
+
+ private async Task AddTag(MovieResource movieRadarr,
+ bool updated,
+ ICollection existingTags,
+ string providerTag,
+ CancellationToken cancellationToken)
+ {
+ providerTag = providerTag.Replace(" ", "_");
+
+ var tag = existingTags.FirstOrDefault(x => x.Label.Equals(providerTag, StringComparison.OrdinalIgnoreCase));
+
+ if (tag is null)
+ {
+ tag = new TagResource { Label = providerTag };
+ tag = await _radarrClient.TagPOSTAsync(tag, cancellationToken).ConfigureAwait(false);
+ }
+
+ if (!movieRadarr.Tags.Contains(tag.Id))
+ {
+ _logger.LogInformation("Adding tag {Tag} for {Title}", tag.Label, movieRadarr.Title);
+ movieRadarr.Tags.Add(tag.Id);
+ updated = true;
+ }
+
+ return updated;
+ }
+ }
+}
diff --git a/src/Proxarr.Api/Services/SonarrService.cs b/src/Proxarr.Api/Services/SonarrService.cs
new file mode 100644
index 0000000..a6fca4a
--- /dev/null
+++ b/src/Proxarr.Api/Services/SonarrService.cs
@@ -0,0 +1,123 @@
+using Microsoft.Extensions.Options;
+using Proxarr.Api.Models;
+using Sonarr.Http.Client;
+using TMDbLib.Client;
+
+namespace Proxarr.Api.Services
+{
+ public class SonarrService : ISonarrService
+ {
+ private readonly ILogger _logger;
+ private readonly TMDbClient _tMDbClient;
+ private readonly AppConfiguration _appConfiguration;
+ private readonly SonarrClient _sonarrClient;
+
+ public SonarrService(ILogger logger,
+ TMDbClient tMDbClient,
+ IOptions appConfiguration,
+ SonarrClient sonarrClient)
+ {
+ _logger = logger;
+ _tMDbClient = tMDbClient;
+ _appConfiguration = appConfiguration?.Value ?? throw new ArgumentNullException(nameof(appConfiguration));
+ _sonarrClient = sonarrClient;
+ }
+
+ //
+ public async Task Qualify(TvAdded tvAdded, CancellationToken cancellationToken)
+ {
+ ArgumentNullException.ThrowIfNull(tvAdded);
+
+ _logger.LogInformation("Qualifying tv {Title}", tvAdded.Series.Title);
+ // TODO: validation
+
+ var tmdbItem = await _tMDbClient
+ .GetTvShowAsync(tvAdded.Series.TmdbId, TMDbLib.Objects.TvShows.TvShowMethods.WatchProviders, cancellationToken: cancellationToken)
+ .ConfigureAwait(false);
+
+ if (tmdbItem != null && tmdbItem.WatchProviders.Results?.Count > 0)
+ {
+ _sonarrClient.BaseUrl = tvAdded.ApplicationUrl;
+ var seriesSonarr = await _sonarrClient.SeriesGETAsync(tvAdded.Series.Id, false, cancellationToken).ConfigureAwait(false);
+
+ if (seriesSonarr == null)
+ {
+ _logger.LogError("Tv not found in Sonarr {Title}", tvAdded.Series.Title);
+ return "NotFound";
+ }
+
+ await UpdateTags(tmdbItem, seriesSonarr, cancellationToken).ConfigureAwait(false);
+ await _sonarrClient
+ .SeriesPUTAsync(false, seriesSonarr.Id.ToString(), seriesSonarr, cancellationToken)
+ .ConfigureAwait(false);
+ }
+
+ return string.Empty;
+ }
+
+ private async Task UpdateTags(TMDbLib.Objects.TvShows.TvShow tmdbItem,
+ SeriesResource seriesSonarr,
+ CancellationToken cancellationToken)
+ {
+ var matched = false;
+ var existingTags = await _sonarrClient.TagAllAsync(cancellationToken).ConfigureAwait(false);
+
+ foreach (var provider in _appConfiguration.WatchProviders)
+ {
+ if (tmdbItem.WatchProviders.Results.TryGetValue(provider.Key, out var matchedProvider))
+ {
+ foreach (var pr in provider.Value)
+ {
+ var providerTag = pr.Replace(" ", "_");
+
+ if (matchedProvider.Free?.Any(x => x.ProviderName.Equals(pr, StringComparison.OrdinalIgnoreCase)) == true ||
+ matchedProvider.FlatRate?.Any(x => x.ProviderName.Equals(pr, StringComparison.OrdinalIgnoreCase)) == true)
+ {
+ _logger.LogInformation("Matched Free/FlatRate provider {WatchProvider} for {Title}", pr, seriesSonarr.Title);
+ matched |= await AddTag(seriesSonarr, matched, existingTags, providerTag, cancellationToken).ConfigureAwait(false);
+ }
+ if (matchedProvider.Buy?.Any(x => x.ProviderName.Equals(pr, StringComparison.OrdinalIgnoreCase)) == true)
+ {
+ _logger.LogInformation("Found buy provider {WatchProvider} for {Title}", pr, seriesSonarr.Title);
+ }
+ if (matchedProvider.Rent?.Any(x => x.ProviderName.Equals(pr, StringComparison.OrdinalIgnoreCase)) == true)
+ {
+ _logger.LogInformation("Found rent provider {WatchProvider} for {Title}", pr, seriesSonarr.Title);
+ }
+ }
+ }
+ }
+
+ if (!matched)
+ {
+ await AddTag(seriesSonarr, matched, existingTags, _appConfiguration.TAG_NAME, cancellationToken).ConfigureAwait(false);
+ }
+ }
+
+ private async Task AddTag(SeriesResource seriesSonarr,
+ bool updated,
+ ICollection existingTags,
+ string providerTag,
+ CancellationToken cancellationToken)
+ {
+ providerTag = providerTag.Replace(" ", "_");
+
+ var tag = existingTags.FirstOrDefault(x => x.Label.Equals(providerTag, StringComparison.OrdinalIgnoreCase));
+
+ if (tag is null)
+ {
+ tag = new TagResource { Label = providerTag };
+ tag = await _sonarrClient.TagPOSTAsync(tag, cancellationToken).ConfigureAwait(false);
+ }
+
+ if (!seriesSonarr.Tags.Contains(tag.Id))
+ {
+ _logger.LogInformation("Adding tag {Tag} for {Title}", tag.Label, seriesSonarr.Title);
+ seriesSonarr.Tags.Add(tag.Id);
+ updated = true;
+ }
+
+ return updated;
+ }
+ }
+}
diff --git a/src/Proxarr.Api/config.yml b/src/Proxarr.Api/config.yml
new file mode 100644
index 0000000..018041b
--- /dev/null
+++ b/src/Proxarr.Api/config.yml
@@ -0,0 +1,32 @@
+---
+Serilog:
+ Using:
+ - Serilog.Sinks.Console
+ - Serilog.Sinks.File
+ MinimumLevel:
+ Default: "Information"
+ Override:
+ Microsoft: Information
+ System: Information
+ Enrich:
+ - FromLogContext
+ - WithMachineName
+ - WithProcessId
+ - WithThreadId
+ WriteTo:
+ - Name: Console
+ - Name: File
+ Args:
+ path: "%LOG_FOLDER%/Serilog.log"
+ rollingInterval: Day
+ outputTemplate: "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} {CorrelationId} {Level:u3}] {Username} {Message:lj}{NewLine}{Exception}"
+AllowedHosts: "*"
+AppConfiguration:
+ TMDB_API_KEY: {{ TMDB API KEY}}
+ TAG_NAME: "q" # must be the same as the tag name in indexers
+ WATCH_PROVIDERS: "FR:Netflix,US:Amazon Prime Video" # format: REGION:PROVIDER,REGION:PROVIDER
+ Clients: # one or more clients
+ - ApiKey: {{ SONARR_OR_RADARR_API_KEY }}
+ BaseUrl: "https://radarr.com"
+ - ApiKey: {{ SONARR_OR_RADARR_API_KEY }}
+ BaseUrl: "https://sonarr.com"
\ No newline at end of file
diff --git a/src/Proxarr.sln b/src/Proxarr.sln
new file mode 100644
index 0000000..cac6f99
--- /dev/null
+++ b/src/Proxarr.sln
@@ -0,0 +1,57 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.12.35527.113
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Proxarr.Api", "Proxarr.Api\Proxarr.Api.csproj", "{13FF69C0-9C9F-4E5A-8F12-62659F607295}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Radarr.Http.Client", "Radarr.Http.Client\Radarr.Http.Client.csproj", "{54A6F604-8A08-48FF-9599-3A1CC2FFEC8F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sonarr.Http.Client", "Sonarr.Http.Client\Sonarr.Http.Client.csproj", "{E899BE83-69DB-4E0B-A54C-07907043A044}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{07C8FD5B-2CFB-44CA-A0C8-FC456188447B}"
+ ProjectSection(SolutionItems) = preProject
+ ..\.dockerignore = ..\.dockerignore
+ ..\.gitignore = ..\.gitignore
+ ..\docker-compse.yml = ..\docker-compse.yml
+ ..\.github\workflows\docker-image.yml = ..\.github\workflows\docker-image.yml
+ ..\Dockerfile = ..\Dockerfile
+ ..\README.md = ..\README.md
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{9E72FE54-7CE0-447E-B7E6-15EC4A05CDA3}"
+ ProjectSection(SolutionItems) = preProject
+ ..\.github\ISSUE_TEMPLATE\bug-report.yml = ..\.github\ISSUE_TEMPLATE\bug-report.yml
+ ..\.github\workflows\docker-image.yml = ..\.github\workflows\docker-image.yml
+ ..\.github\ISSUE_TEMPLATE\feature-request.yml = ..\.github\ISSUE_TEMPLATE\feature-request.yml
+ ..\.github\workflows\pr.yml = ..\.github\workflows\pr.yml
+ ..\.github\pull_request_template.md = ..\.github\pull_request_template.md
+ ..\.github\release.yml = ..\.github\release.yml
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {13FF69C0-9C9F-4E5A-8F12-62659F607295}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {13FF69C0-9C9F-4E5A-8F12-62659F607295}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {13FF69C0-9C9F-4E5A-8F12-62659F607295}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {13FF69C0-9C9F-4E5A-8F12-62659F607295}.Release|Any CPU.Build.0 = Release|Any CPU
+ {54A6F604-8A08-48FF-9599-3A1CC2FFEC8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {54A6F604-8A08-48FF-9599-3A1CC2FFEC8F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {54A6F604-8A08-48FF-9599-3A1CC2FFEC8F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {54A6F604-8A08-48FF-9599-3A1CC2FFEC8F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E899BE83-69DB-4E0B-A54C-07907043A044}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E899BE83-69DB-4E0B-A54C-07907043A044}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E899BE83-69DB-4E0B-A54C-07907043A044}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E899BE83-69DB-4E0B-A54C-07907043A044}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {9E72FE54-7CE0-447E-B7E6-15EC4A05CDA3} = {07C8FD5B-2CFB-44CA-A0C8-FC456188447B}
+ EndGlobalSection
+EndGlobal
diff --git a/src/Radarr.Http.Client/OpenAPIs/openapi.json b/src/Radarr.Http.Client/OpenAPIs/openapi.json
new file mode 100644
index 0000000..d64d8e6
--- /dev/null
+++ b/src/Radarr.Http.Client/OpenAPIs/openapi.json
@@ -0,0 +1,12709 @@
+{
+ "openapi": "3.0.1",
+ "info": {
+ "title": "Radarr",
+ "description": "Radarr API docs",
+ "license": {
+ "name": "GPL-3.0",
+ "url": "https://github.com/Radarr/Radarr/blob/develop/LICENSE"
+ },
+ "version": "3.0.0"
+ },
+ "servers": [
+ {
+ "url": "{protocol}://{hostpath}",
+ "variables": {
+ "protocol": {
+ "default": "http",
+ "enum": [
+ "http",
+ "https"
+ ]
+ },
+ "hostpath": {
+ "default": "localhost:7878"
+ }
+ }
+ }
+ ],
+ "paths": {
+ "/api/v3/alttitle": {
+ "get": {
+ "tags": [
+ "AlternativeTitle"
+ ],
+ "parameters": [
+ {
+ "name": "movieId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "movieMetadataId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AlternativeTitleResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AlternativeTitleResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AlternativeTitleResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/alttitle/{id}": {
+ "get": {
+ "tags": [
+ "AlternativeTitle"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/AlternativeTitleResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AlternativeTitleResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AlternativeTitleResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api": {
+ "get": {
+ "tags": [
+ "ApiInfo"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ApiInfoResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/login": {
+ "post": {
+ "tags": [
+ "Authentication"
+ ],
+ "parameters": [
+ {
+ "name": "returnUrl",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "username": {
+ "type": "string"
+ },
+ "password": {
+ "type": "string"
+ },
+ "rememberMe": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": {
+ "username": {
+ "style": "form"
+ },
+ "password": {
+ "style": "form"
+ },
+ "rememberMe": {
+ "style": "form"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "StaticResource"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/logout": {
+ "get": {
+ "tags": [
+ "Authentication"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/autotagging": {
+ "post": {
+ "tags": [
+ "AutoTagging"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AutoTaggingResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/AutoTaggingResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AutoTaggingResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AutoTaggingResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "AutoTagging"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AutoTaggingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/autotagging/{id}": {
+ "put": {
+ "tags": [
+ "AutoTagging"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AutoTaggingResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/AutoTaggingResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AutoTaggingResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AutoTaggingResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "AutoTagging"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "AutoTagging"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/AutoTaggingResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AutoTaggingResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AutoTaggingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/autotagging/schema": {
+ "get": {
+ "tags": [
+ "AutoTagging"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/system/backup": {
+ "get": {
+ "tags": [
+ "Backup"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BackupResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BackupResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BackupResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/system/backup/{id}": {
+ "delete": {
+ "tags": [
+ "Backup"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/system/backup/restore/{id}": {
+ "post": {
+ "tags": [
+ "Backup"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/system/backup/restore/upload": {
+ "post": {
+ "tags": [
+ "Backup"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/blocklist": {
+ "get": {
+ "tags": [
+ "Blocklist"
+ ],
+ "parameters": [
+ {
+ "name": "page",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 1
+ }
+ },
+ {
+ "name": "pageSize",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 10
+ }
+ },
+ {
+ "name": "sortKey",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "sortDirection",
+ "in": "query",
+ "schema": {
+ "$ref": "#/components/schemas/SortDirection"
+ }
+ },
+ {
+ "name": "movieIds",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ {
+ "name": "protocols",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DownloadProtocol"
+ }
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/BlocklistResourcePagingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/blocklist/movie": {
+ "get": {
+ "tags": [
+ "Blocklist"
+ ],
+ "parameters": [
+ {
+ "name": "movieId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BlocklistResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BlocklistResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BlocklistResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/blocklist/{id}": {
+ "delete": {
+ "tags": [
+ "Blocklist"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/blocklist/bulk": {
+ "delete": {
+ "tags": [
+ "Blocklist"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/BlocklistBulkResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/BlocklistBulkResource"
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "$ref": "#/components/schemas/BlocklistBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/calendar": {
+ "get": {
+ "tags": [
+ "Calendar"
+ ],
+ "parameters": [
+ {
+ "name": "start",
+ "in": "query",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "name": "end",
+ "in": "query",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "name": "unmonitored",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "tags",
+ "in": "query",
+ "schema": {
+ "type": "string",
+ "default": ""
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MovieResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/feed/v3/calendar/radarr.ics": {
+ "get": {
+ "tags": [
+ "CalendarFeed"
+ ],
+ "parameters": [
+ {
+ "name": "pastDays",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 7
+ }
+ },
+ {
+ "name": "futureDays",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 28
+ }
+ },
+ {
+ "name": "tags",
+ "in": "query",
+ "schema": {
+ "type": "string",
+ "default": ""
+ }
+ },
+ {
+ "name": "unmonitored",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/collection": {
+ "get": {
+ "tags": [
+ "Collection"
+ ],
+ "parameters": [
+ {
+ "name": "tmdbId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CollectionResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Collection"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CollectionUpdateResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/collection/{id}": {
+ "put": {
+ "tags": [
+ "Collection"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CollectionResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/CollectionResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CollectionResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CollectionResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Collection"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/CollectionResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CollectionResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CollectionResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/command": {
+ "post": {
+ "tags": [
+ "Command"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CommandResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CommandResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Command"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CommandResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CommandResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CommandResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/command/{id}": {
+ "delete": {
+ "tags": [
+ "Command"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Command"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/CommandResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CommandResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CommandResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/credit": {
+ "get": {
+ "tags": [
+ "Credit"
+ ],
+ "parameters": [
+ {
+ "name": "movieId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "movieMetadataId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/credit/{id}": {
+ "get": {
+ "tags": [
+ "Credit"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/CreditResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CreditResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CreditResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/customfilter": {
+ "get": {
+ "tags": [
+ "CustomFilter"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFilterResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFilterResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFilterResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "CustomFilter"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFilterResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFilterResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFilterResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFilterResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/customfilter/{id}": {
+ "put": {
+ "tags": [
+ "CustomFilter"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFilterResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFilterResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFilterResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFilterResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "CustomFilter"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "CustomFilter"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFilterResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFilterResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFilterResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/customformat": {
+ "get": {
+ "tags": [
+ "CustomFormat"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "CustomFormat"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/customformat/{id}": {
+ "put": {
+ "tags": [
+ "CustomFormat"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "CustomFormat"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "CustomFormat"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/customformat/bulk": {
+ "put": {
+ "tags": [
+ "CustomFormat"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "CustomFormat"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/customformat/schema": {
+ "get": {
+ "tags": [
+ "CustomFormat"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/wanted/cutoff": {
+ "get": {
+ "tags": [
+ "Cutoff"
+ ],
+ "parameters": [
+ {
+ "name": "page",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 1
+ }
+ },
+ {
+ "name": "pageSize",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 10
+ }
+ },
+ {
+ "name": "sortKey",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "sortDirection",
+ "in": "query",
+ "schema": {
+ "$ref": "#/components/schemas/SortDirection"
+ }
+ },
+ {
+ "name": "monitored",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieResourcePagingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/delayprofile": {
+ "post": {
+ "tags": [
+ "DelayProfile"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "DelayProfile"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/delayprofile/{id}": {
+ "delete": {
+ "tags": [
+ "DelayProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "DelayProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "DelayProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/delayprofile/reorder/{id}": {
+ "put": {
+ "tags": [
+ "DelayProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "after",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/diskspace": {
+ "get": {
+ "tags": [
+ "DiskSpace"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DiskSpaceResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DiskSpaceResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DiskSpaceResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/downloadclient": {
+ "get": {
+ "tags": [
+ "DownloadClient"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "DownloadClient"
+ ],
+ "parameters": [
+ {
+ "name": "forceSave",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/downloadclient/{id}": {
+ "put": {
+ "tags": [
+ "DownloadClient"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "forceSave",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "DownloadClient"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "DownloadClient"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/downloadclient/bulk": {
+ "put": {
+ "tags": [
+ "DownloadClient"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "DownloadClient"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/downloadclient/schema": {
+ "get": {
+ "tags": [
+ "DownloadClient"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/downloadclient/test": {
+ "post": {
+ "tags": [
+ "DownloadClient"
+ ],
+ "parameters": [
+ {
+ "name": "forceTest",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/downloadclient/testall": {
+ "post": {
+ "tags": [
+ "DownloadClient"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/downloadclient/action/{name}": {
+ "post": {
+ "tags": [
+ "DownloadClient"
+ ],
+ "parameters": [
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/config/downloadclient": {
+ "get": {
+ "tags": [
+ "DownloadClientConfig"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/config/downloadclient/{id}": {
+ "put": {
+ "tags": [
+ "DownloadClientConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientConfigResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientConfigResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientConfigResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "DownloadClientConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientConfigResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/extrafile": {
+ "get": {
+ "tags": [
+ "ExtraFile"
+ ],
+ "parameters": [
+ {
+ "name": "movieId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ExtraFileResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ExtraFileResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ExtraFileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/filesystem": {
+ "get": {
+ "tags": [
+ "FileSystem"
+ ],
+ "parameters": [
+ {
+ "name": "path",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "includeFiles",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "allowFoldersWithoutTrailingSlashes",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/filesystem/type": {
+ "get": {
+ "tags": [
+ "FileSystem"
+ ],
+ "parameters": [
+ {
+ "name": "path",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/filesystem/mediafiles": {
+ "get": {
+ "tags": [
+ "FileSystem"
+ ],
+ "parameters": [
+ {
+ "name": "path",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/health": {
+ "get": {
+ "tags": [
+ "Health"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/HealthResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/HealthResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/HealthResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/history": {
+ "get": {
+ "tags": [
+ "History"
+ ],
+ "parameters": [
+ {
+ "name": "page",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 1
+ }
+ },
+ {
+ "name": "pageSize",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 10
+ }
+ },
+ {
+ "name": "sortKey",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "sortDirection",
+ "in": "query",
+ "schema": {
+ "$ref": "#/components/schemas/SortDirection"
+ }
+ },
+ {
+ "name": "includeMovie",
+ "in": "query",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "name": "eventType",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ {
+ "name": "downloadId",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "movieIds",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ {
+ "name": "languages",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ {
+ "name": "quality",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HistoryResourcePagingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/history/since": {
+ "get": {
+ "tags": [
+ "History"
+ ],
+ "parameters": [
+ {
+ "name": "date",
+ "in": "query",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "name": "eventType",
+ "in": "query",
+ "schema": {
+ "$ref": "#/components/schemas/MovieHistoryEventType"
+ }
+ },
+ {
+ "name": "includeMovie",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/HistoryResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/history/movie": {
+ "get": {
+ "tags": [
+ "History"
+ ],
+ "parameters": [
+ {
+ "name": "movieId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "eventType",
+ "in": "query",
+ "schema": {
+ "$ref": "#/components/schemas/MovieHistoryEventType"
+ }
+ },
+ {
+ "name": "includeMovie",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/HistoryResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/history/failed/{id}": {
+ "post": {
+ "tags": [
+ "History"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/config/host": {
+ "get": {
+ "tags": [
+ "HostConfig"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/HostConfigResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HostConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HostConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/config/host/{id}": {
+ "put": {
+ "tags": [
+ "HostConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HostConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HostConfigResource"
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "$ref": "#/components/schemas/HostConfigResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/HostConfigResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HostConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HostConfigResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "HostConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/HostConfigResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HostConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HostConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/importlist": {
+ "get": {
+ "tags": [
+ "ImportList"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ImportListResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "ImportList"
+ ],
+ "parameters": [
+ {
+ "name": "forceSave",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/importlist/{id}": {
+ "put": {
+ "tags": [
+ "ImportList"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "forceSave",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ImportList"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ImportList"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/importlist/bulk": {
+ "put": {
+ "tags": [
+ "ImportList"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ImportList"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/importlist/schema": {
+ "get": {
+ "tags": [
+ "ImportList"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ImportListResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/importlist/test": {
+ "post": {
+ "tags": [
+ "ImportList"
+ ],
+ "parameters": [
+ {
+ "name": "forceTest",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/importlist/testall": {
+ "post": {
+ "tags": [
+ "ImportList"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/importlist/action/{name}": {
+ "post": {
+ "tags": [
+ "ImportList"
+ ],
+ "parameters": [
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/config/importlist": {
+ "get": {
+ "tags": [
+ "ImportListConfig"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/config/importlist/{id}": {
+ "put": {
+ "tags": [
+ "ImportListConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListConfigResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListConfigResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListConfigResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ImportListConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListConfigResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/exclusions": {
+ "get": {
+ "tags": [
+ "ImportListExclusion"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true
+ },
+ "post": {
+ "tags": [
+ "ImportListExclusion"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/exclusions/paged": {
+ "get": {
+ "tags": [
+ "ImportListExclusion"
+ ],
+ "parameters": [
+ {
+ "name": "page",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 1
+ }
+ },
+ {
+ "name": "pageSize",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 10
+ }
+ },
+ {
+ "name": "sortKey",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "sortDirection",
+ "in": "query",
+ "schema": {
+ "$ref": "#/components/schemas/SortDirection"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionResourcePagingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/exclusions/{id}": {
+ "put": {
+ "tags": [
+ "ImportListExclusion"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ImportListExclusion"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ImportListExclusion"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/exclusions/bulk": {
+ "post": {
+ "tags": [
+ "ImportListExclusion"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ImportListExclusion"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionBulkResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionBulkResource"
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/importlist/movie": {
+ "get": {
+ "tags": [
+ "ImportListMovies"
+ ],
+ "parameters": [
+ {
+ "name": "includeRecommendations",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "includeTrending",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "includePopular",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "ImportListMovies"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MovieResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MovieResource"
+ }
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MovieResource"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/indexer": {
+ "get": {
+ "tags": [
+ "Indexer"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/IndexerResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "Indexer"
+ ],
+ "parameters": [
+ {
+ "name": "forceSave",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/indexer/{id}": {
+ "put": {
+ "tags": [
+ "Indexer"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "forceSave",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Indexer"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Indexer"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/indexer/bulk": {
+ "put": {
+ "tags": [
+ "Indexer"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Indexer"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/indexer/schema": {
+ "get": {
+ "tags": [
+ "Indexer"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/IndexerResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/indexer/test": {
+ "post": {
+ "tags": [
+ "Indexer"
+ ],
+ "parameters": [
+ {
+ "name": "forceTest",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/indexer/testall": {
+ "post": {
+ "tags": [
+ "Indexer"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/indexer/action/{name}": {
+ "post": {
+ "tags": [
+ "Indexer"
+ ],
+ "parameters": [
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/config/indexer": {
+ "get": {
+ "tags": [
+ "IndexerConfig"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/config/indexer/{id}": {
+ "put": {
+ "tags": [
+ "IndexerConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerConfigResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerConfigResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerConfigResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "IndexerConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerConfigResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/indexerflag": {
+ "get": {
+ "tags": [
+ "IndexerFlag"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/IndexerFlagResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/IndexerFlagResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/IndexerFlagResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/language": {
+ "get": {
+ "tags": [
+ "Language"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/LanguageResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/LanguageResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/LanguageResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/language/{id}": {
+ "get": {
+ "tags": [
+ "Language"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/LanguageResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LanguageResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LanguageResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/localization": {
+ "get": {
+ "tags": [
+ "Localization"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "string"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "string"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/localization/language": {
+ "get": {
+ "tags": [
+ "Localization"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LocalizationLanguageResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/log": {
+ "get": {
+ "tags": [
+ "Log"
+ ],
+ "parameters": [
+ {
+ "name": "page",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 1
+ }
+ },
+ {
+ "name": "pageSize",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 10
+ }
+ },
+ {
+ "name": "sortKey",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "sortDirection",
+ "in": "query",
+ "schema": {
+ "$ref": "#/components/schemas/SortDirection"
+ }
+ },
+ {
+ "name": "level",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LogResourcePagingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/log/file": {
+ "get": {
+ "tags": [
+ "LogFile"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/LogFileResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/LogFileResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/LogFileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/log/file/{filename}": {
+ "get": {
+ "tags": [
+ "LogFile"
+ ],
+ "parameters": [
+ {
+ "name": "filename",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "pattern": "[-.a-zA-Z0-9]+?\\.txt",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/manualimport": {
+ "get": {
+ "tags": [
+ "ManualImport"
+ ],
+ "parameters": [
+ {
+ "name": "folder",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "downloadId",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "movieId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "filterExistingFiles",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ManualImportResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "ManualImport"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ManualImportReprocessResource"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/mediacover/{movieId}/{filename}": {
+ "get": {
+ "tags": [
+ "MediaCover"
+ ],
+ "parameters": [
+ {
+ "name": "movieId",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "filename",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "pattern": "(.+)\\.(jpg|png|gif)",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/config/mediamanagement": {
+ "get": {
+ "tags": [
+ "MediaManagementConfig"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MediaManagementConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/config/mediamanagement/{id}": {
+ "put": {
+ "tags": [
+ "MediaManagementConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MediaManagementConfigResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/MediaManagementConfigResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MediaManagementConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MediaManagementConfigResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "MediaManagementConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/MediaManagementConfigResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MediaManagementConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MediaManagementConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/metadata": {
+ "get": {
+ "tags": [
+ "Metadata"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MetadataResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "Metadata"
+ ],
+ "parameters": [
+ {
+ "name": "forceSave",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/metadata/{id}": {
+ "put": {
+ "tags": [
+ "Metadata"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "forceSave",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Metadata"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Metadata"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/metadata/schema": {
+ "get": {
+ "tags": [
+ "Metadata"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MetadataResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/metadata/test": {
+ "post": {
+ "tags": [
+ "Metadata"
+ ],
+ "parameters": [
+ {
+ "name": "forceTest",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/metadata/testall": {
+ "post": {
+ "tags": [
+ "Metadata"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/metadata/action/{name}": {
+ "post": {
+ "tags": [
+ "Metadata"
+ ],
+ "parameters": [
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/config/metadata": {
+ "get": {
+ "tags": [
+ "MetadataConfig"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/config/metadata/{id}": {
+ "put": {
+ "tags": [
+ "MetadataConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataConfigResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataConfigResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataConfigResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "MetadataConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataConfigResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/wanted/missing": {
+ "get": {
+ "tags": [
+ "Missing"
+ ],
+ "parameters": [
+ {
+ "name": "page",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 1
+ }
+ },
+ {
+ "name": "pageSize",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 10
+ }
+ },
+ {
+ "name": "sortKey",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "sortDirection",
+ "in": "query",
+ "schema": {
+ "$ref": "#/components/schemas/SortDirection"
+ }
+ },
+ {
+ "name": "monitored",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieResourcePagingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/movie": {
+ "get": {
+ "tags": [
+ "Movie"
+ ],
+ "parameters": [
+ {
+ "name": "tmdbId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "excludeLocalCovers",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "languageId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MovieResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MovieResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "Movie"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/movie/{id}": {
+ "put": {
+ "tags": [
+ "Movie"
+ ],
+ "parameters": [
+ {
+ "name": "moveFiles",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Movie"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "deleteFiles",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "addImportExclusion",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Movie"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/movie/editor": {
+ "put": {
+ "tags": [
+ "MovieEditor"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieEditorResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieEditorResource"
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieEditorResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "MovieEditor"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieEditorResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieEditorResource"
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieEditorResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/moviefile": {
+ "get": {
+ "tags": [
+ "MovieFile"
+ ],
+ "parameters": [
+ {
+ "name": "movieId",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ {
+ "name": "movieFileIds",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MovieFileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/moviefile/{id}": {
+ "put": {
+ "tags": [
+ "MovieFile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieFileResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieFileResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieFileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieFileResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "MovieFile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "MovieFile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieFileResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieFileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieFileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/moviefile/editor": {
+ "put": {
+ "tags": [
+ "MovieFile"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieFileListResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/moviefile/bulk": {
+ "delete": {
+ "tags": [
+ "MovieFile"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieFileListResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/movie/import": {
+ "post": {
+ "tags": [
+ "MovieImport"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MovieResource"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MovieResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/movie/lookup/tmdb": {
+ "get": {
+ "tags": [
+ "MovieLookup"
+ ],
+ "parameters": [
+ {
+ "name": "tmdbId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/movie/lookup/imdb": {
+ "get": {
+ "tags": [
+ "MovieLookup"
+ ],
+ "parameters": [
+ {
+ "name": "imdbId",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MovieResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/movie/lookup": {
+ "get": {
+ "tags": [
+ "MovieLookup"
+ ],
+ "parameters": [
+ {
+ "name": "term",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MovieResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/config/naming": {
+ "get": {
+ "tags": [
+ "NamingConfig"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/NamingConfigResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NamingConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NamingConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/config/naming/{id}": {
+ "put": {
+ "tags": [
+ "NamingConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NamingConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NamingConfigResource"
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "$ref": "#/components/schemas/NamingConfigResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/NamingConfigResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NamingConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NamingConfigResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "NamingConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/NamingConfigResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NamingConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NamingConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/config/naming/examples": {
+ "get": {
+ "tags": [
+ "NamingConfig"
+ ],
+ "parameters": [
+ {
+ "name": "renameMovies",
+ "in": "query",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "name": "replaceIllegalCharacters",
+ "in": "query",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "name": "colonReplacementFormat",
+ "in": "query",
+ "schema": {
+ "$ref": "#/components/schemas/ColonReplacementFormat"
+ }
+ },
+ {
+ "name": "standardMovieFormat",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "movieFolderFormat",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "id",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "resourceName",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/notification": {
+ "get": {
+ "tags": [
+ "Notification"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/NotificationResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "Notification"
+ ],
+ "parameters": [
+ {
+ "name": "forceSave",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/notification/{id}": {
+ "put": {
+ "tags": [
+ "Notification"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "forceSave",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Notification"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Notification"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/notification/schema": {
+ "get": {
+ "tags": [
+ "Notification"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/NotificationResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/notification/test": {
+ "post": {
+ "tags": [
+ "Notification"
+ ],
+ "parameters": [
+ {
+ "name": "forceTest",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/notification/testall": {
+ "post": {
+ "tags": [
+ "Notification"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/notification/action/{name}": {
+ "post": {
+ "tags": [
+ "Notification"
+ ],
+ "parameters": [
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/parse": {
+ "get": {
+ "tags": [
+ "Parse"
+ ],
+ "parameters": [
+ {
+ "name": "title",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/ParseResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ParseResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ParseResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/ping": {
+ "get": {
+ "tags": [
+ "Ping"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PingResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "head": {
+ "tags": [
+ "Ping"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/qualitydefinition/{id}": {
+ "put": {
+ "tags": [
+ "QualityDefinition"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "QualityDefinition"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/qualitydefinition": {
+ "get": {
+ "tags": [
+ "QualityDefinition"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/qualitydefinition/update": {
+ "put": {
+ "tags": [
+ "QualityDefinition"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/qualityprofile": {
+ "post": {
+ "tags": [
+ "QualityProfile"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "QualityProfile"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/qualityprofile/{id}": {
+ "delete": {
+ "tags": [
+ "QualityProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "QualityProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "QualityProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/qualityprofile/schema": {
+ "get": {
+ "tags": [
+ "QualityProfileSchema"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/queue/{id}": {
+ "delete": {
+ "tags": [
+ "Queue"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "removeFromClient",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ },
+ {
+ "name": "blocklist",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "skipRedownload",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "changeCategory",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/queue/bulk": {
+ "delete": {
+ "tags": [
+ "Queue"
+ ],
+ "parameters": [
+ {
+ "name": "removeFromClient",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ },
+ {
+ "name": "blocklist",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "skipRedownload",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "changeCategory",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QueueBulkResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QueueBulkResource"
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "$ref": "#/components/schemas/QueueBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/queue": {
+ "get": {
+ "tags": [
+ "Queue"
+ ],
+ "parameters": [
+ {
+ "name": "page",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 1
+ }
+ },
+ {
+ "name": "pageSize",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 10
+ }
+ },
+ {
+ "name": "sortKey",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "sortDirection",
+ "in": "query",
+ "schema": {
+ "$ref": "#/components/schemas/SortDirection"
+ }
+ },
+ {
+ "name": "includeUnknownMovieItems",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "includeMovie",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "movieIds",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ {
+ "name": "protocol",
+ "in": "query",
+ "schema": {
+ "$ref": "#/components/schemas/DownloadProtocol"
+ }
+ },
+ {
+ "name": "languages",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ {
+ "name": "quality",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ {
+ "name": "status",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QueueStatus"
+ }
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QueueResourcePagingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/queue/grab/{id}": {
+ "post": {
+ "tags": [
+ "QueueAction"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/queue/grab/bulk": {
+ "post": {
+ "tags": [
+ "QueueAction"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QueueBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/queue/details": {
+ "get": {
+ "tags": [
+ "QueueDetails"
+ ],
+ "parameters": [
+ {
+ "name": "movieId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "includeMovie",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QueueResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QueueResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QueueResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/queue/status": {
+ "get": {
+ "tags": [
+ "QueueStatus"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/QueueStatusResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QueueStatusResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QueueStatusResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/release": {
+ "post": {
+ "tags": [
+ "Release"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Release"
+ ],
+ "parameters": [
+ {
+ "name": "movieId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ReleaseResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/releaseprofile": {
+ "post": {
+ "tags": [
+ "ReleaseProfile"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ReleaseProfile"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/releaseprofile/{id}": {
+ "delete": {
+ "tags": [
+ "ReleaseProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ReleaseProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ReleaseProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/release/push": {
+ "post": {
+ "tags": [
+ "ReleasePush"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ReleaseResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ReleaseResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ReleaseResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/remotepathmapping": {
+ "post": {
+ "tags": [
+ "RemotePathMapping"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "RemotePathMapping"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/remotepathmapping/{id}": {
+ "delete": {
+ "tags": [
+ "RemotePathMapping"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "RemotePathMapping"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "RemotePathMapping"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/rename": {
+ "get": {
+ "tags": [
+ "RenameMovie"
+ ],
+ "parameters": [
+ {
+ "name": "movieId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/RenameMovieResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/RenameMovieResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/RenameMovieResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/rootfolder": {
+ "post": {
+ "tags": [
+ "RootFolder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RootFolderResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/RootFolderResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RootFolderResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RootFolderResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "RootFolder"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/RootFolderResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/RootFolderResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/RootFolderResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/rootfolder/{id}": {
+ "delete": {
+ "tags": [
+ "RootFolder"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "RootFolder"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/RootFolderResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RootFolderResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RootFolderResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/content/{path}": {
+ "get": {
+ "tags": [
+ "StaticResource"
+ ],
+ "parameters": [
+ {
+ "name": "path",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "pattern": "^(?!api/).*",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/": {
+ "get": {
+ "tags": [
+ "StaticResource"
+ ],
+ "parameters": [
+ {
+ "name": "path",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/{path}": {
+ "get": {
+ "tags": [
+ "StaticResource"
+ ],
+ "parameters": [
+ {
+ "name": "path",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "pattern": "^(?!(api|feed)/).*",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/system/status": {
+ "get": {
+ "tags": [
+ "System"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/SystemResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SystemResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SystemResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/system/routes": {
+ "get": {
+ "tags": [
+ "System"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/system/routes/duplicate": {
+ "get": {
+ "tags": [
+ "System"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/system/shutdown": {
+ "post": {
+ "tags": [
+ "System"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/system/restart": {
+ "post": {
+ "tags": [
+ "System"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/tag": {
+ "get": {
+ "tags": [
+ "Tag"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TagResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TagResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "Tag"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/tag/{id}": {
+ "put": {
+ "tags": [
+ "Tag"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Tag"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Tag"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/tag/detail": {
+ "get": {
+ "tags": [
+ "TagDetails"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TagDetailsResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TagDetailsResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/tag/detail/{id}": {
+ "get": {
+ "tags": [
+ "TagDetails"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagDetailsResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagDetailsResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/system/task": {
+ "get": {
+ "tags": [
+ "Task"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TaskResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TaskResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TaskResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/system/task/{id}": {
+ "get": {
+ "tags": [
+ "Task"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/TaskResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TaskResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TaskResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/config/ui/{id}": {
+ "put": {
+ "tags": [
+ "UiConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UiConfigResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/UiConfigResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UiConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UiConfigResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "UiConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "$ref": "#/components/schemas/UiConfigResource"
+ }
+ },
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UiConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UiConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/config/ui": {
+ "get": {
+ "tags": [
+ "UiConfig"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UiConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/update": {
+ "get": {
+ "tags": [
+ "Update"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UpdateResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UpdateResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UpdateResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/log/file/update": {
+ "get": {
+ "tags": [
+ "UpdateLogFile"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "text/plain": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/LogFileResource"
+ }
+ }
+ },
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/LogFileResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/LogFileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/log/file/update/{filename}": {
+ "get": {
+ "tags": [
+ "UpdateLogFile"
+ ],
+ "parameters": [
+ {
+ "name": "filename",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "pattern": "[-.a-zA-Z0-9]+?\\.txt",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AddMovieMethod": {
+ "enum": [
+ "manual",
+ "list",
+ "collection"
+ ],
+ "type": "string"
+ },
+ "AddMovieOptions": {
+ "type": "object",
+ "properties": {
+ "ignoreEpisodesWithFiles": {
+ "type": "boolean"
+ },
+ "ignoreEpisodesWithoutFiles": {
+ "type": "boolean"
+ },
+ "monitor": {
+ "$ref": "#/components/schemas/MonitorTypes"
+ },
+ "searchForMovie": {
+ "type": "boolean"
+ },
+ "addMethod": {
+ "$ref": "#/components/schemas/AddMovieMethod"
+ }
+ },
+ "additionalProperties": false
+ },
+ "AlternativeTitleResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sourceType": {
+ "$ref": "#/components/schemas/SourceType"
+ },
+ "movieMetadataId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "cleanTitle": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ApiInfoResource": {
+ "type": "object",
+ "properties": {
+ "current": {
+ "type": "string",
+ "nullable": true
+ },
+ "deprecated": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ApplyTags": {
+ "enum": [
+ "add",
+ "remove",
+ "replace"
+ ],
+ "type": "string"
+ },
+ "AuthenticationRequiredType": {
+ "enum": [
+ "enabled",
+ "disabledForLocalAddresses"
+ ],
+ "type": "string"
+ },
+ "AuthenticationType": {
+ "enum": [
+ "none",
+ "basic",
+ "forms",
+ "external"
+ ],
+ "type": "string"
+ },
+ "AutoTaggingResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "removeTagsAutomatically": {
+ "type": "boolean"
+ },
+ "tags": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "specifications": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AutoTaggingSpecificationSchema"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "AutoTaggingSpecificationSchema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "implementation": {
+ "type": "string",
+ "nullable": true
+ },
+ "implementationName": {
+ "type": "string",
+ "nullable": true
+ },
+ "negate": {
+ "type": "boolean"
+ },
+ "required": {
+ "type": "boolean"
+ },
+ "fields": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Field"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "BackupResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "path": {
+ "type": "string",
+ "nullable": true
+ },
+ "type": {
+ "$ref": "#/components/schemas/BackupType"
+ },
+ "size": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "time": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "additionalProperties": false
+ },
+ "BackupType": {
+ "enum": [
+ "scheduled",
+ "manual",
+ "update"
+ ],
+ "type": "string"
+ },
+ "BlocklistBulkResource": {
+ "type": "object",
+ "properties": {
+ "ids": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "BlocklistResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "movieId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sourceTitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "languages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "nullable": true
+ },
+ "quality": {
+ "$ref": "#/components/schemas/QualityModel"
+ },
+ "customFormats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ },
+ "nullable": true
+ },
+ "date": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "protocol": {
+ "$ref": "#/components/schemas/DownloadProtocol"
+ },
+ "indexer": {
+ "type": "string",
+ "nullable": true
+ },
+ "message": {
+ "type": "string",
+ "nullable": true
+ },
+ "movie": {
+ "$ref": "#/components/schemas/MovieResource"
+ }
+ },
+ "additionalProperties": false
+ },
+ "BlocklistResourcePagingResource": {
+ "type": "object",
+ "properties": {
+ "page": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "pageSize": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sortKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "sortDirection": {
+ "$ref": "#/components/schemas/SortDirection"
+ },
+ "totalRecords": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "records": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BlocklistResource"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "CertificateValidationType": {
+ "enum": [
+ "enabled",
+ "disabledForLocalAddresses",
+ "disabled"
+ ],
+ "type": "string"
+ },
+ "CollectionMovieResource": {
+ "type": "object",
+ "properties": {
+ "tmdbId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "imdbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "cleanTitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "sortTitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "status": {
+ "$ref": "#/components/schemas/MovieStatusType"
+ },
+ "overview": {
+ "type": "string",
+ "nullable": true
+ },
+ "runtime": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "images": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MediaCover"
+ },
+ "nullable": true
+ },
+ "year": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "ratings": {
+ "$ref": "#/components/schemas/Ratings"
+ },
+ "genres": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "folder": {
+ "type": "string",
+ "nullable": true
+ },
+ "isExisting": {
+ "type": "boolean"
+ },
+ "isExcluded": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "CollectionResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "sortTitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "tmdbId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "images": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MediaCover"
+ },
+ "nullable": true
+ },
+ "overview": {
+ "type": "string",
+ "nullable": true
+ },
+ "monitored": {
+ "type": "boolean"
+ },
+ "rootFolderPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "qualityProfileId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "searchOnAdd": {
+ "type": "boolean"
+ },
+ "minimumAvailability": {
+ "$ref": "#/components/schemas/MovieStatusType"
+ },
+ "movies": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CollectionMovieResource"
+ },
+ "nullable": true
+ },
+ "missingMovies": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "tags": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "CollectionUpdateResource": {
+ "type": "object",
+ "properties": {
+ "collectionIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "monitored": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "monitorMovies": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "searchOnAdd": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "qualityProfileId": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "rootFolderPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "minimumAvailability": {
+ "$ref": "#/components/schemas/MovieStatusType"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ColonReplacementFormat": {
+ "enum": [
+ "delete",
+ "dash",
+ "spaceDash",
+ "spaceDashSpace",
+ "smart"
+ ],
+ "type": "string"
+ },
+ "Command": {
+ "type": "object",
+ "properties": {
+ "sendUpdatesToClient": {
+ "type": "boolean"
+ },
+ "updateScheduledTask": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "completionMessage": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true
+ },
+ "requiresDiskAccess": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "isExclusive": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "isTypeExclusive": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "isLongRunning": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "name": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true
+ },
+ "lastExecutionTime": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "lastStartTime": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "trigger": {
+ "$ref": "#/components/schemas/CommandTrigger"
+ },
+ "suppressMessages": {
+ "type": "boolean"
+ },
+ "clientUserAgent": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "CommandPriority": {
+ "enum": [
+ "normal",
+ "high",
+ "low"
+ ],
+ "type": "string"
+ },
+ "CommandResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "commandName": {
+ "type": "string",
+ "nullable": true
+ },
+ "message": {
+ "type": "string",
+ "nullable": true
+ },
+ "body": {
+ "$ref": "#/components/schemas/Command"
+ },
+ "priority": {
+ "$ref": "#/components/schemas/CommandPriority"
+ },
+ "status": {
+ "$ref": "#/components/schemas/CommandStatus"
+ },
+ "result": {
+ "$ref": "#/components/schemas/CommandResult"
+ },
+ "queued": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "started": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "ended": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "duration": {
+ "type": "string",
+ "format": "date-span",
+ "nullable": true
+ },
+ "exception": {
+ "type": "string",
+ "nullable": true
+ },
+ "trigger": {
+ "$ref": "#/components/schemas/CommandTrigger"
+ },
+ "clientUserAgent": {
+ "type": "string",
+ "nullable": true
+ },
+ "stateChangeTime": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "sendUpdatesToClient": {
+ "type": "boolean"
+ },
+ "updateScheduledTask": {
+ "type": "boolean"
+ },
+ "lastExecutionTime": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "CommandResult": {
+ "enum": [
+ "unknown",
+ "successful",
+ "unsuccessful"
+ ],
+ "type": "string"
+ },
+ "CommandStatus": {
+ "enum": [
+ "queued",
+ "started",
+ "completed",
+ "failed",
+ "aborted",
+ "cancelled",
+ "orphaned"
+ ],
+ "type": "string"
+ },
+ "CommandTrigger": {
+ "enum": [
+ "unspecified",
+ "manual",
+ "scheduled"
+ ],
+ "type": "string"
+ },
+ "CreditResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "personName": {
+ "type": "string",
+ "nullable": true
+ },
+ "creditTmdbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "personTmdbId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "movieMetadataId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "images": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MediaCover"
+ },
+ "nullable": true
+ },
+ "department": {
+ "type": "string",
+ "nullable": true
+ },
+ "job": {
+ "type": "string",
+ "nullable": true
+ },
+ "character": {
+ "type": "string",
+ "nullable": true
+ },
+ "order": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "type": {
+ "$ref": "#/components/schemas/CreditType"
+ }
+ },
+ "additionalProperties": false
+ },
+ "CreditType": {
+ "enum": [
+ "cast",
+ "crew"
+ ],
+ "type": "string"
+ },
+ "CustomFilterResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "type": {
+ "type": "string",
+ "nullable": true
+ },
+ "label": {
+ "type": "string",
+ "nullable": true
+ },
+ "filters": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": { }
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "CustomFormatBulkResource": {
+ "type": "object",
+ "properties": {
+ "ids": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "includeCustomFormatWhenRenaming": {
+ "type": "boolean",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "CustomFormatResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "includeCustomFormatWhenRenaming": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "specifications": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFormatSpecificationSchema"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "CustomFormatSpecificationSchema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "implementation": {
+ "type": "string",
+ "nullable": true
+ },
+ "implementationName": {
+ "type": "string",
+ "nullable": true
+ },
+ "infoLink": {
+ "type": "string",
+ "nullable": true
+ },
+ "negate": {
+ "type": "boolean"
+ },
+ "required": {
+ "type": "boolean"
+ },
+ "fields": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Field"
+ },
+ "nullable": true
+ },
+ "presets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFormatSpecificationSchema"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "DatabaseType": {
+ "enum": [
+ "sqLite",
+ "postgreSQL"
+ ],
+ "type": "string"
+ },
+ "DelayProfileResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "enableUsenet": {
+ "type": "boolean"
+ },
+ "enableTorrent": {
+ "type": "boolean"
+ },
+ "preferredProtocol": {
+ "$ref": "#/components/schemas/DownloadProtocol"
+ },
+ "usenetDelay": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "torrentDelay": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "bypassIfHighestQuality": {
+ "type": "boolean"
+ },
+ "bypassIfAboveCustomFormatScore": {
+ "type": "boolean"
+ },
+ "minimumCustomFormatScore": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "order": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "tags": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "DiskSpaceResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "path": {
+ "type": "string",
+ "nullable": true
+ },
+ "label": {
+ "type": "string",
+ "nullable": true
+ },
+ "freeSpace": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "totalSpace": {
+ "type": "integer",
+ "format": "int64"
+ }
+ },
+ "additionalProperties": false
+ },
+ "DownloadClientBulkResource": {
+ "type": "object",
+ "properties": {
+ "ids": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "applyTags": {
+ "$ref": "#/components/schemas/ApplyTags"
+ },
+ "enable": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "priority": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "removeCompletedDownloads": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "removeFailedDownloads": {
+ "type": "boolean",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "DownloadClientConfigResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "downloadClientWorkingFolders": {
+ "type": "string",
+ "nullable": true
+ },
+ "enableCompletedDownloadHandling": {
+ "type": "boolean"
+ },
+ "checkForFinishedDownloadInterval": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "autoRedownloadFailed": {
+ "type": "boolean"
+ },
+ "autoRedownloadFailedFromInteractiveSearch": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "DownloadClientResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "fields": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Field"
+ },
+ "nullable": true
+ },
+ "implementationName": {
+ "type": "string",
+ "nullable": true
+ },
+ "implementation": {
+ "type": "string",
+ "nullable": true
+ },
+ "configContract": {
+ "type": "string",
+ "nullable": true
+ },
+ "infoLink": {
+ "type": "string",
+ "nullable": true
+ },
+ "message": {
+ "$ref": "#/components/schemas/ProviderMessage"
+ },
+ "tags": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "presets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ },
+ "nullable": true
+ },
+ "enable": {
+ "type": "boolean"
+ },
+ "protocol": {
+ "$ref": "#/components/schemas/DownloadProtocol"
+ },
+ "priority": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "removeCompletedDownloads": {
+ "type": "boolean"
+ },
+ "removeFailedDownloads": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "DownloadProtocol": {
+ "enum": [
+ "unknown",
+ "usenet",
+ "torrent"
+ ],
+ "type": "string"
+ },
+ "ExtraFileResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "movieId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "movieFileId": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "relativePath": {
+ "type": "string",
+ "nullable": true
+ },
+ "extension": {
+ "type": "string",
+ "nullable": true
+ },
+ "languageTags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "type": {
+ "$ref": "#/components/schemas/ExtraFileType"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ExtraFileType": {
+ "enum": [
+ "subtitle",
+ "metadata",
+ "other"
+ ],
+ "type": "string"
+ },
+ "Field": {
+ "type": "object",
+ "properties": {
+ "order": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "label": {
+ "type": "string",
+ "nullable": true
+ },
+ "unit": {
+ "type": "string",
+ "nullable": true
+ },
+ "helpText": {
+ "type": "string",
+ "nullable": true
+ },
+ "helpTextWarning": {
+ "type": "string",
+ "nullable": true
+ },
+ "helpLink": {
+ "type": "string",
+ "nullable": true
+ },
+ "value": {
+ "nullable": true
+ },
+ "type": {
+ "type": "string",
+ "nullable": true
+ },
+ "advanced": {
+ "type": "boolean"
+ },
+ "selectOptions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SelectOption"
+ },
+ "nullable": true
+ },
+ "selectOptionsProviderAction": {
+ "type": "string",
+ "nullable": true
+ },
+ "section": {
+ "type": "string",
+ "nullable": true
+ },
+ "hidden": {
+ "type": "string",
+ "nullable": true
+ },
+ "privacy": {
+ "$ref": "#/components/schemas/PrivacyLevel"
+ },
+ "placeholder": {
+ "type": "string",
+ "nullable": true
+ },
+ "isFloat": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "FileDateType": {
+ "enum": [
+ "none",
+ "cinemas",
+ "release"
+ ],
+ "type": "string"
+ },
+ "HealthCheckResult": {
+ "enum": [
+ "ok",
+ "notice",
+ "warning",
+ "error"
+ ],
+ "type": "string"
+ },
+ "HealthResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "source": {
+ "type": "string",
+ "nullable": true
+ },
+ "type": {
+ "$ref": "#/components/schemas/HealthCheckResult"
+ },
+ "message": {
+ "type": "string",
+ "nullable": true
+ },
+ "wikiUrl": {
+ "$ref": "#/components/schemas/HttpUri"
+ }
+ },
+ "additionalProperties": false
+ },
+ "HistoryResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "movieId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sourceTitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "languages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "nullable": true
+ },
+ "quality": {
+ "$ref": "#/components/schemas/QualityModel"
+ },
+ "customFormats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ },
+ "nullable": true
+ },
+ "customFormatScore": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "qualityCutoffNotMet": {
+ "type": "boolean"
+ },
+ "date": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "downloadId": {
+ "type": "string",
+ "nullable": true
+ },
+ "eventType": {
+ "$ref": "#/components/schemas/MovieHistoryEventType"
+ },
+ "data": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "nullable": true
+ },
+ "nullable": true
+ },
+ "movie": {
+ "$ref": "#/components/schemas/MovieResource"
+ }
+ },
+ "additionalProperties": false
+ },
+ "HistoryResourcePagingResource": {
+ "type": "object",
+ "properties": {
+ "page": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "pageSize": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sortKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "sortDirection": {
+ "$ref": "#/components/schemas/SortDirection"
+ },
+ "totalRecords": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "records": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/HistoryResource"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "HostConfigResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "bindAddress": {
+ "type": "string",
+ "nullable": true
+ },
+ "port": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sslPort": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "enableSsl": {
+ "type": "boolean"
+ },
+ "launchBrowser": {
+ "type": "boolean"
+ },
+ "authenticationMethod": {
+ "$ref": "#/components/schemas/AuthenticationType"
+ },
+ "authenticationRequired": {
+ "$ref": "#/components/schemas/AuthenticationRequiredType"
+ },
+ "analyticsEnabled": {
+ "type": "boolean"
+ },
+ "username": {
+ "type": "string",
+ "nullable": true
+ },
+ "password": {
+ "type": "string",
+ "nullable": true
+ },
+ "passwordConfirmation": {
+ "type": "string",
+ "nullable": true
+ },
+ "logLevel": {
+ "type": "string",
+ "nullable": true
+ },
+ "logSizeLimit": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "consoleLogLevel": {
+ "type": "string",
+ "nullable": true
+ },
+ "branch": {
+ "type": "string",
+ "nullable": true
+ },
+ "apiKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "sslCertPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "sslCertPassword": {
+ "type": "string",
+ "nullable": true
+ },
+ "urlBase": {
+ "type": "string",
+ "nullable": true
+ },
+ "instanceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "updateAutomatically": {
+ "type": "boolean"
+ },
+ "updateMechanism": {
+ "$ref": "#/components/schemas/UpdateMechanism"
+ },
+ "updateScriptPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "proxyEnabled": {
+ "type": "boolean"
+ },
+ "proxyType": {
+ "$ref": "#/components/schemas/ProxyType"
+ },
+ "proxyHostname": {
+ "type": "string",
+ "nullable": true
+ },
+ "proxyPort": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "proxyUsername": {
+ "type": "string",
+ "nullable": true
+ },
+ "proxyPassword": {
+ "type": "string",
+ "nullable": true
+ },
+ "proxyBypassFilter": {
+ "type": "string",
+ "nullable": true
+ },
+ "proxyBypassLocalAddresses": {
+ "type": "boolean"
+ },
+ "certificateValidation": {
+ "$ref": "#/components/schemas/CertificateValidationType"
+ },
+ "backupFolder": {
+ "type": "string",
+ "nullable": true
+ },
+ "backupInterval": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "backupRetention": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "trustCgnatIpAddresses": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "HttpUri": {
+ "type": "object",
+ "properties": {
+ "fullUri": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true
+ },
+ "scheme": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true
+ },
+ "host": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true
+ },
+ "port": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true,
+ "readOnly": true
+ },
+ "path": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true
+ },
+ "query": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true
+ },
+ "fragment": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ImportListBulkResource": {
+ "type": "object",
+ "properties": {
+ "ids": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "applyTags": {
+ "$ref": "#/components/schemas/ApplyTags"
+ },
+ "enabled": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "enableAuto": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "rootFolderPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "qualityProfileId": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "minimumAvailability": {
+ "$ref": "#/components/schemas/MovieStatusType"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ImportListConfigResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "listSyncLevel": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ImportListExclusionBulkResource": {
+ "type": "object",
+ "properties": {
+ "ids": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ImportListExclusionResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "fields": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Field"
+ },
+ "nullable": true
+ },
+ "implementationName": {
+ "type": "string",
+ "nullable": true
+ },
+ "implementation": {
+ "type": "string",
+ "nullable": true
+ },
+ "configContract": {
+ "type": "string",
+ "nullable": true
+ },
+ "infoLink": {
+ "type": "string",
+ "nullable": true
+ },
+ "message": {
+ "$ref": "#/components/schemas/ProviderMessage"
+ },
+ "tags": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "presets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ },
+ "nullable": true
+ },
+ "tmdbId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "movieTitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "movieYear": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ImportListExclusionResourcePagingResource": {
+ "type": "object",
+ "properties": {
+ "page": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "pageSize": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sortKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "sortDirection": {
+ "$ref": "#/components/schemas/SortDirection"
+ },
+ "totalRecords": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "records": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ImportListResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "fields": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Field"
+ },
+ "nullable": true
+ },
+ "implementationName": {
+ "type": "string",
+ "nullable": true
+ },
+ "implementation": {
+ "type": "string",
+ "nullable": true
+ },
+ "configContract": {
+ "type": "string",
+ "nullable": true
+ },
+ "infoLink": {
+ "type": "string",
+ "nullable": true
+ },
+ "message": {
+ "$ref": "#/components/schemas/ProviderMessage"
+ },
+ "tags": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "presets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ImportListResource"
+ },
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "enableAuto": {
+ "type": "boolean"
+ },
+ "monitor": {
+ "$ref": "#/components/schemas/MonitorTypes"
+ },
+ "rootFolderPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "qualityProfileId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "searchOnAdd": {
+ "type": "boolean"
+ },
+ "minimumAvailability": {
+ "$ref": "#/components/schemas/MovieStatusType"
+ },
+ "listType": {
+ "$ref": "#/components/schemas/ImportListType"
+ },
+ "listOrder": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "minRefreshInterval": {
+ "type": "string",
+ "format": "date-span"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ImportListType": {
+ "enum": [
+ "program",
+ "tmdb",
+ "trakt",
+ "plex",
+ "simkl",
+ "other",
+ "advanced"
+ ],
+ "type": "string"
+ },
+ "IndexerBulkResource": {
+ "type": "object",
+ "properties": {
+ "ids": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "applyTags": {
+ "$ref": "#/components/schemas/ApplyTags"
+ },
+ "enableRss": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "enableAutomaticSearch": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "enableInteractiveSearch": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "priority": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "IndexerConfigResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "minimumAge": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "maximumSize": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "retention": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "rssSyncInterval": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "preferIndexerFlags": {
+ "type": "boolean"
+ },
+ "availabilityDelay": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "allowHardcodedSubs": {
+ "type": "boolean"
+ },
+ "whitelistedHardcodedSubs": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "IndexerFlagResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "nameLower": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "IndexerResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "fields": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Field"
+ },
+ "nullable": true
+ },
+ "implementationName": {
+ "type": "string",
+ "nullable": true
+ },
+ "implementation": {
+ "type": "string",
+ "nullable": true
+ },
+ "configContract": {
+ "type": "string",
+ "nullable": true
+ },
+ "infoLink": {
+ "type": "string",
+ "nullable": true
+ },
+ "message": {
+ "$ref": "#/components/schemas/ProviderMessage"
+ },
+ "tags": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "presets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/IndexerResource"
+ },
+ "nullable": true
+ },
+ "enableRss": {
+ "type": "boolean"
+ },
+ "enableAutomaticSearch": {
+ "type": "boolean"
+ },
+ "enableInteractiveSearch": {
+ "type": "boolean"
+ },
+ "supportsRss": {
+ "type": "boolean"
+ },
+ "supportsSearch": {
+ "type": "boolean"
+ },
+ "protocol": {
+ "$ref": "#/components/schemas/DownloadProtocol"
+ },
+ "priority": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "downloadClientId": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Language": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "LanguageResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "nameLower": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "LocalizationLanguageResource": {
+ "type": "object",
+ "properties": {
+ "identifier": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "LogFileResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "filename": {
+ "type": "string",
+ "nullable": true
+ },
+ "lastWriteTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "contentsUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "downloadUrl": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "LogResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "time": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "exception": {
+ "type": "string",
+ "nullable": true
+ },
+ "exceptionType": {
+ "type": "string",
+ "nullable": true
+ },
+ "level": {
+ "type": "string",
+ "nullable": true
+ },
+ "logger": {
+ "type": "string",
+ "nullable": true
+ },
+ "message": {
+ "type": "string",
+ "nullable": true
+ },
+ "method": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "LogResourcePagingResource": {
+ "type": "object",
+ "properties": {
+ "page": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "pageSize": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sortKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "sortDirection": {
+ "$ref": "#/components/schemas/SortDirection"
+ },
+ "totalRecords": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "records": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/LogResource"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ManualImportReprocessResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "path": {
+ "type": "string",
+ "nullable": true
+ },
+ "movieId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "movie": {
+ "$ref": "#/components/schemas/MovieResource"
+ },
+ "quality": {
+ "$ref": "#/components/schemas/QualityModel"
+ },
+ "languages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "nullable": true
+ },
+ "releaseGroup": {
+ "type": "string",
+ "nullable": true
+ },
+ "downloadId": {
+ "type": "string",
+ "nullable": true
+ },
+ "customFormats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ },
+ "nullable": true
+ },
+ "customFormatScore": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "indexerFlags": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "rejections": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Rejection"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ManualImportResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "path": {
+ "type": "string",
+ "nullable": true
+ },
+ "relativePath": {
+ "type": "string",
+ "nullable": true
+ },
+ "folderName": {
+ "type": "string",
+ "nullable": true
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "size": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "movie": {
+ "$ref": "#/components/schemas/MovieResource"
+ },
+ "quality": {
+ "$ref": "#/components/schemas/QualityModel"
+ },
+ "languages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "nullable": true
+ },
+ "releaseGroup": {
+ "type": "string",
+ "nullable": true
+ },
+ "qualityWeight": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "downloadId": {
+ "type": "string",
+ "nullable": true
+ },
+ "customFormats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ },
+ "nullable": true
+ },
+ "customFormatScore": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "indexerFlags": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "rejections": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Rejection"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "MediaCover": {
+ "type": "object",
+ "properties": {
+ "coverType": {
+ "$ref": "#/components/schemas/MediaCoverTypes"
+ },
+ "url": {
+ "type": "string",
+ "nullable": true
+ },
+ "remoteUrl": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "MediaCoverTypes": {
+ "enum": [
+ "unknown",
+ "poster",
+ "banner",
+ "fanart",
+ "screenshot",
+ "headshot",
+ "clearlogo"
+ ],
+ "type": "string"
+ },
+ "MediaInfoResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "audioBitrate": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "audioChannels": {
+ "type": "number",
+ "format": "double"
+ },
+ "audioCodec": {
+ "type": "string",
+ "nullable": true
+ },
+ "audioLanguages": {
+ "type": "string",
+ "nullable": true
+ },
+ "audioStreamCount": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "videoBitDepth": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "videoBitrate": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "videoCodec": {
+ "type": "string",
+ "nullable": true
+ },
+ "videoFps": {
+ "type": "number",
+ "format": "double"
+ },
+ "videoDynamicRange": {
+ "type": "string",
+ "nullable": true
+ },
+ "videoDynamicRangeType": {
+ "type": "string",
+ "nullable": true
+ },
+ "resolution": {
+ "type": "string",
+ "nullable": true
+ },
+ "runTime": {
+ "type": "string",
+ "nullable": true
+ },
+ "scanType": {
+ "type": "string",
+ "nullable": true
+ },
+ "subtitles": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "MediaManagementConfigResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "autoUnmonitorPreviouslyDownloadedMovies": {
+ "type": "boolean"
+ },
+ "recycleBin": {
+ "type": "string",
+ "nullable": true
+ },
+ "recycleBinCleanupDays": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "downloadPropersAndRepacks": {
+ "$ref": "#/components/schemas/ProperDownloadTypes"
+ },
+ "createEmptyMovieFolders": {
+ "type": "boolean"
+ },
+ "deleteEmptyFolders": {
+ "type": "boolean"
+ },
+ "fileDate": {
+ "$ref": "#/components/schemas/FileDateType"
+ },
+ "rescanAfterRefresh": {
+ "$ref": "#/components/schemas/RescanAfterRefreshType"
+ },
+ "autoRenameFolders": {
+ "type": "boolean"
+ },
+ "pathsDefaultStatic": {
+ "type": "boolean"
+ },
+ "setPermissionsLinux": {
+ "type": "boolean"
+ },
+ "chmodFolder": {
+ "type": "string",
+ "nullable": true
+ },
+ "chownGroup": {
+ "type": "string",
+ "nullable": true
+ },
+ "skipFreeSpaceCheckWhenImporting": {
+ "type": "boolean"
+ },
+ "minimumFreeSpaceWhenImporting": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "copyUsingHardlinks": {
+ "type": "boolean"
+ },
+ "useScriptImport": {
+ "type": "boolean"
+ },
+ "scriptImportPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "importExtraFiles": {
+ "type": "boolean"
+ },
+ "extraFileExtensions": {
+ "type": "string",
+ "nullable": true
+ },
+ "enableMediaInfo": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "MetadataConfigResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "certificationCountry": {
+ "$ref": "#/components/schemas/TMDbCountryCode"
+ }
+ },
+ "additionalProperties": false
+ },
+ "MetadataResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "fields": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Field"
+ },
+ "nullable": true
+ },
+ "implementationName": {
+ "type": "string",
+ "nullable": true
+ },
+ "implementation": {
+ "type": "string",
+ "nullable": true
+ },
+ "configContract": {
+ "type": "string",
+ "nullable": true
+ },
+ "infoLink": {
+ "type": "string",
+ "nullable": true
+ },
+ "message": {
+ "$ref": "#/components/schemas/ProviderMessage"
+ },
+ "tags": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "presets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MetadataResource"
+ },
+ "nullable": true
+ },
+ "enable": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Modifier": {
+ "enum": [
+ "none",
+ "regional",
+ "screener",
+ "rawhd",
+ "brdisk",
+ "remux"
+ ],
+ "type": "string"
+ },
+ "MonitorTypes": {
+ "enum": [
+ "movieOnly",
+ "movieAndCollection",
+ "none"
+ ],
+ "type": "string"
+ },
+ "MovieCollectionResource": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "tmdbId": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "additionalProperties": false
+ },
+ "MovieEditorResource": {
+ "type": "object",
+ "properties": {
+ "movieIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "monitored": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "qualityProfileId": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "minimumAvailability": {
+ "$ref": "#/components/schemas/MovieStatusType"
+ },
+ "rootFolderPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "applyTags": {
+ "$ref": "#/components/schemas/ApplyTags"
+ },
+ "moveFiles": {
+ "type": "boolean"
+ },
+ "deleteFiles": {
+ "type": "boolean"
+ },
+ "addImportExclusion": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "MovieFileListResource": {
+ "type": "object",
+ "properties": {
+ "movieFileIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "languages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "nullable": true
+ },
+ "quality": {
+ "$ref": "#/components/schemas/QualityModel"
+ },
+ "edition": {
+ "type": "string",
+ "nullable": true
+ },
+ "releaseGroup": {
+ "type": "string",
+ "nullable": true
+ },
+ "sceneName": {
+ "type": "string",
+ "nullable": true
+ },
+ "indexerFlags": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "MovieFileResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "movieId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "relativePath": {
+ "type": "string",
+ "nullable": true
+ },
+ "path": {
+ "type": "string",
+ "nullable": true
+ },
+ "size": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "dateAdded": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "sceneName": {
+ "type": "string",
+ "nullable": true
+ },
+ "releaseGroup": {
+ "type": "string",
+ "nullable": true
+ },
+ "edition": {
+ "type": "string",
+ "nullable": true
+ },
+ "languages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "nullable": true
+ },
+ "quality": {
+ "$ref": "#/components/schemas/QualityModel"
+ },
+ "customFormats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ },
+ "nullable": true
+ },
+ "customFormatScore": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "indexerFlags": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "mediaInfo": {
+ "$ref": "#/components/schemas/MediaInfoResource"
+ },
+ "originalFilePath": {
+ "type": "string",
+ "nullable": true
+ },
+ "qualityCutoffNotMet": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "MovieHistoryEventType": {
+ "enum": [
+ "unknown",
+ "grabbed",
+ "downloadFolderImported",
+ "downloadFailed",
+ "movieFileDeleted",
+ "movieFolderImported",
+ "movieFileRenamed",
+ "downloadIgnored"
+ ],
+ "type": "string"
+ },
+ "MovieResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "originalTitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "originalLanguage": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "alternateTitles": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AlternativeTitleResource"
+ },
+ "nullable": true
+ },
+ "secondaryYear": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "secondaryYearSourceId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sortTitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "sizeOnDisk": {
+ "type": "integer",
+ "format": "int64",
+ "nullable": true
+ },
+ "status": {
+ "$ref": "#/components/schemas/MovieStatusType"
+ },
+ "overview": {
+ "type": "string",
+ "nullable": true
+ },
+ "inCinemas": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "physicalRelease": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "digitalRelease": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "releaseDate": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "physicalReleaseNote": {
+ "type": "string",
+ "nullable": true
+ },
+ "images": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MediaCover"
+ },
+ "nullable": true
+ },
+ "website": {
+ "type": "string",
+ "nullable": true
+ },
+ "remotePoster": {
+ "type": "string",
+ "nullable": true
+ },
+ "year": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "youTubeTrailerId": {
+ "type": "string",
+ "nullable": true
+ },
+ "studio": {
+ "type": "string",
+ "nullable": true
+ },
+ "path": {
+ "type": "string",
+ "nullable": true
+ },
+ "qualityProfileId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "hasFile": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "movieFileId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "monitored": {
+ "type": "boolean"
+ },
+ "minimumAvailability": {
+ "$ref": "#/components/schemas/MovieStatusType"
+ },
+ "isAvailable": {
+ "type": "boolean"
+ },
+ "folderName": {
+ "type": "string",
+ "nullable": true
+ },
+ "runtime": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "cleanTitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "imdbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "tmdbId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "titleSlug": {
+ "type": "string",
+ "nullable": true
+ },
+ "rootFolderPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "folder": {
+ "type": "string",
+ "nullable": true
+ },
+ "certification": {
+ "type": "string",
+ "nullable": true
+ },
+ "genres": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "tags": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "added": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "addOptions": {
+ "$ref": "#/components/schemas/AddMovieOptions"
+ },
+ "ratings": {
+ "$ref": "#/components/schemas/Ratings"
+ },
+ "movieFile": {
+ "$ref": "#/components/schemas/MovieFileResource"
+ },
+ "collection": {
+ "$ref": "#/components/schemas/MovieCollectionResource"
+ },
+ "popularity": {
+ "type": "number",
+ "format": "float"
+ },
+ "lastSearchTime": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "statistics": {
+ "$ref": "#/components/schemas/MovieStatisticsResource"
+ }
+ },
+ "additionalProperties": false
+ },
+ "MovieResourcePagingResource": {
+ "type": "object",
+ "properties": {
+ "page": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "pageSize": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sortKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "sortDirection": {
+ "$ref": "#/components/schemas/SortDirection"
+ },
+ "totalRecords": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "records": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MovieResource"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "MovieRuntimeFormatType": {
+ "enum": [
+ "hoursMinutes",
+ "minutes"
+ ],
+ "type": "string"
+ },
+ "MovieStatisticsResource": {
+ "type": "object",
+ "properties": {
+ "movieFileCount": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sizeOnDisk": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "releaseGroups": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "MovieStatusType": {
+ "enum": [
+ "tba",
+ "announced",
+ "inCinemas",
+ "released",
+ "deleted"
+ ],
+ "type": "string"
+ },
+ "NamingConfigResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "renameMovies": {
+ "type": "boolean"
+ },
+ "replaceIllegalCharacters": {
+ "type": "boolean"
+ },
+ "colonReplacementFormat": {
+ "$ref": "#/components/schemas/ColonReplacementFormat"
+ },
+ "standardMovieFormat": {
+ "type": "string",
+ "nullable": true
+ },
+ "movieFolderFormat": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "NotificationResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "fields": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Field"
+ },
+ "nullable": true
+ },
+ "implementationName": {
+ "type": "string",
+ "nullable": true
+ },
+ "implementation": {
+ "type": "string",
+ "nullable": true
+ },
+ "configContract": {
+ "type": "string",
+ "nullable": true
+ },
+ "infoLink": {
+ "type": "string",
+ "nullable": true
+ },
+ "message": {
+ "$ref": "#/components/schemas/ProviderMessage"
+ },
+ "tags": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "presets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/NotificationResource"
+ },
+ "nullable": true
+ },
+ "link": {
+ "type": "string",
+ "nullable": true
+ },
+ "onGrab": {
+ "type": "boolean"
+ },
+ "onDownload": {
+ "type": "boolean"
+ },
+ "onUpgrade": {
+ "type": "boolean"
+ },
+ "onRename": {
+ "type": "boolean"
+ },
+ "onMovieAdded": {
+ "type": "boolean"
+ },
+ "onMovieDelete": {
+ "type": "boolean"
+ },
+ "onMovieFileDelete": {
+ "type": "boolean"
+ },
+ "onMovieFileDeleteForUpgrade": {
+ "type": "boolean"
+ },
+ "onHealthIssue": {
+ "type": "boolean"
+ },
+ "includeHealthWarnings": {
+ "type": "boolean"
+ },
+ "onHealthRestored": {
+ "type": "boolean"
+ },
+ "onApplicationUpdate": {
+ "type": "boolean"
+ },
+ "onManualInteractionRequired": {
+ "type": "boolean"
+ },
+ "supportsOnGrab": {
+ "type": "boolean"
+ },
+ "supportsOnDownload": {
+ "type": "boolean"
+ },
+ "supportsOnUpgrade": {
+ "type": "boolean"
+ },
+ "supportsOnRename": {
+ "type": "boolean"
+ },
+ "supportsOnMovieAdded": {
+ "type": "boolean"
+ },
+ "supportsOnMovieDelete": {
+ "type": "boolean"
+ },
+ "supportsOnMovieFileDelete": {
+ "type": "boolean"
+ },
+ "supportsOnMovieFileDeleteForUpgrade": {
+ "type": "boolean"
+ },
+ "supportsOnHealthIssue": {
+ "type": "boolean"
+ },
+ "supportsOnHealthRestored": {
+ "type": "boolean"
+ },
+ "supportsOnApplicationUpdate": {
+ "type": "boolean"
+ },
+ "supportsOnManualInteractionRequired": {
+ "type": "boolean"
+ },
+ "testCommand": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ParseResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "parsedMovieInfo": {
+ "$ref": "#/components/schemas/ParsedMovieInfo"
+ },
+ "movie": {
+ "$ref": "#/components/schemas/MovieResource"
+ },
+ "languages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "nullable": true
+ },
+ "customFormats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ },
+ "nullable": true
+ },
+ "customFormatScore": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ParsedMovieInfo": {
+ "type": "object",
+ "properties": {
+ "movieTitles": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "originalTitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "releaseTitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "simpleReleaseTitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "quality": {
+ "$ref": "#/components/schemas/QualityModel"
+ },
+ "languages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "nullable": true
+ },
+ "releaseGroup": {
+ "type": "string",
+ "nullable": true
+ },
+ "releaseHash": {
+ "type": "string",
+ "nullable": true
+ },
+ "edition": {
+ "type": "string",
+ "nullable": true
+ },
+ "year": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "imdbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "tmdbId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "hardcodedSubs": {
+ "type": "string",
+ "nullable": true
+ },
+ "movieTitle": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true
+ },
+ "primaryMovieTitle": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "PingResource": {
+ "type": "object",
+ "properties": {
+ "status": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "PrivacyLevel": {
+ "enum": [
+ "normal",
+ "password",
+ "apiKey",
+ "userName"
+ ],
+ "type": "string"
+ },
+ "ProfileFormatItemResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "format": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "score": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ProperDownloadTypes": {
+ "enum": [
+ "preferAndUpgrade",
+ "doNotUpgrade",
+ "doNotPrefer"
+ ],
+ "type": "string"
+ },
+ "ProviderMessage": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string",
+ "nullable": true
+ },
+ "type": {
+ "$ref": "#/components/schemas/ProviderMessageType"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ProviderMessageType": {
+ "enum": [
+ "info",
+ "warning",
+ "error"
+ ],
+ "type": "string"
+ },
+ "ProxyType": {
+ "enum": [
+ "http",
+ "socks4",
+ "socks5"
+ ],
+ "type": "string"
+ },
+ "Quality": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "source": {
+ "$ref": "#/components/schemas/QualitySource"
+ },
+ "resolution": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "modifier": {
+ "$ref": "#/components/schemas/Modifier"
+ }
+ },
+ "additionalProperties": false
+ },
+ "QualityDefinitionResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "quality": {
+ "$ref": "#/components/schemas/Quality"
+ },
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "weight": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "minSize": {
+ "type": "number",
+ "format": "double",
+ "nullable": true
+ },
+ "maxSize": {
+ "type": "number",
+ "format": "double",
+ "nullable": true
+ },
+ "preferredSize": {
+ "type": "number",
+ "format": "double",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "QualityModel": {
+ "type": "object",
+ "properties": {
+ "quality": {
+ "$ref": "#/components/schemas/Quality"
+ },
+ "revision": {
+ "$ref": "#/components/schemas/Revision"
+ }
+ },
+ "additionalProperties": false
+ },
+ "QualityProfileQualityItemResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "quality": {
+ "$ref": "#/components/schemas/Quality"
+ },
+ "items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QualityProfileQualityItemResource"
+ },
+ "nullable": true
+ },
+ "allowed": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "QualityProfileResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "upgradeAllowed": {
+ "type": "boolean"
+ },
+ "cutoff": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QualityProfileQualityItemResource"
+ },
+ "nullable": true
+ },
+ "minFormatScore": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "cutoffFormatScore": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "minUpgradeFormatScore": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "formatItems": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ProfileFormatItemResource"
+ },
+ "nullable": true
+ },
+ "language": {
+ "$ref": "#/components/schemas/Language"
+ }
+ },
+ "additionalProperties": false
+ },
+ "QualitySource": {
+ "enum": [
+ "unknown",
+ "cam",
+ "telesync",
+ "telecine",
+ "workprint",
+ "dvd",
+ "tv",
+ "webdl",
+ "webrip",
+ "bluray"
+ ],
+ "type": "string"
+ },
+ "QueueBulkResource": {
+ "type": "object",
+ "properties": {
+ "ids": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "QueueResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "movieId": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "movie": {
+ "$ref": "#/components/schemas/MovieResource"
+ },
+ "languages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "nullable": true
+ },
+ "quality": {
+ "$ref": "#/components/schemas/QualityModel"
+ },
+ "customFormats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ },
+ "nullable": true
+ },
+ "customFormatScore": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "size": {
+ "type": "number",
+ "format": "double"
+ },
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "estimatedCompletionTime": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "added": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "status": {
+ "$ref": "#/components/schemas/QueueStatus"
+ },
+ "trackedDownloadStatus": {
+ "$ref": "#/components/schemas/TrackedDownloadStatus"
+ },
+ "trackedDownloadState": {
+ "$ref": "#/components/schemas/TrackedDownloadState"
+ },
+ "statusMessages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TrackedDownloadStatusMessage"
+ },
+ "nullable": true
+ },
+ "errorMessage": {
+ "type": "string",
+ "nullable": true
+ },
+ "downloadId": {
+ "type": "string",
+ "nullable": true
+ },
+ "protocol": {
+ "$ref": "#/components/schemas/DownloadProtocol"
+ },
+ "downloadClient": {
+ "type": "string",
+ "nullable": true
+ },
+ "downloadClientHasPostImportCategory": {
+ "type": "boolean"
+ },
+ "indexer": {
+ "type": "string",
+ "nullable": true
+ },
+ "outputPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "sizeleft": {
+ "type": "number",
+ "format": "double",
+ "deprecated": true
+ },
+ "timeleft": {
+ "type": "string",
+ "format": "date-span",
+ "nullable": true,
+ "deprecated": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "QueueResourcePagingResource": {
+ "type": "object",
+ "properties": {
+ "page": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "pageSize": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sortKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "sortDirection": {
+ "$ref": "#/components/schemas/SortDirection"
+ },
+ "totalRecords": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "records": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QueueResource"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "QueueStatus": {
+ "enum": [
+ "unknown",
+ "queued",
+ "paused",
+ "downloading",
+ "completed",
+ "failed",
+ "warning",
+ "delay",
+ "downloadClientUnavailable",
+ "fallback"
+ ],
+ "type": "string"
+ },
+ "QueueStatusResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "totalCount": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "count": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "unknownCount": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "errors": {
+ "type": "boolean"
+ },
+ "warnings": {
+ "type": "boolean"
+ },
+ "unknownErrors": {
+ "type": "boolean"
+ },
+ "unknownWarnings": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "RatingChild": {
+ "type": "object",
+ "properties": {
+ "votes": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "value": {
+ "type": "number",
+ "format": "double"
+ },
+ "type": {
+ "$ref": "#/components/schemas/RatingType"
+ }
+ },
+ "additionalProperties": false
+ },
+ "RatingType": {
+ "enum": [
+ "user",
+ "critic"
+ ],
+ "type": "string"
+ },
+ "Ratings": {
+ "type": "object",
+ "properties": {
+ "imdb": {
+ "$ref": "#/components/schemas/RatingChild"
+ },
+ "tmdb": {
+ "$ref": "#/components/schemas/RatingChild"
+ },
+ "metacritic": {
+ "$ref": "#/components/schemas/RatingChild"
+ },
+ "rottenTomatoes": {
+ "$ref": "#/components/schemas/RatingChild"
+ },
+ "trakt": {
+ "$ref": "#/components/schemas/RatingChild"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Rejection": {
+ "type": "object",
+ "properties": {
+ "reason": {
+ "type": "string",
+ "nullable": true
+ },
+ "type": {
+ "$ref": "#/components/schemas/RejectionType"
+ }
+ },
+ "additionalProperties": false
+ },
+ "RejectionType": {
+ "enum": [
+ "permanent",
+ "temporary"
+ ],
+ "type": "string"
+ },
+ "ReleaseProfileResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "required": {
+ "nullable": true
+ },
+ "ignored": {
+ "nullable": true
+ },
+ "indexerId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "tags": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ReleaseResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "guid": {
+ "type": "string",
+ "nullable": true
+ },
+ "quality": {
+ "$ref": "#/components/schemas/QualityModel"
+ },
+ "customFormats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ },
+ "nullable": true
+ },
+ "customFormatScore": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "qualityWeight": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "age": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "ageHours": {
+ "type": "number",
+ "format": "double"
+ },
+ "ageMinutes": {
+ "type": "number",
+ "format": "double"
+ },
+ "size": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "indexerId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "indexer": {
+ "type": "string",
+ "nullable": true
+ },
+ "releaseGroup": {
+ "type": "string",
+ "nullable": true
+ },
+ "subGroup": {
+ "type": "string",
+ "nullable": true
+ },
+ "releaseHash": {
+ "type": "string",
+ "nullable": true
+ },
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "sceneSource": {
+ "type": "boolean"
+ },
+ "movieTitles": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "languages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "nullable": true
+ },
+ "mappedMovieId": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "approved": {
+ "type": "boolean"
+ },
+ "temporarilyRejected": {
+ "type": "boolean"
+ },
+ "rejected": {
+ "type": "boolean"
+ },
+ "tmdbId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "imdbId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "rejections": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "publishDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "commentUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "downloadUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "infoUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "downloadAllowed": {
+ "type": "boolean"
+ },
+ "releaseWeight": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "edition": {
+ "type": "string",
+ "nullable": true
+ },
+ "magnetUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "infoHash": {
+ "type": "string",
+ "nullable": true
+ },
+ "seeders": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "leechers": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "protocol": {
+ "$ref": "#/components/schemas/DownloadProtocol"
+ },
+ "indexerFlags": {
+ "nullable": true
+ },
+ "movieId": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "downloadClientId": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "downloadClient": {
+ "type": "string",
+ "nullable": true
+ },
+ "shouldOverride": {
+ "type": "boolean",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "RemotePathMappingResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "host": {
+ "type": "string",
+ "nullable": true
+ },
+ "remotePath": {
+ "type": "string",
+ "nullable": true
+ },
+ "localPath": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "RenameMovieResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "movieId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "movieFileId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "existingPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "newPath": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "RescanAfterRefreshType": {
+ "enum": [
+ "always",
+ "afterManual",
+ "never"
+ ],
+ "type": "string"
+ },
+ "Revision": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "real": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "isRepack": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "RootFolderResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "path": {
+ "type": "string",
+ "nullable": true
+ },
+ "accessible": {
+ "type": "boolean"
+ },
+ "freeSpace": {
+ "type": "integer",
+ "format": "int64",
+ "nullable": true
+ },
+ "unmappedFolders": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UnmappedFolder"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "RuntimeMode": {
+ "enum": [
+ "console",
+ "service",
+ "tray"
+ ],
+ "type": "string"
+ },
+ "SelectOption": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "order": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "hint": {
+ "type": "string",
+ "nullable": true
+ },
+ "dividerAfter": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "SortDirection": {
+ "enum": [
+ "default",
+ "ascending",
+ "descending"
+ ],
+ "type": "string"
+ },
+ "SourceType": {
+ "enum": [
+ "tmdb",
+ "mappings",
+ "user",
+ "indexer"
+ ],
+ "type": "string"
+ },
+ "SystemResource": {
+ "type": "object",
+ "properties": {
+ "appName": {
+ "type": "string",
+ "nullable": true
+ },
+ "instanceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "version": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "isDebug": {
+ "type": "boolean"
+ },
+ "isProduction": {
+ "type": "boolean"
+ },
+ "isAdmin": {
+ "type": "boolean"
+ },
+ "isUserInteractive": {
+ "type": "boolean"
+ },
+ "startupPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "appData": {
+ "type": "string",
+ "nullable": true
+ },
+ "osName": {
+ "type": "string",
+ "nullable": true
+ },
+ "osVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "isNetCore": {
+ "type": "boolean"
+ },
+ "isLinux": {
+ "type": "boolean"
+ },
+ "isOsx": {
+ "type": "boolean"
+ },
+ "isWindows": {
+ "type": "boolean"
+ },
+ "isDocker": {
+ "type": "boolean"
+ },
+ "mode": {
+ "$ref": "#/components/schemas/RuntimeMode"
+ },
+ "branch": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseType": {
+ "$ref": "#/components/schemas/DatabaseType"
+ },
+ "databaseVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "authentication": {
+ "$ref": "#/components/schemas/AuthenticationType"
+ },
+ "migrationVersion": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "urlBase": {
+ "type": "string",
+ "nullable": true
+ },
+ "runtimeVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "runtimeName": {
+ "type": "string",
+ "nullable": true
+ },
+ "startTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "packageVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "packageAuthor": {
+ "type": "string",
+ "nullable": true
+ },
+ "packageUpdateMechanism": {
+ "$ref": "#/components/schemas/UpdateMechanism"
+ },
+ "packageUpdateMechanismMessage": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "TMDbCountryCode": {
+ "enum": [
+ "au",
+ "br",
+ "ca",
+ "fr",
+ "de",
+ "gb",
+ "in",
+ "ie",
+ "it",
+ "nz",
+ "ro",
+ "es",
+ "us"
+ ],
+ "type": "string"
+ },
+ "TagDetailsResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "label": {
+ "type": "string",
+ "nullable": true
+ },
+ "delayProfileIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "importListIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "notificationIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "releaseProfileIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "indexerIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "downloadClientIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "autoTagIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "movieIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "TagResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "label": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "TaskResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "taskName": {
+ "type": "string",
+ "nullable": true
+ },
+ "interval": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "lastExecution": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "lastStartTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "nextExecution": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "lastDuration": {
+ "type": "string",
+ "format": "date-span",
+ "readOnly": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "TrackedDownloadState": {
+ "enum": [
+ "downloading",
+ "importBlocked",
+ "importPending",
+ "importing",
+ "imported",
+ "failedPending",
+ "failed",
+ "ignored"
+ ],
+ "type": "string"
+ },
+ "TrackedDownloadStatus": {
+ "enum": [
+ "ok",
+ "warning",
+ "error"
+ ],
+ "type": "string"
+ },
+ "TrackedDownloadStatusMessage": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "messages": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "UiConfigResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "firstDayOfWeek": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "calendarWeekColumnHeader": {
+ "type": "string",
+ "nullable": true
+ },
+ "movieRuntimeFormat": {
+ "$ref": "#/components/schemas/MovieRuntimeFormatType"
+ },
+ "shortDateFormat": {
+ "type": "string",
+ "nullable": true
+ },
+ "longDateFormat": {
+ "type": "string",
+ "nullable": true
+ },
+ "timeFormat": {
+ "type": "string",
+ "nullable": true
+ },
+ "showRelativeDates": {
+ "type": "boolean"
+ },
+ "enableColorImpairedMode": {
+ "type": "boolean"
+ },
+ "movieInfoLanguage": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "uiLanguage": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "theme": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "UnmappedFolder": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "path": {
+ "type": "string",
+ "nullable": true
+ },
+ "relativePath": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "UpdateChanges": {
+ "type": "object",
+ "properties": {
+ "new": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "fixed": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "UpdateMechanism": {
+ "enum": [
+ "builtIn",
+ "script",
+ "external",
+ "apt",
+ "docker"
+ ],
+ "type": "string"
+ },
+ "UpdateResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "version": {
+ "type": "string",
+ "nullable": true
+ },
+ "branch": {
+ "type": "string",
+ "nullable": true
+ },
+ "releaseDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "fileName": {
+ "type": "string",
+ "nullable": true
+ },
+ "url": {
+ "type": "string",
+ "nullable": true
+ },
+ "installed": {
+ "type": "boolean"
+ },
+ "installedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "installable": {
+ "type": "boolean"
+ },
+ "latest": {
+ "type": "boolean"
+ },
+ "changes": {
+ "$ref": "#/components/schemas/UpdateChanges"
+ },
+ "hash": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "securitySchemes": {
+ "X-Api-Key": {
+ "type": "apiKey",
+ "description": "Apikey passed as header",
+ "name": "X-Api-Key",
+ "in": "header"
+ },
+ "apikey": {
+ "type": "apiKey",
+ "description": "Apikey passed as query parameter",
+ "name": "apikey",
+ "in": "query"
+ }
+ }
+ },
+ "security": [
+ {
+ "X-Api-Key": [ ]
+ },
+ {
+ "apikey": [ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/Radarr.Http.Client/Radarr.Http.Client.csproj b/src/Radarr.Http.Client/Radarr.Http.Client.csproj
new file mode 100644
index 0000000..3b5377e
--- /dev/null
+++ b/src/Radarr.Http.Client/Radarr.Http.Client.csproj
@@ -0,0 +1,27 @@
+
+
+
+ net9.0
+ enable
+ enable
+
+
+
+
+ https://raw.githubusercontent.com/Radarr/Radarr/develop/src/Radarr.Api.V3/openapi.json
+ /JsonLibrary:SystemTextJson
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
diff --git a/src/Sonarr.Http.Client/OpenAPIs/openapi.json b/src/Sonarr.Http.Client/OpenAPIs/openapi.json
new file mode 100644
index 0000000..d5d9167
--- /dev/null
+++ b/src/Sonarr.Http.Client/OpenAPIs/openapi.json
@@ -0,0 +1,12246 @@
+{
+ "openapi": "3.0.1",
+ "info": {
+ "title": "Sonarr",
+ "description": "Sonarr API docs - The v3 API docs apply to both v3 and v4 versions of Sonarr. Some functionality may only be available in v4 of the Sonarr application.",
+ "license": {
+ "name": "GPL-3.0",
+ "url": "https://github.com/Sonarr/Sonarr/blob/develop/LICENSE"
+ },
+ "version": "3.0.0"
+ },
+ "servers": [
+ {
+ "url": "{protocol}://{hostpath}",
+ "variables": {
+ "protocol": {
+ "default": "http",
+ "enum": [
+ "http",
+ "https"
+ ]
+ },
+ "hostpath": {
+ "default": "localhost:8989"
+ }
+ }
+ }
+ ],
+ "paths": {
+ "/api": {
+ "get": {
+ "tags": [
+ "ApiInfo"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/login": {
+ "post": {
+ "tags": [
+ "Authentication"
+ ],
+ "parameters": [
+ {
+ "name": "returnUrl",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "multipart/form-data": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "username": {
+ "type": "string"
+ },
+ "password": {
+ "type": "string"
+ },
+ "rememberMe": {
+ "type": "string"
+ }
+ }
+ },
+ "encoding": {
+ "username": {
+ "style": "form"
+ },
+ "password": {
+ "style": "form"
+ },
+ "rememberMe": {
+ "style": "form"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "StaticResource"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/logout": {
+ "get": {
+ "tags": [
+ "Authentication"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/autotagging": {
+ "post": {
+ "tags": [
+ "AutoTagging"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AutoTaggingResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AutoTaggingResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AutoTaggingResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "AutoTagging"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AutoTaggingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/autotagging/{id}": {
+ "put": {
+ "tags": [
+ "AutoTagging"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AutoTaggingResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AutoTaggingResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AutoTaggingResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "AutoTagging"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "AutoTagging"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/AutoTaggingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/autotagging/schema": {
+ "get": {
+ "tags": [
+ "AutoTagging"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/system/backup": {
+ "get": {
+ "tags": [
+ "Backup"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BackupResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BackupResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/system/backup/{id}": {
+ "delete": {
+ "tags": [
+ "Backup"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/system/backup/restore/{id}": {
+ "post": {
+ "tags": [
+ "Backup"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/system/backup/restore/upload": {
+ "post": {
+ "tags": [
+ "Backup"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/blocklist": {
+ "get": {
+ "tags": [
+ "Blocklist"
+ ],
+ "parameters": [
+ {
+ "name": "page",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 1
+ }
+ },
+ {
+ "name": "pageSize",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 10
+ }
+ },
+ {
+ "name": "sortKey",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "sortDirection",
+ "in": "query",
+ "schema": {
+ "$ref": "#/components/schemas/SortDirection"
+ }
+ },
+ {
+ "name": "seriesIds",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ {
+ "name": "protocols",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DownloadProtocol"
+ }
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/BlocklistResourcePagingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/blocklist/{id}": {
+ "delete": {
+ "tags": [
+ "Blocklist"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/blocklist/bulk": {
+ "delete": {
+ "tags": [
+ "Blocklist"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/BlocklistBulkResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/BlocklistBulkResource"
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "$ref": "#/components/schemas/BlocklistBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/calendar": {
+ "get": {
+ "tags": [
+ "Calendar"
+ ],
+ "parameters": [
+ {
+ "name": "start",
+ "in": "query",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "name": "end",
+ "in": "query",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "name": "unmonitored",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "includeSeries",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "includeEpisodeFile",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "includeEpisodeImages",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "tags",
+ "in": "query",
+ "schema": {
+ "type": "string",
+ "default": ""
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/EpisodeResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/calendar/{id}": {
+ "get": {
+ "tags": [
+ "Calendar"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EpisodeResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/feed/v3/calendar/sonarr.ics": {
+ "get": {
+ "tags": [
+ "CalendarFeed"
+ ],
+ "parameters": [
+ {
+ "name": "pastDays",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 7
+ }
+ },
+ {
+ "name": "futureDays",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 28
+ }
+ },
+ {
+ "name": "tags",
+ "in": "query",
+ "schema": {
+ "type": "string",
+ "default": ""
+ }
+ },
+ {
+ "name": "unmonitored",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "premieresOnly",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "asAllDay",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/command": {
+ "post": {
+ "tags": [
+ "Command"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CommandResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CommandResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Command"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CommandResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/command/{id}": {
+ "delete": {
+ "tags": [
+ "Command"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Command"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CommandResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/customfilter": {
+ "get": {
+ "tags": [
+ "CustomFilter"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFilterResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "CustomFilter"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFilterResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFilterResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFilterResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/customfilter/{id}": {
+ "put": {
+ "tags": [
+ "CustomFilter"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFilterResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFilterResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFilterResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "CustomFilter"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "CustomFilter"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFilterResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/customformat": {
+ "get": {
+ "tags": [
+ "CustomFormat"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "CustomFormat"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/customformat/{id}": {
+ "put": {
+ "tags": [
+ "CustomFormat"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "CustomFormat"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "CustomFormat"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/customformat/bulk": {
+ "put": {
+ "tags": [
+ "CustomFormat"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "CustomFormat"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/CustomFormatBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/customformat/schema": {
+ "get": {
+ "tags": [
+ "CustomFormat"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/wanted/cutoff": {
+ "get": {
+ "tags": [
+ "Cutoff"
+ ],
+ "parameters": [
+ {
+ "name": "page",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 1
+ }
+ },
+ {
+ "name": "pageSize",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 10
+ }
+ },
+ {
+ "name": "sortKey",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "sortDirection",
+ "in": "query",
+ "schema": {
+ "$ref": "#/components/schemas/SortDirection"
+ }
+ },
+ {
+ "name": "includeSeries",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "includeEpisodeFile",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "includeImages",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "monitored",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EpisodeResourcePagingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/wanted/cutoff/{id}": {
+ "get": {
+ "tags": [
+ "Cutoff"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EpisodeResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/delayprofile": {
+ "post": {
+ "tags": [
+ "DelayProfile"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "DelayProfile"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/delayprofile/{id}": {
+ "delete": {
+ "tags": [
+ "DelayProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "DelayProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "DelayProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/delayprofile/reorder/{id}": {
+ "put": {
+ "tags": [
+ "DelayProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "after",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DelayProfileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/diskspace": {
+ "get": {
+ "tags": [
+ "DiskSpace"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DiskSpaceResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/downloadclient": {
+ "get": {
+ "tags": [
+ "DownloadClient"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "DownloadClient"
+ ],
+ "parameters": [
+ {
+ "name": "forceSave",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/downloadclient/{id}": {
+ "put": {
+ "tags": [
+ "DownloadClient"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "forceSave",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "DownloadClient"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "DownloadClient"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/downloadclient/bulk": {
+ "put": {
+ "tags": [
+ "DownloadClient"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "DownloadClient"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/downloadclient/schema": {
+ "get": {
+ "tags": [
+ "DownloadClient"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/downloadclient/test": {
+ "post": {
+ "tags": [
+ "DownloadClient"
+ ],
+ "parameters": [
+ {
+ "name": "forceTest",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/downloadclient/testall": {
+ "post": {
+ "tags": [
+ "DownloadClient"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/downloadclient/action/{name}": {
+ "post": {
+ "tags": [
+ "DownloadClient"
+ ],
+ "parameters": [
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/config/downloadclient": {
+ "get": {
+ "tags": [
+ "DownloadClientConfig"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/config/downloadclient/{id}": {
+ "put": {
+ "tags": [
+ "DownloadClientConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientConfigResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientConfigResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "DownloadClientConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/DownloadClientConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/episode": {
+ "get": {
+ "tags": [
+ "Episode"
+ ],
+ "parameters": [
+ {
+ "name": "seriesId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "seasonNumber",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "episodeIds",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ {
+ "name": "episodeFileId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "includeSeries",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "includeEpisodeFile",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "includeImages",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/EpisodeResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/episode/{id}": {
+ "put": {
+ "tags": [
+ "Episode"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EpisodeResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EpisodeResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EpisodeResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Episode"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EpisodeResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/episode/monitor": {
+ "put": {
+ "tags": [
+ "Episode"
+ ],
+ "parameters": [
+ {
+ "name": "includeImages",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EpisodesMonitoredResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/episodefile": {
+ "get": {
+ "tags": [
+ "EpisodeFile"
+ ],
+ "parameters": [
+ {
+ "name": "seriesId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "episodeFileIds",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/EpisodeFileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/episodefile/{id}": {
+ "put": {
+ "tags": [
+ "EpisodeFile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EpisodeFileResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EpisodeFileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EpisodeFileResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "EpisodeFile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "EpisodeFile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EpisodeFileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/episodefile/editor": {
+ "put": {
+ "tags": [
+ "EpisodeFile"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EpisodeFileListResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/episodefile/bulk": {
+ "delete": {
+ "tags": [
+ "EpisodeFile"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EpisodeFileListResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "EpisodeFile"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/EpisodeFileResource"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/filesystem": {
+ "get": {
+ "tags": [
+ "FileSystem"
+ ],
+ "parameters": [
+ {
+ "name": "path",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "includeFiles",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "allowFoldersWithoutTrailingSlashes",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/filesystem/type": {
+ "get": {
+ "tags": [
+ "FileSystem"
+ ],
+ "parameters": [
+ {
+ "name": "path",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/filesystem/mediafiles": {
+ "get": {
+ "tags": [
+ "FileSystem"
+ ],
+ "parameters": [
+ {
+ "name": "path",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/health": {
+ "get": {
+ "tags": [
+ "Health"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/HealthResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/history": {
+ "get": {
+ "tags": [
+ "History"
+ ],
+ "parameters": [
+ {
+ "name": "page",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 1
+ }
+ },
+ {
+ "name": "pageSize",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 10
+ }
+ },
+ {
+ "name": "sortKey",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "sortDirection",
+ "in": "query",
+ "schema": {
+ "$ref": "#/components/schemas/SortDirection"
+ }
+ },
+ {
+ "name": "includeSeries",
+ "in": "query",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "name": "includeEpisode",
+ "in": "query",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "name": "eventType",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ {
+ "name": "episodeId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "downloadId",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "seriesIds",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ {
+ "name": "languages",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ {
+ "name": "quality",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HistoryResourcePagingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/history/since": {
+ "get": {
+ "tags": [
+ "History"
+ ],
+ "parameters": [
+ {
+ "name": "date",
+ "in": "query",
+ "schema": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ {
+ "name": "eventType",
+ "in": "query",
+ "schema": {
+ "$ref": "#/components/schemas/EpisodeHistoryEventType"
+ }
+ },
+ {
+ "name": "includeSeries",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "includeEpisode",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/HistoryResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/history/series": {
+ "get": {
+ "tags": [
+ "History"
+ ],
+ "parameters": [
+ {
+ "name": "seriesId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "seasonNumber",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "eventType",
+ "in": "query",
+ "schema": {
+ "$ref": "#/components/schemas/EpisodeHistoryEventType"
+ }
+ },
+ {
+ "name": "includeSeries",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "includeEpisode",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/HistoryResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/history/failed/{id}": {
+ "post": {
+ "tags": [
+ "History"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/config/host": {
+ "get": {
+ "tags": [
+ "HostConfig"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HostConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HostConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/config/host/{id}": {
+ "put": {
+ "tags": [
+ "HostConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HostConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HostConfigResource"
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "$ref": "#/components/schemas/HostConfigResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HostConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HostConfigResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "HostConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/HostConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/importlist": {
+ "get": {
+ "tags": [
+ "ImportList"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ImportListResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "ImportList"
+ ],
+ "parameters": [
+ {
+ "name": "forceSave",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/importlist/{id}": {
+ "put": {
+ "tags": [
+ "ImportList"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "forceSave",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ImportList"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ImportList"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/importlist/bulk": {
+ "put": {
+ "tags": [
+ "ImportList"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ImportList"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/importlist/schema": {
+ "get": {
+ "tags": [
+ "ImportList"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ImportListResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/importlist/test": {
+ "post": {
+ "tags": [
+ "ImportList"
+ ],
+ "parameters": [
+ {
+ "name": "forceTest",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/importlist/testall": {
+ "post": {
+ "tags": [
+ "ImportList"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/importlist/action/{name}": {
+ "post": {
+ "tags": [
+ "ImportList"
+ ],
+ "parameters": [
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/config/importlist": {
+ "get": {
+ "tags": [
+ "ImportListConfig"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/config/importlist/{id}": {
+ "put": {
+ "tags": [
+ "ImportListConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListConfigResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListConfigResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ImportListConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/importlistexclusion": {
+ "get": {
+ "tags": [
+ "ImportListExclusion"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true
+ },
+ "post": {
+ "tags": [
+ "ImportListExclusion"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/importlistexclusion/paged": {
+ "get": {
+ "tags": [
+ "ImportListExclusion"
+ ],
+ "parameters": [
+ {
+ "name": "page",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 1
+ }
+ },
+ {
+ "name": "pageSize",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 10
+ }
+ },
+ {
+ "name": "sortKey",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "sortDirection",
+ "in": "query",
+ "schema": {
+ "$ref": "#/components/schemas/SortDirection"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionResourcePagingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/importlistexclusion/{id}": {
+ "put": {
+ "tags": [
+ "ImportListExclusion"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "ImportListExclusion"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ImportListExclusion"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/importlistexclusion/bulk": {
+ "delete": {
+ "tags": [
+ "ImportListExclusion"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionBulkResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionBulkResource"
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "$ref": "#/components/schemas/ImportListExclusionBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/indexer": {
+ "get": {
+ "tags": [
+ "Indexer"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/IndexerResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "Indexer"
+ ],
+ "parameters": [
+ {
+ "name": "forceSave",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/indexer/{id}": {
+ "put": {
+ "tags": [
+ "Indexer"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "forceSave",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Indexer"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Indexer"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/indexer/bulk": {
+ "put": {
+ "tags": [
+ "Indexer"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Indexer"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/indexer/schema": {
+ "get": {
+ "tags": [
+ "Indexer"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/IndexerResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/indexer/test": {
+ "post": {
+ "tags": [
+ "Indexer"
+ ],
+ "parameters": [
+ {
+ "name": "forceTest",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/indexer/testall": {
+ "post": {
+ "tags": [
+ "Indexer"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/indexer/action/{name}": {
+ "post": {
+ "tags": [
+ "Indexer"
+ ],
+ "parameters": [
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/config/indexer": {
+ "get": {
+ "tags": [
+ "IndexerConfig"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/config/indexer/{id}": {
+ "put": {
+ "tags": [
+ "IndexerConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerConfigResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerConfigResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "IndexerConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/IndexerConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/indexerflag": {
+ "get": {
+ "tags": [
+ "IndexerFlag"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/IndexerFlagResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/IndexerFlagResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/language": {
+ "get": {
+ "tags": [
+ "Language"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/LanguageResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/LanguageResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/language/{id}": {
+ "get": {
+ "tags": [
+ "Language"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LanguageResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/languageprofile": {
+ "post": {
+ "tags": [
+ "LanguageProfile"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LanguageProfileResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LanguageProfileResource"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true
+ },
+ "get": {
+ "tags": [
+ "LanguageProfile"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/LanguageProfileResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true
+ }
+ },
+ "/api/v3/languageprofile/{id}": {
+ "delete": {
+ "tags": [
+ "LanguageProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ },
+ "deprecated": true
+ },
+ "put": {
+ "tags": [
+ "LanguageProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LanguageProfileResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LanguageProfileResource"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true
+ },
+ "get": {
+ "tags": [
+ "LanguageProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LanguageProfileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/languageprofile/schema": {
+ "get": {
+ "tags": [
+ "LanguageProfileSchema"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LanguageProfileResource"
+ }
+ }
+ }
+ }
+ },
+ "deprecated": true
+ }
+ },
+ "/api/v3/localization": {
+ "get": {
+ "tags": [
+ "Localization"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LocalizationResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/localization/language": {
+ "get": {
+ "tags": [
+ "Localization"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LocalizationLanguageResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/localization/{id}": {
+ "get": {
+ "tags": [
+ "Localization"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LocalizationResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/log": {
+ "get": {
+ "tags": [
+ "Log"
+ ],
+ "parameters": [
+ {
+ "name": "page",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 1
+ }
+ },
+ {
+ "name": "pageSize",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 10
+ }
+ },
+ {
+ "name": "sortKey",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "sortDirection",
+ "in": "query",
+ "schema": {
+ "$ref": "#/components/schemas/SortDirection"
+ }
+ },
+ {
+ "name": "level",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/LogResourcePagingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/log/file": {
+ "get": {
+ "tags": [
+ "LogFile"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/LogFileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/log/file/{filename}": {
+ "get": {
+ "tags": [
+ "LogFile"
+ ],
+ "parameters": [
+ {
+ "name": "filename",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "pattern": "[-.a-zA-Z0-9]+?\\.txt",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/manualimport": {
+ "get": {
+ "tags": [
+ "ManualImport"
+ ],
+ "parameters": [
+ {
+ "name": "folder",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "downloadId",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "seriesId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "seasonNumber",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "filterExistingFiles",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ManualImportResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "ManualImport"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ManualImportReprocessResource"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/mediacover/{seriesId}/{filename}": {
+ "get": {
+ "tags": [
+ "MediaCover"
+ ],
+ "parameters": [
+ {
+ "name": "seriesId",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "filename",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "pattern": "(.+)\\.(jpg|png|gif)",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/config/mediamanagement": {
+ "get": {
+ "tags": [
+ "MediaManagementConfig"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MediaManagementConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/config/mediamanagement/{id}": {
+ "put": {
+ "tags": [
+ "MediaManagementConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MediaManagementConfigResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MediaManagementConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MediaManagementConfigResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "MediaManagementConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MediaManagementConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/metadata": {
+ "get": {
+ "tags": [
+ "Metadata"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MetadataResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "Metadata"
+ ],
+ "parameters": [
+ {
+ "name": "forceSave",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/metadata/{id}": {
+ "put": {
+ "tags": [
+ "Metadata"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "forceSave",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Metadata"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Metadata"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/metadata/schema": {
+ "get": {
+ "tags": [
+ "Metadata"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MetadataResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/metadata/test": {
+ "post": {
+ "tags": [
+ "Metadata"
+ ],
+ "parameters": [
+ {
+ "name": "forceTest",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/metadata/testall": {
+ "post": {
+ "tags": [
+ "Metadata"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/metadata/action/{name}": {
+ "post": {
+ "tags": [
+ "Metadata"
+ ],
+ "parameters": [
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/MetadataResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/wanted/missing": {
+ "get": {
+ "tags": [
+ "Missing"
+ ],
+ "parameters": [
+ {
+ "name": "page",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 1
+ }
+ },
+ {
+ "name": "pageSize",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 10
+ }
+ },
+ {
+ "name": "sortKey",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "sortDirection",
+ "in": "query",
+ "schema": {
+ "$ref": "#/components/schemas/SortDirection"
+ }
+ },
+ {
+ "name": "includeSeries",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "includeImages",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "monitored",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EpisodeResourcePagingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/wanted/missing/{id}": {
+ "get": {
+ "tags": [
+ "Missing"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/EpisodeResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/config/naming": {
+ "get": {
+ "tags": [
+ "NamingConfig"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NamingConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NamingConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/config/naming/{id}": {
+ "put": {
+ "tags": [
+ "NamingConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NamingConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NamingConfigResource"
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "$ref": "#/components/schemas/NamingConfigResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NamingConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NamingConfigResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "NamingConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NamingConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/config/naming/examples": {
+ "get": {
+ "tags": [
+ "NamingConfig"
+ ],
+ "parameters": [
+ {
+ "name": "renameEpisodes",
+ "in": "query",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "name": "replaceIllegalCharacters",
+ "in": "query",
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "name": "colonReplacementFormat",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "customColonReplacementFormat",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "multiEpisodeStyle",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "standardEpisodeFormat",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "dailyEpisodeFormat",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "animeEpisodeFormat",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "seriesFolderFormat",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "seasonFolderFormat",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "specialsFolderFormat",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "id",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "resourceName",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/notification": {
+ "get": {
+ "tags": [
+ "Notification"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/NotificationResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "Notification"
+ ],
+ "parameters": [
+ {
+ "name": "forceSave",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/notification/{id}": {
+ "put": {
+ "tags": [
+ "Notification"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "forceSave",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Notification"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Notification"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/notification/schema": {
+ "get": {
+ "tags": [
+ "Notification"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/NotificationResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/notification/test": {
+ "post": {
+ "tags": [
+ "Notification"
+ ],
+ "parameters": [
+ {
+ "name": "forceTest",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/notification/testall": {
+ "post": {
+ "tags": [
+ "Notification"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/notification/action/{name}": {
+ "post": {
+ "tags": [
+ "Notification"
+ ],
+ "parameters": [
+ {
+ "name": "name",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/NotificationResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/parse": {
+ "get": {
+ "tags": [
+ "Parse"
+ ],
+ "parameters": [
+ {
+ "name": "title",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "path",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ParseResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/ping": {
+ "get": {
+ "tags": [
+ "Ping"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PingResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "head": {
+ "tags": [
+ "Ping"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/PingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/qualitydefinition/{id}": {
+ "put": {
+ "tags": [
+ "QualityDefinition"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "QualityDefinition"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/qualitydefinition": {
+ "get": {
+ "tags": [
+ "QualityDefinition"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/qualitydefinition/update": {
+ "put": {
+ "tags": [
+ "QualityDefinition"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QualityDefinitionResource"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/qualitydefinition/limits": {
+ "get": {
+ "tags": [
+ "QualityDefinition"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityDefinitionLimitsResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityDefinitionLimitsResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/qualityprofile": {
+ "post": {
+ "tags": [
+ "QualityProfile"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "QualityProfile"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/qualityprofile/{id}": {
+ "delete": {
+ "tags": [
+ "QualityProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "QualityProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "QualityProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/qualityprofile/schema": {
+ "get": {
+ "tags": [
+ "QualityProfileSchema"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QualityProfileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/queue/{id}": {
+ "delete": {
+ "tags": [
+ "Queue"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "removeFromClient",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ },
+ {
+ "name": "blocklist",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "skipRedownload",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "changeCategory",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/queue/bulk": {
+ "delete": {
+ "tags": [
+ "Queue"
+ ],
+ "parameters": [
+ {
+ "name": "removeFromClient",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": true
+ }
+ },
+ {
+ "name": "blocklist",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "skipRedownload",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "changeCategory",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QueueBulkResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QueueBulkResource"
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "$ref": "#/components/schemas/QueueBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/queue": {
+ "get": {
+ "tags": [
+ "Queue"
+ ],
+ "parameters": [
+ {
+ "name": "page",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 1
+ }
+ },
+ {
+ "name": "pageSize",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32",
+ "default": 10
+ }
+ },
+ {
+ "name": "sortKey",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "sortDirection",
+ "in": "query",
+ "schema": {
+ "$ref": "#/components/schemas/SortDirection"
+ }
+ },
+ {
+ "name": "includeUnknownSeriesItems",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "includeSeries",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "includeEpisode",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "seriesIds",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ {
+ "name": "protocol",
+ "in": "query",
+ "schema": {
+ "$ref": "#/components/schemas/DownloadProtocol"
+ }
+ },
+ {
+ "name": "languages",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ {
+ "name": "quality",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ {
+ "name": "status",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QueueStatus"
+ }
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QueueResourcePagingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/queue/grab/{id}": {
+ "post": {
+ "tags": [
+ "QueueAction"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/queue/grab/bulk": {
+ "post": {
+ "tags": [
+ "QueueAction"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QueueBulkResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/queue/details": {
+ "get": {
+ "tags": [
+ "QueueDetails"
+ ],
+ "parameters": [
+ {
+ "name": "seriesId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "episodeIds",
+ "in": "query",
+ "schema": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ },
+ {
+ "name": "includeSeries",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "includeEpisode",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QueueResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/queue/status": {
+ "get": {
+ "tags": [
+ "QueueStatus"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/QueueStatusResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/release": {
+ "post": {
+ "tags": [
+ "Release"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Release"
+ ],
+ "parameters": [
+ {
+ "name": "seriesId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "episodeId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "seasonNumber",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ReleaseResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/releaseprofile": {
+ "post": {
+ "tags": [
+ "ReleaseProfile"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ReleaseProfile"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/releaseprofile/{id}": {
+ "delete": {
+ "tags": [
+ "ReleaseProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "ReleaseProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "ReleaseProfile"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseProfileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/release/push": {
+ "post": {
+ "tags": [
+ "ReleasePush"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/ReleaseResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ReleaseResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ReleaseResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/remotepathmapping": {
+ "post": {
+ "tags": [
+ "RemotePathMapping"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "RemotePathMapping"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/remotepathmapping/{id}": {
+ "delete": {
+ "tags": [
+ "RemotePathMapping"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "RemotePathMapping"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "RemotePathMapping"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RemotePathMappingResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/rename": {
+ "get": {
+ "tags": [
+ "RenameEpisode"
+ ],
+ "parameters": [
+ {
+ "name": "seriesId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "seasonNumber",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/RenameEpisodeResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/rootfolder": {
+ "post": {
+ "tags": [
+ "RootFolder"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RootFolderResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RootFolderResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RootFolderResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "RootFolder"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/RootFolderResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/rootfolder/{id}": {
+ "delete": {
+ "tags": [
+ "RootFolder"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "RootFolder"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/RootFolderResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/seasonpass": {
+ "post": {
+ "tags": [
+ "SeasonPass"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SeasonPassResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/series": {
+ "get": {
+ "tags": [
+ "Series"
+ ],
+ "parameters": [
+ {
+ "name": "tvdbId",
+ "in": "query",
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "includeSeasonImages",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SeriesResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "Series"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SeriesResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SeriesResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/series/{id}": {
+ "get": {
+ "tags": [
+ "Series"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "includeSeasonImages",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SeriesResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "put": {
+ "tags": [
+ "Series"
+ ],
+ "parameters": [
+ {
+ "name": "moveFiles",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SeriesResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "202": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SeriesResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Series"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ {
+ "name": "deleteFiles",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ },
+ {
+ "name": "addImportListExclusion",
+ "in": "query",
+ "schema": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/series/editor": {
+ "put": {
+ "tags": [
+ "SeriesEditor"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SeriesEditorResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SeriesEditorResource"
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "$ref": "#/components/schemas/SeriesEditorResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "SeriesEditor"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SeriesEditorResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SeriesEditorResource"
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "$ref": "#/components/schemas/SeriesEditorResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/series/{id}/folder": {
+ "get": {
+ "tags": [
+ "SeriesFolder"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/series/import": {
+ "post": {
+ "tags": [
+ "SeriesImport"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SeriesResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SeriesResource"
+ }
+ }
+ },
+ "application/*+json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SeriesResource"
+ }
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/series/lookup": {
+ "get": {
+ "tags": [
+ "SeriesLookup"
+ ],
+ "parameters": [
+ {
+ "name": "term",
+ "in": "query",
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SeriesResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SeriesResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/content/{path}": {
+ "get": {
+ "tags": [
+ "StaticResource"
+ ],
+ "parameters": [
+ {
+ "name": "path",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "pattern": "^(?!api/).*",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/": {
+ "get": {
+ "tags": [
+ "StaticResource"
+ ],
+ "parameters": [
+ {
+ "name": "path",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/{path}": {
+ "get": {
+ "tags": [
+ "StaticResource"
+ ],
+ "parameters": [
+ {
+ "name": "path",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "pattern": "^(?!(api|feed)/).*",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/system/status": {
+ "get": {
+ "tags": [
+ "System"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/SystemResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/system/routes": {
+ "get": {
+ "tags": [
+ "System"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/system/routes/duplicate": {
+ "get": {
+ "tags": [
+ "System"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/system/shutdown": {
+ "post": {
+ "tags": [
+ "System"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/system/restart": {
+ "post": {
+ "tags": [
+ "System"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ },
+ "/api/v3/tag": {
+ "get": {
+ "tags": [
+ "Tag"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TagResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "tags": [
+ "Tag"
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "201": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/tag/{id}": {
+ "put": {
+ "tags": [
+ "Tag"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "delete": {
+ "tags": [
+ "Tag"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "Tag"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/tag/detail": {
+ "get": {
+ "tags": [
+ "TagDetails"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TagDetailsResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/tag/detail/{id}": {
+ "get": {
+ "tags": [
+ "TagDetails"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TagDetailsResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/system/task": {
+ "get": {
+ "tags": [
+ "Task"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TaskResource"
+ }
+ }
+ },
+ "text/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TaskResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/system/task/{id}": {
+ "get": {
+ "tags": [
+ "Task"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/TaskResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/config/ui/{id}": {
+ "put": {
+ "tags": [
+ "UiConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "requestBody": {
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UiConfigResource"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UiConfigResource"
+ }
+ },
+ "text/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UiConfigResource"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "tags": [
+ "UiConfig"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "integer",
+ "format": "int32"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UiConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/config/ui": {
+ "get": {
+ "tags": [
+ "UiConfig"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/UiConfigResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/update": {
+ "get": {
+ "tags": [
+ "Update"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UpdateResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/log/file/update": {
+ "get": {
+ "tags": [
+ "UpdateLogFile"
+ ],
+ "responses": {
+ "200": {
+ "description": "OK",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/LogFileResource"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v3/log/file/update/{filename}": {
+ "get": {
+ "tags": [
+ "UpdateLogFile"
+ ],
+ "parameters": [
+ {
+ "name": "filename",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "pattern": "[-.a-zA-Z0-9]+?\\.txt",
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "OK"
+ }
+ }
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "AddSeriesOptions": {
+ "type": "object",
+ "properties": {
+ "ignoreEpisodesWithFiles": {
+ "type": "boolean"
+ },
+ "ignoreEpisodesWithoutFiles": {
+ "type": "boolean"
+ },
+ "monitor": {
+ "$ref": "#/components/schemas/MonitorTypes"
+ },
+ "searchForMissingEpisodes": {
+ "type": "boolean"
+ },
+ "searchForCutoffUnmetEpisodes": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "AlternateTitleResource": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "seasonNumber": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "sceneSeasonNumber": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "sceneOrigin": {
+ "type": "string",
+ "nullable": true
+ },
+ "comment": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ApplyTags": {
+ "enum": [
+ "add",
+ "remove",
+ "replace"
+ ],
+ "type": "string"
+ },
+ "AuthenticationRequiredType": {
+ "enum": [
+ "enabled",
+ "disabledForLocalAddresses"
+ ],
+ "type": "string"
+ },
+ "AuthenticationType": {
+ "enum": [
+ "none",
+ "basic",
+ "forms",
+ "external"
+ ],
+ "type": "string"
+ },
+ "AutoTaggingResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "removeTagsAutomatically": {
+ "type": "boolean"
+ },
+ "tags": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "specifications": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AutoTaggingSpecificationSchema"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "AutoTaggingSpecificationSchema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "implementation": {
+ "type": "string",
+ "nullable": true
+ },
+ "implementationName": {
+ "type": "string",
+ "nullable": true
+ },
+ "negate": {
+ "type": "boolean"
+ },
+ "required": {
+ "type": "boolean"
+ },
+ "fields": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Field"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "BackupResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "path": {
+ "type": "string",
+ "nullable": true
+ },
+ "type": {
+ "$ref": "#/components/schemas/BackupType"
+ },
+ "size": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "time": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "additionalProperties": false
+ },
+ "BackupType": {
+ "enum": [
+ "scheduled",
+ "manual",
+ "update"
+ ],
+ "type": "string"
+ },
+ "BlocklistBulkResource": {
+ "type": "object",
+ "properties": {
+ "ids": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "BlocklistResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "seriesId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "episodeIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "sourceTitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "languages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "nullable": true
+ },
+ "quality": {
+ "$ref": "#/components/schemas/QualityModel"
+ },
+ "customFormats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ },
+ "nullable": true
+ },
+ "date": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "protocol": {
+ "$ref": "#/components/schemas/DownloadProtocol"
+ },
+ "indexer": {
+ "type": "string",
+ "nullable": true
+ },
+ "message": {
+ "type": "string",
+ "nullable": true
+ },
+ "series": {
+ "$ref": "#/components/schemas/SeriesResource"
+ }
+ },
+ "additionalProperties": false
+ },
+ "BlocklistResourcePagingResource": {
+ "type": "object",
+ "properties": {
+ "page": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "pageSize": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sortKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "sortDirection": {
+ "$ref": "#/components/schemas/SortDirection"
+ },
+ "totalRecords": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "records": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/BlocklistResource"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "CertificateValidationType": {
+ "enum": [
+ "enabled",
+ "disabledForLocalAddresses",
+ "disabled"
+ ],
+ "type": "string"
+ },
+ "Command": {
+ "type": "object",
+ "properties": {
+ "sendUpdatesToClient": {
+ "type": "boolean"
+ },
+ "updateScheduledTask": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "completionMessage": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true
+ },
+ "requiresDiskAccess": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "isExclusive": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "isLongRunning": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "name": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true
+ },
+ "lastExecutionTime": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "lastStartTime": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "trigger": {
+ "$ref": "#/components/schemas/CommandTrigger"
+ },
+ "suppressMessages": {
+ "type": "boolean"
+ },
+ "clientUserAgent": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "CommandPriority": {
+ "enum": [
+ "normal",
+ "high",
+ "low"
+ ],
+ "type": "string"
+ },
+ "CommandResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "commandName": {
+ "type": "string",
+ "nullable": true
+ },
+ "message": {
+ "type": "string",
+ "nullable": true
+ },
+ "body": {
+ "$ref": "#/components/schemas/Command"
+ },
+ "priority": {
+ "$ref": "#/components/schemas/CommandPriority"
+ },
+ "status": {
+ "$ref": "#/components/schemas/CommandStatus"
+ },
+ "result": {
+ "$ref": "#/components/schemas/CommandResult"
+ },
+ "queued": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "started": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "ended": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "duration": {
+ "type": "string",
+ "format": "date-span",
+ "nullable": true
+ },
+ "exception": {
+ "type": "string",
+ "nullable": true
+ },
+ "trigger": {
+ "$ref": "#/components/schemas/CommandTrigger"
+ },
+ "clientUserAgent": {
+ "type": "string",
+ "nullable": true
+ },
+ "stateChangeTime": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "sendUpdatesToClient": {
+ "type": "boolean"
+ },
+ "updateScheduledTask": {
+ "type": "boolean"
+ },
+ "lastExecutionTime": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "CommandResult": {
+ "enum": [
+ "unknown",
+ "successful",
+ "unsuccessful"
+ ],
+ "type": "string"
+ },
+ "CommandStatus": {
+ "enum": [
+ "queued",
+ "started",
+ "completed",
+ "failed",
+ "aborted",
+ "cancelled",
+ "orphaned"
+ ],
+ "type": "string"
+ },
+ "CommandTrigger": {
+ "enum": [
+ "unspecified",
+ "manual",
+ "scheduled"
+ ],
+ "type": "string"
+ },
+ "CustomFilterResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "type": {
+ "type": "string",
+ "nullable": true
+ },
+ "label": {
+ "type": "string",
+ "nullable": true
+ },
+ "filters": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": { }
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "CustomFormatBulkResource": {
+ "type": "object",
+ "properties": {
+ "ids": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "includeCustomFormatWhenRenaming": {
+ "type": "boolean",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "CustomFormatResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "includeCustomFormatWhenRenaming": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "specifications": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFormatSpecificationSchema"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "CustomFormatSpecificationSchema": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "implementation": {
+ "type": "string",
+ "nullable": true
+ },
+ "implementationName": {
+ "type": "string",
+ "nullable": true
+ },
+ "infoLink": {
+ "type": "string",
+ "nullable": true
+ },
+ "negate": {
+ "type": "boolean"
+ },
+ "required": {
+ "type": "boolean"
+ },
+ "fields": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Field"
+ },
+ "nullable": true
+ },
+ "presets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFormatSpecificationSchema"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "DatabaseType": {
+ "enum": [
+ "sqLite",
+ "postgreSQL"
+ ],
+ "type": "string"
+ },
+ "DelayProfileResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "enableUsenet": {
+ "type": "boolean"
+ },
+ "enableTorrent": {
+ "type": "boolean"
+ },
+ "preferredProtocol": {
+ "$ref": "#/components/schemas/DownloadProtocol"
+ },
+ "usenetDelay": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "torrentDelay": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "bypassIfHighestQuality": {
+ "type": "boolean"
+ },
+ "bypassIfAboveCustomFormatScore": {
+ "type": "boolean"
+ },
+ "minimumCustomFormatScore": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "order": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "tags": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "DiskSpaceResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "path": {
+ "type": "string",
+ "nullable": true
+ },
+ "label": {
+ "type": "string",
+ "nullable": true
+ },
+ "freeSpace": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "totalSpace": {
+ "type": "integer",
+ "format": "int64"
+ }
+ },
+ "additionalProperties": false
+ },
+ "DownloadClientBulkResource": {
+ "type": "object",
+ "properties": {
+ "ids": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "applyTags": {
+ "$ref": "#/components/schemas/ApplyTags"
+ },
+ "enable": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "priority": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "removeCompletedDownloads": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "removeFailedDownloads": {
+ "type": "boolean",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "DownloadClientConfigResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "downloadClientWorkingFolders": {
+ "type": "string",
+ "nullable": true
+ },
+ "enableCompletedDownloadHandling": {
+ "type": "boolean"
+ },
+ "autoRedownloadFailed": {
+ "type": "boolean"
+ },
+ "autoRedownloadFailedFromInteractiveSearch": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "DownloadClientResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "fields": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Field"
+ },
+ "nullable": true
+ },
+ "implementationName": {
+ "type": "string",
+ "nullable": true
+ },
+ "implementation": {
+ "type": "string",
+ "nullable": true
+ },
+ "configContract": {
+ "type": "string",
+ "nullable": true
+ },
+ "infoLink": {
+ "type": "string",
+ "nullable": true
+ },
+ "message": {
+ "$ref": "#/components/schemas/ProviderMessage"
+ },
+ "tags": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "presets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/DownloadClientResource"
+ },
+ "nullable": true
+ },
+ "enable": {
+ "type": "boolean"
+ },
+ "protocol": {
+ "$ref": "#/components/schemas/DownloadProtocol"
+ },
+ "priority": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "removeCompletedDownloads": {
+ "type": "boolean"
+ },
+ "removeFailedDownloads": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "DownloadProtocol": {
+ "enum": [
+ "unknown",
+ "usenet",
+ "torrent"
+ ],
+ "type": "string"
+ },
+ "EpisodeFileListResource": {
+ "type": "object",
+ "properties": {
+ "episodeFileIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "languages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "nullable": true
+ },
+ "quality": {
+ "$ref": "#/components/schemas/QualityModel"
+ },
+ "sceneName": {
+ "type": "string",
+ "nullable": true
+ },
+ "releaseGroup": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "EpisodeFileResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "seriesId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "seasonNumber": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "relativePath": {
+ "type": "string",
+ "nullable": true
+ },
+ "path": {
+ "type": "string",
+ "nullable": true
+ },
+ "size": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "dateAdded": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "sceneName": {
+ "type": "string",
+ "nullable": true
+ },
+ "releaseGroup": {
+ "type": "string",
+ "nullable": true
+ },
+ "languages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "nullable": true
+ },
+ "quality": {
+ "$ref": "#/components/schemas/QualityModel"
+ },
+ "customFormats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ },
+ "nullable": true
+ },
+ "customFormatScore": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "indexerFlags": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "releaseType": {
+ "$ref": "#/components/schemas/ReleaseType"
+ },
+ "mediaInfo": {
+ "$ref": "#/components/schemas/MediaInfoResource"
+ },
+ "qualityCutoffNotMet": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "EpisodeHistoryEventType": {
+ "enum": [
+ "unknown",
+ "grabbed",
+ "seriesFolderImported",
+ "downloadFolderImported",
+ "downloadFailed",
+ "episodeFileDeleted",
+ "episodeFileRenamed",
+ "downloadIgnored"
+ ],
+ "type": "string"
+ },
+ "EpisodeResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "seriesId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "tvdbId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "episodeFileId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "seasonNumber": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "episodeNumber": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "airDate": {
+ "type": "string",
+ "nullable": true
+ },
+ "airDateUtc": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "lastSearchTime": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "runtime": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "finaleType": {
+ "type": "string",
+ "nullable": true
+ },
+ "overview": {
+ "type": "string",
+ "nullable": true
+ },
+ "episodeFile": {
+ "$ref": "#/components/schemas/EpisodeFileResource"
+ },
+ "hasFile": {
+ "type": "boolean"
+ },
+ "monitored": {
+ "type": "boolean"
+ },
+ "absoluteEpisodeNumber": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "sceneAbsoluteEpisodeNumber": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "sceneEpisodeNumber": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "sceneSeasonNumber": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "unverifiedSceneNumbering": {
+ "type": "boolean"
+ },
+ "endTime": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "grabDate": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "series": {
+ "$ref": "#/components/schemas/SeriesResource"
+ },
+ "images": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MediaCover"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "EpisodeResourcePagingResource": {
+ "type": "object",
+ "properties": {
+ "page": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "pageSize": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sortKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "sortDirection": {
+ "$ref": "#/components/schemas/SortDirection"
+ },
+ "totalRecords": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "records": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/EpisodeResource"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "EpisodeTitleRequiredType": {
+ "enum": [
+ "always",
+ "bulkSeasonReleases",
+ "never"
+ ],
+ "type": "string"
+ },
+ "EpisodesMonitoredResource": {
+ "type": "object",
+ "properties": {
+ "episodeIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "monitored": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Field": {
+ "type": "object",
+ "properties": {
+ "order": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "label": {
+ "type": "string",
+ "nullable": true
+ },
+ "unit": {
+ "type": "string",
+ "nullable": true
+ },
+ "helpText": {
+ "type": "string",
+ "nullable": true
+ },
+ "helpTextWarning": {
+ "type": "string",
+ "nullable": true
+ },
+ "helpLink": {
+ "type": "string",
+ "nullable": true
+ },
+ "value": {
+ "nullable": true
+ },
+ "type": {
+ "type": "string",
+ "nullable": true
+ },
+ "advanced": {
+ "type": "boolean"
+ },
+ "selectOptions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SelectOption"
+ },
+ "nullable": true
+ },
+ "selectOptionsProviderAction": {
+ "type": "string",
+ "nullable": true
+ },
+ "section": {
+ "type": "string",
+ "nullable": true
+ },
+ "hidden": {
+ "type": "string",
+ "nullable": true
+ },
+ "privacy": {
+ "$ref": "#/components/schemas/PrivacyLevel"
+ },
+ "placeholder": {
+ "type": "string",
+ "nullable": true
+ },
+ "isFloat": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "FileDateType": {
+ "enum": [
+ "none",
+ "localAirDate",
+ "utcAirDate"
+ ],
+ "type": "string"
+ },
+ "HealthCheckResult": {
+ "enum": [
+ "ok",
+ "notice",
+ "warning",
+ "error"
+ ],
+ "type": "string"
+ },
+ "HealthResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "source": {
+ "type": "string",
+ "nullable": true
+ },
+ "type": {
+ "$ref": "#/components/schemas/HealthCheckResult"
+ },
+ "message": {
+ "type": "string",
+ "nullable": true
+ },
+ "wikiUrl": {
+ "$ref": "#/components/schemas/HttpUri"
+ }
+ },
+ "additionalProperties": false
+ },
+ "HistoryResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "episodeId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "seriesId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sourceTitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "languages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "nullable": true
+ },
+ "quality": {
+ "$ref": "#/components/schemas/QualityModel"
+ },
+ "customFormats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ },
+ "nullable": true
+ },
+ "customFormatScore": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "qualityCutoffNotMet": {
+ "type": "boolean"
+ },
+ "date": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "downloadId": {
+ "type": "string",
+ "nullable": true
+ },
+ "eventType": {
+ "$ref": "#/components/schemas/EpisodeHistoryEventType"
+ },
+ "data": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "nullable": true
+ },
+ "nullable": true
+ },
+ "episode": {
+ "$ref": "#/components/schemas/EpisodeResource"
+ },
+ "series": {
+ "$ref": "#/components/schemas/SeriesResource"
+ }
+ },
+ "additionalProperties": false
+ },
+ "HistoryResourcePagingResource": {
+ "type": "object",
+ "properties": {
+ "page": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "pageSize": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sortKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "sortDirection": {
+ "$ref": "#/components/schemas/SortDirection"
+ },
+ "totalRecords": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "records": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/HistoryResource"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "HostConfigResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "bindAddress": {
+ "type": "string",
+ "nullable": true
+ },
+ "port": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sslPort": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "enableSsl": {
+ "type": "boolean"
+ },
+ "launchBrowser": {
+ "type": "boolean"
+ },
+ "authenticationMethod": {
+ "$ref": "#/components/schemas/AuthenticationType"
+ },
+ "authenticationRequired": {
+ "$ref": "#/components/schemas/AuthenticationRequiredType"
+ },
+ "analyticsEnabled": {
+ "type": "boolean"
+ },
+ "username": {
+ "type": "string",
+ "nullable": true
+ },
+ "password": {
+ "type": "string",
+ "nullable": true
+ },
+ "passwordConfirmation": {
+ "type": "string",
+ "nullable": true
+ },
+ "logLevel": {
+ "type": "string",
+ "nullable": true
+ },
+ "logSizeLimit": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "consoleLogLevel": {
+ "type": "string",
+ "nullable": true
+ },
+ "branch": {
+ "type": "string",
+ "nullable": true
+ },
+ "apiKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "sslCertPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "sslCertPassword": {
+ "type": "string",
+ "nullable": true
+ },
+ "urlBase": {
+ "type": "string",
+ "nullable": true
+ },
+ "instanceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "applicationUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "updateAutomatically": {
+ "type": "boolean"
+ },
+ "updateMechanism": {
+ "$ref": "#/components/schemas/UpdateMechanism"
+ },
+ "updateScriptPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "proxyEnabled": {
+ "type": "boolean"
+ },
+ "proxyType": {
+ "$ref": "#/components/schemas/ProxyType"
+ },
+ "proxyHostname": {
+ "type": "string",
+ "nullable": true
+ },
+ "proxyPort": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "proxyUsername": {
+ "type": "string",
+ "nullable": true
+ },
+ "proxyPassword": {
+ "type": "string",
+ "nullable": true
+ },
+ "proxyBypassFilter": {
+ "type": "string",
+ "nullable": true
+ },
+ "proxyBypassLocalAddresses": {
+ "type": "boolean"
+ },
+ "certificateValidation": {
+ "$ref": "#/components/schemas/CertificateValidationType"
+ },
+ "backupFolder": {
+ "type": "string",
+ "nullable": true
+ },
+ "backupInterval": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "backupRetention": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "trustCgnatIpAddresses": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "HttpUri": {
+ "type": "object",
+ "properties": {
+ "fullUri": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true
+ },
+ "scheme": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true
+ },
+ "host": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true
+ },
+ "port": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true,
+ "readOnly": true
+ },
+ "path": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true
+ },
+ "query": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true
+ },
+ "fragment": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ImportListBulkResource": {
+ "type": "object",
+ "properties": {
+ "ids": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "applyTags": {
+ "$ref": "#/components/schemas/ApplyTags"
+ },
+ "enableAutomaticAdd": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "rootFolderPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "qualityProfileId": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ImportListConfigResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "listSyncLevel": {
+ "$ref": "#/components/schemas/ListSyncLevelType"
+ },
+ "listSyncTag": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ImportListExclusionBulkResource": {
+ "type": "object",
+ "properties": {
+ "ids": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ImportListExclusionResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "tvdbId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "title": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ImportListExclusionResourcePagingResource": {
+ "type": "object",
+ "properties": {
+ "page": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "pageSize": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sortKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "sortDirection": {
+ "$ref": "#/components/schemas/SortDirection"
+ },
+ "totalRecords": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "records": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ImportListExclusionResource"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ImportListResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "fields": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Field"
+ },
+ "nullable": true
+ },
+ "implementationName": {
+ "type": "string",
+ "nullable": true
+ },
+ "implementation": {
+ "type": "string",
+ "nullable": true
+ },
+ "configContract": {
+ "type": "string",
+ "nullable": true
+ },
+ "infoLink": {
+ "type": "string",
+ "nullable": true
+ },
+ "message": {
+ "$ref": "#/components/schemas/ProviderMessage"
+ },
+ "tags": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "presets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ImportListResource"
+ },
+ "nullable": true
+ },
+ "enableAutomaticAdd": {
+ "type": "boolean"
+ },
+ "searchForMissingEpisodes": {
+ "type": "boolean"
+ },
+ "shouldMonitor": {
+ "$ref": "#/components/schemas/MonitorTypes"
+ },
+ "monitorNewItems": {
+ "$ref": "#/components/schemas/NewItemMonitorTypes"
+ },
+ "rootFolderPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "qualityProfileId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "seriesType": {
+ "$ref": "#/components/schemas/SeriesTypes"
+ },
+ "seasonFolder": {
+ "type": "boolean"
+ },
+ "listType": {
+ "$ref": "#/components/schemas/ImportListType"
+ },
+ "listOrder": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "minRefreshInterval": {
+ "type": "string",
+ "format": "date-span"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ImportListType": {
+ "enum": [
+ "program",
+ "plex",
+ "trakt",
+ "simkl",
+ "other",
+ "advanced"
+ ],
+ "type": "string"
+ },
+ "ImportRejectionResource": {
+ "type": "object",
+ "properties": {
+ "reason": {
+ "type": "string",
+ "nullable": true
+ },
+ "type": {
+ "$ref": "#/components/schemas/RejectionType"
+ }
+ },
+ "additionalProperties": false
+ },
+ "IndexerBulkResource": {
+ "type": "object",
+ "properties": {
+ "ids": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "applyTags": {
+ "$ref": "#/components/schemas/ApplyTags"
+ },
+ "enableRss": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "enableAutomaticSearch": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "enableInteractiveSearch": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "priority": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "IndexerConfigResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "minimumAge": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "retention": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "maximumSize": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "rssSyncInterval": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "additionalProperties": false
+ },
+ "IndexerFlagResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "nameLower": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "IndexerResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "fields": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Field"
+ },
+ "nullable": true
+ },
+ "implementationName": {
+ "type": "string",
+ "nullable": true
+ },
+ "implementation": {
+ "type": "string",
+ "nullable": true
+ },
+ "configContract": {
+ "type": "string",
+ "nullable": true
+ },
+ "infoLink": {
+ "type": "string",
+ "nullable": true
+ },
+ "message": {
+ "$ref": "#/components/schemas/ProviderMessage"
+ },
+ "tags": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "presets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/IndexerResource"
+ },
+ "nullable": true
+ },
+ "enableRss": {
+ "type": "boolean"
+ },
+ "enableAutomaticSearch": {
+ "type": "boolean"
+ },
+ "enableInteractiveSearch": {
+ "type": "boolean"
+ },
+ "supportsRss": {
+ "type": "boolean"
+ },
+ "supportsSearch": {
+ "type": "boolean"
+ },
+ "protocol": {
+ "$ref": "#/components/schemas/DownloadProtocol"
+ },
+ "priority": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "seasonSearchMaximumSingleEpisodeAge": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "downloadClientId": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Language": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "LanguageProfileItemResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "language": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "allowed": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "LanguageProfileResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "upgradeAllowed": {
+ "type": "boolean"
+ },
+ "cutoff": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "languages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/LanguageProfileItemResource"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "LanguageResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "nameLower": {
+ "type": "string",
+ "nullable": true,
+ "readOnly": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ListSyncLevelType": {
+ "enum": [
+ "disabled",
+ "logOnly",
+ "keepAndUnmonitor",
+ "keepAndTag"
+ ],
+ "type": "string"
+ },
+ "LocalizationLanguageResource": {
+ "type": "object",
+ "properties": {
+ "identifier": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "LocalizationResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "strings": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string",
+ "nullable": true
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "LogFileResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "filename": {
+ "type": "string",
+ "nullable": true
+ },
+ "lastWriteTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "contentsUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "downloadUrl": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "LogResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "time": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "exception": {
+ "type": "string",
+ "nullable": true
+ },
+ "exceptionType": {
+ "type": "string",
+ "nullable": true
+ },
+ "level": {
+ "type": "string",
+ "nullable": true
+ },
+ "logger": {
+ "type": "string",
+ "nullable": true
+ },
+ "message": {
+ "type": "string",
+ "nullable": true
+ },
+ "method": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "LogResourcePagingResource": {
+ "type": "object",
+ "properties": {
+ "page": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "pageSize": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sortKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "sortDirection": {
+ "$ref": "#/components/schemas/SortDirection"
+ },
+ "totalRecords": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "records": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/LogResource"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ManualImportReprocessResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "path": {
+ "type": "string",
+ "nullable": true
+ },
+ "seriesId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "seasonNumber": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "episodes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/EpisodeResource"
+ },
+ "nullable": true
+ },
+ "episodeIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "quality": {
+ "$ref": "#/components/schemas/QualityModel"
+ },
+ "languages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "nullable": true
+ },
+ "releaseGroup": {
+ "type": "string",
+ "nullable": true
+ },
+ "downloadId": {
+ "type": "string",
+ "nullable": true
+ },
+ "customFormats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ },
+ "nullable": true
+ },
+ "customFormatScore": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "indexerFlags": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "releaseType": {
+ "$ref": "#/components/schemas/ReleaseType"
+ },
+ "rejections": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ImportRejectionResource"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ManualImportResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "path": {
+ "type": "string",
+ "nullable": true
+ },
+ "relativePath": {
+ "type": "string",
+ "nullable": true
+ },
+ "folderName": {
+ "type": "string",
+ "nullable": true
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "size": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "series": {
+ "$ref": "#/components/schemas/SeriesResource"
+ },
+ "seasonNumber": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "episodes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/EpisodeResource"
+ },
+ "nullable": true
+ },
+ "episodeFileId": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "releaseGroup": {
+ "type": "string",
+ "nullable": true
+ },
+ "quality": {
+ "$ref": "#/components/schemas/QualityModel"
+ },
+ "languages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "nullable": true
+ },
+ "qualityWeight": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "downloadId": {
+ "type": "string",
+ "nullable": true
+ },
+ "customFormats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ },
+ "nullable": true
+ },
+ "customFormatScore": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "indexerFlags": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "releaseType": {
+ "$ref": "#/components/schemas/ReleaseType"
+ },
+ "rejections": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ImportRejectionResource"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "MediaCover": {
+ "type": "object",
+ "properties": {
+ "coverType": {
+ "$ref": "#/components/schemas/MediaCoverTypes"
+ },
+ "url": {
+ "type": "string",
+ "nullable": true
+ },
+ "remoteUrl": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "MediaCoverTypes": {
+ "enum": [
+ "unknown",
+ "poster",
+ "banner",
+ "fanart",
+ "screenshot",
+ "headshot",
+ "clearlogo"
+ ],
+ "type": "string"
+ },
+ "MediaInfoResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "audioBitrate": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "audioChannels": {
+ "type": "number",
+ "format": "double"
+ },
+ "audioCodec": {
+ "type": "string",
+ "nullable": true
+ },
+ "audioLanguages": {
+ "type": "string",
+ "nullable": true
+ },
+ "audioStreamCount": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "videoBitDepth": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "videoBitrate": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "videoCodec": {
+ "type": "string",
+ "nullable": true
+ },
+ "videoFps": {
+ "type": "number",
+ "format": "double"
+ },
+ "videoDynamicRange": {
+ "type": "string",
+ "nullable": true
+ },
+ "videoDynamicRangeType": {
+ "type": "string",
+ "nullable": true
+ },
+ "resolution": {
+ "type": "string",
+ "nullable": true
+ },
+ "runTime": {
+ "type": "string",
+ "nullable": true
+ },
+ "scanType": {
+ "type": "string",
+ "nullable": true
+ },
+ "subtitles": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "MediaManagementConfigResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "autoUnmonitorPreviouslyDownloadedEpisodes": {
+ "type": "boolean"
+ },
+ "recycleBin": {
+ "type": "string",
+ "nullable": true
+ },
+ "recycleBinCleanupDays": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "downloadPropersAndRepacks": {
+ "$ref": "#/components/schemas/ProperDownloadTypes"
+ },
+ "createEmptySeriesFolders": {
+ "type": "boolean"
+ },
+ "deleteEmptyFolders": {
+ "type": "boolean"
+ },
+ "fileDate": {
+ "$ref": "#/components/schemas/FileDateType"
+ },
+ "rescanAfterRefresh": {
+ "$ref": "#/components/schemas/RescanAfterRefreshType"
+ },
+ "setPermissionsLinux": {
+ "type": "boolean"
+ },
+ "chmodFolder": {
+ "type": "string",
+ "nullable": true
+ },
+ "chownGroup": {
+ "type": "string",
+ "nullable": true
+ },
+ "episodeTitleRequired": {
+ "$ref": "#/components/schemas/EpisodeTitleRequiredType"
+ },
+ "skipFreeSpaceCheckWhenImporting": {
+ "type": "boolean"
+ },
+ "minimumFreeSpaceWhenImporting": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "copyUsingHardlinks": {
+ "type": "boolean"
+ },
+ "useScriptImport": {
+ "type": "boolean"
+ },
+ "scriptImportPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "importExtraFiles": {
+ "type": "boolean"
+ },
+ "extraFileExtensions": {
+ "type": "string",
+ "nullable": true
+ },
+ "enableMediaInfo": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "MetadataResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "fields": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Field"
+ },
+ "nullable": true
+ },
+ "implementationName": {
+ "type": "string",
+ "nullable": true
+ },
+ "implementation": {
+ "type": "string",
+ "nullable": true
+ },
+ "configContract": {
+ "type": "string",
+ "nullable": true
+ },
+ "infoLink": {
+ "type": "string",
+ "nullable": true
+ },
+ "message": {
+ "$ref": "#/components/schemas/ProviderMessage"
+ },
+ "tags": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "presets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MetadataResource"
+ },
+ "nullable": true
+ },
+ "enable": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "MonitorTypes": {
+ "enum": [
+ "unknown",
+ "all",
+ "future",
+ "missing",
+ "existing",
+ "firstSeason",
+ "lastSeason",
+ "latestSeason",
+ "pilot",
+ "recent",
+ "monitorSpecials",
+ "unmonitorSpecials",
+ "none",
+ "skip"
+ ],
+ "type": "string"
+ },
+ "MonitoringOptions": {
+ "type": "object",
+ "properties": {
+ "ignoreEpisodesWithFiles": {
+ "type": "boolean"
+ },
+ "ignoreEpisodesWithoutFiles": {
+ "type": "boolean"
+ },
+ "monitor": {
+ "$ref": "#/components/schemas/MonitorTypes"
+ }
+ },
+ "additionalProperties": false
+ },
+ "NamingConfigResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "renameEpisodes": {
+ "type": "boolean"
+ },
+ "replaceIllegalCharacters": {
+ "type": "boolean"
+ },
+ "colonReplacementFormat": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "customColonReplacementFormat": {
+ "type": "string",
+ "nullable": true
+ },
+ "multiEpisodeStyle": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "standardEpisodeFormat": {
+ "type": "string",
+ "nullable": true
+ },
+ "dailyEpisodeFormat": {
+ "type": "string",
+ "nullable": true
+ },
+ "animeEpisodeFormat": {
+ "type": "string",
+ "nullable": true
+ },
+ "seriesFolderFormat": {
+ "type": "string",
+ "nullable": true
+ },
+ "seasonFolderFormat": {
+ "type": "string",
+ "nullable": true
+ },
+ "specialsFolderFormat": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "NewItemMonitorTypes": {
+ "enum": [
+ "all",
+ "none"
+ ],
+ "type": "string"
+ },
+ "NotificationResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "fields": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Field"
+ },
+ "nullable": true
+ },
+ "implementationName": {
+ "type": "string",
+ "nullable": true
+ },
+ "implementation": {
+ "type": "string",
+ "nullable": true
+ },
+ "configContract": {
+ "type": "string",
+ "nullable": true
+ },
+ "infoLink": {
+ "type": "string",
+ "nullable": true
+ },
+ "message": {
+ "$ref": "#/components/schemas/ProviderMessage"
+ },
+ "tags": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "presets": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/NotificationResource"
+ },
+ "nullable": true
+ },
+ "link": {
+ "type": "string",
+ "nullable": true
+ },
+ "onGrab": {
+ "type": "boolean"
+ },
+ "onDownload": {
+ "type": "boolean"
+ },
+ "onUpgrade": {
+ "type": "boolean"
+ },
+ "onImportComplete": {
+ "type": "boolean"
+ },
+ "onRename": {
+ "type": "boolean"
+ },
+ "onSeriesAdd": {
+ "type": "boolean"
+ },
+ "onSeriesDelete": {
+ "type": "boolean"
+ },
+ "onEpisodeFileDelete": {
+ "type": "boolean"
+ },
+ "onEpisodeFileDeleteForUpgrade": {
+ "type": "boolean"
+ },
+ "onHealthIssue": {
+ "type": "boolean"
+ },
+ "includeHealthWarnings": {
+ "type": "boolean"
+ },
+ "onHealthRestored": {
+ "type": "boolean"
+ },
+ "onApplicationUpdate": {
+ "type": "boolean"
+ },
+ "onManualInteractionRequired": {
+ "type": "boolean"
+ },
+ "supportsOnGrab": {
+ "type": "boolean"
+ },
+ "supportsOnDownload": {
+ "type": "boolean"
+ },
+ "supportsOnUpgrade": {
+ "type": "boolean"
+ },
+ "supportsOnImportComplete": {
+ "type": "boolean"
+ },
+ "supportsOnRename": {
+ "type": "boolean"
+ },
+ "supportsOnSeriesAdd": {
+ "type": "boolean"
+ },
+ "supportsOnSeriesDelete": {
+ "type": "boolean"
+ },
+ "supportsOnEpisodeFileDelete": {
+ "type": "boolean"
+ },
+ "supportsOnEpisodeFileDeleteForUpgrade": {
+ "type": "boolean"
+ },
+ "supportsOnHealthIssue": {
+ "type": "boolean"
+ },
+ "supportsOnHealthRestored": {
+ "type": "boolean"
+ },
+ "supportsOnApplicationUpdate": {
+ "type": "boolean"
+ },
+ "supportsOnManualInteractionRequired": {
+ "type": "boolean"
+ },
+ "testCommand": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ParseResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "parsedEpisodeInfo": {
+ "$ref": "#/components/schemas/ParsedEpisodeInfo"
+ },
+ "series": {
+ "$ref": "#/components/schemas/SeriesResource"
+ },
+ "episodes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/EpisodeResource"
+ },
+ "nullable": true
+ },
+ "languages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "nullable": true
+ },
+ "customFormats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ },
+ "nullable": true
+ },
+ "customFormatScore": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ParsedEpisodeInfo": {
+ "type": "object",
+ "properties": {
+ "releaseTitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "seriesTitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "seriesTitleInfo": {
+ "$ref": "#/components/schemas/SeriesTitleInfo"
+ },
+ "quality": {
+ "$ref": "#/components/schemas/QualityModel"
+ },
+ "seasonNumber": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "episodeNumbers": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "absoluteEpisodeNumbers": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "specialAbsoluteEpisodeNumbers": {
+ "type": "array",
+ "items": {
+ "type": "number",
+ "format": "double"
+ },
+ "nullable": true
+ },
+ "airDate": {
+ "type": "string",
+ "nullable": true
+ },
+ "languages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "nullable": true
+ },
+ "fullSeason": {
+ "type": "boolean"
+ },
+ "isPartialSeason": {
+ "type": "boolean"
+ },
+ "isMultiSeason": {
+ "type": "boolean"
+ },
+ "isSeasonExtra": {
+ "type": "boolean"
+ },
+ "isSplitEpisode": {
+ "type": "boolean"
+ },
+ "isMiniSeries": {
+ "type": "boolean"
+ },
+ "special": {
+ "type": "boolean"
+ },
+ "releaseGroup": {
+ "type": "string",
+ "nullable": true
+ },
+ "releaseHash": {
+ "type": "string",
+ "nullable": true
+ },
+ "seasonPart": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "releaseTokens": {
+ "type": "string",
+ "nullable": true
+ },
+ "dailyPart": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "isDaily": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "isAbsoluteNumbering": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "isPossibleSpecialEpisode": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "isPossibleSceneSeasonSpecial": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "releaseType": {
+ "$ref": "#/components/schemas/ReleaseType"
+ }
+ },
+ "additionalProperties": false
+ },
+ "PingResource": {
+ "type": "object",
+ "properties": {
+ "status": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "PrivacyLevel": {
+ "enum": [
+ "normal",
+ "password",
+ "apiKey",
+ "userName"
+ ],
+ "type": "string"
+ },
+ "ProfileFormatItemResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "format": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "score": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ProperDownloadTypes": {
+ "enum": [
+ "preferAndUpgrade",
+ "doNotUpgrade",
+ "doNotPrefer"
+ ],
+ "type": "string"
+ },
+ "ProviderMessage": {
+ "type": "object",
+ "properties": {
+ "message": {
+ "type": "string",
+ "nullable": true
+ },
+ "type": {
+ "$ref": "#/components/schemas/ProviderMessageType"
+ }
+ },
+ "additionalProperties": false
+ },
+ "ProviderMessageType": {
+ "enum": [
+ "info",
+ "warning",
+ "error"
+ ],
+ "type": "string"
+ },
+ "ProxyType": {
+ "enum": [
+ "http",
+ "socks4",
+ "socks5"
+ ],
+ "type": "string"
+ },
+ "Quality": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "source": {
+ "$ref": "#/components/schemas/QualitySource"
+ },
+ "resolution": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "additionalProperties": false
+ },
+ "QualityDefinitionLimitsResource": {
+ "type": "object",
+ "properties": {
+ "min": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "max": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "additionalProperties": false
+ },
+ "QualityDefinitionResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "quality": {
+ "$ref": "#/components/schemas/Quality"
+ },
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "weight": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "minSize": {
+ "type": "number",
+ "format": "double",
+ "nullable": true
+ },
+ "maxSize": {
+ "type": "number",
+ "format": "double",
+ "nullable": true
+ },
+ "preferredSize": {
+ "type": "number",
+ "format": "double",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "QualityModel": {
+ "type": "object",
+ "properties": {
+ "quality": {
+ "$ref": "#/components/schemas/Quality"
+ },
+ "revision": {
+ "$ref": "#/components/schemas/Revision"
+ }
+ },
+ "additionalProperties": false
+ },
+ "QualityProfileQualityItemResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "quality": {
+ "$ref": "#/components/schemas/Quality"
+ },
+ "items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QualityProfileQualityItemResource"
+ },
+ "nullable": true
+ },
+ "allowed": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "QualityProfileResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "upgradeAllowed": {
+ "type": "boolean"
+ },
+ "cutoff": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "items": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QualityProfileQualityItemResource"
+ },
+ "nullable": true
+ },
+ "minFormatScore": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "cutoffFormatScore": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "minUpgradeFormatScore": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "formatItems": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ProfileFormatItemResource"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "QualitySource": {
+ "enum": [
+ "unknown",
+ "television",
+ "televisionRaw",
+ "web",
+ "webRip",
+ "dvd",
+ "bluray",
+ "blurayRaw"
+ ],
+ "type": "string"
+ },
+ "QueueBulkResource": {
+ "type": "object",
+ "properties": {
+ "ids": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "QueueResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "seriesId": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "episodeId": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "seasonNumber": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "series": {
+ "$ref": "#/components/schemas/SeriesResource"
+ },
+ "episode": {
+ "$ref": "#/components/schemas/EpisodeResource"
+ },
+ "languages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "nullable": true
+ },
+ "quality": {
+ "$ref": "#/components/schemas/QualityModel"
+ },
+ "customFormats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ },
+ "nullable": true
+ },
+ "customFormatScore": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "size": {
+ "type": "number",
+ "format": "double"
+ },
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "estimatedCompletionTime": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "added": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "status": {
+ "$ref": "#/components/schemas/QueueStatus"
+ },
+ "trackedDownloadStatus": {
+ "$ref": "#/components/schemas/TrackedDownloadStatus"
+ },
+ "trackedDownloadState": {
+ "$ref": "#/components/schemas/TrackedDownloadState"
+ },
+ "statusMessages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/TrackedDownloadStatusMessage"
+ },
+ "nullable": true
+ },
+ "errorMessage": {
+ "type": "string",
+ "nullable": true
+ },
+ "downloadId": {
+ "type": "string",
+ "nullable": true
+ },
+ "protocol": {
+ "$ref": "#/components/schemas/DownloadProtocol"
+ },
+ "downloadClient": {
+ "type": "string",
+ "nullable": true
+ },
+ "downloadClientHasPostImportCategory": {
+ "type": "boolean"
+ },
+ "indexer": {
+ "type": "string",
+ "nullable": true
+ },
+ "outputPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "episodeHasFile": {
+ "type": "boolean"
+ },
+ "sizeleft": {
+ "type": "number",
+ "format": "double",
+ "deprecated": true
+ },
+ "timeleft": {
+ "type": "string",
+ "format": "date-span",
+ "nullable": true,
+ "deprecated": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "QueueResourcePagingResource": {
+ "type": "object",
+ "properties": {
+ "page": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "pageSize": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sortKey": {
+ "type": "string",
+ "nullable": true
+ },
+ "sortDirection": {
+ "$ref": "#/components/schemas/SortDirection"
+ },
+ "totalRecords": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "records": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/QueueResource"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "QueueStatus": {
+ "enum": [
+ "unknown",
+ "queued",
+ "paused",
+ "downloading",
+ "completed",
+ "failed",
+ "warning",
+ "delay",
+ "downloadClientUnavailable",
+ "fallback"
+ ],
+ "type": "string"
+ },
+ "QueueStatusResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "totalCount": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "count": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "unknownCount": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "errors": {
+ "type": "boolean"
+ },
+ "warnings": {
+ "type": "boolean"
+ },
+ "unknownErrors": {
+ "type": "boolean"
+ },
+ "unknownWarnings": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "Ratings": {
+ "type": "object",
+ "properties": {
+ "votes": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "value": {
+ "type": "number",
+ "format": "double"
+ }
+ },
+ "additionalProperties": false
+ },
+ "RejectionType": {
+ "enum": [
+ "permanent",
+ "temporary"
+ ],
+ "type": "string"
+ },
+ "ReleaseEpisodeResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "seasonNumber": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "episodeNumber": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "absoluteEpisodeNumber": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "title": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ReleaseProfileResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "required": {
+ "nullable": true
+ },
+ "ignored": {
+ "nullable": true
+ },
+ "indexerId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "tags": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ReleaseResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "guid": {
+ "type": "string",
+ "nullable": true
+ },
+ "quality": {
+ "$ref": "#/components/schemas/QualityModel"
+ },
+ "qualityWeight": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "age": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "ageHours": {
+ "type": "number",
+ "format": "double"
+ },
+ "ageMinutes": {
+ "type": "number",
+ "format": "double"
+ },
+ "size": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "indexerId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "indexer": {
+ "type": "string",
+ "nullable": true
+ },
+ "releaseGroup": {
+ "type": "string",
+ "nullable": true
+ },
+ "subGroup": {
+ "type": "string",
+ "nullable": true
+ },
+ "releaseHash": {
+ "type": "string",
+ "nullable": true
+ },
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "fullSeason": {
+ "type": "boolean"
+ },
+ "sceneSource": {
+ "type": "boolean"
+ },
+ "seasonNumber": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "languages": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "nullable": true
+ },
+ "languageWeight": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "airDate": {
+ "type": "string",
+ "nullable": true
+ },
+ "seriesTitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "episodeNumbers": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "absoluteEpisodeNumbers": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "mappedSeasonNumber": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "mappedEpisodeNumbers": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "mappedAbsoluteEpisodeNumbers": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "mappedSeriesId": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "mappedEpisodeInfo": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/ReleaseEpisodeResource"
+ },
+ "nullable": true
+ },
+ "approved": {
+ "type": "boolean"
+ },
+ "temporarilyRejected": {
+ "type": "boolean"
+ },
+ "rejected": {
+ "type": "boolean"
+ },
+ "tvdbId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "tvRageId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "imdbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "rejections": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "publishDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "commentUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "downloadUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "infoUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "episodeRequested": {
+ "type": "boolean"
+ },
+ "downloadAllowed": {
+ "type": "boolean"
+ },
+ "releaseWeight": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "customFormats": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/CustomFormatResource"
+ },
+ "nullable": true
+ },
+ "customFormatScore": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sceneMapping": {
+ "$ref": "#/components/schemas/AlternateTitleResource"
+ },
+ "magnetUrl": {
+ "type": "string",
+ "nullable": true
+ },
+ "infoHash": {
+ "type": "string",
+ "nullable": true
+ },
+ "seeders": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "leechers": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "protocol": {
+ "$ref": "#/components/schemas/DownloadProtocol"
+ },
+ "indexerFlags": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "isDaily": {
+ "type": "boolean"
+ },
+ "isAbsoluteNumbering": {
+ "type": "boolean"
+ },
+ "isPossibleSpecialEpisode": {
+ "type": "boolean"
+ },
+ "special": {
+ "type": "boolean"
+ },
+ "seriesId": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "episodeId": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "episodeIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "downloadClientId": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "downloadClient": {
+ "type": "string",
+ "nullable": true
+ },
+ "shouldOverride": {
+ "type": "boolean",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "ReleaseType": {
+ "enum": [
+ "unknown",
+ "singleEpisode",
+ "multiEpisode",
+ "seasonPack"
+ ],
+ "type": "string"
+ },
+ "RemotePathMappingResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "host": {
+ "type": "string",
+ "nullable": true
+ },
+ "remotePath": {
+ "type": "string",
+ "nullable": true
+ },
+ "localPath": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "RenameEpisodeResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "seriesId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "seasonNumber": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "episodeNumbers": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "episodeFileId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "existingPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "newPath": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "RescanAfterRefreshType": {
+ "enum": [
+ "always",
+ "afterManual",
+ "never"
+ ],
+ "type": "string"
+ },
+ "Revision": {
+ "type": "object",
+ "properties": {
+ "version": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "real": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "isRepack": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "RootFolderResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "path": {
+ "type": "string",
+ "nullable": true
+ },
+ "accessible": {
+ "type": "boolean"
+ },
+ "freeSpace": {
+ "type": "integer",
+ "format": "int64",
+ "nullable": true
+ },
+ "unmappedFolders": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/UnmappedFolder"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "RuntimeMode": {
+ "enum": [
+ "console",
+ "service",
+ "tray"
+ ],
+ "type": "string"
+ },
+ "SeasonPassResource": {
+ "type": "object",
+ "properties": {
+ "series": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SeasonPassSeriesResource"
+ },
+ "nullable": true
+ },
+ "monitoringOptions": {
+ "$ref": "#/components/schemas/MonitoringOptions"
+ }
+ },
+ "additionalProperties": false
+ },
+ "SeasonPassSeriesResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "monitored": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "seasons": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SeasonResource"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "SeasonResource": {
+ "type": "object",
+ "properties": {
+ "seasonNumber": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "monitored": {
+ "type": "boolean"
+ },
+ "statistics": {
+ "$ref": "#/components/schemas/SeasonStatisticsResource"
+ },
+ "images": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MediaCover"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "SeasonStatisticsResource": {
+ "type": "object",
+ "properties": {
+ "nextAiring": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "previousAiring": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "episodeFileCount": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "episodeCount": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "totalEpisodeCount": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sizeOnDisk": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "releaseGroups": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "percentOfEpisodes": {
+ "type": "number",
+ "format": "double",
+ "readOnly": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "SelectOption": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "order": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "hint": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "SeriesEditorResource": {
+ "type": "object",
+ "properties": {
+ "seriesIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "monitored": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "monitorNewItems": {
+ "$ref": "#/components/schemas/NewItemMonitorTypes"
+ },
+ "qualityProfileId": {
+ "type": "integer",
+ "format": "int32",
+ "nullable": true
+ },
+ "seriesType": {
+ "$ref": "#/components/schemas/SeriesTypes"
+ },
+ "seasonFolder": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "rootFolderPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "applyTags": {
+ "$ref": "#/components/schemas/ApplyTags"
+ },
+ "moveFiles": {
+ "type": "boolean"
+ },
+ "deleteFiles": {
+ "type": "boolean"
+ },
+ "addImportListExclusion": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+ },
+ "SeriesResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "alternateTitles": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/AlternateTitleResource"
+ },
+ "nullable": true
+ },
+ "sortTitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "status": {
+ "$ref": "#/components/schemas/SeriesStatusType"
+ },
+ "ended": {
+ "type": "boolean",
+ "readOnly": true
+ },
+ "profileName": {
+ "type": "string",
+ "nullable": true
+ },
+ "overview": {
+ "type": "string",
+ "nullable": true
+ },
+ "nextAiring": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "previousAiring": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "network": {
+ "type": "string",
+ "nullable": true
+ },
+ "airTime": {
+ "type": "string",
+ "nullable": true
+ },
+ "images": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/MediaCover"
+ },
+ "nullable": true
+ },
+ "originalLanguage": {
+ "$ref": "#/components/schemas/Language"
+ },
+ "remotePoster": {
+ "type": "string",
+ "nullable": true
+ },
+ "seasons": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/SeasonResource"
+ },
+ "nullable": true
+ },
+ "year": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "path": {
+ "type": "string",
+ "nullable": true
+ },
+ "qualityProfileId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "seasonFolder": {
+ "type": "boolean"
+ },
+ "monitored": {
+ "type": "boolean"
+ },
+ "monitorNewItems": {
+ "$ref": "#/components/schemas/NewItemMonitorTypes"
+ },
+ "useSceneNumbering": {
+ "type": "boolean"
+ },
+ "runtime": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "tvdbId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "tvRageId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "tvMazeId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "tmdbId": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "firstAired": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "lastAired": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "seriesType": {
+ "$ref": "#/components/schemas/SeriesTypes"
+ },
+ "cleanTitle": {
+ "type": "string",
+ "nullable": true
+ },
+ "imdbId": {
+ "type": "string",
+ "nullable": true
+ },
+ "titleSlug": {
+ "type": "string",
+ "nullable": true
+ },
+ "rootFolderPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "folder": {
+ "type": "string",
+ "nullable": true
+ },
+ "certification": {
+ "type": "string",
+ "nullable": true
+ },
+ "genres": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "tags": {
+ "uniqueItems": true,
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "added": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "addOptions": {
+ "$ref": "#/components/schemas/AddSeriesOptions"
+ },
+ "ratings": {
+ "$ref": "#/components/schemas/Ratings"
+ },
+ "statistics": {
+ "$ref": "#/components/schemas/SeriesStatisticsResource"
+ },
+ "episodesChanged": {
+ "type": "boolean",
+ "nullable": true
+ },
+ "languageProfileId": {
+ "type": "integer",
+ "format": "int32",
+ "readOnly": true,
+ "deprecated": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "SeriesStatisticsResource": {
+ "type": "object",
+ "properties": {
+ "seasonCount": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "episodeFileCount": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "episodeCount": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "totalEpisodeCount": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "sizeOnDisk": {
+ "type": "integer",
+ "format": "int64"
+ },
+ "releaseGroups": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "percentOfEpisodes": {
+ "type": "number",
+ "format": "double",
+ "readOnly": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "SeriesStatusType": {
+ "enum": [
+ "continuing",
+ "ended",
+ "upcoming",
+ "deleted"
+ ],
+ "type": "string"
+ },
+ "SeriesTitleInfo": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "titleWithoutYear": {
+ "type": "string",
+ "nullable": true
+ },
+ "year": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "allTitles": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "SeriesTypes": {
+ "enum": [
+ "standard",
+ "daily",
+ "anime"
+ ],
+ "type": "string"
+ },
+ "SortDirection": {
+ "enum": [
+ "default",
+ "ascending",
+ "descending"
+ ],
+ "type": "string"
+ },
+ "SystemResource": {
+ "type": "object",
+ "properties": {
+ "appName": {
+ "type": "string",
+ "nullable": true
+ },
+ "instanceName": {
+ "type": "string",
+ "nullable": true
+ },
+ "version": {
+ "type": "string",
+ "nullable": true
+ },
+ "buildTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "isDebug": {
+ "type": "boolean"
+ },
+ "isProduction": {
+ "type": "boolean"
+ },
+ "isAdmin": {
+ "type": "boolean"
+ },
+ "isUserInteractive": {
+ "type": "boolean"
+ },
+ "startupPath": {
+ "type": "string",
+ "nullable": true
+ },
+ "appData": {
+ "type": "string",
+ "nullable": true
+ },
+ "osName": {
+ "type": "string",
+ "nullable": true
+ },
+ "osVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "isNetCore": {
+ "type": "boolean"
+ },
+ "isLinux": {
+ "type": "boolean"
+ },
+ "isOsx": {
+ "type": "boolean"
+ },
+ "isWindows": {
+ "type": "boolean"
+ },
+ "isDocker": {
+ "type": "boolean"
+ },
+ "mode": {
+ "$ref": "#/components/schemas/RuntimeMode"
+ },
+ "branch": {
+ "type": "string",
+ "nullable": true
+ },
+ "authentication": {
+ "$ref": "#/components/schemas/AuthenticationType"
+ },
+ "sqliteVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "migrationVersion": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "urlBase": {
+ "type": "string",
+ "nullable": true
+ },
+ "runtimeVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "runtimeName": {
+ "type": "string",
+ "nullable": true
+ },
+ "startTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "packageVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "packageAuthor": {
+ "type": "string",
+ "nullable": true
+ },
+ "packageUpdateMechanism": {
+ "$ref": "#/components/schemas/UpdateMechanism"
+ },
+ "packageUpdateMechanismMessage": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseVersion": {
+ "type": "string",
+ "nullable": true
+ },
+ "databaseType": {
+ "$ref": "#/components/schemas/DatabaseType"
+ }
+ },
+ "additionalProperties": false
+ },
+ "TagDetailsResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "label": {
+ "type": "string",
+ "nullable": true
+ },
+ "delayProfileIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "importListIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "notificationIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "restrictionIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "indexerIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "downloadClientIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "autoTagIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ },
+ "seriesIds": {
+ "type": "array",
+ "items": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "TagResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "label": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "TaskResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "taskName": {
+ "type": "string",
+ "nullable": true
+ },
+ "interval": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "lastExecution": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "lastStartTime": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "nextExecution": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "lastDuration": {
+ "type": "string",
+ "format": "date-span",
+ "readOnly": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "TrackedDownloadState": {
+ "enum": [
+ "downloading",
+ "importBlocked",
+ "importPending",
+ "importing",
+ "imported",
+ "failedPending",
+ "failed",
+ "ignored"
+ ],
+ "type": "string"
+ },
+ "TrackedDownloadStatus": {
+ "enum": [
+ "ok",
+ "warning",
+ "error"
+ ],
+ "type": "string"
+ },
+ "TrackedDownloadStatusMessage": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string",
+ "nullable": true
+ },
+ "messages": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "UiConfigResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "firstDayOfWeek": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "calendarWeekColumnHeader": {
+ "type": "string",
+ "nullable": true
+ },
+ "shortDateFormat": {
+ "type": "string",
+ "nullable": true
+ },
+ "longDateFormat": {
+ "type": "string",
+ "nullable": true
+ },
+ "timeFormat": {
+ "type": "string",
+ "nullable": true
+ },
+ "showRelativeDates": {
+ "type": "boolean"
+ },
+ "enableColorImpairedMode": {
+ "type": "boolean"
+ },
+ "theme": {
+ "type": "string",
+ "nullable": true
+ },
+ "uiLanguage": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "additionalProperties": false
+ },
+ "UnmappedFolder": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "nullable": true
+ },
+ "path": {
+ "type": "string",
+ "nullable": true
+ },
+ "relativePath": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "UpdateChanges": {
+ "type": "object",
+ "properties": {
+ "new": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ },
+ "fixed": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ },
+ "UpdateMechanism": {
+ "enum": [
+ "builtIn",
+ "script",
+ "external",
+ "apt",
+ "docker"
+ ],
+ "type": "string"
+ },
+ "UpdateResource": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "version": {
+ "type": "string",
+ "nullable": true
+ },
+ "branch": {
+ "type": "string",
+ "nullable": true
+ },
+ "releaseDate": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "fileName": {
+ "type": "string",
+ "nullable": true
+ },
+ "url": {
+ "type": "string",
+ "nullable": true
+ },
+ "installed": {
+ "type": "boolean"
+ },
+ "installedOn": {
+ "type": "string",
+ "format": "date-time",
+ "nullable": true
+ },
+ "installable": {
+ "type": "boolean"
+ },
+ "latest": {
+ "type": "boolean"
+ },
+ "changes": {
+ "$ref": "#/components/schemas/UpdateChanges"
+ },
+ "hash": {
+ "type": "string",
+ "nullable": true
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "securitySchemes": {
+ "X-Api-Key": {
+ "type": "apiKey",
+ "description": "Apikey passed as header",
+ "name": "X-Api-Key",
+ "in": "header"
+ },
+ "apikey": {
+ "type": "apiKey",
+ "description": "Apikey passed as query parameter",
+ "name": "apikey",
+ "in": "query"
+ }
+ }
+ },
+ "security": [
+ {
+ "X-Api-Key": [ ]
+ },
+ {
+ "apikey": [ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/Sonarr.Http.Client/Sonarr.Http.Client.csproj b/src/Sonarr.Http.Client/Sonarr.Http.Client.csproj
new file mode 100644
index 0000000..1a1b8b7
--- /dev/null
+++ b/src/Sonarr.Http.Client/Sonarr.Http.Client.csproj
@@ -0,0 +1,28 @@
+
+
+
+ net9.0
+ enable
+ enable
+
+
+
+
+ https://raw.githubusercontent.com/Sonarr/Sonarr/develop/src/Sonarr.Api.V3/openapi.json
+ /JsonLibrary:SystemTextJson
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+