diff --git a/src/Sonarr.Api.V5/openapi.json b/src/Sonarr.Api.V5/openapi.json index d479e1ab4..de09a23c5 100644 --- a/src/Sonarr.Api.V5/openapi.json +++ b/src/Sonarr.Api.V5/openapi.json @@ -113,6 +113,86 @@ } } }, + "/api/v5/system/backup": { + "get": { + "tags": [ + "Backup" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BackupResource" + } + } + } + } + } + } + } + }, + "/api/v5/system/backup/{id}": { + "delete": { + "tags": [ + "Backup" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v5/system/backup/restore/{id}": { + "post": { + "tags": [ + "Backup" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v5/system/backup/restore/upload": { + "post": { + "tags": [ + "Backup" + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, "/api/v5/blocklist": { "get": { "tags": [ @@ -241,6 +321,295 @@ } } }, + "/api/v5/calendar": { + "get": { + "tags": [ + "Calendar" + ], + "parameters": [ + { + "name": "start", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "end", + "in": "query", + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "unmonitored", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "includeSeries", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "includeEpisodeFile", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "includeEpisodeImages", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "tags", + "in": "query", + "schema": { + "type": "string", + "default": "" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EpisodeResource" + } + } + } + } + } + } + } + }, + "/api/v5/calendar/{id}": { + "get": { + "tags": [ + "Calendar" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EpisodeResource" + } + } + } + } + } + } + }, + "/feed/v5/calendar/sonarr.ics": { + "get": { + "tags": [ + "CalendarFeed" + ], + "parameters": [ + { + "name": "pastDays", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 7 + } + }, + { + "name": "futureDays", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 28 + } + }, + { + "name": "tags", + "in": "query", + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "unmonitored", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "premieresOnly", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "asAllDay", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v5/wanted/cutoff": { + "get": { + "tags": [ + "Cutoff" + ], + "parameters": [ + { + "name": "page", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "pageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "sortKey", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "sortDirection", + "in": "query", + "schema": { + "$ref": "#/components/schemas/SortDirection" + } + }, + { + "name": "includeSeries", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "includeEpisodeFile", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "includeImages", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "monitored", + "in": "query", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EpisodeResourcePagingResource" + } + } + } + } + } + } + }, + "/api/v5/wanted/cutoff/{id}": { + "get": { + "tags": [ + "Cutoff" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EpisodeResource" + } + } + } + } + } + } + }, "/api/v5/diskspace": { "get": { "tags": [ @@ -263,6 +632,197 @@ } } }, + "/api/v5/episode": { + "get": { + "tags": [ + "Episode" + ], + "parameters": [ + { + "name": "seriesId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "seasonNumber", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "episodeIds", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + { + "name": "episodeFileId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "includeSeries", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "includeEpisodeFile", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "includeImages", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EpisodeResource" + } + } + } + } + } + } + } + }, + "/api/v5/episode/{id}": { + "put": { + "tags": [ + "Episode" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EpisodeResource" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/EpisodeResource" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/EpisodeResource" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/EpisodeResource" + } + } + } + } + } + }, + "get": { + "tags": [ + "Episode" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EpisodeResource" + } + } + } + } + } + } + }, + "/api/v5/episode/monitor": { + "put": { + "tags": [ + "Episode" + ], + "parameters": [ + { + "name": "includeImages", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EpisodesMonitoredResource" + } + } + } + }, + "responses": { + "200": { + "description": "OK" + } + } + } + }, "/api/v5/health": { "get": { "tags": [ @@ -657,6 +1217,148 @@ } } }, + "/api/v5/wanted/missing": { + "get": { + "tags": [ + "Missing" + ], + "parameters": [ + { + "name": "page", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "pageSize", + "in": "query", + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "sortKey", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "sortDirection", + "in": "query", + "schema": { + "$ref": "#/components/schemas/SortDirection" + } + }, + { + "name": "includeSeries", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "includeImages", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "monitored", + "in": "query", + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EpisodeResourcePagingResource" + } + } + } + } + } + } + }, + "/api/v5/wanted/missing/{id}": { + "get": { + "tags": [ + "Missing" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EpisodeResource" + } + } + } + } + } + } + }, + "/api/v5/parse": { + "get": { + "tags": [ + "Parse" + ], + "parameters": [ + { + "name": "title", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ParseResource" + } + } + } + } + } + } + }, "/ping": { "get": { "tags": [ @@ -1466,6 +2168,265 @@ } } }, + "/api/v5/tag": { + "get": { + "tags": [ + "Tag" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TagResource" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "Tag" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TagResource" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "text/plain": { + "schema": { + "$ref": "#/components/schemas/TagResource" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/TagResource" + } + }, + "text/json": { + "schema": { + "$ref": "#/components/schemas/TagResource" + } + } + } + } + } + } + }, + "/api/v5/tag/{id}": { + "put": { + "tags": [ + "Tag" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TagResource" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "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": "OK" + } + } + }, + "get": { + "tags": [ + "Tag" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TagResource" + } + } + } + } + } + } + }, + "/api/v5/tag/detail": { + "get": { + "tags": [ + "TagDetails" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TagDetailsResource" + } + } + } + } + } + } + } + }, + "/api/v5/tag/detail/{id}": { + "get": { + "tags": [ + "TagDetails" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TagDetailsResource" + } + } + } + } + } + } + }, + "/api/v5/system/task": { + "get": { + "tags": [ + "Task" + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskResource" + } + } + } + } + } + } + } + }, + "/api/v5/system/task/{id}": { + "get": { + "tags": [ + "Task" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskResource" + } + } + } + } + } + } + }, "/api/v5/update": { "get": { "tags": [ @@ -1699,6 +2660,47 @@ ], "type": "string" }, + "BackupResource": { + "required": [ + "name", + "path" + ], + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "path": { + "type": "string", + "nullable": true + }, + "type": { + "$ref": "#/components/schemas/BackupType" + }, + "size": { + "type": "integer", + "format": "int64" + }, + "time": { + "type": "string", + "format": "date-time" + } + }, + "additionalProperties": false + }, + "BackupType": { + "enum": [ + "scheduled", + "manual", + "update" + ], + "type": "string" + }, "BlocklistBulkResource": { "required": [ "ids" @@ -2043,9 +3045,6 @@ "type": "string" }, "EpisodeResource": { - "required": [ - "title" - ], "type": "object", "properties": { "id": { @@ -2157,6 +3156,58 @@ }, "additionalProperties": false }, + "EpisodeResourcePagingResource": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32" + }, + "pageSize": { + "type": "integer", + "format": "int32" + }, + "sortKey": { + "type": "string", + "nullable": true + }, + "sortDirection": { + "$ref": "#/components/schemas/SortDirection" + }, + "totalRecords": { + "type": "integer", + "format": "int32" + }, + "records": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EpisodeResource" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "EpisodesMonitoredResource": { + "required": [ + "episodeIds" + ], + "type": "object", + "properties": { + "episodeIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "monitored": { + "type": "boolean" + } + }, + "additionalProperties": false + }, "Field": { "type": "object", "properties": { @@ -2683,6 +3734,171 @@ ], "type": "string" }, + "ParseResource": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string", + "nullable": true + }, + "parsedEpisodeInfo": { + "$ref": "#/components/schemas/ParsedEpisodeInfo" + }, + "series": { + "$ref": "#/components/schemas/SeriesResource" + }, + "episodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EpisodeResource" + }, + "nullable": true + }, + "languages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Language" + }, + "nullable": true + }, + "customFormats": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomFormatResource" + }, + "nullable": true + }, + "customFormatScore": { + "type": "integer", + "format": "int32" + } + }, + "additionalProperties": false + }, + "ParsedEpisodeInfo": { + "type": "object", + "properties": { + "releaseTitle": { + "type": "string", + "nullable": true + }, + "seriesTitle": { + "type": "string", + "nullable": true + }, + "seriesTitleInfo": { + "$ref": "#/components/schemas/SeriesTitleInfo" + }, + "quality": { + "$ref": "#/components/schemas/QualityModel" + }, + "seasonNumber": { + "type": "integer", + "format": "int32" + }, + "episodeNumbers": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "absoluteEpisodeNumbers": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "specialAbsoluteEpisodeNumbers": { + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "nullable": true + }, + "airDate": { + "type": "string", + "nullable": true + }, + "languages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Language" + }, + "nullable": true + }, + "fullSeason": { + "type": "boolean" + }, + "isPartialSeason": { + "type": "boolean" + }, + "isMultiSeason": { + "type": "boolean" + }, + "isSeasonExtra": { + "type": "boolean" + }, + "isSplitEpisode": { + "type": "boolean" + }, + "isMiniSeries": { + "type": "boolean" + }, + "special": { + "type": "boolean" + }, + "releaseGroup": { + "type": "string", + "nullable": true + }, + "releaseHash": { + "type": "string", + "nullable": true + }, + "seasonPart": { + "type": "integer", + "format": "int32" + }, + "releaseTokens": { + "type": "string", + "nullable": true + }, + "dailyPart": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "isDaily": { + "type": "boolean", + "readOnly": true + }, + "isAbsoluteNumbering": { + "type": "boolean", + "readOnly": true + }, + "isPossibleSpecialEpisode": { + "type": "boolean", + "readOnly": true + }, + "isPossibleSceneSeasonSpecial": { + "type": "boolean", + "readOnly": true + }, + "releaseType": { + "$ref": "#/components/schemas/ReleaseType" + } + }, + "additionalProperties": false + }, "PingResource": { "type": "object", "properties": { @@ -3379,6 +4595,31 @@ ], "type": "string" }, + "SeriesTitleInfo": { + "type": "object", + "properties": { + "title": { + "type": "string", + "nullable": true + }, + "titleWithoutYear": { + "type": "string", + "nullable": true + }, + "year": { + "type": "integer", + "format": "int32" + }, + "allTitles": { + "type": "array", + "items": { + "type": "string" + }, + "nullable": true + } + }, + "additionalProperties": false + }, "SeriesTypes": { "enum": [ "standard", @@ -3529,6 +4770,144 @@ }, "additionalProperties": false }, + "TagDetailsResource": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + }, + "delayProfileIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "importListIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "notificationIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "restrictionIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "excludedReleaseProfileIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "indexerIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "downloadClientIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "autoTagIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + }, + "seriesIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "nullable": true + } + }, + "additionalProperties": false + }, + "TagResource": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "label": { + "type": "string", + "nullable": true + } + }, + "additionalProperties": false + }, + "TaskResource": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32" + }, + "name": { + "type": "string", + "nullable": true + }, + "taskName": { + "type": "string", + "nullable": true + }, + "interval": { + "type": "integer", + "format": "int32" + }, + "lastExecution": { + "type": "string", + "format": "date-time" + }, + "lastStartTime": { + "type": "string", + "format": "date-time" + }, + "nextExecution": { + "type": "string", + "format": "date-time" + }, + "lastDuration": { + "type": "string", + "format": "date-span" + } + }, + "additionalProperties": false + }, "TrackedDownloadState": { "enum": [ "downloading",