From 4c7b5a47d3f21b7cd9e9f9e4a81bd683cb951eb9 Mon Sep 17 00:00:00 2001 From: Qstick Date: Sun, 29 Aug 2021 23:33:32 -0400 Subject: [PATCH] Autogenerated API docs --- .gitignore | 4 + azure-pipelines.yml | 44 + docs.sh | 38 + src/NzbDrone.Host/Prowlarr.Host.csproj | 1 + src/NzbDrone.Host/Startup.cs | 72 + .../Profiles/App/AppProfileController.cs | 8 + src/Prowlarr.Api.V1/swagger.json | 6900 ----------------- 7 files changed, 167 insertions(+), 6900 deletions(-) create mode 100644 docs.sh delete mode 100644 src/Prowlarr.Api.V1/swagger.json diff --git a/.gitignore b/.gitignore index 45e6b1a39..d903078ef 100644 --- a/.gitignore +++ b/.gitignore @@ -188,6 +188,10 @@ packages.config.md5sum **/.idea/**/*.iml **/.idea/**/contentModel.xml **/.idea/**/modules.xml + # ignore node_modules symlink node_modules node_modules.nosync + +# API doc generation +.config/ diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2794e0b85..14749108f 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -823,6 +823,50 @@ stages: FORCE_COLOR: 0 YARN_CACHE_FOLDER: $(yarnCacheFolder) + - job: Api_Docs + displayName: API Docs + dependsOn: Prepare + condition: | + and + ( + and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/develop')), + and(succeeded(), eq(dependencies.Prepare.outputs['setVar.backendNotUpdated'], '0')) + ) + + pool: + vmImage: windows-2019 + + steps: + - task: UseDotNet@2 + displayName: 'Install .net core' + inputs: + version: $(dotnetVersion) + - checkout: self # Need history for Sonar analysis + submodules: true + - bash: ./docs.sh Windows + displayName: Create Openapi.json + - bash: git commit -am 'Automated API Docs update' + displayName: Commit APIDoc Change + - task: CreatePullRequest@1 + inputs: + repoType: 'GitHub' + githubEndpoint: 'github release' + githubRepository: '$(Build.Repository.Name)' + sourceBranch: 'api-docs' + targetBranch: 'develop' + title: 'Update API Docs' + - task: CopyFiles@2 + displayName: 'Copy openapi.json to: $(Build.ArtifactStagingDirectory)' + inputs: + SourceFolder: '$(Build.SourcesDirectory)' + Contents: | + **/*openapi.json + TargetFolder: '$(Build.ArtifactStagingDirectory)/api_docs' + - publish: $(Build.ArtifactStagingDirectory)/api_docs + artifact: 'APIDocs' + displayName: Publish API Docs Bundle + condition: and(succeeded(), eq(variables['System.JobAttempt'], '1')) + - job: Analyze_Backend displayName: Backend dependsOn: Prepare diff --git a/docs.sh b/docs.sh new file mode 100644 index 000000000..bc9a94ff0 --- /dev/null +++ b/docs.sh @@ -0,0 +1,38 @@ +PLATFORM=$1 + +if [ "$PLATFORM" = "Windows" ]; then + RUNTIME="win-x64" +elif [ "$PLATFORM" = "Linux" ]; then + WHERE="linux-x64" +elif [ "$PLATFORM" = "Mac" ]; then + WHERE="osx-x64" +else + echo "Platform must be provided as first arguement: Windows, Linux or Mac" + exit 1 +fi + +outputFolder='_output' +testPackageFolder='_tests' + +rm -rf $outputFolder +rm -rf $testPackageFolder + +slnFile=src/Prowlarr.sln + +platform=Posix + +dotnet clean $slnFile -c Debug +dotnet clean $slnFile -c Release + +dotnet msbuild -restore $slnFile -p:Configuration=Debug -p:Platform=$platform -p:RuntimeIdentifiers=$RUNTIME -t:PublishAllRids + +dotnet new tool-manifest +dotnet tool install --version 6.2.3 Swashbuckle.AspNetCore.Cli + +dotnet tool run swagger tofile --output ./src/Prowlarr.Api.V1/openapi.json "$outputFolder/net6.0/$RUNTIME/prowlarr.console.dll" v1 & + +sleep 10 + +kill %1 + +exit 0 \ No newline at end of file diff --git a/src/NzbDrone.Host/Prowlarr.Host.csproj b/src/NzbDrone.Host/Prowlarr.Host.csproj index 204117551..0b6b294e2 100644 --- a/src/NzbDrone.Host/Prowlarr.Host.csproj +++ b/src/NzbDrone.Host/Prowlarr.Host.csproj @@ -7,6 +7,7 @@ + diff --git a/src/NzbDrone.Host/Startup.cs b/src/NzbDrone.Host/Startup.cs index 8a63849ac..bd3a0ad7b 100644 --- a/src/NzbDrone.Host/Startup.cs +++ b/src/NzbDrone.Host/Startup.cs @@ -9,6 +9,7 @@ using Microsoft.AspNetCore.HttpOverrides; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; +using Microsoft.OpenApi.Models; using NLog.Extensions.Logging; using NzbDrone.Common.EnvironmentInfo; using NzbDrone.Common.Instrumentation; @@ -90,6 +91,63 @@ namespace NzbDrone.Host }) .AddControllersAsServices(); + services.AddSwaggerGen(c => + { + c.SwaggerDoc("v1", new OpenApiInfo + { + Version = "1.0.0", + Title = "Prowlarr", + Description = "Prowlarr API docs", + License = new OpenApiLicense + { + Name = "GPL-3.0", + Url = new Uri("https://github.com/Prowlarr/Prowlarr/blob/develop/LICENSE") + } + }); + + var apiKeyHeader = new OpenApiSecurityScheme + { + Name = "X-Api-Key", + Type = SecuritySchemeType.ApiKey, + Scheme = "apiKey", + Description = "Apikey passed as header", + In = ParameterLocation.Header, + Reference = new OpenApiReference + { + Type = ReferenceType.SecurityScheme, + Id = "X-Api-Key" + }, + }; + + c.AddSecurityDefinition("X-Api-Key", apiKeyHeader); + + c.AddSecurityRequirement(new OpenApiSecurityRequirement + { + { apiKeyHeader, new string[] { } } + }); + + var apikeyQuery = new OpenApiSecurityScheme + { + Name = "apikey", + Type = SecuritySchemeType.ApiKey, + Scheme = "apiKey", + Description = "Apikey passed as header", + In = ParameterLocation.Query, + Reference = new OpenApiReference + { + Type = ReferenceType.SecurityScheme, + Id = "apikey" + }, + }; + + c.AddSecurityDefinition("apikey", apikeyQuery); + + c.AddSecurityRequirement(new OpenApiSecurityRequirement + { + { apikeyQuery, new string[] { } } + }); + }); + services .AddSignalR() .AddJsonProtocol(options => @@ -181,6 +239,20 @@ namespace NzbDrone.Host app.UseWebSockets(); + // Enable middleware to serve generated Swagger as a JSON endpoint. + if (BuildInfo.IsDebug) + { + app.UseSwagger(c => + { + c.PreSerializeFilters.Add((swagger, httpReq) => + { + swagger.Servers = new List { new OpenApiServer { Url = $"{httpReq.Scheme}://{httpReq.Host.Value}" } }; + }); + + c.RouteTemplate = "docs/{documentName}/openapi.json"; + }); + } + app.UseEndpoints(x => { x.MapHub("/signalr/messages").RequireAuthorization("SignalR"); diff --git a/src/Prowlarr.Api.V1/Profiles/App/AppProfileController.cs b/src/Prowlarr.Api.V1/Profiles/App/AppProfileController.cs index b3bc82a09..2225ace22 100644 --- a/src/Prowlarr.Api.V1/Profiles/App/AppProfileController.cs +++ b/src/Prowlarr.Api.V1/Profiles/App/AppProfileController.cs @@ -20,6 +20,7 @@ namespace Prowlarr.Api.V1.Profiles.App } [RestPostById] + [Produces("application/json")] public ActionResult Create(AppProfileResource resource) { var model = resource.ToModel(); @@ -28,12 +29,14 @@ namespace Prowlarr.Api.V1.Profiles.App } [RestDeleteById] + [Produces("application/json")] public void DeleteProfile(int id) { _profileService.Delete(id); } [RestPutById] + [Produces("application/json")] public ActionResult Update(AppProfileResource resource) { var model = resource.ToModel(); @@ -43,12 +46,17 @@ namespace Prowlarr.Api.V1.Profiles.App return Accepted(model.Id); } + [Produces("application/json")] + [ProducesResponseType(typeof(AppProfileResource), 200)] + [ProducesResponseType(typeof(IDictionary), 404)] + [ProducesResponseType(500)] public override AppProfileResource GetResourceById(int id) { return _profileService.Get(id).ToResource(); } [HttpGet] + [Produces("application/json")] public List GetAll() { return _profileService.All().ToResource(); diff --git a/src/Prowlarr.Api.V1/swagger.json b/src/Prowlarr.Api.V1/swagger.json deleted file mode 100644 index d739dd2cf..000000000 --- a/src/Prowlarr.Api.V1/swagger.json +++ /dev/null @@ -1,6900 +0,0 @@ -{ - "openapi": "3.0.1", - "info": { - "title": "Prowlarr", - "version": "1.0.0" - }, - "paths": { - "/api/v1/applications/{id}": { - "get": { - "tags": [ - "Application" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ApplicationResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApplicationResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ApplicationResource" - } - } - } - } - } - }, - "put": { - "tags": [ - "Application" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApplicationResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ApplicationResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/ApplicationResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ApplicationResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApplicationResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ApplicationResource" - } - } - } - } - } - }, - "delete": { - "tags": [ - "Application" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/applications": { - "get": { - "tags": [ - "Application" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ApplicationResource" - } - } - }, - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ApplicationResource" - } - } - }, - "text/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ApplicationResource" - } - } - } - } - } - } - }, - "post": { - "tags": [ - "Application" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApplicationResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ApplicationResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/ApplicationResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/ApplicationResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApplicationResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ApplicationResource" - } - } - } - } - } - } - }, - "/api/v1/applications/schema": { - "get": { - "tags": [ - "Application" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ApplicationResource" - } - } - }, - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ApplicationResource" - } - } - }, - "text/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ApplicationResource" - } - } - } - } - } - } - } - }, - "/api/v1/applications/test": { - "post": { - "tags": [ - "Application" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApplicationResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ApplicationResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/ApplicationResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/applications/testall": { - "post": { - "tags": [ - "Application" - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/applications/action/{name}": { - "post": { - "tags": [ - "Application" - ], - "parameters": [ - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApplicationResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/ApplicationResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/ApplicationResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/appprofile": { - "post": { - "tags": [ - "AppProfile" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AppProfileResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/AppProfileResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/AppProfileResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/AppProfileResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/AppProfileResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/AppProfileResource" - } - } - } - } - } - }, - "get": { - "tags": [ - "AppProfile" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AppProfileResource" - } - } - }, - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AppProfileResource" - } - } - }, - "text/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AppProfileResource" - } - } - } - } - } - } - } - }, - "/api/v1/appprofile/{id}": { - "delete": { - "tags": [ - "AppProfile" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success" - } - } - }, - "put": { - "tags": [ - "AppProfile" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AppProfileResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/AppProfileResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/AppProfileResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/AppProfileResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/AppProfileResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/AppProfileResource" - } - } - } - } - } - }, - "get": { - "tags": [ - "AppProfile" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/AppProfileResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/AppProfileResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/AppProfileResource" - } - } - } - } - } - } - }, - "/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": "Success" - } - } - }, - "get": { - "tags": [ - "StaticResource" - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/logout": { - "get": { - "tags": [ - "Authentication" - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/system/backup": { - "get": { - "tags": [ - "Backup" - ], - "responses": { - "200": { - "description": "Success", - "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/v1/system/backup/{id}": { - "delete": { - "tags": [ - "Backup" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/system/backup/restore/{id}": { - "post": { - "tags": [ - "Backup" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/system/backup/restore/upload": { - "post": { - "tags": [ - "Backup" - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/command/{id}": { - "get": { - "tags": [ - "Command" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/CommandResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/CommandResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/CommandResource" - } - } - } - } - } - }, - "delete": { - "tags": [ - "Command" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/command": { - "post": { - "tags": [ - "Command" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CommandResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/CommandResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/CommandResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/CommandResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/CommandResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/CommandResource" - } - } - } - } - } - }, - "get": { - "tags": [ - "Command" - ], - "responses": { - "200": { - "description": "Success", - "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/v1/customfilter/{id}": { - "get": { - "tags": [ - "CustomFilter" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/CustomFilterResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomFilterResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/CustomFilterResource" - } - } - } - } - } - }, - "put": { - "tags": [ - "CustomFilter" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomFilterResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/CustomFilterResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/CustomFilterResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "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": "Success" - } - } - } - }, - "/api/v1/customfilter": { - "get": { - "tags": [ - "CustomFilter" - ], - "responses": { - "200": { - "description": "Success", - "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" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/CustomFilterResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/CustomFilterResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/CustomFilterResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomFilterResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/CustomFilterResource" - } - } - } - } - } - } - }, - "/api/v1/config/development/{id}": { - "put": { - "tags": [ - "DevelopmentConfig" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DevelopmentConfigResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/DevelopmentConfigResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/DevelopmentConfigResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/DevelopmentConfigResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/DevelopmentConfigResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/DevelopmentConfigResource" - } - } - } - } - } - }, - "get": { - "tags": [ - "DevelopmentConfig" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/DevelopmentConfigResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/DevelopmentConfigResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/DevelopmentConfigResource" - } - } - } - } - } - } - }, - "/api/v1/config/development": { - "get": { - "tags": [ - "DevelopmentConfig" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/DevelopmentConfigResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/DevelopmentConfigResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/DevelopmentConfigResource" - } - } - } - } - } - } - }, - "/api/v1/downloadclient/{id}": { - "get": { - "tags": [ - "DownloadClient" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/DownloadClientResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientResource" - } - } - } - } - } - }, - "put": { - "tags": [ - "DownloadClient" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/DownloadClientResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientResource" - } - } - } - } - } - }, - "delete": { - "tags": [ - "DownloadClient" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/downloadclient": { - "get": { - "tags": [ - "DownloadClient" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DownloadClientResource" - } - } - }, - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DownloadClientResource" - } - } - }, - "text/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DownloadClientResource" - } - } - } - } - } - } - }, - "post": { - "tags": [ - "DownloadClient" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/DownloadClientResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientResource" - } - } - } - } - } - } - }, - "/api/v1/downloadclient/schema": { - "get": { - "tags": [ - "DownloadClient" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DownloadClientResource" - } - } - }, - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DownloadClientResource" - } - } - }, - "text/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DownloadClientResource" - } - } - } - } - } - } - } - }, - "/api/v1/downloadclient/test": { - "post": { - "tags": [ - "DownloadClient" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/downloadclient/testall": { - "post": { - "tags": [ - "DownloadClient" - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/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" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/config/downloadclient/{id}": { - "get": { - "tags": [ - "DownloadClientConfig" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/DownloadClientConfigResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientConfigResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientConfigResource" - } - } - } - } - } - }, - "put": { - "tags": [ - "DownloadClientConfig" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientConfigResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientConfigResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientConfigResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/DownloadClientConfigResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientConfigResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientConfigResource" - } - } - } - } - } - } - }, - "/api/v1/config/downloadclient": { - "get": { - "tags": [ - "DownloadClientConfig" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/DownloadClientConfigResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientConfigResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/DownloadClientConfigResource" - } - } - } - } - } - } - }, - "/api/v1/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": "Success" - } - } - } - }, - "/api/v1/filesystem/type": { - "get": { - "tags": [ - "FileSystem" - ], - "parameters": [ - { - "name": "path", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/health/{id}": { - "get": { - "tags": [ - "Health" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/HealthResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/HealthResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/HealthResource" - } - } - } - } - } - } - }, - "/api/v1/health": { - "get": { - "tags": [ - "Health" - ], - "responses": { - "200": { - "description": "Success", - "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/v1/history": { - "get": { - "tags": [ - "History" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/HistoryResourcePagingResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/HistoryResourcePagingResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/HistoryResourcePagingResource" - } - } - } - } - } - } - }, - "/api/v1/history/since": { - "get": { - "tags": [ - "History" - ], - "parameters": [ - { - "name": "date", - "in": "query", - "schema": { - "type": "string", - "format": "date-time" - } - }, - { - "name": "eventType", - "in": "query", - "schema": { - "$ref": "#/components/schemas/HistoryEventType" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HistoryResource" - } - } - }, - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HistoryResource" - } - } - }, - "text/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HistoryResource" - } - } - } - } - } - } - } - }, - "/api/v1/history/indexer": { - "get": { - "tags": [ - "History" - ], - "parameters": [ - { - "name": "indexerId", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "eventType", - "in": "query", - "schema": { - "$ref": "#/components/schemas/HistoryEventType" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HistoryResource" - } - } - }, - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HistoryResource" - } - } - }, - "text/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HistoryResource" - } - } - } - } - } - } - } - }, - "/api/v1/config/host/{id}": { - "get": { - "tags": [ - "HostConfig" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/HostConfigResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/HostConfigResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/HostConfigResource" - } - } - } - } - } - }, - "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": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/HostConfigResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/HostConfigResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/HostConfigResource" - } - } - } - } - } - } - }, - "/api/v1/config/host": { - "get": { - "tags": [ - "HostConfig" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/HostConfigResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/HostConfigResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/HostConfigResource" - } - } - } - } - } - } - }, - "/api/v1/indexer/{id}": { - "get": { - "tags": [ - "Indexer" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/IndexerResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/IndexerResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/IndexerResource" - } - } - } - } - } - }, - "put": { - "tags": [ - "Indexer" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IndexerResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/IndexerResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/IndexerResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/IndexerResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/IndexerResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/IndexerResource" - } - } - } - } - } - }, - "delete": { - "tags": [ - "Indexer" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/indexer": { - "get": { - "tags": [ - "Indexer" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IndexerResource" - } - } - }, - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IndexerResource" - } - } - }, - "text/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IndexerResource" - } - } - } - } - } - } - }, - "post": { - "tags": [ - "Indexer" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IndexerResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/IndexerResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/IndexerResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/IndexerResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/IndexerResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/IndexerResource" - } - } - } - } - } - } - }, - "/api/v1/indexer/schema": { - "get": { - "tags": [ - "Indexer" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IndexerResource" - } - } - }, - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IndexerResource" - } - } - }, - "text/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IndexerResource" - } - } - } - } - } - } - } - }, - "/api/v1/indexer/test": { - "post": { - "tags": [ - "Indexer" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IndexerResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/IndexerResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/IndexerResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/indexer/testall": { - "post": { - "tags": [ - "Indexer" - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/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" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/IndexerResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/IndexerResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/config/indexer/{id}": { - "get": { - "tags": [ - "IndexerConfig" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/IndexerConfigResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/IndexerConfigResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/IndexerConfigResource" - } - } - } - } - } - }, - "put": { - "tags": [ - "IndexerConfig" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IndexerConfigResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/IndexerConfigResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/IndexerConfigResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/IndexerConfigResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/IndexerConfigResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/IndexerConfigResource" - } - } - } - } - } - } - }, - "/api/v1/config/indexer": { - "get": { - "tags": [ - "IndexerConfig" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/IndexerConfigResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/IndexerConfigResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/IndexerConfigResource" - } - } - } - } - } - } - }, - "/api/v1/indexer/categories": { - "get": { - "tags": [ - "IndexerDefaultCategories" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IndexerCategory" - } - } - }, - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IndexerCategory" - } - } - }, - "text/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IndexerCategory" - } - } - } - } - } - } - } - }, - "/api/v1/indexer/editor": { - "put": { - "tags": [ - "IndexerEditor" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IndexerEditorResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/IndexerEditorResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/IndexerEditorResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success" - } - } - }, - "delete": { - "tags": [ - "IndexerEditor" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IndexerEditorResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/IndexerEditorResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/IndexerEditorResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/indexerproxy/{id}": { - "get": { - "tags": [ - "IndexerProxy" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - } - } - } - } - }, - "put": { - "tags": [ - "IndexerProxy" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - } - } - } - } - }, - "delete": { - "tags": [ - "IndexerProxy" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/indexerproxy": { - "get": { - "tags": [ - "IndexerProxy" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - } - }, - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - } - }, - "text/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - } - } - } - } - } - }, - "post": { - "tags": [ - "IndexerProxy" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - } - } - } - } - } - }, - "/api/v1/indexerproxy/schema": { - "get": { - "tags": [ - "IndexerProxy" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - } - }, - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - } - }, - "text/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - } - } - } - } - } - } - }, - "/api/v1/indexerproxy/test": { - "post": { - "tags": [ - "IndexerProxy" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/indexerproxy/testall": { - "post": { - "tags": [ - "IndexerProxy" - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/indexerproxy/action/{name}": { - "post": { - "tags": [ - "IndexerProxy" - ], - "parameters": [ - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/IndexerProxyResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/indexerstats": { - "get": { - "tags": [ - "IndexerStats" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/IndexerStatsResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/IndexerStatsResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/IndexerStatsResource" - } - } - } - } - } - } - }, - "/api/v1/indexerstatus/{id}": { - "get": { - "tags": [ - "IndexerStatus" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/IndexerStatusResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/IndexerStatusResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/IndexerStatusResource" - } - } - } - } - } - } - }, - "/api/v1/indexerstatus": { - "get": { - "tags": [ - "IndexerStatus" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IndexerStatusResource" - } - } - }, - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IndexerStatusResource" - } - } - }, - "text/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IndexerStatusResource" - } - } - } - } - } - } - } - }, - "/initialize.js": { - "get": { - "tags": [ - "InitializeJs" - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/language/{id}": { - "get": { - "tags": [ - "Language" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/LanguageResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/LanguageResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/LanguageResource" - } - } - } - } - } - } - }, - "/api/v1/language": { - "get": { - "tags": [ - "Language" - ], - "responses": { - "200": { - "description": "Success", - "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/v1/localization": { - "get": { - "tags": [ - "Localization" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "string" - } - }, - "application/json": { - "schema": { - "type": "string" - } - }, - "text/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/api/v1/log": { - "get": { - "tags": [ - "Log" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/LogResourcePagingResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/LogResourcePagingResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/LogResourcePagingResource" - } - } - } - } - } - } - }, - "/api/v1/log/file": { - "get": { - "tags": [ - "LogFile" - ], - "responses": { - "200": { - "description": "Success", - "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/v1/log/file/{filename}": { - "get": { - "tags": [ - "LogFile" - ], - "parameters": [ - { - "name": "filename", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/indexer/{id}/newznab": { - "get": { - "tags": [ - "Newznab" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "t", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "q", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "cat", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "imdbid", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "tmdbid", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "extended", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "limit", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "offset", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "rid", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "tvmazeid", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "traktid", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "tvdbid", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "season", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "ep", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "album", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "artist", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "label", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "track", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "year", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "genre", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "author", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "title", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "configured", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "source", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "host", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "server", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/{id}/api": { - "get": { - "tags": [ - "Newznab" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "t", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "q", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "cat", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "imdbid", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "tmdbid", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "extended", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "limit", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "offset", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "rid", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "tvmazeid", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "traktid", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "tvdbid", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "season", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "ep", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "album", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "artist", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "label", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "track", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "year", - "in": "query", - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "genre", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "author", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "title", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "configured", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "source", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "host", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "server", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/indexer/{id}/download": { - "get": { - "tags": [ - "Newznab" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "link", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "file", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/{id}/download": { - "get": { - "tags": [ - "Newznab" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "link", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "file", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/notification/{id}": { - "get": { - "tags": [ - "Notification" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/NotificationResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/NotificationResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/NotificationResource" - } - } - } - } - } - }, - "put": { - "tags": [ - "Notification" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NotificationResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/NotificationResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/NotificationResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/NotificationResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/NotificationResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/NotificationResource" - } - } - } - } - } - }, - "delete": { - "tags": [ - "Notification" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/notification": { - "get": { - "tags": [ - "Notification" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NotificationResource" - } - } - }, - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NotificationResource" - } - } - }, - "text/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NotificationResource" - } - } - } - } - } - } - }, - "post": { - "tags": [ - "Notification" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NotificationResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/NotificationResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/NotificationResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/NotificationResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/NotificationResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/NotificationResource" - } - } - } - } - } - } - }, - "/api/v1/notification/schema": { - "get": { - "tags": [ - "Notification" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NotificationResource" - } - } - }, - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NotificationResource" - } - } - }, - "text/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NotificationResource" - } - } - } - } - } - } - } - }, - "/api/v1/notification/test": { - "post": { - "tags": [ - "Notification" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NotificationResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/NotificationResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/NotificationResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/notification/testall": { - "post": { - "tags": [ - "Notification" - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/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" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/NotificationResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/NotificationResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/appprofile/schema": { - "get": { - "tags": [ - "QualityProfileSchema" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/AppProfileResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/AppProfileResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/AppProfileResource" - } - } - } - } - } - } - }, - "/api/v1/search/{id}": { - "get": { - "tags": [ - "Search" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/SearchResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/SearchResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/SearchResource" - } - } - } - } - } - } - }, - "/api/v1/search": { - "post": { - "tags": [ - "Search" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SearchResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/SearchResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/SearchResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/SearchResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/SearchResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/SearchResource" - } - } - } - } - } - }, - "get": { - "tags": [ - "Search" - ], - "parameters": [ - { - "name": "query", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "indexerIds", - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - } - } - }, - { - "name": "categories", - "in": "query", - "schema": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - } - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchResource" - } - } - }, - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchResource" - } - } - }, - "text/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SearchResource" - } - } - } - } - } - } - } - }, - "/content/{path}": { - "get": { - "tags": [ - "StaticResource" - ], - "parameters": [ - { - "name": "path", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/": { - "get": { - "tags": [ - "StaticResource" - ], - "parameters": [ - { - "name": "path", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/{path}": { - "get": { - "tags": [ - "StaticResource" - ], - "parameters": [ - { - "name": "path", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/system/status": { - "get": { - "tags": [ - "System" - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/system/routes": { - "get": { - "tags": [ - "System" - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/system/routes/duplicate": { - "get": { - "tags": [ - "System" - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/system/shutdown": { - "post": { - "tags": [ - "System" - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/system/restart": { - "post": { - "tags": [ - "System" - ], - "responses": { - "200": { - "description": "Success" - } - } - } - }, - "/api/v1/tag/{id}": { - "get": { - "tags": [ - "Tag" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/TagResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/TagResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/TagResource" - } - } - } - } - } - }, - "put": { - "tags": [ - "Tag" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TagResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/TagResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/TagResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/TagResource" - } - }, - "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": "Success" - } - } - } - }, - "/api/v1/tag": { - "get": { - "tags": [ - "Tag" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagResource" - } - } - }, - "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" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/TagResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/TagResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/TagResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/TagResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/TagResource" - } - } - } - } - } - } - }, - "/api/v1/tag/detail/{id}": { - "get": { - "tags": [ - "TagDetails" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/TagDetailsResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/TagDetailsResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/TagDetailsResource" - } - } - } - } - } - } - }, - "/api/v1/tag/detail": { - "get": { - "tags": [ - "TagDetails" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagDetailsResource" - } - } - }, - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagDetailsResource" - } - } - }, - "text/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TagDetailsResource" - } - } - } - } - } - } - } - }, - "/api/v1/system/task": { - "get": { - "tags": [ - "Task" - ], - "responses": { - "200": { - "description": "Success", - "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/v1/system/task/{id}": { - "get": { - "tags": [ - "Task" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/TaskResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/TaskResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/TaskResource" - } - } - } - } - } - } - }, - "/api/v1/config/ui/{id}": { - "get": { - "tags": [ - "UiConfig" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/UiConfigResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/UiConfigResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/UiConfigResource" - } - } - } - } - } - }, - "put": { - "tags": [ - "UiConfig" - ], - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UiConfigResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/UiConfigResource" - } - }, - "application/*+json": { - "schema": { - "$ref": "#/components/schemas/UiConfigResource" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/UiConfigResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/UiConfigResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/UiConfigResource" - } - } - } - } - } - } - }, - "/api/v1/config/ui": { - "get": { - "tags": [ - "UiConfig" - ], - "responses": { - "200": { - "description": "Success", - "content": { - "text/plain": { - "schema": { - "$ref": "#/components/schemas/UiConfigResource" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/UiConfigResource" - } - }, - "text/json": { - "schema": { - "$ref": "#/components/schemas/UiConfigResource" - } - } - } - } - } - } - }, - "/api/v1/update": { - "get": { - "tags": [ - "Update" - ], - "responses": { - "200": { - "description": "Success", - "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/v1/log/file/update": { - "get": { - "tags": [ - "UpdateLogFile" - ], - "responses": { - "200": { - "description": "Success", - "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/v1/log/file/update/{filename}": { - "get": { - "tags": [ - "UpdateLogFile" - ], - "parameters": [ - { - "name": "filename", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Success" - } - } - } - } - }, - "components": { - "schemas": { - "ApplicationResource": { - "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/ApplicationResource" - }, - "nullable": true - }, - "syncLevel": { - "$ref": "#/components/schemas/ApplicationSyncLevel" - }, - "testCommand": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "ApplicationSyncLevel": { - "enum": [ - "disabled", - "addOnly", - "fullSync" - ], - "type": "string" - }, - "ApplyTags": { - "enum": [ - "add", - "remove", - "replace" - ], - "type": "string" - }, - "AppProfileResource": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "name": { - "type": "string", - "nullable": true - }, - "enableRss": { - "type": "boolean" - }, - "enableInteractiveSearch": { - "type": "boolean" - }, - "enableAutomaticSearch": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "AuthenticationType": { - "enum": [ - "none", - "basic", - "forms" - ], - "type": "string" - }, - "BackupResource": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "name": { - "type": "string", - "nullable": true - }, - "path": { - "type": "string", - "nullable": true - }, - "type": { - "$ref": "#/components/schemas/BackupType" - }, - "time": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false - }, - "BackupType": { - "enum": [ - "scheduled", - "manual", - "update" - ], - "type": "string" - }, - "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 - }, - "isTypeExclusive": { - "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" - }, - "queued": { - "type": "string", - "format": "date-time" - }, - "started": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "ended": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "duration": { - "$ref": "#/components/schemas/TimeSpan" - }, - "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 - }, - "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 - }, - "DevelopmentConfigResource": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "consoleLogLevel": { - "type": "string", - "nullable": true - }, - "logSql": { - "type": "boolean" - }, - "logIndexerResponse": { - "type": "boolean" - }, - "logRotate": { - "type": "integer", - "format": "int32" - }, - "filterSentryEvents": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "DownloadClientConfigResource": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "downloadClientWorkingFolders": { - "type": "string", - "nullable": true - }, - "enableCompletedDownloadHandling": { - "type": "boolean" - }, - "removeCompletedDownloads": { - "type": "boolean" - }, - "checkForFinishedDownloadInterval": { - "type": "integer", - "format": "int32" - }, - "autoRedownloadFailed": { - "type": "boolean" - }, - "removeFailedDownloads": { - "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" - } - }, - "additionalProperties": false - }, - "DownloadProtocol": { - "enum": [ - "unknown", - "usenet", - "torrent" - ], - "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 - }, - "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 - } - }, - "additionalProperties": false - }, - "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 - }, - "HistoryEventType": { - "enum": [ - "unknown", - "releaseGrabbed", - "indexerQuery", - "indexerRss", - "indexerAuth", - "indexerInfo" - ], - "type": "string" - }, - "HistoryResource": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "indexerId": { - "type": "integer", - "format": "int32" - }, - "date": { - "type": "string", - "format": "date-time" - }, - "downloadId": { - "type": "string", - "nullable": true - }, - "successful": { - "type": "boolean" - }, - "eventType": { - "$ref": "#/components/schemas/HistoryEventType" - }, - "data": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "nullable": true - } - }, - "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" - }, - "filters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PagingResourceFilter" - }, - "nullable": true - }, - "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" - }, - "analyticsEnabled": { - "type": "boolean" - }, - "username": { - "type": "string", - "nullable": true - }, - "password": { - "type": "string", - "nullable": true - }, - "logLevel": { - "type": "string", - "nullable": true - }, - "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 - }, - "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" - }, - "historyCleanupDays": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false - }, - "HostStatistics": { - "type": "object", - "properties": { - "host": { - "type": "string", - "nullable": true - }, - "numberOfQueries": { - "type": "integer", - "format": "int32" - }, - "numberOfGrabs": { - "type": "integer", - "format": "int32" - } - }, - "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 - }, - "IndexerCapabilityResource": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "limitsMax": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "limitsDefault": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "categories": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IndexerCategory" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "IndexerCategory": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "name": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "subCategories": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IndexerCategory" - }, - "nullable": true, - "readOnly": 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 - }, - "IndexerEditorResource": { - "type": "object", - "properties": { - "indexerIds": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "nullable": true - }, - "enable": { - "type": "string", - "nullable": true - }, - "appProfileId": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "tags": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "nullable": true - }, - "applyTags": { - "$ref": "#/components/schemas/ApplyTags" - } - }, - "additionalProperties": false - }, - "IndexerPrivacy": { - "enum": [ - "public", - "semiPublic", - "private" - ], - "type": "string" - }, - "IndexerProxyResource": { - "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/IndexerProxyResource" - }, - "nullable": true - }, - "link": { - "type": "string", - "nullable": true - }, - "onHealthIssue": { - "type": "boolean" - }, - "supportsOnHealthIssue": { - "type": "boolean" - }, - "includeHealthWarnings": { - "type": "boolean" - }, - "testCommand": { - "type": "string", - "nullable": 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 - }, - "indexerUrls": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "description": { - "type": "string", - "nullable": true - }, - "language": { - "type": "string", - "nullable": true - }, - "encoding": { - "type": "string", - "nullable": true - }, - "enable": { - "type": "boolean" - }, - "redirect": { - "type": "boolean" - }, - "supportsRss": { - "type": "boolean" - }, - "supportsSearch": { - "type": "boolean" - }, - "supportsRedirect": { - "type": "boolean" - }, - "appProfileId": { - "type": "integer", - "format": "int32" - }, - "protocol": { - "$ref": "#/components/schemas/DownloadProtocol" - }, - "privacy": { - "$ref": "#/components/schemas/IndexerPrivacy" - }, - "capabilities": { - "$ref": "#/components/schemas/IndexerCapabilityResource" - }, - "priority": { - "type": "integer", - "format": "int32" - }, - "added": { - "type": "string", - "format": "date-time" - }, - "status": { - "$ref": "#/components/schemas/IndexerStatusResource" - }, - "sortName": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "IndexerStatistics": { - "type": "object", - "properties": { - "indexerId": { - "type": "integer", - "format": "int32" - }, - "indexerName": { - "type": "string", - "nullable": true - }, - "averageResponseTime": { - "type": "integer", - "format": "int32" - }, - "numberOfQueries": { - "type": "integer", - "format": "int32" - }, - "numberOfGrabs": { - "type": "integer", - "format": "int32" - }, - "numberOfRssQueries": { - "type": "integer", - "format": "int32" - }, - "numberOfAuthQueries": { - "type": "integer", - "format": "int32" - }, - "numberOfFailedQueries": { - "type": "integer", - "format": "int32" - }, - "numberOfFailedGrabs": { - "type": "integer", - "format": "int32" - }, - "numberOfFailedRssQueries": { - "type": "integer", - "format": "int32" - }, - "numberOfFailedAuthQueries": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false - }, - "IndexerStatsResource": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "indexers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IndexerStatistics" - }, - "nullable": true - }, - "userAgents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserAgentStatistics" - }, - "nullable": true - }, - "hosts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HostStatistics" - }, - "nullable": true - } - }, - "additionalProperties": false - }, - "IndexerStatusResource": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "indexerId": { - "type": "integer", - "format": "int32" - }, - "disabledTill": { - "type": "string", - "format": "date-time", - "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 - }, - "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" - }, - "filters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PagingResourceFilter" - }, - "nullable": true - }, - "totalRecords": { - "type": "integer", - "format": "int32" - }, - "records": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LogResource" - }, - "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 - }, - "onHealthIssue": { - "type": "boolean" - }, - "supportsOnHealthIssue": { - "type": "boolean" - }, - "includeHealthWarnings": { - "type": "boolean" - }, - "testCommand": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "PagingResourceFilter": { - "type": "object", - "properties": { - "key": { - "type": "string", - "nullable": true - }, - "value": { - "type": "string", - "nullable": true - } - }, - "additionalProperties": false - }, - "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" - }, - "SearchResource": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "guid": { - "type": "string", - "nullable": true - }, - "age": { - "type": "integer", - "format": "int32" - }, - "ageHours": { - "type": "number", - "format": "double" - }, - "ageMinutes": { - "type": "number", - "format": "double" - }, - "size": { - "type": "integer", - "format": "int64" - }, - "files": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "grabs": { - "type": "integer", - "format": "int32", - "nullable": true - }, - "indexerId": { - "type": "integer", - "format": "int32" - }, - "indexer": { - "type": "string", - "nullable": true - }, - "subGroup": { - "type": "string", - "nullable": true - }, - "releaseHash": { - "type": "string", - "nullable": true - }, - "title": { - "type": "string", - "nullable": true - }, - "approved": { - "type": "boolean" - }, - "imdbId": { - "type": "integer", - "format": "int32" - }, - "publishDate": { - "type": "string", - "format": "date-time" - }, - "commentUrl": { - "type": "string", - "nullable": true - }, - "downloadUrl": { - "type": "string", - "nullable": true - }, - "infoUrl": { - "type": "string", - "nullable": true - }, - "posterUrl": { - "type": "string", - "nullable": true - }, - "indexerFlags": { - "type": "array", - "items": { - "type": "string" - }, - "nullable": true - }, - "categories": { - "type": "array", - "items": { - "$ref": "#/components/schemas/IndexerCategory" - }, - "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" - } - }, - "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 - }, - "SortDirection": { - "enum": [ - "default", - "ascending", - "descending" - ], - "type": "string" - }, - "TagDetailsResource": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32" - }, - "label": { - "type": "string", - "nullable": true - }, - "notificationIds": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "nullable": true - }, - "indexerIds": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "nullable": true - }, - "indexerProxyIds": { - "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": { - "$ref": "#/components/schemas/TimeSpan" - } - }, - "additionalProperties": false - }, - "TimeSpan": { - "type": "object", - "properties": { - "ticks": { - "type": "integer", - "format": "int64", - "readOnly": true - }, - "days": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "hours": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "milliseconds": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "minutes": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "seconds": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "totalDays": { - "type": "number", - "format": "double", - "readOnly": true - }, - "totalHours": { - "type": "number", - "format": "double", - "readOnly": true - }, - "totalMilliseconds": { - "type": "number", - "format": "double", - "readOnly": true - }, - "totalMinutes": { - "type": "number", - "format": "double", - "readOnly": true - }, - "totalSeconds": { - "type": "number", - "format": "double", - "readOnly": 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" - }, - "movieInfoLanguage": { - "type": "integer", - "format": "int32" - }, - "uiLanguage": { - "type": "integer", - "format": "int32" - } - }, - "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": { - "$ref": "#/components/schemas/Version" - }, - "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 - }, - "UserAgentStatistics": { - "type": "object", - "properties": { - "userAgent": { - "type": "string", - "nullable": true - }, - "numberOfQueries": { - "type": "integer", - "format": "int32" - }, - "numberOfGrabs": { - "type": "integer", - "format": "int32" - } - }, - "additionalProperties": false - }, - "Version": { - "type": "object", - "properties": { - "major": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "minor": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "build": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "revision": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "majorRevision": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "minorRevision": { - "type": "integer", - "format": "int32", - "readOnly": true - } - }, - "additionalProperties": false - } - } - } -} \ No newline at end of file