diff --git a/CHANGELOG.md b/CHANGELOG.md index b9bed3b4f..3615894f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,87 @@ +# [1.20.0](https://github.com/gotson/komga/compare/1.19.1...1.20.0) (2025-02-19) +## 🚀 Features +**api** +- books can be sorted by series title ([9bab9f6](https://github.com/gotson/komga/commits/9bab9f6)) +- referential APIs accept multiple library_id for filtering ([4de763a](https://github.com/gotson/komga/commits/4de763a)) +- add client settings API ([3b1504c](https://github.com/gotson/komga/commits/3b1504c)) +- add support for API keys in REST API via X-API-Key header ([64b192c](https://github.com/gotson/komga/commits/64b192c)) + +**webui** +- new view to browse all books ([406ae4b](https://github.com/gotson/komga/commits/406ae4b)), closes [#1153](https://github.com/gotson/komga/issues/1153) +- sort books within a series by last modified date or read date ([1f852db](https://github.com/gotson/komga/commits/1f852db)) +- only shows filter values for pinned libraries ([ef01550](https://github.com/gotson/komga/commits/ef01550)) +- add ability to configure recommended view per library ([e980e33](https://github.com/gotson/komga/commits/e980e33)), closes [#1539](https://github.com/gotson/komga/issues/1539) +- add UI setting to group series using japanese characters ([6c71e07](https://github.com/gotson/komga/commits/6c71e07)), closes [#1715](https://github.com/gotson/komga/issues/1715) +- add ability to reorder libraries ([a2a689f](https://github.com/gotson/komga/commits/a2a689f)) +- add ability to pin/unpin libraries ([c8e4a46](https://github.com/gotson/komga/commits/c8e4a46)), closes [#1560](https://github.com/gotson/komga/issues/1560) +- add user setting to blur unread posters ([4892945](https://github.com/gotson/komga/commits/4892945)), closes [#1549](https://github.com/gotson/komga/issues/1549) +- add UI setting to stretch poster to fit card ([c82c8b0](https://github.com/gotson/komga/commits/c82c8b0)), closes [#1825](https://github.com/gotson/komga/issues/1825) +- add UI settings section with OAuth2 options ([961832e](https://github.com/gotson/komga/commits/961832e)) + +## 🐛 Fixes +**api** +- embedded fonts would not load on windows ([0546deb](https://github.com/gotson/komga/commits/0546deb)), closes [#1877](https://github.com/gotson/komga/issues/1877) +- add missing permissions for history api ([d4d3f64](https://github.com/gotson/komga/commits/d4d3f64)) +- oauth2 providers endpoint should only expose get ([c1fb307](https://github.com/gotson/komga/commits/c1fb307)) +- use proper media type for fonts ([6fa976f](https://github.com/gotson/komga/commits/6fa976f)), closes [#1849](https://github.com/gotson/komga/issues/1849) +- incorrect format keyword in generated fonts css ([0f05a06](https://github.com/gotson/komga/commits/0f05a06)), closes [#1849](https://github.com/gotson/komga/issues/1849) + +**webui** +- add missing admin guard for history view ([b5928eb](https://github.com/gotson/komga/commits/b5928eb)) + +## 🔄️ Changes +**api** +- rework client-settings API validation ([7f55fe1](https://github.com/gotson/komga/commits/7f55fe1)) +- add validation on client-settings api ([c423d7c](https://github.com/gotson/komga/commits/c423d7c)) +- rework client-settings API ([0b37257](https://github.com/gotson/komga/commits/0b37257)) + +**webui** +- dashboard edit button hides the bottom bar on mobile ([e1acc58](https://github.com/gotson/komga/commits/e1acc58)) +- remove unused component references ([25dc282](https://github.com/gotson/komga/commits/25dc282)) +- remove 3-dots menu for all libraries in main view ([f90b415](https://github.com/gotson/komga/commits/f90b415)) +- remove unused imports ([8c64639](https://github.com/gotson/komga/commits/8c64639)) +- use reworked client-settings API ([05f73f0](https://github.com/gotson/komga/commits/05f73f0)) + +**unscoped** +- ktlint format ([9511c11](https://github.com/gotson/komga/commits/9511c11)) + +## 🛠 Build + +- adjust svu options for v3 ([6875e6e](https://github.com/gotson/komga/commits/6875e6e)) +- cleanup openapi reference generation ([77c1069](https://github.com/gotson/komga/commits/77c1069)) +- enable repository dispatch on release ([a70a3b2](https://github.com/gotson/komga/commits/a70a3b2)) + +## 📝 Documentation +**api** +- move deprecated endpoints to the top ([8b66308](https://github.com/gotson/komga/commits/8b66308)) +- update openapi description ([9dcdb1d](https://github.com/gotson/komga/commits/9dcdb1d)) +- add servers and logout endpoint ([3273048](https://github.com/gotson/komga/commits/3273048)) +- add Open API documentation for Client Settings API ([7fbf9c7](https://github.com/gotson/komga/commits/7fbf9c7)) +- add replacement for deprecated APIs ([fab59bc](https://github.com/gotson/komga/commits/fab59bc)) + +**unscoped** +- cleanup openApi documentation ([ad8ee86](https://github.com/gotson/komga/commits/ad8ee86)) + +## 🌐 Translation +**komga-tray** +- translated using Weblate (Hungarian) ([b4d97d4](https://github.com/gotson/komga/commits/b4d97d4)) + +**webui** +- translated using Weblate (Chinese (Simplified Han script)) ([a88d8a0](https://github.com/gotson/komga/commits/a88d8a0)) +- translated using Weblate (Finnish) ([0c7baf9](https://github.com/gotson/komga/commits/0c7baf9)) +- translated using Weblate (Spanish) ([c1dcb78](https://github.com/gotson/komga/commits/c1dcb78)) +- translated using Weblate (Italian) ([b82fb17](https://github.com/gotson/komga/commits/b82fb17)) +- translated using Weblate (Hungarian) ([85fa17f](https://github.com/gotson/komga/commits/85fa17f)) +- translated using Weblate (Croatian) ([e9a5120](https://github.com/gotson/komga/commits/e9a5120)) +- translated using Weblate (Portuguese) ([cf3fcab](https://github.com/gotson/komga/commits/cf3fcab)) +- translated using Weblate (Czech) ([8d9840c](https://github.com/gotson/komga/commits/8d9840c)) +- translated using Weblate (Japanese) ([8a2bce2](https://github.com/gotson/komga/commits/8a2bce2)) +- translated using Weblate (German) ([17be53d](https://github.com/gotson/komga/commits/17be53d)) + +## ⚙️ Dependencies +**webui** +- bump serialize-javascript in /komga-webui ([4d72ec0](https://github.com/gotson/komga/commits/4d72ec0)) + # [1.19.1](https://github.com/gotson/komga/compare/1.19.0...1.19.1) (2025-02-03) ## 🐛 Fixes **api** diff --git a/gradle.properties b/gradle.properties index 066139c46..72d9390b2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ -version=1.19.1 +version=1.20.0 org.gradle.jvmargs=-Xmx2G diff --git a/komga/docs/openapi.json b/komga/docs/openapi.json index c45754f9f..5692d3fc7 100644 --- a/komga/docs/openapi.json +++ b/komga/docs/openapi.json @@ -1,13 +1,13 @@ { "openapi": "3.0.1", "info": { - "title": "Komga API", - "description": "Komga offers 2 APIs: REST and OPDS.\n\nBoth APIs are secured using HTTP Basic Authentication.", + "description": "Komga REST API.\n\n## Reference\n\nCheck the API reference:\n- on the [Komga website](https://komga.org/docs/category/api-reference)\n- on any running Komga instance at `/swagger-ui.html`\n- on [GitHub](https://raw.githubusercontent.com/gotson/komga/refs/heads/master/komga/docs/openapi.json)\n\n## Authentication\n\nMost endpoints require authentication. Authentication is done using either:\n- Basic Authentication\n- Passing an API Key in the `X-API-Key` header\n\n## Sessions\n\nUpon successful authentication, a session is created, and can be reused.\n\n- By default, a `SESSION` cookie is set via `Set-Cookie` response header. This works well for browsers and clients that can handle cookies.\n- If you specify a header `X-Auth-Token` during authentication, the session ID will be returned via this same header. You can then pass that header again for subsequent requests to reuse the session.\n\nIf you need to set the session cookie later on, you can call `/api/v1/login/set-cookie` with `X-Auth-Token`. The response will contain the `Set-Cookie` header.\n\n## Remember Me\n\nDuring authentication, if a request parameter `remember-me` is passed and set to `true`, the server will also return a `remember-me` cookie. This cookie will be used to login automatically even if the session has expired.\n\n## Logout\n\nYou can explicitly logout an existing session by calling `/api/logout`. This would return a `204`.\n\n## Deprecation\n\nAPI endpoints marked as deprecated will be removed in the next major version.", "license": { "name": "MIT", "url": "https://github.com/gotson/komga/blob/master/LICENSE" }, - "version": "v1.0" + "title": "Komga API", + "version": "1.20.0" }, "externalDocs": { "description": "Komga documentation", @@ -15,1187 +15,270 @@ }, "servers": [ { - "url": "http://localhost:8080", - "description": "Generated server url" + "url": "http://localhost:{port}", + "description": "Local development server", + "variables": { + "port": { + "enum": [ + "8080", + "25600" + ] + } + } + }, + { + "url": "https://demo.komga.org", + "description": "Demo server" + } + ], + "tags": [ + { + "name": "Deprecated" + }, + { + "description": "Manage libraries.", + "name": "Libraries" + }, + { + "description": "Manage series.", + "name": "Series" + }, + { + "description": "Manage posters for series.", + "name": "Series Poster" + }, + { + "description": "Manage books.", + "name": "Books" + }, + { + "description": "Manage posters for books.", + "name": "Book Poster" + }, + { + "name": "Book Pages" + }, + { + "name": "WebPub Manifest" + }, + { + "name": "Import" + }, + { + "description": "Provide font files and CSS for the Epub Reader.", + "name": "Fonts" + }, + { + "description": "Manage duplicate pages. Duplicate pages are identified by a page hash.", + "name": "Duplicate Pages" + }, + { + "description": "Manage collections.", + "name": "Collections" + }, + { + "description": "Manage posters for collections.", + "name": "Collection Poster" + }, + { + "name": "Collection Series" + }, + { + "description": "Manage readlists.", + "name": "Readlists" + }, + { + "description": "Manage posters for readlists.", + "name": "Readlist Poster" + }, + { + "name": "Readlist Books" + }, + { + "description": "Retrieve referential metadata from all items in the Komga server.", + "name": "Referential metadata" + }, + { + "description": "Manage current user.", + "name": "Current user" + }, + { + "description": "Manage users.", + "name": "Users" + }, + { + "description": "Manage API Keys", + "name": "API Keys" + }, + { + "name": "User session" + }, + { + "description": "List registered OAuth2 providers", + "name": "OAuth2" + }, + { + "description": "Sync points are automatically created during a Kobo sync.", + "name": "Sync points" + }, + { + "description": "Claim a freshly installed Komga server.", + "name": "Claim server" + }, + { + "description": "Manage server tasks", + "name": "Tasks" + }, + { + "description": "Server events history", + "name": "History" + }, + { + "description": "List files from the host server\u0027s file system", + "name": "File system" + }, + { + "description": "Store and retrieve server settings", + "name": "Server settings" + }, + { + "description": "Retrieve releases information", + "name": "Releases" + }, + { + "description": "Retrieve announcements from the Komga website", + "name": "Announcements" + }, + { + "name": "Mihon" + }, + { + "name": "ComicRack" + }, + { + "description": "Store and retrieve global and per-user settings. Those settings are not used by Komga itself, but can be stored for convenience by client applications.", + "name": "Client settings" } ], "paths": { - "/kobo/{authToken}/{path}": { + "/api/logout": { "get": { - "tags": [ - "kobo-controller" - ], - "operationId": "catchAll", - "parameters": [ - { - "name": "body", - "in": "query", - "required": false, - "schema": { - "type": "object" - } - } - ], + "description": "Invalidates the current session and clean up any remember-me authentication.", + "operationId": "postLogout", "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json;charset\u003dutf-8": { - "schema": { - "$ref": "#/components/schemas/JsonNode" - } - }, - "application/json; charset\u003dutf-8": { - "schema": { - "$ref": "#/components/schemas/JsonNode" - } - } - } - } - } - }, - "put": { - "tags": [ - "kobo-controller" - ], - "operationId": "catchAll_2", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object" - } - } + "204": { + "description": "No Content" } }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json;charset\u003dutf-8": { - "schema": { - "$ref": "#/components/schemas/JsonNode" - } - }, - "application/json; charset\u003dutf-8": { - "schema": { - "$ref": "#/components/schemas/JsonNode" - } - } - } - } - } + "summary": "Logout", + "tags": [ + "User session" + ] }, "post": { - "tags": [ - "kobo-controller" - ], - "operationId": "catchAll_1", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, + "description": "Invalidates the current session and clean up any remember-me authentication.", + "operationId": "postLogout_1", "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json;charset\u003dutf-8": { - "schema": { - "$ref": "#/components/schemas/JsonNode" - } - }, - "application/json; charset\u003dutf-8": { - "schema": { - "$ref": "#/components/schemas/JsonNode" - } - } - } - } - } - }, - "delete": { - "tags": [ - "kobo-controller" - ], - "operationId": "catchAll_3", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json;charset\u003dutf-8": { - "schema": { - "$ref": "#/components/schemas/JsonNode" - } - }, - "application/json; charset\u003dutf-8": { - "schema": { - "$ref": "#/components/schemas/JsonNode" - } - } - } - } - } - }, - "patch": { - "tags": [ - "kobo-controller" - ], - "operationId": "catchAll_4", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object" - } - } - } - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json;charset\u003dutf-8": { - "schema": { - "$ref": "#/components/schemas/JsonNode" - } - }, - "application/json; charset\u003dutf-8": { - "schema": { - "$ref": "#/components/schemas/JsonNode" - } - } - } - } - } - } - }, - "/opds/v2/books/{bookId}/progression": { - "get": { - "tags": [ - "common-book-controller" - ], - "operationId": "getProgression", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/vnd.readium.progression+json": { - "schema": { - "$ref": "#/components/schemas/R2Progression" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/R2Progression" - } - } - } - } - } - }, - "put": { - "tags": [ - "common-book-controller" - ], - "operationId": "markProgression", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/R2Progression" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, "204": { "description": "No Content" } - } - } - }, - "/api/v1/books/{bookId}/progression": { - "get": { - "tags": [ - "common-book-controller" - ], - "operationId": "getProgression_1", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/vnd.readium.progression+json": { - "schema": { - "$ref": "#/components/schemas/R2Progression" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/R2Progression" - } - } - } - } - } - }, - "put": { - "tags": [ - "common-book-controller" - ], - "operationId": "markProgression_1", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/R2Progression" - } - } - }, - "required": true }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "204": { - "description": "No Content" - } - } - } - }, - "/koreader/syncs/progress": { - "put": { + "summary": "Logout", "tags": [ - "koreader-sync-controller" - ], - "operationId": "updateProgress", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DocumentProgressDto" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK" - } - } - } - }, - "/kobo/{authToken}/v1/library/{bookId}/state": { - "get": { - "tags": [ - "kobo-controller" - ], - "operationId": "getState", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json;charset\u003dutf-8": { - "schema": { - "type": "object" - } - }, - "application/json; charset\u003dutf-8": { - "schema": { - "type": "object" - } - } - } - } - } + "User session" + ] }, - "put": { - "tags": [ - "kobo-controller" - ], - "operationId": "updateState", + "summary": "Logout current session" + }, + "/api/v1/age-ratings": { + "get": { + "description": "Can be filtered by various criteria", + "operationId": "getAgeRatings", "parameters": [ { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "X-Kobo-deviceid", - "in": "header", + "in": "query", + "name": "library_id", "required": false, "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ReadingStateStateUpdateDto" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json;charset\u003dutf-8": { - "schema": { - "type": "object" - } - }, - "application/json; charset\u003dutf-8": { - "schema": { - "type": "object" - } - } - } - } - } - } - }, - "/api/v2/series/{seriesId}/read-progress/tachiyomi": { - "get": { - "tags": [ - "series-controller" - ], - "operationId": "getReadProgressTachiyomiV2", - "parameters": [ - { - "name": "seriesId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TachiyomiReadProgressV2Dto" - } - } - } - } - } - }, - "put": { - "tags": [ - "series-controller" - ], - "operationId": "markReadProgressTachiyomiV2", - "parameters": [ - { - "name": "seriesId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TachiyomiReadProgressUpdateV2Dto" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "204": { - "description": "No Content" - } - } - } - }, - "/api/v1/series/{seriesId}/thumbnails/{thumbnailId}/selected": { - "put": { - "tags": [ - "series-controller" - ], - "operationId": "postMarkSelectedSeriesThumbnail", - "parameters": [ - { - "name": "seriesId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "thumbnailId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "202": { - "description": "Accepted" - } - } - } - }, - "/api/v1/readlists/{id}/thumbnails/{thumbnailId}/selected": { - "put": { - "tags": [ - "read-list-controller" - ], - "operationId": "markSelectedReadListThumbnail", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "thumbnailId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "202": { - "description": "Accepted" - } - } - } - }, - "/api/v1/readlists/{id}/read-progress/tachiyomi": { - "get": { - "tags": [ - "read-list-controller" - ], - "operationId": "getReadProgress", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TachiyomiReadProgressDto" - } - } - } - } - } - }, - "put": { - "tags": [ - "read-list-controller" - ], - "operationId": "markReadProgressTachiyomi", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TachiyomiReadProgressUpdateDto" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "204": { - "description": "No Content" - } - } - } - }, - "/api/v1/page-hashes": { - "get": { - "tags": [ - "page-hash-controller" - ], - "operationId": "getKnownPageHashes", - "parameters": [ - { - "name": "action", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "DELETE_AUTO", - "DELETE_MANUAL", - "IGNORE" - ] - } - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - }, - { - "name": "size", - "in": "query", - "description": "The size of the page to be returned", - "schema": { - "type": "integer" - } - }, - { - "name": "sort", - "in": "query", - "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", - "schema": { + "uniqueItems": true, "type": "array", "items": { "type": "string" } } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagePageHashKnownDto" - } - } - } - } - } - }, - "put": { - "tags": [ - "page-hash-controller" - ], - "operationId": "createOrUpdateKnownPageHash", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PageHashCreationDto" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "202": { - "description": "Accepted" - } - } - } - }, - "/api/v1/libraries/{libraryId}": { - "get": { - "tags": [ - "library-controller" - ], - "operationId": "getOne", - "parameters": [ - { - "name": "libraryId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LibraryDto" - } - } - } - } - } - }, - "put": { - "tags": [ - "library-controller" - ], - "operationId": "updateOne", - "parameters": [ - { - "name": "libraryId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LibraryUpdateDto" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "204": { - "description": "No Content" - } - }, - "deprecated": true - }, - "delete": { - "tags": [ - "library-controller" - ], - "operationId": "deleteOne", - "parameters": [ - { - "name": "libraryId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "204": { - "description": "No Content" - } - } - }, - "patch": { - "tags": [ - "library-controller" - ], - "operationId": "patchOne", - "parameters": [ - { - "name": "libraryId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LibraryUpdateDto" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "204": { - "description": "No Content" - } - } - } - }, - "/api/v1/collections/{id}/thumbnails/{thumbnailId}/selected": { - "put": { - "tags": [ - "series-collection-controller" - ], - "operationId": "markSelectedCollectionThumbnail", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } }, { - "name": "thumbnailId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "202": { - "description": "Accepted" - } - } - } - }, - "/api/v1/books/{bookId}/thumbnails/{thumbnailId}/selected": { - "put": { - "tags": [ - "book-controller" - ], - "operationId": "markSelectedBookThumbnail", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "thumbnailId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "202": { - "description": "Accepted" - } - } - } - }, - "/api/v1/books/thumbnails": { - "put": { - "tags": [ - "book-controller" - ], - "operationId": "regenerateThumbnails", - "parameters": [ - { - "name": "for_bigger_result_only", "in": "query", + "name": "collection_id", "required": false, "schema": { - "type": "boolean" + "type": "string" } } ], "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "description": "OK" + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } - } - }, - "202": { - "description": "Accepted" + }, + "description": "Bad Request" } - } + }, + "summary": "List age ratings", + "tags": [ + "Referential metadata" + ] } }, "/api/v1/announcements": { "get": { - "tags": [ - "announcement-controller" - ], "operationId": "getAnnouncements", "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, "200": { - "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JsonFeedDto" } } - } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" } - } + }, + "summary": "Retrieve announcements", + "tags": [ + "Announcements" + ] }, "put": { - "tags": [ - "announcement-controller" - ], "operationId": "markAnnouncementsRead", "requestBody": { "content": { @@ -1212,292 +295,856 @@ "required": true }, "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, "204": { "description": "No Content" - } - } - } - }, - "/koreader/users/create": { - "post": { - "tags": [ - "koreader-sync-controller" - ], - "operationId": "registerUser", - "responses": { + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } + }, + "description": "Bad Request" + } + }, + "summary": "Mark announcements as read", + "tags": [ + "Announcements" + ] + } + }, + "/api/v1/authors": { + "get": { + "deprecated": true, + "description": "Use GET /api/v2/authors instead. Deprecated since 1.20.0.", + "operationId": "getAuthorsV1", + "parameters": [ + { + "in": "query", + "name": "search", + "required": false, + "schema": { + "type": "string", + "default": "" } }, + { + "in": "query", + "name": "library_id", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "collection_id", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "series_id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { "200": { - "description": "OK", "content": { - "application/vnd.koreader.v1+json": { + "application/json": { "schema": { - "type": "string" + "type": "array", + "items": { + "$ref": "#/components/schemas/AuthorDto" + } } } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List authors", + "tags": [ + "Deprecated", + "Referential metadata" + ] + } + }, + "/api/v1/authors/names": { + "get": { + "operationId": "getAuthorsNames", + "parameters": [ + { + "in": "query", + "name": "search", + "required": false, + "schema": { + "type": "string", + "default": "" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List authors\u0027 names", + "tags": [ + "Referential metadata" + ] + } + }, + "/api/v1/authors/roles": { + "get": { + "operationId": "getAuthorsRoles", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List authors\u0027 roles", + "tags": [ + "Referential metadata" + ] + } + }, + "/api/v1/books": { + "get": { + "deprecated": true, + "description": "Use POST /api/v1/books/list instead. Deprecated since 1.19.0.", + "operationId": "getAllBooks", + "parameters": [ + { + "in": "query", + "name": "search", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "library_id", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "media_status", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "UNKNOWN", + "ERROR", + "READY", + "UNSUPPORTED", + "OUTDATED" + ] + } + } + }, + { + "in": "query", + "name": "read_status", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "UNREAD", + "READ", + "IN_PROGRESS" + ] + } + } + }, + { + "in": "query", + "name": "released_after", + "required": false, + "schema": { + "type": "string", + "format": "date" + } + }, + { + "in": "query", + "name": "tag", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "unpaged", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "The size of the page to be returned", + "in": "query", + "name": "size", + "schema": { + "type": "integer" + } + }, + { + "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", + "in": "query", + "name": "sort", + "schema": { + "type": "array", + "items": { + "type": "string" + } } } - } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PageBookDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List books", + "tags": [ + "Books", + "Deprecated" + ] } }, - "/kobo/{authToken}/v1/auth/device": { - "post": { - "tags": [ - "kobo-controller" + "/api/v1/books/duplicates": { + "get": { + "description": "Return books that have the same file hash.", + "operationId": "getDuplicateBooks", + "parameters": [ + { + "in": "query", + "name": "unpaged", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "The size of the page to be returned", + "in": "query", + "name": "size", + "schema": { + "type": "integer" + } + }, + { + "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", + "in": "query", + "name": "sort", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } ], - "operationId": "authDevice", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PageBookDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List duplicate books", + "tags": [ + "Books" + ] + } + }, + "/api/v1/books/import": { + "post": { + "operationId": "importBooks", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/JsonNode" + "$ref": "#/components/schemas/BookImportBatchDto" } } }, "required": true }, "responses": { + "202": { + "description": "Accepted" + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } + }, + "description": "Bad Request" + } + }, + "summary": "Import books", + "tags": [ + "Import" + ] + } + }, + "/api/v1/books/latest": { + "get": { + "description": "Return newly added or updated books.", + "operationId": "getLatestBooks", + "parameters": [ + { + "in": "query", + "name": "unpaged", + "required": false, + "schema": { + "type": "boolean" } }, + { + "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "The size of the page to be returned", + "in": "query", + "name": "size", + "schema": { + "type": "integer" + } + } + ], + "responses": { "200": { - "description": "OK", "content": { - "application/json;charset\u003dutf-8": { + "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/PageBookDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List latest books", + "tags": [ + "Books" + ] + } + }, + "/api/v1/books/list": { + "post": { + "operationId": "getBooksList", + "parameters": [ + { + "in": "query", + "name": "unpaged", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "The size of the page to be returned", + "in": "query", + "name": "size", + "schema": { + "type": "integer" + } + }, + { + "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", + "in": "query", + "name": "sort", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BookSearch" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PageBookDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List books", + "tags": [ + "Books" + ] + } + }, + "/api/v1/books/metadata": { + "patch": { + "description": "Set a field to null to unset the metadata. You can omit fields you don\u0027t want to update.", + "operationId": "updateBatchMetadata", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/BookMetadataUpdateDto" + }, + "description": "A map of book IDs which values are the metadata fields to update. Set a field to null to unset the metadata. You can omit fields you don\u0027t want to update." + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Update book metadata in bulk", + "tags": [ + "Books" + ] + } + }, + "/api/v1/books/ondeck": { + "get": { + "description": "Return first unread book of series with at least one book read and no books in progress.", + "operationId": "getBooksOnDeck", + "parameters": [ + { + "in": "query", + "name": "library_id", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "The size of the page to be returned", + "in": "query", + "name": "size", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PageBookDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List books on deck", + "tags": [ + "Books" + ] + } + }, + "/api/v1/books/thumbnails": { + "put": { + "operationId": "regenerateThumbnails", + "parameters": [ + { + "in": "query", + "name": "for_bigger_result_only", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "202": { + "description": "Accepted" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Regenerate books posters", + "tags": [ + "Book Poster" + ] + } + }, + "/api/v1/books/{bookId}": { + "get": { + "operationId": "getOneBook", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BookDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Get book details", + "tags": [ + "Books" + ] + } + }, + "/api/v1/books/{bookId}/analyze": { + "post": { + "operationId": "analyze_3", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "202": { + "description": "Accepted" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Analyze book", + "tags": [ + "Books" + ] + } + }, + "/api/v1/books/{bookId}/file": { + "delete": { + "operationId": "deleteBookFile", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "202": { + "description": "Accepted" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Delete book file", + "tags": [ + "Books" + ] + }, + "get": { + "description": "Download the book file.", + "operationId": "getBookFile", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamingResponseBody" } }, - "application/json; charset\u003dutf-8": { + "application/octet-stream": { "schema": { - "type": "object" + "$ref": "#/components/schemas/StreamingResponseBody" } } - } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" } - } + }, + "summary": "Download book file", + "tags": [ + "Books" + ] } }, - "/api/v2/users": { + "/api/v1/books/{bookId}/file/*": { "get": { - "tags": [ - "user-controller" - ], - "operationId": "getAll", - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserDto" - } - } - } - } - } - } - }, - "post": { - "tags": [ - "user-controller" - ], - "operationId": "addOne", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserCreationDto" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserDto" - } - } - } - } - } - } - }, - "/api/v2/users/me/api-keys": { - "get": { - "tags": [ - "user-controller" - ], - "operationId": "getApiKeys", - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ApiKeyDto" - } - } - } - } - } - } - }, - "post": { - "tags": [ - "user-controller" - ], - "operationId": "createApiKey", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApiKeyRequestDto" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApiKeyDto" - } - } - } - } - } - } - }, - "/api/v1/transient-books": { - "post": { - "tags": [ - "transient-books-controller" - ], - "operationId": "scanForTransientBooks", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ScanRequestDto" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TransientBookDto" - } - } - } - } - } - } - } - }, - "/api/v1/transient-books/{id}/analyze": { - "post": { - "tags": [ - "transient-books-controller" - ], - "operationId": "analyze", + "description": "Download the book file.", + "operationId": "getBookFile_1", "parameters": [ { - "name": "id", "in": "path", + "name": "bookId", "required": true, "schema": { "type": "string" @@ -1505,39 +1152,45 @@ } ], "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamingResponseBody" + } + }, + "application/octet-stream": { + "schema": { + "$ref": "#/components/schemas/StreamingResponseBody" + } + } + }, + "description": "OK" + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TransientBookDto" - } - } - } + }, + "description": "Bad Request" } - } + }, + "summary": "Download book file", + "tags": [ + "Books" + ] } }, - "/api/v1/series/{seriesId}/thumbnails": { + "/api/v1/books/{bookId}/manifest": { "get": { - "tags": [ - "series-controller" - ], - "operationId": "getSeriesThumbnails", + "operationId": "getWebPubManifest", "parameters": [ { - "name": "seriesId", "in": "path", + "name": "bookId", "required": true, "schema": { "type": "string" @@ -1545,48 +1198,1018 @@ } ], "responses": { + "200": { + "content": { + "application/divina+json": { + "schema": { + "$ref": "#/components/schemas/WPPublicationDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/WPPublicationDto" + } + }, + "application/webpub+json": { + "schema": { + "$ref": "#/components/schemas/WPPublicationDto" + } + } + }, + "description": "OK" + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } + }, + "description": "Bad Request" + } + }, + "summary": "Get book\u0027s WebPub manifest", + "tags": [ + "WebPub Manifest" + ] + } + }, + "/api/v1/books/{bookId}/manifest/divina": { + "get": { + "operationId": "getWebPubManifestDivina", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/divina+json": { + "schema": { + "$ref": "#/components/schemas/WPPublicationDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/WPPublicationDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Get book\u0027s WebPub manifest (DiViNa)", + "tags": [ + "WebPub Manifest" + ] + } + }, + "/api/v1/books/{bookId}/manifest/epub": { + "get": { + "operationId": "getWebPubManifestEpub", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WPPublicationDto" + } + }, + "application/webpub+json": { + "schema": { + "$ref": "#/components/schemas/WPPublicationDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Get book\u0027s WebPub manifest (Epub)", + "tags": [ + "WebPub Manifest" + ] + } + }, + "/api/v1/books/{bookId}/manifest/pdf": { + "get": { + "operationId": "getWebPubManifestPdf", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WPPublicationDto" + } + }, + "application/webpub+json": { + "schema": { + "$ref": "#/components/schemas/WPPublicationDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Get book\u0027s WebPub manifest (PDF)", + "tags": [ + "WebPub Manifest" + ] + } + }, + "/api/v1/books/{bookId}/metadata": { + "patch": { + "description": "Set a field to null to unset the metadata. You can omit fields you don\u0027t want to update.", + "operationId": "updateMetadata_1", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BookMetadataUpdateDto" + } } }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Update book metadata", + "tags": [ + "Books" + ] + } + }, + "/api/v1/books/{bookId}/metadata/refresh": { + "post": { + "operationId": "refreshMetadata_2", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "202": { + "description": "Accepted" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Refresh book metadata", + "tags": [ + "Books" + ] + } + }, + "/api/v1/books/{bookId}/next": { + "get": { + "operationId": "getBookSiblingNext_1", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BookDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Get next book in series", + "tags": [ + "Books" + ] + } + }, + "/api/v1/books/{bookId}/pages": { + "get": { + "operationId": "getBookPages", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { "200": { - "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/ThumbnailSeriesDto" + "$ref": "#/components/schemas/PageDto" } } } - } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" } - } - }, - "post": { + }, + "summary": "List book pages", "tags": [ - "series-controller" - ], - "operationId": "postUserUploadedSeriesThumbnail", + "Book Pages" + ] + } + }, + "/api/v1/books/{bookId}/pages/{pageNumber}": { + "get": { + "operationId": "getBookPage", "parameters": [ { - "name": "seriesId", "in": "path", + "name": "bookId", "required": true, "schema": { "type": "string" } }, { - "name": "selected", + "in": "path", + "name": "pageNumber", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "description": "Convert the image to the provided format.", "in": "query", + "name": "convert", + "required": false, + "schema": { + "type": "string", + "enum": [ + "jpeg", + "png" + ] + } + }, + { + "description": "If set to true, pages will start at index 0. If set to false, pages will start at index 1.", + "in": "query", + "name": "zero_based", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "description": "Some very limited server driven content negotiation is handled. If a book is a PDF book, and the Accept header contains \u0027application/pdf\u0027 as a more specific type than other \u0027image/\u0027 types, a raw PDF page will be returned.", + "in": "header", + "name": "Accept", + "required": false, + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaType" + } + } + }, + { + "in": "query", + "name": "contentNegotiation", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + } + ], + "responses": { + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "default": { + "content": { + "image/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + }, + "description": "default response" + } + }, + "summary": "Get book page image", + "tags": [ + "Book Pages" + ] + } + }, + "/api/v1/books/{bookId}/pages/{pageNumber}/raw": { + "get": { + "description": "Returns the book page in raw format, without content negotiation.", + "operationId": "getBookPageRaw", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "pageNumber", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + }, + "application/json": { + "schema": { + "type": "string", + "format": "byte" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Get raw book page", + "tags": [ + "Book Pages" + ] + } + }, + "/api/v1/books/{bookId}/pages/{pageNumber}/thumbnail": { + "get": { + "description": "The image is resized to 300px on the largest dimension.", + "operationId": "getBookPageThumbnail", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "pageNumber", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "default": { + "content": { + "application/json": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "image/jpeg": { + "schema": { + "type": "string", + "format": "binary" + } + } + }, + "description": "default response" + } + }, + "summary": "Get book page thumbnail", + "tags": [ + "Book Pages" + ] + } + }, + "/api/v1/books/{bookId}/positions": { + "get": { + "description": "The Positions API is a proposed standard for OPDS 2 and Readium. It is used by the Epub Reader.", + "operationId": "getPositions", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/R2Positions" + } + }, + "application/vnd.readium.position-list+json": { + "schema": { + "$ref": "#/components/schemas/R2Positions" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List book\u0027s positions", + "tags": [ + "WebPub Manifest" + ] + } + }, + "/api/v1/books/{bookId}/previous": { + "get": { + "operationId": "getBookSiblingPrevious_1", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BookDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Get previous book in series", + "tags": [ + "Books" + ] + } + }, + "/api/v1/books/{bookId}/progression": { + "get": { + "description": "The Progression API is a proposed standard for OPDS 2 and Readium. It is used by the Epub Reader.", + "operationId": "getProgression", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/R2Progression" + } + }, + "application/vnd.readium.progression+json": { + "schema": { + "$ref": "#/components/schemas/R2Progression" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Get book progression", + "tags": [ + "WebPub Manifest" + ] + }, + "put": { + "description": "The Progression API is a proposed standard for OPDS 2 and Readium. It is used by the Epub Reader.", + "operationId": "markProgression", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/R2Progression" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Mark book progression", + "tags": [ + "WebPub Manifest" + ] + } + }, + "/api/v1/books/{bookId}/read-progress": { + "delete": { + "description": "Mark book as unread", + "operationId": "deleteReadProgress", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Mark book as unread", + "tags": [ + "Books" + ] + }, + "patch": { + "description": "Mark book as read and/or change page progress.", + "operationId": "markReadProgress", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReadProgressUpdateDto" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Mark book\u0027s read progress", + "tags": [ + "Books" + ] + } + }, + "/api/v1/books/{bookId}/readlists": { + "get": { + "operationId": "getAllReadListsByBook", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ReadListDto" + } + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List book\u0027s readlists", + "tags": [ + "Books" + ] + } + }, + "/api/v1/books/{bookId}/resource/{resource}": { + "get": { + "description": "Return a resource from within an Epub book.", + "operationId": "getBookResource", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "resource", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + }, + "application/json": { + "schema": { + "type": "string", + "format": "byte" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Get Eoub resource", + "tags": [ + "WebPub Manifest" + ] + } + }, + "/api/v1/books/{bookId}/thumbnail": { + "get": { + "operationId": "getBookThumbnail", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "default": { + "content": { + "application/json": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "image/jpeg": { + "schema": { + "type": "string", + "format": "binary" + } + } + }, + "description": "default response" + } + }, + "summary": "Get book\u0027s poster image", + "tags": [ + "Book Poster" + ] + } + }, + "/api/v1/books/{bookId}/thumbnails": { + "get": { + "operationId": "getBookThumbnails", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ThumbnailBookDto" + } + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List book posters", + "tags": [ + "Book Poster" + ] + }, + "post": { + "operationId": "addUserUploadedBookThumbnail", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "selected", "required": false, "schema": { "type": "boolean" @@ -1612,72 +2235,89 @@ } }, "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, "200": { - "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ThumbnailSeriesDto" + "$ref": "#/components/schemas/ThumbnailBookDto" } } - } - } - } - } - }, - "/api/v1/series/{seriesId}/read-progress": { - "post": { - "tags": [ - "series-controller" - ], - "description": "Mark all book for series as read", - "operationId": "markAsRead", - "parameters": [ - { - "name": "seriesId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { + }, + "description": "OK" + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } - } - }, - "204": { - "description": "No Content" + }, + "description": "Bad Request" } - } - }, + }, + "summary": "Add book poster", + "tags": [ + "Book Poster" + ] + } + }, + "/api/v1/books/{bookId}/thumbnails/{thumbnailId}": { "delete": { - "tags": [ - "series-controller" - ], - "description": "Mark all book for series as unread", - "operationId": "markAsUnread", + "description": "Only uploaded posters can be deleted.", + "operationId": "deleteUserUploadedBookThumbnail", "parameters": [ { - "name": "seriesId", "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "thumbnailId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "202": { + "description": "Accepted" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Delete book poster", + "tags": [ + "Book Poster" + ] + }, + "get": { + "operationId": "getBookThumbnailById", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "thumbnailId", "required": true, "schema": { "type": "string" @@ -1686,122 +2326,802 @@ ], "responses": { "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } + }, + "description": "Bad Request" + }, + "default": { + "content": { + "application/json": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "image/jpeg": { + "schema": { + "type": "string", + "format": "binary" + } + } + }, + "description": "default response" + } + }, + "summary": "Get book poster image", + "tags": [ + "Book Poster" + ] + } + }, + "/api/v1/books/{bookId}/thumbnails/{thumbnailId}/selected": { + "put": { + "operationId": "markSelectedBookThumbnail", + "parameters": [ + { + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" } }, + { + "in": "path", + "name": "thumbnailId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "202": { + "description": "Accepted" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Mark book poster as selected", + "tags": [ + "Book Poster" + ] + } + }, + "/api/v1/claim": { + "get": { + "description": "Check whether this server has already been claimed.", + "operationId": "getClaimStatus", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClaimStatus" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Retrieve claim status", + "tags": [ + "Claim server" + ] + }, + "post": { + "description": "Creates an admin user with the provided credentials.", + "operationId": "claimAdmin", + "parameters": [ + { + "in": "header", + "name": "X-Komga-Email", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "header", + "name": "X-Komga-Password", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Claim server", + "tags": [ + "Claim server" + ] + } + }, + "/api/v1/client-settings/global": { + "delete": { + "description": "Setting key should be a valid lowercase namespace string like \u0027application.domain.key\u0027", + "operationId": "deleteGlobalSetting_1", + "requestBody": { + "content": { + "application/json": { + "example": [ + "application.key1", + "application.key2" + ], + "schema": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "required": true + }, + "responses": { "204": { "description": "No Content" - } - } - } - }, - "/api/v1/series/{seriesId}/metadata/refresh": { - "post": { - "tags": [ - "series-controller" - ], - "operationId": "refreshMetadata", - "parameters": [ - { - "name": "seriesId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } + }, + "description": "Bad Request" + } + }, + "summary": "Delete global settings", + "tags": [ + "Client settings" + ] + }, + "patch": { + "description": "Setting key should be a valid lowercase namespace string like \u0027application.domain.key\u0027", + "operationId": "saveGlobalSetting", + "requestBody": { + "content": { + "application/json": { + "example": { + "application.key1": { + "value": "a string value", + "allowUnauthorized": true + }, + "application.key2": { + "value": "{\"json\":\"object\"}", + "allowUnauthorized": false + } + }, + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ClientSettingGlobalUpdateDto" + } + } } }, - "202": { - "description": "Accepted" - } - } - } - }, - "/api/v1/series/{seriesId}/analyze": { - "post": { - "tags": [ - "series-controller" - ], - "operationId": "analyze_1", - "parameters": [ - { - "name": "seriesId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], + "required": true + }, "responses": { + "204": { + "description": "No Content" + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } - } - }, - "202": { - "description": "Accepted" + }, + "description": "Bad Request" } - } + }, + "summary": "Save global settings", + "tags": [ + "Client settings" + ] } }, - "/api/v1/series/list": { - "post": { + "/api/v1/client-settings/global/list": { + "get": { + "description": "For unauthenticated users, only settings with \u0027allowUnauthorized\u003dtrue\u0027 will be returned.", + "operationId": "getGlobalSettings", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ClientSettingDto" + } + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Retrieve global client settings", "tags": [ - "series-controller" - ], - "operationId": "getSeriesList", + "Client settings" + ] + } + }, + "/api/v1/client-settings/user": { + "delete": { + "description": "Setting key should be a valid lowercase namespace string like \u0027application.domain.key\u0027", + "operationId": "deleteGlobalSetting", + "requestBody": { + "content": { + "application/json": { + "example": [ + "application.key1", + "application.key2" + ], + "schema": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Delete user settings", + "tags": [ + "Client settings" + ] + }, + "patch": { + "description": "Setting key should be a valid lowercase namespace string like \u0027application.domain.key\u0027", + "operationId": "saveUserSetting", + "requestBody": { + "content": { + "application/json": { + "example": { + "application.key1": { + "value": "a string value" + }, + "application.key2": { + "value": "{\"json\":\"object\"}" + } + }, + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ClientSettingUserUpdateDto" + } + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Save user settings", + "tags": [ + "Client settings" + ] + } + }, + "/api/v1/client-settings/user/list": { + "get": { + "operationId": "getUserSettings", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ClientSettingDto" + } + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Retrieve user client settings", + "tags": [ + "Client settings" + ] + } + }, + "/api/v1/collections": { + "get": { + "operationId": "getAll_3", "parameters": [ { - "name": "unpaged", "in": "query", + "name": "search", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "library_id", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "unpaged", "required": false, "schema": { "type": "boolean" } }, { - "name": "page", - "in": "query", "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", "schema": { "type": "integer" } }, { - "name": "size", - "in": "query", "description": "The size of the page to be returned", + "in": "query", + "name": "size", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PageCollectionDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List collections", + "tags": [ + "Collections" + ] + }, + "post": { + "operationId": "addOne_3", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionCreationDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Create collection", + "tags": [ + "Collections" + ] + } + }, + "/api/v1/collections/{id}": { + "delete": { + "operationId": "deleteOne_2", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Delete collection", + "tags": [ + "Collections" + ] + }, + "get": { + "operationId": "getOne_2", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Get collection details", + "tags": [ + "Collections" + ] + }, + "patch": { + "operationId": "updateOne_2", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectionUpdateDto" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Update collection", + "tags": [ + "Collections" + ] + } + }, + "/api/v1/collections/{id}/series": { + "get": { + "operationId": "getSeriesForCollection", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "library_id", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "status", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "ENDED", + "ONGOING", + "ABANDONED", + "HIATUS" + ] + } + } + }, + { + "in": "query", + "name": "read_status", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "UNREAD", + "READ", + "IN_PROGRESS" + ] + } + } + }, + { + "in": "query", + "name": "publisher", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "language", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "genre", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "tag", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "age_rating", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "release_year", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "deleted", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "in": "query", + "name": "complete", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "in": "query", + "name": "unpaged", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", "schema": { "type": "integer" } }, { - "name": "sort", + "description": "The size of the page to be returned", "in": "query", - "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", + "name": "size", + "schema": { + "type": "integer" + } + }, + { + "description": "Author criteria in the format: name,role. Multiple author criteria are supported.", + "in": "query", + "name": "author", "schema": { "type": "array", "items": { @@ -1810,101 +3130,1611 @@ } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SeriesSearch" - } - } - }, - "required": true - }, "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, "200": { - "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageSeriesDto" } } - } - } - } - } - }, - "/api/v1/series/list/alphabetical-groups": { - "post": { - "tags": [ - "series-controller" - ], - "operationId": "getSeriesListByAlphabeticalGroups", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SeriesSearch" - } - } + }, + "description": "OK" }, - "required": true - }, - "responses": { "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } + }, + "description": "Bad Request" + } + }, + "summary": "List collection\u0027s series", + "tags": [ + "Collection Series" + ] + } + }, + "/api/v1/collections/{id}/thumbnail": { + "get": { + "operationId": "getCollectionThumbnail", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" } + } + ], + "responses": { + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" }, + "default": { + "content": { + "application/json": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "image/jpeg": { + "schema": { + "type": "string", + "format": "binary" + } + } + }, + "description": "default response" + } + }, + "summary": "Get collection\u0027s poster image", + "tags": [ + "Collection Poster" + ] + } + }, + "/api/v1/collections/{id}/thumbnails": { + "get": { + "operationId": "getCollectionThumbnails", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { "200": { - "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/GroupCountDto" + "$ref": "#/components/schemas/ThumbnailSeriesCollectionDto" + } + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List collection\u0027s posters", + "tags": [ + "Collection Poster" + ] + }, + "post": { + "operationId": "addUserUploadedCollectionThumbnail", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "selected", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "required": [ + "file" + ], + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" } } } } } - } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ThumbnailSeriesCollectionDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Add collection poster", + "tags": [ + "Collection Poster" + ] + } + }, + "/api/v1/collections/{id}/thumbnails/{thumbnailId}": { + "delete": { + "operationId": "deleteUserUploadedCollectionThumbnail", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "thumbnailId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "202": { + "description": "Accepted" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Delete collection poster", + "tags": [ + "Collection Poster" + ] + }, + "get": { + "operationId": "getCollectionThumbnailById", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "thumbnailId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "default": { + "content": { + "application/json": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "image/jpeg": { + "schema": { + "type": "string", + "format": "binary" + } + } + }, + "description": "default response" + } + }, + "summary": "Get collection poster image", + "tags": [ + "Collection Poster" + ] + } + }, + "/api/v1/collections/{id}/thumbnails/{thumbnailId}/selected": { + "put": { + "operationId": "markSelectedCollectionThumbnail", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "thumbnailId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "202": { + "description": "Accepted" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Mark collection poster as selected", + "tags": [ + "Collection Poster" + ] + } + }, + "/api/v1/filesystem": { + "post": { + "description": "List folders and files from the host server\u0027s file system. If no request body is passed then the root directories are returned.", + "operationId": "getDirectoryListing", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DirectoryRequestDto" + } + } + } + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DirectoryListingDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Directory listing", + "tags": [ + "File system" + ] + } + }, + "/api/v1/fonts/families": { + "get": { + "description": "List all available font families.", + "operationId": "listFonts", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List font families", + "tags": [ + "Fonts" + ] + } + }, + "/api/v1/fonts/resource/{fontFamily}/css": { + "get": { + "description": "Download a CSS file with the @font-face block for the font family. This is used by the Epub Reader to change fonts.", + "operationId": "getFontFamilyAsCss", + "parameters": [ + { + "in": "path", + "name": "fontFamily", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "text/css": { + "schema": { + "type": "string", + "format": "binary" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Download CSS file", + "tags": [ + "Fonts" + ] + } + }, + "/api/v1/fonts/resource/{fontFamily}/{fontFile}": { + "get": { + "operationId": "getFontFile", + "parameters": [ + { + "in": "path", + "name": "fontFamily", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "fontFile", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "string", + "format": "binary" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Download font file", + "tags": [ + "Fonts" + ] + } + }, + "/api/v1/genres": { + "get": { + "description": "Can be filtered by various criteria", + "operationId": "getGenres", + "parameters": [ + { + "in": "query", + "name": "library_id", + "required": false, + "schema": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "collection_id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List genres", + "tags": [ + "Referential metadata" + ] + } + }, + "/api/v1/history": { + "get": { + "operationId": "getAll_4", + "parameters": [ + { + "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "The size of the page to be returned", + "in": "query", + "name": "size", + "schema": { + "type": "integer" + } + }, + { + "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", + "in": "query", + "name": "sort", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PageHistoricalEventDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List historical events", + "tags": [ + "History" + ] + } + }, + "/api/v1/languages": { + "get": { + "description": "Can be filtered by various criteria", + "operationId": "getLanguages", + "parameters": [ + { + "in": "query", + "name": "library_id", + "required": false, + "schema": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "collection_id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List languages", + "tags": [ + "Referential metadata" + ] + } + }, + "/api/v1/libraries": { + "get": { + "description": "The libraries are filtered based on the current user\u0027s permissions", + "operationId": "getAll_2", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryDto" + } + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List all libraries", + "tags": [ + "Libraries" + ] + }, + "post": { + "operationId": "addOne_2", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LibraryCreationDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LibraryDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Create a library", + "tags": [ + "Libraries" + ] + } + }, + "/api/v1/libraries/{libraryId}": { + "delete": { + "operationId": "deleteOne", + "parameters": [ + { + "in": "path", + "name": "libraryId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Delete a library", + "tags": [ + "Libraries" + ] + }, + "get": { + "operationId": "getOne", + "parameters": [ + { + "in": "path", + "name": "libraryId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LibraryDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Get details for a single library", + "tags": [ + "Libraries" + ] + }, + "patch": { + "description": "You can omit fields you don\u0027t want to update", + "operationId": "patchOne", + "parameters": [ + { + "in": "path", + "name": "libraryId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LibraryUpdateDto" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Update a library", + "tags": [ + "Libraries" + ] + }, + "put": { + "deprecated": true, + "description": "Use PATCH /api/v1/libraries/{libraryId} instead. Deprecated since 1.3.0.", + "operationId": "updateOne", + "parameters": [ + { + "in": "path", + "name": "libraryId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LibraryUpdateDto" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Update a library", + "tags": [ + "Deprecated", + "Libraries" + ] + } + }, + "/api/v1/libraries/{libraryId}/analyze": { + "post": { + "operationId": "analyze_2", + "parameters": [ + { + "in": "path", + "name": "libraryId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "202": { + "description": "Accepted" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Analyze a library", + "tags": [ + "Libraries" + ] + } + }, + "/api/v1/libraries/{libraryId}/empty-trash": { + "post": { + "operationId": "emptyTrash", + "parameters": [ + { + "in": "path", + "name": "libraryId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "202": { + "description": "Accepted" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Empty trash for a library", + "tags": [ + "Libraries" + ] + } + }, + "/api/v1/libraries/{libraryId}/metadata/refresh": { + "post": { + "operationId": "refreshMetadata_1", + "parameters": [ + { + "in": "path", + "name": "libraryId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "202": { + "description": "Accepted" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Refresh metadata for a library", + "tags": [ + "Libraries" + ] + } + }, + "/api/v1/libraries/{libraryId}/scan": { + "post": { + "operationId": "scan", + "parameters": [ + { + "in": "path", + "name": "libraryId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "deep", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "202": { + "description": "Accepted" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Scan a library", + "tags": [ + "Libraries" + ] + } + }, + "/api/v1/login/set-cookie": { + "get": { + "description": "Forcefully return Set-Cookie header, even if the session is contained in the X-Auth-Token header.", + "operationId": "headerToCookie", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Set cookie", + "tags": [ + "User session" + ] + } + }, + "/api/v1/oauth2/providers": { + "get": { + "operationId": "getProviders", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OAuth2ClientDto" + } + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List registered OAuth2 providers", + "tags": [ + "OAuth2" + ] + } + }, + "/api/v1/page-hashes": { + "get": { + "operationId": "getKnownPageHashes", + "parameters": [ + { + "in": "query", + "name": "action", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "DELETE_AUTO", + "DELETE_MANUAL", + "IGNORE" + ] + } + } + }, + { + "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "The size of the page to be returned", + "in": "query", + "name": "size", + "schema": { + "type": "integer" + } + }, + { + "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", + "in": "query", + "name": "sort", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PagePageHashKnownDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List known duplicates", + "tags": [ + "Duplicate Pages" + ] + }, + "put": { + "operationId": "createOrUpdateKnownPageHash", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PageHashCreationDto" + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Accepted" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Mark duplicate page as known", + "tags": [ + "Duplicate Pages" + ] + } + }, + "/api/v1/page-hashes/unknown": { + "get": { + "operationId": "getUnknownPageHashes", + "parameters": [ + { + "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "The size of the page to be returned", + "in": "query", + "name": "size", + "schema": { + "type": "integer" + } + }, + { + "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", + "in": "query", + "name": "sort", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PagePageHashUnknownDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List unknown duplicates", + "tags": [ + "Duplicate Pages" + ] + } + }, + "/api/v1/page-hashes/unknown/{pageHash}/thumbnail": { + "get": { + "operationId": "getUnknownPageHashThumbnail", + "parameters": [ + { + "in": "path", + "name": "pageHash", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "resize", + "required": false, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "default": { + "content": { + "application/json": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "image/jpeg": { + "schema": { + "type": "string", + "format": "binary" + } + } + }, + "description": "default response" + } + }, + "summary": "Get unknown duplicate image thumbnail", + "tags": [ + "Duplicate Pages" + ] + } + }, + "/api/v1/page-hashes/{pageHash}": { + "get": { + "operationId": "getPageHashMatches", + "parameters": [ + { + "in": "path", + "name": "pageHash", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "The size of the page to be returned", + "in": "query", + "name": "size", + "schema": { + "type": "integer" + } + }, + { + "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", + "in": "query", + "name": "sort", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PagePageHashMatchDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List duplicate matches", + "tags": [ + "Duplicate Pages" + ] + } + }, + "/api/v1/page-hashes/{pageHash}/delete-all": { + "post": { + "operationId": "performDelete", + "parameters": [ + { + "in": "path", + "name": "pageHash", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "202": { + "description": "Accepted" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Delete all duplicate pages by hash", + "tags": [ + "Duplicate Pages" + ] + } + }, + "/api/v1/page-hashes/{pageHash}/delete-match": { + "post": { + "operationId": "deleteSingleMatch", + "parameters": [ + { + "in": "path", + "name": "pageHash", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PageHashMatchDto" + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Accepted" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Delete specific duplicate page", + "tags": [ + "Duplicate Pages" + ] + } + }, + "/api/v1/page-hashes/{pageHash}/thumbnail": { + "get": { + "operationId": "getKnownPageHashThumbnail", + "parameters": [ + { + "in": "path", + "name": "pageHash", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "default": { + "content": { + "application/json": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "image/jpeg": { + "schema": { + "type": "string", + "format": "binary" + } + } + }, + "description": "default response" + } + }, + "summary": "Get known duplicate image thumbnail", + "tags": [ + "Duplicate Pages" + ] + } + }, + "/api/v1/publishers": { + "get": { + "description": "Can be filtered by various criteria", + "operationId": "getPublishers", + "parameters": [ + { + "in": "query", + "name": "library_id", + "required": false, + "schema": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "collection_id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List publishers", + "tags": [ + "Referential metadata" + ] } }, "/api/v1/readlists": { "get": { - "tags": [ - "read-list-controller" - ], "operationId": "getAll_1", "parameters": [ { - "name": "search", "in": "query", + "name": "search", "required": false, "schema": { "type": "string" } }, { - "name": "library_id", "in": "query", + "name": "library_id", "required": false, "schema": { "type": "array", @@ -1914,57 +4744,58 @@ } }, { - "name": "unpaged", "in": "query", + "name": "unpaged", "required": false, "schema": { "type": "boolean" } }, { - "name": "page", - "in": "query", "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", "schema": { "type": "integer" } }, { - "name": "size", - "in": "query", "description": "The size of the page to be returned", + "in": "query", + "name": "size", "schema": { "type": "integer" } } ], "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, "200": { - "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageReadListDto" } } - } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" } - } + }, + "summary": "List readlists", + "tags": [ + "Readlists" + ] }, "post": { - "tags": [ - "read-list-controller" - ], "operationId": "addOne_1", "requestBody": { "content": { @@ -1977,141 +4808,35 @@ "required": true }, "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, "200": { - "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReadListDto" } } - } - } - } - } - }, - "/api/v1/readlists/{id}/thumbnails": { - "get": { - "tags": [ - "read-list-controller" - ], - "operationId": "getReadListThumbnails", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { + }, + "description": "OK" + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ThumbnailReadListDto" - } - } - } - } - } - } - }, - "post": { - "tags": [ - "read-list-controller" - ], - "operationId": "addUserUploadedReadListThumbnail", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "selected", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "file" - ], - "type": "object", - "properties": { - "file": { - "type": "string", - "format": "binary" - } - } - } - } + }, + "description": "Bad Request" } }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ThumbnailReadListDto" - } - } - } - } - } + "summary": "Create readlist", + "tags": [ + "Readlists" + ] } }, "/api/v1/readlists/match/comicrack": { "post": { - "tags": [ - "read-list-controller" - ], "operationId": "matchFromComicRackList", "requestBody": { "content": { @@ -2132,1198 +4857,40 @@ } }, "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, "200": { - "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReadListRequestMatchDto" } } - } - } - } - } - }, - "/api/v1/page-hashes/{pageHash}/delete-match": { - "post": { - "tags": [ - "page-hash-controller" - ], - "operationId": "deleteSingleMatch", - "parameters": [ - { - "name": "pageHash", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PageHashMatchDto" - } - } + }, + "description": "OK" }, - "required": true - }, - "responses": { "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } - } - }, - "202": { - "description": "Accepted" - } - } - } - }, - "/api/v1/page-hashes/{pageHash}/delete-all": { - "post": { - "tags": [ - "page-hash-controller" - ], - "operationId": "performDelete", - "parameters": [ - { - "name": "pageHash", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "202": { - "description": "Accepted" - } - } - } - }, - "/api/v1/libraries": { - "get": { - "tags": [ - "library-controller" - ], - "operationId": "getAll_2", - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LibraryDto" - } - } - } - } - } - } - }, - "post": { - "tags": [ - "library-controller" - ], - "operationId": "addOne_2", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LibraryCreationDto" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LibraryDto" - } - } - } - } - } - } - }, - "/api/v1/libraries/{libraryId}/scan": { - "post": { - "tags": [ - "library-controller" - ], - "operationId": "scan", - "parameters": [ - { - "name": "libraryId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "deep", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "202": { - "description": "Accepted" - } - } - } - }, - "/api/v1/libraries/{libraryId}/metadata/refresh": { - "post": { - "tags": [ - "library-controller" - ], - "operationId": "refreshMetadata_1", - "parameters": [ - { - "name": "libraryId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "202": { - "description": "Accepted" - } - } - } - }, - "/api/v1/libraries/{libraryId}/empty-trash": { - "post": { - "tags": [ - "library-controller" - ], - "operationId": "emptyTrash", - "parameters": [ - { - "name": "libraryId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "202": { - "description": "Accepted" - } - } - } - }, - "/api/v1/libraries/{libraryId}/analyze": { - "post": { - "tags": [ - "library-controller" - ], - "operationId": "analyze_2", - "parameters": [ - { - "name": "libraryId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "202": { - "description": "Accepted" - } - } - } - }, - "/api/v1/filesystem": { - "post": { - "tags": [ - "file-system-controller" - ], - "operationId": "getDirectoryListing", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DirectoryRequestDto" - } - } + }, + "description": "Bad Request" } }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DirectoryListingDto" - } - } - } - } - } - } - }, - "/api/v1/collections": { - "get": { + "summary": "Match ComicRack list", "tags": [ - "series-collection-controller" - ], - "operationId": "getAll_3", - "parameters": [ - { - "name": "search", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "library_id", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "unpaged", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - }, - { - "name": "size", - "in": "query", - "description": "The size of the page to be returned", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PageCollectionDto" - } - } - } - } - } - }, - "post": { - "tags": [ - "series-collection-controller" - ], - "operationId": "addOne_3", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CollectionCreationDto" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CollectionDto" - } - } - } - } - } - } - }, - "/api/v1/collections/{id}/thumbnails": { - "get": { - "tags": [ - "series-collection-controller" - ], - "operationId": "getCollectionThumbnails", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ThumbnailSeriesCollectionDto" - } - } - } - } - } - } - }, - "post": { - "tags": [ - "series-collection-controller" - ], - "operationId": "addUserUploadedCollectionThumbnail", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "selected", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "file" - ], - "type": "object", - "properties": { - "file": { - "type": "string", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ThumbnailSeriesCollectionDto" - } - } - } - } - } - } - }, - "/api/v1/claim": { - "get": { - "tags": [ - "claim-controller" - ], - "operationId": "getClaimStatus", - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ClaimStatus" - } - } - } - } - } - }, - "post": { - "tags": [ - "claim-controller" - ], - "operationId": "claimAdmin", - "parameters": [ - { - "name": "X-Komga-Email", - "in": "header", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "X-Komga-Password", - "in": "header", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserDto" - } - } - } - } - } - } - }, - "/api/v1/books/{bookId}/thumbnails": { - "get": { - "tags": [ - "book-controller" - ], - "operationId": "getBookThumbnails", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ThumbnailBookDto" - } - } - } - } - } - } - }, - "post": { - "tags": [ - "book-controller" - ], - "operationId": "addUserUploadedBookThumbnail", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "selected", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "requestBody": { - "content": { - "multipart/form-data": { - "schema": { - "required": [ - "file" - ], - "type": "object", - "properties": { - "file": { - "type": "string", - "format": "binary" - } - } - } - } - } - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ThumbnailBookDto" - } - } - } - } - } - } - }, - "/api/v1/books/{bookId}/metadata/refresh": { - "post": { - "tags": [ - "book-controller" - ], - "operationId": "refreshMetadata_2", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "202": { - "description": "Accepted" - } - } - } - }, - "/api/v1/books/{bookId}/analyze": { - "post": { - "tags": [ - "book-controller" - ], - "operationId": "analyze_3", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "202": { - "description": "Accepted" - } - } - } - }, - "/api/v1/books/list": { - "post": { - "tags": [ - "book-controller" - ], - "operationId": "getBooksList", - "parameters": [ - { - "name": "unpaged", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - }, - { - "name": "size", - "in": "query", - "description": "The size of the page to be returned", - "schema": { - "type": "integer" - } - }, - { - "name": "sort", - "in": "query", - "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BookSearch" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PageBookDto" - } - } - } - } - } - } - }, - "/api/v1/books/import": { - "post": { - "tags": [ - "book-controller" - ], - "operationId": "importBooks", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BookImportBatchDto" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "202": { - "description": "Accepted" - } - } - } - }, - "/api/v2/users/{id}": { - "delete": { - "tags": [ - "user-controller" - ], - "operationId": "delete", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "204": { - "description": "No Content" - } - } - }, - "patch": { - "tags": [ - "user-controller" - ], - "operationId": "updateUser", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserUpdateDto" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "204": { - "description": "No Content" - } - } - } - }, - "/api/v2/users/{id}/password": { - "patch": { - "tags": [ - "user-controller" - ], - "operationId": "updatePassword", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PasswordUpdateDto" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "204": { - "description": "No Content" - } - } - } - }, - "/api/v2/users/me/password": { - "patch": { - "tags": [ - "user-controller" - ], - "operationId": "updateMyPassword", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PasswordUpdateDto" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "204": { - "description": "No Content" - } - } - } - }, - "/api/v1/settings": { - "get": { - "tags": [ - "settings-controller" - ], - "operationId": "getSettings", - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SettingsDto" - } - } - } - } - } - }, - "patch": { - "tags": [ - "settings-controller" - ], - "operationId": "updateSettings", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SettingsUpdateDto" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "204": { - "description": "No Content" - } - } - } - }, - "/api/v1/series/{seriesId}/metadata": { - "patch": { - "tags": [ - "series-controller" - ], - "operationId": "updateMetadata", - "parameters": [ - { - "name": "seriesId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SeriesMetadataUpdateDto" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "204": { - "description": "No Content" - } - } + "ComicRack" + ] } }, "/api/v1/readlists/{id}": { - "get": { - "tags": [ - "read-list-controller" - ], - "operationId": "getOne_1", + "delete": { + "operationId": "deleteOne_1", "parameters": [ { - "name": "id", "in": "path", + "name": "id", "required": true, "schema": { "type": "string" @@ -3331,68 +4898,70 @@ } ], "responses": { + "204": { + "description": "No Content" + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } + }, + "description": "Bad Request" + } + }, + "summary": "Delete readlist", + "tags": [ + "Readlists" + ] + }, + "get": { + "operationId": "getOne_1", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" } - }, + } + ], + "responses": { "200": { - "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReadListDto" } } - } - } - } - }, - "delete": { - "tags": [ - "read-list-controller" - ], - "operationId": "deleteOne_1", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { + }, + "description": "OK" + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } - } - }, - "204": { - "description": "No Content" + }, + "description": "Bad Request" } - } + }, + "summary": "Get readlist details", + "tags": [ + "Readlists" + ] }, "patch": { - "tags": [ - "read-list-controller" - ], "operationId": "updateOne_1", "parameters": [ { - "name": "id", "in": "path", + "name": "id", "required": true, "schema": { "type": "string" @@ -3410,4013 +4979,41 @@ "required": true }, "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, "204": { "description": "No Content" - } - } - } - }, - "/api/v1/collections/{id}": { - "get": { - "tags": [ - "series-collection-controller" - ], - "operationId": "getOne_2", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CollectionDto" - } - } - } + }, + "description": "Bad Request" } - } - }, - "delete": { - "tags": [ - "series-collection-controller" - ], - "operationId": "deleteOne_2", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "204": { - "description": "No Content" - } - } - }, - "patch": { - "tags": [ - "series-collection-controller" - ], - "operationId": "updateOne_2", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CollectionUpdateDto" - } - } - }, - "required": true }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "204": { - "description": "No Content" - } - } + "summary": "Update readlist", + "tags": [ + "Readlists" + ] } }, - "/api/v1/books/{bookId}/read-progress": { - "delete": { - "tags": [ - "book-controller" - ], - "description": "Mark book as unread", - "operationId": "deleteReadProgress", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "204": { - "description": "No Content" - } - } - }, - "patch": { - "tags": [ - "book-controller" - ], - "description": "Mark book as read and/or change page progress", - "operationId": "markReadProgress", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ReadProgressUpdateDto" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "204": { - "description": "No Content" - } - } - } - }, - "/api/v1/books/{bookId}/metadata": { - "patch": { - "tags": [ - "book-controller" - ], - "operationId": "updateMetadata_1", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BookMetadataUpdateDto" - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "204": { - "description": "No Content" - } - } - } - }, - "/api/v1/books/metadata": { - "patch": { - "tags": [ - "book-controller" - ], - "operationId": "updateBatchMetadata", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/BookMetadataUpdateDto" - }, - "description": "A map of book IDs which values are the metadata fields to update. Set a field to null to unset the metadata. You can omit fields you don\u0027t want to update." - } - } - }, - "required": true - }, - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "204": { - "description": "No Content" - } - } - } - }, - "/opds/v2/series/{id}": { + "/api/v1/readlists/{id}/books": { "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getOneSeries", + "operationId": "getBooksForReadList", "parameters": [ { + "in": "path", "name": "id", - "in": "path", "required": true, "schema": { "type": "string" } }, { - "name": "tag", "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/FeedDto" - } - } - } - } - } - } - }, - "/opds/v2/search": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getSearchResults", - "parameters": [ - { - "name": "query", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/FeedDto" - } - } - } - } - } - } - }, - "/opds/v2/readlists/{id}": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getOneReadList", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/FeedDto" - } - } - } - } - } - } - }, - "/opds/v2/libraries/{id}/series/latest": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getLatestSeries", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/FeedDto" - } - } - } - } - } - } - }, - "/opds/v2/libraries/series/latest": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getLatestSeries_1", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/FeedDto" - } - } - } - } - } - } - }, - "/opds/v2/libraries/readlists": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getLibrariesReadLists", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/FeedDto" - } - } - } - } - } - } - }, - "/opds/v2/libraries/{id}/readlists": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getLibrariesReadLists_1", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/FeedDto" - } - } - } - } - } - } - }, - "/opds/v2/libraries/{id}/on-deck": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getOnDeck", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/FeedDto" - } - } - } - } - } - } - }, - "/opds/v2/libraries/on-deck": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getOnDeck_1", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/FeedDto" - } - } - } - } - } - } - }, - "/opds/v2/libraries/{id}/keep-reading": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getKeepReading", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/FeedDto" - } - } - } - } - } - } - }, - "/opds/v2/libraries/keep-reading": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getKeepReading_1", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/FeedDto" - } - } - } - } - } - } - }, - "/opds/v2/libraries/collections": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getLibrariesCollections", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/FeedDto" - } - } - } - } - } - } - }, - "/opds/v2/libraries/{id}/collections": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getLibrariesCollections_1", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/FeedDto" - } - } - } - } - } - } - }, - "/opds/v2/libraries/browse": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getLibrariesBrowse", - "parameters": [ - { - "name": "publisher", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/FeedDto" - } - } - } - } - } - } - }, - "/opds/v2/libraries/{id}/browse": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getLibrariesBrowse_1", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "publisher", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/FeedDto" - } - } - } - } - } - } - }, - "/opds/v2/libraries/books/latest": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getLatestBooks", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/FeedDto" - } - } - } - } - } - } - }, - "/opds/v2/libraries/{id}/books/latest": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getLatestBooks_1", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/FeedDto" - } - } - } - } - } - } - }, - "/opds/v2/libraries/{id}": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getLibrariesRecommended", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/FeedDto" - } - } - } - } - } - } - }, - "/opds/v2/libraries": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getLibrariesRecommended_1", - "parameters": [], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/FeedDto" - } - } - } - } - } - } - }, - "/opds/v2/catalog": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getLibrariesRecommended_2", - "parameters": [], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/FeedDto" - } - } - } - } - } - } - }, - "/opds/v2/collections/{id}": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getOneCollection", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/FeedDto" - } - } - } - } - } - } - }, - "/api/v1/books/{bookId}/resource/{resource}": { - "get": { - "tags": [ - "common-book-controller" - ], - "operationId": "getBookResource", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "resource", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "string", - "format": "byte" - } - }, - "application/json": { - "schema": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - }, - "/opds/v2/books/{bookId}/resource/{resource}": { - "get": { - "tags": [ - "common-book-controller" - ], - "operationId": "getBookResource_1", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "resource", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "string", - "format": "byte" - } - }, - "application/json": { - "schema": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - }, - "/opds/v2/books/{bookId}/pages/{pageNumber}": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getBookPage", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pageNumber", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "convert", - "in": "query", - "description": "Convert the image to the provided format.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "jpeg", - "png" - ] - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "default": { - "description": "default response", - "content": { - "image/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - } - } - }, - "/opds/v2/books/{bookId}/pages/{pageNumber}/raw": { - "get": { - "tags": [ - "common-book-controller" - ], - "operationId": "getBookPageRaw", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pageNumber", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "string", - "format": "byte" - } - }, - "application/json": { - "schema": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - }, - "/api/v1/books/{bookId}/pages/{pageNumber}/raw": { - "get": { - "tags": [ - "common-book-controller" - ], - "operationId": "getBookPageRaw_1", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pageNumber", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "string", - "format": "byte" - } - }, - "application/json": { - "schema": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - }, - "/opds/v2/books/{bookId}/manifest": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getWebPubManifest", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds-publication+json": { - "schema": { - "$ref": "#/components/schemas/WPPublicationDto" - } - }, - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/WPPublicationDto" - } - } - } - } - } - } - }, - "/opds/v2/books/{bookId}/manifest/pdf": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getWebPubManifestPdf", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds-publication+json": { - "schema": { - "$ref": "#/components/schemas/WPPublicationDto" - } - }, - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/WPPublicationDto" - } - } - } - } - } - } - }, - "/opds/v2/books/{bookId}/manifest/epub": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getWebPubManifestEpub", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds-publication+json": { - "schema": { - "$ref": "#/components/schemas/WPPublicationDto" - } - }, - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/WPPublicationDto" - } - } - } - } - } - } - }, - "/opds/v2/books/{bookId}/manifest/divina": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getWebPubManifestDivina", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds-publication+json": { - "schema": { - "$ref": "#/components/schemas/WPPublicationDto" - } - }, - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/WPPublicationDto" - } - } - } - } - } - } - }, - "/api/v1/books/{bookId}/file": { - "get": { - "tags": [ - "common-book-controller" - ], - "description": "Download the book file.", - "operationId": "getBookFile", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/octet-stream": { - "schema": { - "$ref": "#/components/schemas/StreamingResponseBody" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingResponseBody" - } - } - } - } - } - }, - "delete": { - "tags": [ - "book-controller" - ], - "operationId": "deleteBook", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "202": { - "description": "Accepted" - } - } - } - }, - "/opds/v2/books/{bookId}/file/*": { - "get": { - "tags": [ - "common-book-controller" - ], - "description": "Download the book file.", - "operationId": "getBookFile_1", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/octet-stream": { - "schema": { - "$ref": "#/components/schemas/StreamingResponseBody" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingResponseBody" - } - } - } - } - } - } - }, - "/api/v1/books/{bookId}/file/*": { - "get": { - "tags": [ - "common-book-controller" - ], - "description": "Download the book file.", - "operationId": "getBookFile_2", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/octet-stream": { - "schema": { - "$ref": "#/components/schemas/StreamingResponseBody" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingResponseBody" - } - } - } - } - } - } - }, - "/opds/v1.2/books/{bookId}/file/*": { - "get": { - "tags": [ - "common-book-controller" - ], - "description": "Download the book file.", - "operationId": "getBookFile_3", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/octet-stream": { - "schema": { - "$ref": "#/components/schemas/StreamingResponseBody" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingResponseBody" - } - } - } - } - } - } - }, - "/opds/v2/books/{bookId}/file": { - "get": { - "tags": [ - "common-book-controller" - ], - "description": "Download the book file.", - "operationId": "getBookFile_4", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/octet-stream": { - "schema": { - "$ref": "#/components/schemas/StreamingResponseBody" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingResponseBody" - } - } - } - } - } - } - }, - "/opds/v2/auth": { - "get": { - "tags": [ - "opds-2-controller" - ], - "operationId": "getAuthDocument", - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/opds-authentication+json": { - "schema": { - "$ref": "#/components/schemas/AuthenticationDocumentDto" - } - }, - "application/opds+json": { - "schema": { - "$ref": "#/components/schemas/AuthenticationDocumentDto" - } - } - } - } - } - } - }, - "/opds/v1.2/series": { - "get": { - "tags": [ - "opds-controller" - ], - "operationId": "getAllSeries", - "parameters": [ - { - "name": "search", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "publisher", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/atom+xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "application/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "text/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - } - } - } - } - } - }, - "/opds/v1.2/series/{id}": { - "get": { - "tags": [ - "opds-controller" - ], - "operationId": "getOneSeries_1", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/atom+xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "application/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "text/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - } - } - } - } - } - }, - "/opds/v1.2/series/latest": { - "get": { - "tags": [ - "opds-controller" - ], - "operationId": "getLatestSeries_2", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/atom+xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "application/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "text/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - } - } - } - } - } - }, - "/opds/v1.2/search": { - "get": { - "tags": [ - "opds-controller" - ], - "operationId": "getSearch", - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/atom+xml": { - "schema": { - "$ref": "#/components/schemas/OpenSearchDescription" - } - }, - "application/xml": { - "schema": { - "$ref": "#/components/schemas/OpenSearchDescription" - } - }, - "text/xml": { - "schema": { - "$ref": "#/components/schemas/OpenSearchDescription" - } - } - } - } - } - } - }, - "/opds/v1.2/readlists": { - "get": { - "tags": [ - "opds-controller" - ], - "operationId": "getReadLists", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/atom+xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "application/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "text/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - } - } - } - } - } - }, - "/opds/v1.2/readlists/{id}": { - "get": { - "tags": [ - "opds-controller" - ], - "operationId": "getOneReadList_1", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/atom+xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "application/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "text/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - } - } - } - } - } - }, - "/opds/v1.2/publishers": { - "get": { - "tags": [ - "opds-controller" - ], - "operationId": "getPublishers", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/atom+xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "application/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "text/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - } - } - } - } - } - }, - "/opds/v1.2/ondeck": { - "get": { - "tags": [ - "opds-controller" - ], - "operationId": "getOnDeck_2", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/atom+xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "application/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "text/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - } - } - } - } - } - }, - "/opds/v1.2/libraries": { - "get": { - "tags": [ - "opds-controller" - ], - "operationId": "getLibraries", - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/atom+xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "application/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "text/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - } - } - } - } - } - }, - "/opds/v1.2/libraries/{id}": { - "get": { - "tags": [ - "opds-controller" - ], - "operationId": "getOneLibrary", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/atom+xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "application/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "text/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - } - } - } - } - } - }, - "/opds/v1.2/keep-reading": { - "get": { - "tags": [ - "opds-controller" - ], - "operationId": "getKeepReading_2", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/atom+xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "application/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "text/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - } - } - } - } - } - }, - "/opds/v1.2/collections": { - "get": { - "tags": [ - "opds-controller" - ], - "operationId": "getCollections", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/atom+xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "application/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "text/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - } - } - } - } - } - }, - "/opds/v1.2/collections/{id}": { - "get": { - "tags": [ - "opds-controller" - ], - "operationId": "getOneCollection_1", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/atom+xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "application/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "text/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - } - } - } - } - } - }, - "/opds/v1.2/catalog": { - "get": { - "tags": [ - "opds-controller" - ], - "operationId": "getCatalog", - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/atom+xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "application/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "text/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - } - } - } - } - } - }, - "/opds/v1.2/books/{bookId}/thumbnail/small": { - "get": { - "tags": [ - "opds-controller" - ], - "operationId": "getBookThumbnailSmall", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "default": { - "description": "default response", - "content": { - "image/jpeg": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "application/atom+xml": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "application/xml": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "text/xml": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - } - } - }, - "/opds/v1.2/books/{bookId}/thumbnail": { - "get": { - "tags": [ - "opds-common-controller" - ], - "operationId": "getBookThumbnail", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "default": { - "description": "default response", - "content": { - "image/jpeg": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - } - } - }, - "/opds/v2/books/{bookId}/thumbnail": { - "get": { - "tags": [ - "opds-common-controller" - ], - "operationId": "getBookThumbnail_1", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "default": { - "description": "default response", - "content": { - "image/jpeg": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - } - } - }, - "/opds/v1.2/books/{bookId}/pages/{pageNumber}": { - "get": { - "tags": [ - "opds-controller" - ], - "operationId": "getBookPageOpds", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pageNumber", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "convert", - "in": "query", - "description": "Convert the image to the provided format.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "jpeg", - "png" - ] - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "default": { - "description": "default response", - "content": { - "image/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - } - } - }, - "/opds/v1.2/books/latest": { - "get": { - "tags": [ - "opds-controller" - ], - "operationId": "getLatestBooks_2", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/atom+xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "application/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - }, - "text/xml": { - "schema": { - "$ref": "#/components/schemas/OpdsFeed" - } - } - } - } - } - } - }, - "/koreader/users/auth": { - "get": { - "tags": [ - "koreader-sync-controller" - ], - "operationId": "authorize", - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/vnd.koreader.v1+json": { - "schema": { - "$ref": "#/components/schemas/UserAuthenticationDto" - } - } - } - } - } - } - }, - "/koreader/syncs/progress/{bookHash}": { - "get": { - "tags": [ - "koreader-sync-controller" - ], - "operationId": "getProgress", - "parameters": [ - { - "name": "bookHash", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/vnd.koreader.v1+json": { - "schema": { - "$ref": "#/components/schemas/DocumentProgressDto" - } - } - } - } - } - } - }, - "/kobo/{authToken}/v1/library/{bookId}/metadata": { - "get": { - "tags": [ - "kobo-controller" - ], - "operationId": "getBookMetadata", - "parameters": [ - { - "name": "authToken", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json;charset\u003dutf-8": { - "schema": { - "type": "object" - } - }, - "application/json; charset\u003dutf-8": { - "schema": { - "type": "object" - } - } - } - } - } - } - }, - "/kobo/{authToken}/v1/library/sync": { - "get": { - "tags": [ - "kobo-controller" - ], - "operationId": "syncLibrary", - "parameters": [ - { - "name": "authToken", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json;charset\u003dutf-8": { - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - }, - "application/json; charset\u003dutf-8": { - "schema": { - "type": "array", - "items": { - "type": "object" - } - } - } - } - } - } - } - }, - "/kobo/{authToken}/v1/initialization": { - "get": { - "tags": [ - "kobo-controller" - ], - "operationId": "initialization", - "parameters": [ - { - "name": "authToken", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json;charset\u003dutf-8": { - "schema": { - "$ref": "#/components/schemas/ResourcesDto" - } - }, - "application/json; charset\u003dutf-8": { - "schema": { - "$ref": "#/components/schemas/ResourcesDto" - } - } - } - } - } - } - }, - "/kobo/{authToken}/v1/books/{thumbnailId}/thumbnail/{width}/{height}/{isGreyScale}/image.jpg": { - "get": { - "tags": [ - "kobo-controller" - ], - "operationId": "getBookCover", - "parameters": [ - { - "name": "thumbnailId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "width", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "height", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "isGreyScale", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "image/jpeg": { - "schema": { - "type": "object" - } - }, - "application/json; charset\u003dutf-8": { - "schema": { - "type": "object" - } - } - } - } - } - } - }, - "/kobo/{authToken}/v1/books/{thumbnailId}/thumbnail/{width}/{height}/{quality}/{isGreyScale}/image.jpg": { - "get": { - "tags": [ - "kobo-controller" - ], - "operationId": "getBookCover_1", - "parameters": [ - { - "name": "thumbnailId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "width", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "height", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "quality", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "isGreyScale", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "image/jpeg": { - "schema": { - "type": "object" - } - }, - "application/json; charset\u003dutf-8": { - "schema": { - "type": "object" - } - } - } - } - } - } - }, - "/kobo/{authToken}/v1/books/{bookId}/file/epub": { - "get": { - "tags": [ - "kobo-controller" - ], - "operationId": "getBookFile_5", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "convert_kepub", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/octet-stream": { - "schema": { - "$ref": "#/components/schemas/StreamingResponseBody" - } - }, - "application/json; charset\u003dutf-8": { - "schema": { - "$ref": "#/components/schemas/StreamingResponseBody" - } - } - } - } - } - } - }, - "/kobo/{authToken}/ping": { - "get": { - "tags": [ - "kobo-controller" - ], - "operationId": "ping", - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json;charset\u003dutf-8": { - "schema": { - "type": "string" - } - }, - "application/json; charset\u003dutf-8": { - "schema": { - "type": "string" - } - } - } - } - } - } - }, - "/api/v2/users/{id}/authentication-activity/latest": { - "get": { - "tags": [ - "user-controller" - ], - "operationId": "getLatestAuthenticationActivityForUser", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "apikey_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AuthenticationActivityDto" - } - } - } - } - } - } - }, - "/api/v2/users/me": { - "get": { - "tags": [ - "user-controller" - ], - "operationId": "getMe", - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserDto" - } - } - } - } - } - } - }, - "/api/v2/users/me/authentication-activity": { - "get": { - "tags": [ - "user-controller" - ], - "operationId": "getMyAuthenticationActivity", - "parameters": [ - { - "name": "unpaged", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer", - "default": 0 - } - }, - { - "name": "size", - "in": "query", - "description": "The size of the page to be returned", - "schema": { - "type": "integer", - "default": 20 - } - }, - { - "name": "sort", - "in": "query", - "description": "Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PageAuthenticationActivityDto" - } - } - } - } - } - } - }, - "/api/v2/users/authentication-activity": { - "get": { - "tags": [ - "user-controller" - ], - "operationId": "getAuthenticationActivity", - "parameters": [ - { - "name": "unpaged", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer", - "default": 0 - } - }, - { - "name": "size", - "in": "query", - "description": "The size of the page to be returned", - "schema": { - "type": "integer", - "default": 20 - } - }, - { - "name": "sort", - "in": "query", - "description": "Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PageAuthenticationActivityDto" - } - } - } - } - } - } - }, - "/api/v2/authors": { - "get": { - "tags": [ - "referential-controller" - ], - "operationId": "getAuthors", - "parameters": [ - { - "name": "search", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "role", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { "name": "library_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "collection_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "series_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "readlist_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "unpaged", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - }, - { - "name": "size", - "in": "query", - "description": "The size of the page to be returned", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PageAuthorDto" - } - } - } - } - } - } - }, - "/api/v1/transient-books/{id}/pages/{pageNumber}": { - "get": { - "tags": [ - "transient-books-controller" - ], - "operationId": "getSourcePage", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pageNumber", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "type": "string", - "format": "byte" - } - }, - "application/json": { - "schema": { - "type": "string", - "format": "byte" - } - } - } - } - } - } - }, - "/api/v1/tags": { - "get": { - "tags": [ - "referential-controller" - ], - "operationId": "getTags", - "parameters": [ - { - "name": "library_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "collection_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - } - } - }, - "/api/v1/tags/series": { - "get": { - "tags": [ - "referential-controller" - ], - "operationId": "getSeriesTags", - "parameters": [ - { - "name": "library_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "collection_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - } - } - }, - "/api/v1/tags/book": { - "get": { - "tags": [ - "referential-controller" - ], - "operationId": "getBookTags", - "parameters": [ - { - "name": "series_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "readlist_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - } - } - }, - "/api/v1/sharing-labels": { - "get": { - "tags": [ - "referential-controller" - ], - "operationId": "getSharingLabels", - "parameters": [ - { - "name": "library_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "collection_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - } - } - }, - "/api/v1/series": { - "get": { - "tags": [ - "series-controller" - ], - "operationId": "getAllSeries_1", - "parameters": [ - { - "name": "search", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "library_id", - "in": "query", "required": false, "schema": { "type": "array", @@ -7426,36 +5023,8 @@ } }, { - "name": "collection_id", "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "status", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "ENDED", - "ONGOING", - "ABANDONED", - "HIATUS" - ] - } - } - }, - { "name": "read_status", - "in": "query", "required": false, "schema": { "type": "array", @@ -7470,41 +5039,8 @@ } }, { - "name": "publisher", "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "language", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "genre", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { "name": "tag", - "in": "query", "required": false, "schema": { "type": "array", @@ -7514,460 +5050,8 @@ } }, { - "name": "age_rating", "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "release_year", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "sharing_label", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "deleted", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "complete", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "oneshot", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "unpaged", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "search_regex", - "in": "query", - "description": "Search by regex criteria, in the form: regex,field. Supported fields are TITLE and TITLE_SORT.", - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - }, - { - "name": "size", - "in": "query", - "description": "The size of the page to be returned", - "schema": { - "type": "integer" - } - }, - { - "name": "sort", - "in": "query", - "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "author", - "in": "query", - "description": "Author criteria in the format: name,role. Multiple author criteria are supported.", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PageSeriesDto" - } - } - } - } - }, - "deprecated": true - } - }, - "/api/v1/series/{seriesId}": { - "get": { - "tags": [ - "series-controller" - ], - "operationId": "getOneSeries_2", - "parameters": [ - { - "name": "seriesId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SeriesDto" - } - } - } - } - } - } - }, - "/api/v1/series/{seriesId}/thumbnails/{thumbnailId}": { - "get": { - "tags": [ - "series-controller" - ], - "operationId": "getSeriesThumbnailById", - "parameters": [ - { - "name": "seriesId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "thumbnailId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "default": { - "description": "default response", - "content": { - "image/jpeg": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "application/json": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - } - }, - "delete": { - "tags": [ - "series-controller" - ], - "operationId": "deleteUserUploadedSeriesThumbnail", - "parameters": [ - { - "name": "seriesId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "thumbnailId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "202": { - "description": "Accepted" - } - } - } - }, - "/api/v1/series/{seriesId}/thumbnail": { - "get": { - "tags": [ - "series-controller" - ], - "operationId": "getSeriesDefaultThumbnail", - "parameters": [ - { - "name": "seriesId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "default": { - "description": "default response", - "content": { - "image/jpeg": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "application/json": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - } - } - }, - "/api/v1/series/{seriesId}/file": { - "get": { - "tags": [ - "series-controller" - ], - "operationId": "getSeriesFile", - "parameters": [ - { - "name": "seriesId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/octet-stream": { - "schema": { - "$ref": "#/components/schemas/StreamingResponseBody" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingResponseBody" - } - } - } - } - } - }, - "delete": { - "tags": [ - "series-controller" - ], - "operationId": "deleteSeries", - "parameters": [ - { - "name": "seriesId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "202": { - "description": "Accepted" - } - } - } - }, - "/api/v1/series/{seriesId}/collections": { - "get": { - "tags": [ - "series-controller" - ], - "operationId": "getAllCollectionsBySeries", - "parameters": [ - { - "name": "seriesId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CollectionDto" - } - } - } - } - } - } - } - }, - "/api/v1/series/{seriesId}/books": { - "get": { - "tags": [ - "series-controller" - ], - "operationId": "getAllBooksBySeries", - "parameters": [ - { - "name": "seriesId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { "name": "media_status", - "in": "query", "required": false, "schema": { "type": "array", @@ -7984,79 +5068,41 @@ } }, { - "name": "read_status", "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "UNREAD", - "READ", - "IN_PROGRESS" - ] - } - } - }, - { - "name": "tag", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { "name": "deleted", - "in": "query", "required": false, "schema": { "type": "boolean" } }, { + "in": "query", "name": "unpaged", - "in": "query", "required": false, "schema": { "type": "boolean" } }, { - "name": "page", - "in": "query", "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", "schema": { "type": "integer" } }, { - "name": "size", - "in": "query", "description": "The size of the page to be returned", + "in": "query", + "name": "size", "schema": { "type": "integer" } }, { - "name": "sort", - "in": "query", - "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "author", - "in": "query", "description": "Author criteria in the format: name,role. Multiple author criteria are supported.", + "in": "query", + "name": "author", "schema": { "type": "array", "items": { @@ -8066,133 +5112,271 @@ } ], "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, "200": { - "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageBookDto" } } - } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" } }, - "deprecated": true + "summary": "List readlist\u0027s books", + "tags": [ + "Readlist Books" + ] } }, - "/api/v1/series/updated": { + "/api/v1/readlists/{id}/books/{bookId}/next": { "get": { - "tags": [ - "series-controller" - ], - "description": "Return recently updated series, but not newly added ones.", - "operationId": "getUpdatedSeries", + "operationId": "getBookSiblingNext", "parameters": [ { - "name": "library_id", - "in": "query", - "required": false, + "in": "path", + "name": "id", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - } + "type": "string" } }, { - "name": "deleted", - "in": "query", - "required": false, + "in": "path", + "name": "bookId", + "required": true, "schema": { - "type": "boolean" - } - }, - { - "name": "oneshot", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "unpaged", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - }, - { - "name": "size", - "in": "query", - "description": "The size of the page to be returned", - "schema": { - "type": "integer" + "type": "string" } } ], "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BookDto" + } + } + }, + "description": "OK" + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PageSeriesDto" - } - } - } + }, + "description": "Bad Request" } - } + }, + "summary": "Get next book in readlist", + "tags": [ + "Readlist Books" + ] } }, - "/api/v1/series/release-dates": { + "/api/v1/readlists/{id}/books/{bookId}/previous": { "get": { - "tags": [ - "referential-controller" - ], - "operationId": "getSeriesReleaseDates", + "operationId": "getBookSiblingPrevious", "parameters": [ { - "name": "library_id", - "in": "query", - "required": false, + "in": "path", + "name": "id", + "required": true, "schema": { "type": "string" } }, { - "name": "collection_id", - "in": "query", - "required": false, + "in": "path", + "name": "bookId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BookDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Get previous book in readlist", + "tags": [ + "Readlist Books" + ] + } + }, + "/api/v1/readlists/{id}/file": { + "get": { + "description": "Download the whole readlist as a ZIP file.", + "operationId": "getReadListFile", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamingResponseBody" + } + }, + "application/octet-stream": { + "schema": { + "$ref": "#/components/schemas/StreamingResponseBody" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Download readlist", + "tags": [ + "Readlists" + ] + } + }, + "/api/v1/readlists/{id}/read-progress/tachiyomi": { + "get": { + "description": "Mihon specific, due to how read progress is handled in Mihon.", + "operationId": "getReadProgress", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TachiyomiReadProgressDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Get readlist read progress (Mihon)", + "tags": [ + "Mihon" + ] + }, + "put": { + "description": "Mihon specific, due to how read progress is handled in Mihon.", + "operationId": "markReadProgressTachiyomi", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TachiyomiReadProgressUpdateDto" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Update readlist read progress (Mihon)", + "tags": [ + "Mihon" + ] + } + }, + "/api/v1/readlists/{id}/thumbnail": { + "get": { + "operationId": "getReadListThumbnail", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, "schema": { "type": "string" } @@ -8200,438 +5384,291 @@ ], "responses": { "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } - } + }, + "description": "Bad Request" }, - "200": { - "description": "OK", + "default": { + "content": { + "application/json": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "image/jpeg": { + "schema": { + "type": "string", + "format": "binary" + } + } + }, + "description": "default response" + } + }, + "summary": "Get readlist\u0027s poster image", + "tags": [ + "Readlist Poster" + ] + } + }, + "/api/v1/readlists/{id}/thumbnails": { + "get": { + "operationId": "getReadListThumbnails", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { "content": { "application/json": { "schema": { - "uniqueItems": true, "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/ThumbnailReadListDto" } } } - } - } - } - } - }, - "/api/v1/series/new": { - "get": { - "tags": [ - "series-controller" - ], - "description": "Return newly added series.", - "operationId": "getNewSeries", - "parameters": [ - { - "name": "library_id", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } + }, + "description": "OK" }, - { - "name": "deleted", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "oneshot", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "unpaged", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - }, - { - "name": "size", - "in": "query", - "description": "The size of the page to be returned", - "schema": { - "type": "integer" - } - } - ], - "responses": { "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PageSeriesDto" - } - } - } + }, + "description": "Bad Request" } - } - } - }, - "/api/v1/series/latest": { - "get": { + }, + "summary": "List readlist\u0027s posters", "tags": [ - "series-controller" - ], - "description": "Return recently added or updated series.", - "operationId": "getLatestSeries_3", + "Readlist Poster" + ] + }, + "post": { + "operationId": "addUserUploadedReadListThumbnail", "parameters": [ { - "name": "library_id", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "deleted", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "oneshot", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "unpaged", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - }, - { - "name": "size", - "in": "query", - "description": "The size of the page to be returned", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PageSeriesDto" - } - } - } - } - } - } - }, - "/api/v1/series/alphabetical-groups": { - "get": { - "tags": [ - "series-controller" - ], - "operationId": "getAlphabeticalGroups", - "parameters": [ - { - "name": "search", - "in": "query", - "required": false, + "in": "path", + "name": "id", + "required": true, "schema": { "type": "string" } }, { - "name": "library_id", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "collection_id", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "status", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "ENDED", - "ONGOING", - "ABANDONED", - "HIATUS" - ] - } - } - }, - { - "name": "read_status", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "UNREAD", - "READ", - "IN_PROGRESS" - ] - } - } - }, - { - "name": "publisher", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "language", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "genre", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "tag", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "age_rating", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "release_year", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "sharing_label", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "deleted", "in": "query", + "name": "selected", "required": false, "schema": { "type": "boolean" } - }, - { - "name": "complete", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "oneshot", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "search_regex", - "in": "query", - "description": "Search by regex criteria, in the form: regex,field. Supported fields are TITLE and TITLE_SORT.", - "schema": { - "type": "string" - } - }, - { - "name": "author", - "in": "query", - "description": "Author criteria in the format: name,role. Multiple author criteria are supported.", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } } ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GroupCountDto" + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "required": [ + "file" + ], + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" } } } } } }, - "deprecated": true + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ThumbnailReadListDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Add readlist poster", + "tags": [ + "Readlist Poster" + ] + } + }, + "/api/v1/readlists/{id}/thumbnails/{thumbnailId}": { + "delete": { + "operationId": "deleteUserUploadedReadListThumbnail", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "thumbnailId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "202": { + "description": "Accepted" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Delete readlist poster", + "tags": [ + "Readlist Poster" + ] + }, + "get": { + "operationId": "getReadListThumbnailById", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "thumbnailId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "default": { + "content": { + "application/json": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "image/jpeg": { + "schema": { + "type": "string", + "format": "binary" + } + } + }, + "description": "default response" + } + }, + "summary": "Get readlist poster image", + "tags": [ + "Readlist Poster" + ] + } + }, + "/api/v1/readlists/{id}/thumbnails/{thumbnailId}/selected": { + "put": { + "operationId": "markSelectedReadListThumbnail", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "thumbnailId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "202": { + "description": "Accepted" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Mark readlist poster as selected", + "tags": [ + "Readlist Poster" + ] } }, "/api/v1/releases": { "get": { - "tags": [ - "release-controller" - ], - "operationId": "getAnnouncements_1", + "operationId": "getReleases", "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, "200": { - "description": "OK", "content": { "application/json": { "schema": { @@ -8641,215 +5678,43 @@ } } } - } - } - } - } - }, - "/api/v1/readlists/{id}/thumbnails/{thumbnailId}": { - "get": { - "tags": [ - "read-list-controller" - ], - "operationId": "getReadListThumbnailById", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + }, + "description": "OK" }, - { - "name": "thumbnailId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } - } - }, - "default": { - "description": "default response", - "content": { - "image/jpeg": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "application/json": { - "schema": { - "type": "string", - "format": "binary" - } - } - } + }, + "description": "Bad Request" } - } - }, - "delete": { + }, + "summary": "List releases", "tags": [ - "read-list-controller" - ], - "operationId": "deleteUserUploadedReadListThumbnail", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "thumbnailId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "202": { - "description": "Accepted" - } - } + "Releases" + ] } }, - "/api/v1/readlists/{id}/thumbnail": { + "/api/v1/series": { "get": { - "tags": [ - "read-list-controller" - ], - "operationId": "getReadListThumbnail", + "deprecated": true, + "description": "Use POST /api/v1/series/list instead. Deprecated since 1.19.0.", + "operationId": "getAllSeries", "parameters": [ { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "default": { - "description": "default response", - "content": { - "image/jpeg": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "application/json": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - } - } - }, - "/api/v1/readlists/{id}/file": { - "get": { - "tags": [ - "read-list-controller" - ], - "operationId": "getReadListFile", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/octet-stream": { - "schema": { - "$ref": "#/components/schemas/StreamingResponseBody" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/StreamingResponseBody" - } - } - } - } - } - } - }, - "/api/v1/readlists/{id}/books": { - "get": { - "tags": [ - "read-list-controller" - ], - "operationId": "getBooksForReadList", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, + "in": "query", + "name": "search", + "required": false, "schema": { "type": "string" } }, { + "in": "query", "name": "library_id", - "in": "query", "required": false, "schema": { "type": "array", @@ -8859,970 +5724,8 @@ } }, { - "name": "read_status", "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "UNREAD", - "READ", - "IN_PROGRESS" - ] - } - } - }, - { - "name": "tag", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "media_status", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "UNKNOWN", - "ERROR", - "READY", - "UNSUPPORTED", - "OUTDATED" - ] - } - } - }, - { - "name": "deleted", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "unpaged", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - }, - { - "name": "size", - "in": "query", - "description": "The size of the page to be returned", - "schema": { - "type": "integer" - } - }, - { - "name": "author", - "in": "query", - "description": "Author criteria in the format: name,role. Multiple author criteria are supported.", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PageBookDto" - } - } - } - } - } - } - }, - "/api/v1/readlists/{id}/books/{bookId}/previous": { - "get": { - "tags": [ - "read-list-controller" - ], - "operationId": "getBookSiblingPrevious", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BookDto" - } - } - } - } - } - } - }, - "/api/v1/readlists/{id}/books/{bookId}/next": { - "get": { - "tags": [ - "read-list-controller" - ], - "operationId": "getBookSiblingNext", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BookDto" - } - } - } - } - } - } - }, - "/api/v1/publishers": { - "get": { - "tags": [ - "referential-controller" - ], - "operationId": "getPublishers_1", - "parameters": [ - { - "name": "library_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { "name": "collection_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - } - } - }, - "/api/v1/page-hashes/{pageHash}": { - "get": { - "tags": [ - "page-hash-controller" - ], - "operationId": "getPageHashMatches", - "parameters": [ - { - "name": "pageHash", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - }, - { - "name": "size", - "in": "query", - "description": "The size of the page to be returned", - "schema": { - "type": "integer" - } - }, - { - "name": "sort", - "in": "query", - "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagePageHashMatchDto" - } - } - } - } - } - } - }, - "/api/v1/page-hashes/{pageHash}/thumbnail": { - "get": { - "tags": [ - "page-hash-controller" - ], - "operationId": "getKnownPageHashThumbnail", - "parameters": [ - { - "name": "pageHash", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "default": { - "description": "default response", - "content": { - "image/jpeg": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "application/json": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - } - } - }, - "/api/v1/page-hashes/unknown": { - "get": { - "tags": [ - "page-hash-controller" - ], - "operationId": "getUnknownPageHashes", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - }, - { - "name": "size", - "in": "query", - "description": "The size of the page to be returned", - "schema": { - "type": "integer" - } - }, - { - "name": "sort", - "in": "query", - "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagePageHashUnknownDto" - } - } - } - } - } - } - }, - "/api/v1/page-hashes/unknown/{pageHash}/thumbnail": { - "get": { - "tags": [ - "page-hash-controller" - ], - "operationId": "getUnknownPageHashThumbnail", - "parameters": [ - { - "name": "pageHash", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "resize", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "default": { - "description": "default response", - "content": { - "image/jpeg": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "application/json": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - } - } - }, - "/api/v1/login/set-cookie": { - "get": { - "tags": [ - "login-controller" - ], - "operationId": "headerToCookie", - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "204": { - "description": "No Content" - } - } - } - }, - "/api/v1/languages": { - "get": { - "tags": [ - "referential-controller" - ], - "operationId": "getLanguages", - "parameters": [ - { - "name": "library_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "collection_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - } - } - }, - "/api/v1/history": { - "get": { - "tags": [ - "historical-event-controller" - ], - "operationId": "getAll_4", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - }, - { - "name": "size", - "in": "query", - "description": "The size of the page to be returned", - "schema": { - "type": "integer" - } - }, - { - "name": "sort", - "in": "query", - "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PageHistoricalEventDto" - } - } - } - } - } - } - }, - "/api/v1/genres": { - "get": { - "tags": [ - "referential-controller" - ], - "operationId": "getGenres", - "parameters": [ - { - "name": "library_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "collection_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - } - } - }, - "/api/v1/fonts/resource/{fontFamily}/{fontFile}": { - "get": { - "tags": [ - "fonts-controller" - ], - "operationId": "getFontFile", - "parameters": [ - { - "name": "fontFamily", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "fontFile", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - } - } - }, - "/api/v1/fonts/resource/{fontFamily}/css": { - "get": { - "tags": [ - "fonts-controller" - ], - "operationId": "getFontFamilyAsCss", - "parameters": [ - { - "name": "fontFamily", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "text/css": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "application/json": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - } - } - }, - "/api/v1/fonts/families": { - "get": { - "tags": [ - "fonts-controller" - ], - "operationId": "listFonts", - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - } - } - }, - "/api/v1/collections/{id}/thumbnails/{thumbnailId}": { - "get": { - "tags": [ - "series-collection-controller" - ], - "operationId": "getCollectionThumbnailById", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "thumbnailId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "default": { - "description": "default response", - "content": { - "image/jpeg": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "application/json": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - } - }, - "delete": { - "tags": [ - "series-collection-controller" - ], - "operationId": "deleteUserUploadedCollectionThumbnail", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "thumbnailId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "202": { - "description": "Accepted" - } - } - } - }, - "/api/v1/collections/{id}/thumbnail": { - "get": { - "tags": [ - "series-collection-controller" - ], - "operationId": "getCollectionThumbnail", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "default": { - "description": "default response", - "content": { - "image/jpeg": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "application/json": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - } - } - }, - "/api/v1/collections/{id}/series": { - "get": { - "tags": [ - "series-collection-controller" - ], - "operationId": "getSeriesForCollection", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "library_id", - "in": "query", "required": false, "schema": { "type": "array", @@ -9832,8 +5735,8 @@ } }, { + "in": "query", "name": "status", - "in": "query", "required": false, "schema": { "type": "array", @@ -9849,8 +5752,8 @@ } }, { - "name": "read_status", "in": "query", + "name": "read_status", "required": false, "schema": { "type": "array", @@ -9865,8 +5768,8 @@ } }, { + "in": "query", "name": "publisher", - "in": "query", "required": false, "schema": { "type": "array", @@ -9876,8 +5779,8 @@ } }, { + "in": "query", "name": "language", - "in": "query", "required": false, "schema": { "type": "array", @@ -9887,8 +5790,8 @@ } }, { + "in": "query", "name": "genre", - "in": "query", "required": false, "schema": { "type": "array", @@ -9898,8 +5801,8 @@ } }, { + "in": "query", "name": "tag", - "in": "query", "required": false, "schema": { "type": "array", @@ -9909,8 +5812,8 @@ } }, { + "in": "query", "name": "age_rating", - "in": "query", "required": false, "schema": { "type": "array", @@ -9920,8 +5823,8 @@ } }, { + "in": "query", "name": "release_year", - "in": "query", "required": false, "schema": { "type": "array", @@ -9931,49 +5834,87 @@ } }, { + "in": "query", + "name": "sharing_label", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", "name": "deleted", - "in": "query", "required": false, "schema": { "type": "boolean" } }, { + "in": "query", "name": "complete", - "in": "query", "required": false, "schema": { "type": "boolean" } }, { + "in": "query", + "name": "oneshot", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "in": "query", "name": "unpaged", - "in": "query", "required": false, "schema": { "type": "boolean" } }, { - "name": "page", + "description": "Search by regex criteria, in the form: regex,field. Supported fields are TITLE and TITLE_SORT.", "in": "query", + "name": "search_regex", + "schema": { + "type": "string" + } + }, + { "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", "schema": { "type": "integer" } }, { - "name": "size", - "in": "query", "description": "The size of the page to be returned", + "in": "query", + "name": "size", "schema": { "type": "integer" } }, { - "name": "author", + "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", "in": "query", + "name": "sort", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { "description": "Author criteria in the format: name,role. Multiple author criteria are supported.", + "in": "query", + "name": "author", "schema": { "type": "array", "items": { @@ -9983,47 +5924,51 @@ } ], "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, "200": { - "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PageSeriesDto" } } - } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" } - } + }, + "summary": "List series", + "tags": [ + "Series", + "Deprecated" + ] } }, - "/api/v1/books": { + "/api/v1/series/alphabetical-groups": { "get": { - "tags": [ - "book-controller" - ], - "operationId": "getAllBooks", + "deprecated": true, + "description": "Use POST /api/v1/series/list/alphabetical-groups instead. Deprecated since 1.19.0.", + "operationId": "getAlphabeticalGroups", "parameters": [ { - "name": "search", "in": "query", + "name": "search", "required": false, "schema": { "type": "string" } }, { - "name": "library_id", "in": "query", + "name": "library_id", "required": false, "schema": { "type": "array", @@ -10033,8 +5978,730 @@ } }, { - "name": "media_status", "in": "query", + "name": "collection_id", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "status", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "ENDED", + "ONGOING", + "ABANDONED", + "HIATUS" + ] + } + } + }, + { + "in": "query", + "name": "read_status", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "UNREAD", + "READ", + "IN_PROGRESS" + ] + } + } + }, + { + "in": "query", + "name": "publisher", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "language", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "genre", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "tag", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "age_rating", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "release_year", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "sharing_label", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "deleted", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "in": "query", + "name": "complete", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "in": "query", + "name": "oneshot", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Search by regex criteria, in the form: regex,field. Supported fields are TITLE and TITLE_SORT.", + "in": "query", + "name": "search_regex", + "schema": { + "type": "string" + } + }, + { + "description": "Author criteria in the format: name,role. Multiple author criteria are supported.", + "in": "query", + "name": "author", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupCountDto" + } + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List series groups", + "tags": [ + "Series", + "Deprecated" + ] + } + }, + "/api/v1/series/latest": { + "get": { + "description": "Return recently added or updated series.", + "operationId": "getLatestSeries", + "parameters": [ + { + "in": "query", + "name": "library_id", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "deleted", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "in": "query", + "name": "oneshot", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "in": "query", + "name": "unpaged", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "The size of the page to be returned", + "in": "query", + "name": "size", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PageSeriesDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List latest series", + "tags": [ + "Series" + ] + } + }, + "/api/v1/series/list": { + "post": { + "operationId": "getSeriesList", + "parameters": [ + { + "in": "query", + "name": "unpaged", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "The size of the page to be returned", + "in": "query", + "name": "size", + "schema": { + "type": "integer" + } + }, + { + "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", + "in": "query", + "name": "sort", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SeriesSearch" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PageSeriesDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List series", + "tags": [ + "Series" + ] + } + }, + "/api/v1/series/list/alphabetical-groups": { + "post": { + "description": "List series grouped by the first character of their sort title.", + "operationId": "getSeriesListByAlphabeticalGroups", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SeriesSearch" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupCountDto" + } + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List series groups", + "tags": [ + "Series" + ] + } + }, + "/api/v1/series/new": { + "get": { + "description": "Return newly added series.", + "operationId": "getNewSeries", + "parameters": [ + { + "in": "query", + "name": "library_id", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "deleted", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "in": "query", + "name": "oneshot", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "in": "query", + "name": "unpaged", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "The size of the page to be returned", + "in": "query", + "name": "size", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PageSeriesDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List new series", + "tags": [ + "Series" + ] + } + }, + "/api/v1/series/release-dates": { + "get": { + "description": "Can be filtered by various criteria", + "operationId": "getSeriesReleaseDates", + "parameters": [ + { + "in": "query", + "name": "library_id", + "required": false, + "schema": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "collection_id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List series release dates", + "tags": [ + "Referential metadata" + ] + } + }, + "/api/v1/series/updated": { + "get": { + "description": "Return recently updated series, but not newly added ones.", + "operationId": "getUpdatedSeries", + "parameters": [ + { + "in": "query", + "name": "library_id", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "deleted", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "in": "query", + "name": "oneshot", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "in": "query", + "name": "unpaged", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "The size of the page to be returned", + "in": "query", + "name": "size", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PageSeriesDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List updated series", + "tags": [ + "Series" + ] + } + }, + "/api/v1/series/{seriesId}": { + "get": { + "operationId": "getOneSeries", + "parameters": [ + { + "in": "path", + "name": "seriesId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SeriesDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Get series details", + "tags": [ + "Series" + ] + } + }, + "/api/v1/series/{seriesId}/analyze": { + "post": { + "operationId": "analyze_1", + "parameters": [ + { + "in": "path", + "name": "seriesId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "202": { + "description": "Accepted" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Analyze series", + "tags": [ + "Series" + ] + } + }, + "/api/v1/series/{seriesId}/books": { + "get": { + "deprecated": true, + "description": "Use POST /api/v1/books/list instead. Deprecated since 1.19.0.", + "operationId": "getAllBooksBySeries", + "parameters": [ + { + "in": "path", + "name": "seriesId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "media_status", "required": false, "schema": { "type": "array", @@ -10051,8 +6718,8 @@ } }, { - "name": "read_status", "in": "query", + "name": "read_status", "required": false, "schema": { "type": "array", @@ -10067,17 +6734,8 @@ } }, { - "name": "released_after", "in": "query", - "required": false, - "schema": { - "type": "string", - "format": "date" - } - }, - { "name": "tag", - "in": "query", "required": false, "schema": { "type": "array", @@ -10087,33 +6745,52 @@ } }, { - "name": "unpaged", "in": "query", + "name": "deleted", "required": false, "schema": { "type": "boolean" } }, { - "name": "page", "in": "query", + "name": "unpaged", + "required": false, + "schema": { + "type": "boolean" + } + }, + { "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", "schema": { "type": "integer" } }, { - "name": "size", - "in": "query", "description": "The size of the page to be returned", + "in": "query", + "name": "size", "schema": { "type": "integer" } }, { - "name": "sort", - "in": "query", "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", + "in": "query", + "name": "sort", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "description": "Author criteria in the format: name,role. Multiple author criteria are supported.", + "in": "query", + "name": "author", "schema": { "type": "array", "items": { @@ -10123,141 +6800,476 @@ } ], "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PageBookDto" + } + } + }, + "description": "OK" + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } + }, + "description": "Bad Request" + } + }, + "summary": "List series\u0027 books", + "tags": [ + "Series", + "Deprecated" + ] + } + }, + "/api/v1/series/{seriesId}/collections": { + "get": { + "operationId": "getAllCollectionsBySeries", + "parameters": [ + { + "in": "path", + "name": "seriesId", + "required": true, + "schema": { + "type": "string" } - }, + } + ], + "responses": { "200": { - "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PageBookDto" + "type": "array", + "items": { + "$ref": "#/components/schemas/CollectionDto" + } + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List series\u0027 collections", + "tags": [ + "Series" + ] + } + }, + "/api/v1/series/{seriesId}/file": { + "delete": { + "description": "Delete all of the series\u0027 books files on disk.", + "operationId": "deleteSeries", + "parameters": [ + { + "in": "path", + "name": "seriesId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "202": { + "description": "Accepted" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Delete series files", + "tags": [ + "Series" + ] + }, + "get": { + "description": "Download the whole series as a ZIP file.", + "operationId": "getSeriesFile", + "parameters": [ + { + "in": "path", + "name": "seriesId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StreamingResponseBody" + } + }, + "application/octet-stream": { + "schema": { + "$ref": "#/components/schemas/StreamingResponseBody" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Download series", + "tags": [ + "Series" + ] + } + }, + "/api/v1/series/{seriesId}/metadata": { + "patch": { + "operationId": "updateMetadata", + "parameters": [ + { + "in": "path", + "name": "seriesId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SeriesMetadataUpdateDto" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Update series metadata", + "tags": [ + "Series" + ] + } + }, + "/api/v1/series/{seriesId}/metadata/refresh": { + "post": { + "operationId": "refreshMetadata", + "parameters": [ + { + "in": "path", + "name": "seriesId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "202": { + "description": "Accepted" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Refresh series metadata", + "tags": [ + "Series" + ] + } + }, + "/api/v1/series/{seriesId}/read-progress": { + "delete": { + "description": "Mark all book for series as unread", + "operationId": "markAsUnread", + "parameters": [ + { + "in": "path", + "name": "seriesId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Mark series as unread", + "tags": [ + "Series" + ] + }, + "post": { + "description": "Mark all book for series as read", + "operationId": "markAsRead", + "parameters": [ + { + "in": "path", + "name": "seriesId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Mark series as read", + "tags": [ + "Series" + ] + } + }, + "/api/v1/series/{seriesId}/thumbnail": { + "get": { + "operationId": "getSeriesDefaultThumbnail", + "parameters": [ + { + "in": "path", + "name": "seriesId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + }, + "default": { + "content": { + "application/json": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "image/jpeg": { + "schema": { + "type": "string", + "format": "binary" + } + } + }, + "description": "default response" + } + }, + "summary": "Get series\u0027 poster image", + "tags": [ + "Series Poster" + ] + } + }, + "/api/v1/series/{seriesId}/thumbnails": { + "get": { + "operationId": "getSeriesThumbnails", + "parameters": [ + { + "in": "path", + "name": "seriesId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ThumbnailSeriesDto" + } + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List series posters", + "tags": [ + "Series Poster" + ] + }, + "post": { + "operationId": "postUserUploadedSeriesThumbnail", + "parameters": [ + { + "in": "path", + "name": "seriesId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "selected", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "required": [ + "file" + ], + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } } } } } }, - "deprecated": true - } - }, - "/api/v1/books/{bookId}": { - "get": { - "tags": [ - "book-controller" - ], - "operationId": "getOneBook", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, "200": { - "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/BookDto" + "$ref": "#/components/schemas/ThumbnailSeriesDto" } } - } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" } - } + }, + "summary": "Add series poster", + "tags": [ + "Series Poster" + ] } }, - "/api/v1/books/{bookId}/thumbnails/{thumbnailId}": { - "get": { - "tags": [ - "book-controller" - ], - "operationId": "getBookThumbnailById", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "thumbnailId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "default": { - "description": "default response", - "content": { - "image/jpeg": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "application/json": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - } - }, + "/api/v1/series/{seriesId}/thumbnails/{thumbnailId}": { "delete": { - "tags": [ - "book-controller" - ], - "operationId": "deleteUserUploadedBookThumbnail", + "operationId": "deleteUserUploadedSeriesThumbnail", "parameters": [ { - "name": "bookId", "in": "path", + "name": "seriesId", "required": true, "schema": { "type": "string" } }, { - "name": "thumbnailId", "in": "path", + "name": "thumbnailId", "required": true, "schema": { "type": "string" @@ -10265,32 +7277,39 @@ } ], "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, "202": { "description": "Accepted" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" } - } - } - }, - "/api/v1/books/{bookId}/thumbnail": { - "get": { + }, + "summary": "Delete series poster", "tags": [ - "book-controller" - ], - "operationId": "getBookThumbnail_2", + "Series Poster" + ] + }, + "get": { + "operationId": "getSeriesThumbnailById", "parameters": [ { - "name": "bookId", "in": "path", + "name": "seriesId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "thumbnailId", "required": true, "schema": { "type": "string" @@ -10299,45 +7318,54 @@ ], "responses": { "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } - } + }, + "description": "Bad Request" }, "default": { - "description": "default response", "content": { + "application/json": { + "schema": { + "type": "string", + "format": "binary" + } + }, "image/jpeg": { "schema": { "type": "string", "format": "binary" } - }, - "application/json": { - "schema": { - "type": "string", - "format": "binary" - } } - } + }, + "description": "default response" } - } + }, + "summary": "Get series poster image", + "tags": [ + "Series Poster" + ] } }, - "/api/v1/books/{bookId}/readlists": { - "get": { - "tags": [ - "book-controller" - ], - "operationId": "getAllReadListsByBook", + "/api/v1/series/{seriesId}/thumbnails/{thumbnailId}/selected": { + "put": { + "operationId": "postMarkSelectedSeriesThumbnail", "parameters": [ { - "name": "bookId", "in": "path", + "name": "seriesId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "thumbnailId", "required": true, "schema": { "type": "string" @@ -10345,548 +7373,101 @@ } ], "responses": { + "202": { + "description": "Accepted" + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ReadListDto" - } - } - } - } + }, + "description": "Bad Request" } - } + }, + "summary": "Mark series poster as selected", + "tags": [ + "Series Poster" + ] } }, - "/api/v1/books/{bookId}/previous": { + "/api/v1/settings": { "get": { - "tags": [ - "book-controller" - ], - "operationId": "getBookSiblingPrevious_1", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], + "operationId": "getSettings", "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SettingsDto" + } + } + }, + "description": "OK" + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BookDto" - } + }, + "description": "Bad Request" + } + }, + "summary": "Retrieve server settings", + "tags": [ + "Server settings" + ] + }, + "patch": { + "description": "You can omit fields you don\u0027t want to update", + "operationId": "updateSettings", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SettingsUpdateDto" } } - } - } - } - }, - "/api/v1/books/{bookId}/positions": { - "get": { - "tags": [ - "book-controller" - ], - "operationId": "getPositions", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], + }, + "required": true + }, "responses": { + "204": { + "description": "No Content" + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } - } - }, - "200": { - "description": "OK", - "content": { - "application/vnd.readium.position-list+json": { - "schema": { - "$ref": "#/components/schemas/R2Positions" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/R2Positions" - } - } - } + }, + "description": "Bad Request" } - } + }, + "summary": "Update server settings", + "tags": [ + "Server settings" + ] } }, - "/api/v1/books/{bookId}/pages": { + "/api/v1/sharing-labels": { "get": { - "tags": [ - "book-controller" - ], - "operationId": "getBookPages", + "description": "Can be filtered by various criteria", + "operationId": "getSharingLabels", "parameters": [ { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PageDto" - } - } - } - } - } - } - } - }, - "/api/v1/books/{bookId}/pages/{pageNumber}": { - "get": { - "tags": [ - "book-controller" - ], - "operationId": "getBookPage_1", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pageNumber", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "convert", "in": "query", - "description": "Convert the image to the provided format.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "jpeg", - "png" - ] - } - }, - { - "name": "zero_based", - "in": "query", - "description": "If set to true, pages will start at index 0. If set to false, pages will start at index 1.", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "Accept", - "in": "header", - "description": "Some very limited server driven content negotiation is handled. If a book is a PDF book, and the Accept header contains \u0027application/pdf\u0027 as a more specific type than other \u0027image/\u0027 types, a raw PDF page will be returned.", - "required": false, - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MediaType" - } - } - }, - { - "name": "contentNegotiation", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": true - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "default": { - "description": "default response", - "content": { - "image/*": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - } - } - }, - "/api/v1/books/{bookId}/pages/{pageNumber}/thumbnail": { - "get": { - "tags": [ - "book-controller" - ], - "operationId": "getBookPageThumbnail", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "pageNumber", - "in": "path", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "default": { - "description": "default response", - "content": { - "image/jpeg": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "application/json": { - "schema": { - "type": "string", - "format": "binary" - } - } - } - } - } - } - }, - "/api/v1/books/{bookId}/next": { - "get": { - "tags": [ - "book-controller" - ], - "operationId": "getBookSiblingNext_1", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BookDto" - } - } - } - } - } - } - }, - "/api/v1/books/{bookId}/manifest": { - "get": { - "tags": [ - "book-controller" - ], - "operationId": "getWebPubManifest_1", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/webpub+json": { - "schema": { - "$ref": "#/components/schemas/WPPublicationDto" - } - }, - "application/divina+json": { - "schema": { - "$ref": "#/components/schemas/WPPublicationDto" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/WPPublicationDto" - } - } - } - } - } - } - }, - "/api/v1/books/{bookId}/manifest/pdf": { - "get": { - "tags": [ - "book-controller" - ], - "operationId": "getWebPubManifestPdf_1", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/webpub+json": { - "schema": { - "$ref": "#/components/schemas/WPPublicationDto" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/WPPublicationDto" - } - } - } - } - } - } - }, - "/api/v1/books/{bookId}/manifest/epub": { - "get": { - "tags": [ - "book-controller" - ], - "operationId": "getWebPubManifestEpub_1", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/webpub+json": { - "schema": { - "$ref": "#/components/schemas/WPPublicationDto" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/WPPublicationDto" - } - } - } - } - } - } - }, - "/api/v1/books/{bookId}/manifest/divina": { - "get": { - "tags": [ - "book-controller" - ], - "operationId": "getWebPubManifestDivina_1", - "parameters": [ - { - "name": "bookId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/divina+json": { - "schema": { - "$ref": "#/components/schemas/WPPublicationDto" - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/WPPublicationDto" - } - } - } - } - } - } - }, - "/api/v1/books/ondeck": { - "get": { - "tags": [ - "book-controller" - ], - "description": "Return first unread book of series with at least one book read and no books in progress.", - "operationId": "getBooksOnDeck", - "parameters": [ - { "name": "library_id", - "in": "query", "required": false, "schema": { + "uniqueItems": true, "type": "array", "items": { "type": "string" @@ -10894,205 +7475,8 @@ } }, { - "name": "page", "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - }, - { - "name": "size", - "in": "query", - "description": "The size of the page to be returned", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PageBookDto" - } - } - } - } - } - } - }, - "/api/v1/books/latest": { - "get": { - "tags": [ - "book-controller" - ], - "description": "Return newly added or updated books.", - "operationId": "getLatestBooks_3", - "parameters": [ - { - "name": "unpaged", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - }, - { - "name": "size", - "in": "query", - "description": "The size of the page to be returned", - "schema": { - "type": "integer" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PageBookDto" - } - } - } - } - } - } - }, - "/api/v1/books/duplicates": { - "get": { - "tags": [ - "book-controller" - ], - "operationId": "getDuplicateBooks", - "parameters": [ - { - "name": "unpaged", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "page", - "in": "query", - "description": "Zero-based page index (0..N)", - "schema": { - "type": "integer" - } - }, - { - "name": "size", - "in": "query", - "description": "The size of the page to be returned", - "schema": { - "type": "integer" - } - }, - { - "name": "sort", - "in": "query", - "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PageBookDto" - } - } - } - } - } - } - }, - "/api/v1/authors": { - "get": { - "tags": [ - "referential-controller" - ], - "operationId": "getAuthorsV1", - "parameters": [ - { - "name": "search", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "library_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { "name": "collection_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "series_id", - "in": "query", "required": false, "schema": { "type": "string" @@ -11100,146 +7484,7 @@ } ], "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AuthorDto" - } - } - } - } - } - } - } - }, - "/api/v1/authors/roles": { - "get": { - "tags": [ - "referential-controller" - ], - "operationId": "getAuthorsRoles", - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - } - } - }, - "/api/v1/authors/names": { - "get": { - "tags": [ - "referential-controller" - ], - "operationId": "getAuthorsNames", - "parameters": [ - { - "name": "search", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - } - } - }, - "/api/v1/age-ratings": { - "get": { - "tags": [ - "referential-controller" - ], - "operationId": "getAgeRatings", - "parameters": [ - { - "name": "library_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "collection_id", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", "content": { "application/json": { "schema": { @@ -11250,85 +7495,34 @@ } } } - } - } - } - } - }, - "/api/v2/users/me/api-keys/{keyId}": { - "delete": { - "tags": [ - "user-controller" - ], - "operationId": "deleteApiKey", - "parameters": [ - { - "name": "keyId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { + }, + "description": "OK" + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } - } - }, - "204": { - "description": "No Content" + }, + "description": "Bad Request" } - } - } - }, - "/api/v1/tasks": { - "delete": { + }, + "summary": "List sharing labels", "tags": [ - "task-controller" - ], - "operationId": "emptyTaskQueue", - "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "integer", - "format": "int32" - } - } - } - } - } + "Referential metadata" + ] } }, "/api/v1/syncpoints/me": { "delete": { - "tags": [ - "sync-point-controller" - ], + "description": "If an API Key ID is passed, deletes only the sync points associated with that API Key. Deleting sync points will allow a Kobo to sync from scratch upon the next sync.", "operationId": "deleteMySyncPointsByApiKey", "parameters": [ { - "name": "key_id", "in": "query", + "name": "key_id", "required": false, "schema": { "type": "array", @@ -11339,996 +7533,1132 @@ } ], "responses": { - "400": { - "description": "Bad Request", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/ValidationErrorResponse" - } - } - } - }, "204": { "description": "No Content" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" } - } + }, + "summary": "Delete all sync points", + "tags": [ + "Sync points" + ] } }, - "/api/v1/oauth2/providers": { + "/api/v1/tags": { "get": { - "tags": [ - "o-auth-2-controller" + "description": "Can be filtered by various criteria", + "operationId": "getTags", + "parameters": [ + { + "in": "query", + "name": "library_id", + "required": false, + "schema": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "collection_id", + "required": false, + "schema": { + "type": "string" + } + } ], - "operationId": "getProviders", "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "description": "OK" + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } + }, + "description": "Bad Request" + } + }, + "summary": "List tags", + "tags": [ + "Referential metadata" + ] + } + }, + "/api/v1/tags/book": { + "get": { + "description": "Can be filtered by various criteria", + "operationId": "getBookTags", + "parameters": [ + { + "in": "query", + "name": "series_id", + "required": false, + "schema": { + "type": "string" } }, + { + "in": "query", + "name": "readlist_id", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "library_id", + "required": false, + "schema": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List book tags", + "tags": [ + "Referential metadata" + ] + } + }, + "/api/v1/tags/series": { + "get": { + "description": "Can be filtered by various criteria", + "operationId": "getSeriesTags", + "parameters": [ + { + "in": "query", + "name": "library_id", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "collection_id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List series tags", + "tags": [ + "Referential metadata" + ] + } + }, + "/api/v1/tasks": { + "delete": { + "description": "Cancel all tasks queued", + "operationId": "emptyTaskQueue", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "type": "integer", + "format": "int32" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Clear task queue", + "tags": [ + "Tasks" + ] + } + }, + "/api/v1/transient-books": { + "post": { + "description": "Scan provided folder for transient books.", + "operationId": "scanForTransientBooks", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ScanRequestDto" + } + } + }, + "required": true + }, + "responses": { "200": { - "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/OAuth2ClientDto" + "$ref": "#/components/schemas/TransientBookDto" } } } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Scan folder for transient books", + "tags": [ + "Import" + ] + } + }, + "/api/v1/transient-books/{id}/analyze": { + "post": { + "operationId": "analyze", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" } } - } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransientBookDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Analyze transient book", + "tags": [ + "Import" + ] + } + }, + "/api/v1/transient-books/{id}/pages/{pageNumber}": { + "get": { + "operationId": "getSourcePage", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "pageNumber", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "byte" + } + }, + "application/json": { + "schema": { + "type": "string", + "format": "byte" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Get transient book page", + "tags": [ + "Import" + ] + } + }, + "/api/v2/authors": { + "get": { + "description": "Can be filtered by various criteria", + "operationId": "getAuthors", + "parameters": [ + { + "in": "query", + "name": "search", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "role", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "library_id", + "required": false, + "schema": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "in": "query", + "name": "collection_id", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "series_id", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "readlist_id", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "unpaged", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", + "schema": { + "type": "integer" + } + }, + { + "description": "The size of the page to be returned", + "in": "query", + "name": "size", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PageAuthorDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "List authors", + "tags": [ + "Referential metadata" + ] + } + }, + "/api/v2/series/{seriesId}/read-progress/tachiyomi": { + "get": { + "description": "Mihon specific, due to how read progress is handled in Mihon.", + "operationId": "getReadProgressTachiyomiV2", + "parameters": [ + { + "in": "path", + "name": "seriesId", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TachiyomiReadProgressV2Dto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Get series read progress (Mihon)", + "tags": [ + "Mihon" + ] }, "put": { - "tags": [ - "o-auth-2-controller" + "description": "Mihon specific, due to how read progress is handled in Mihon.", + "operationId": "markReadProgressTachiyomiV2", + "parameters": [ + { + "in": "path", + "name": "seriesId", + "required": true, + "schema": { + "type": "string" + } + } ], - "operationId": "getProviders_2", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TachiyomiReadProgressUpdateV2Dto" + } + } + }, + "required": true + }, "responses": { + "204": { + "description": "No Content" + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } - } - }, + }, + "description": "Bad Request" + } + }, + "summary": "Update series read progress (Mihon)", + "tags": [ + "Mihon" + ] + } + }, + "/api/v2/users": { + "get": { + "operationId": "getAll", + "responses": { "200": { - "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/OAuth2ClientDto" + "$ref": "#/components/schemas/UserDto" } } } - } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" } - } + }, + "summary": "List users", + "tags": [ + "Users" + ] }, "post": { - "tags": [ - "o-auth-2-controller" - ], - "operationId": "getProviders_1", + "operationId": "addOne", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserCreationDto" + } + } + }, + "required": true + }, "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + }, + "description": "Created" + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } + }, + "description": "Bad Request" + } + }, + "summary": "Create user", + "tags": [ + "Users" + ] + } + }, + "/api/v2/users/authentication-activity": { + "get": { + "operationId": "getAuthenticationActivity", + "parameters": [ + { + "in": "query", + "name": "unpaged", + "required": false, + "schema": { + "type": "boolean" } }, + { + "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "description": "The size of the page to be returned", + "in": "query", + "name": "size", + "schema": { + "type": "integer", + "default": 20 + } + }, + { + "description": "Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", + "in": "query", + "name": "sort", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PageAuthenticationActivityDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Retrieve authentication activity", + "tags": [ + "Users" + ] + } + }, + "/api/v2/users/me": { + "get": { + "operationId": "getMe", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Retrieve current user", + "tags": [ + "Current user" + ] + } + }, + "/api/v2/users/me/api-keys": { + "get": { + "operationId": "getApiKeys", + "responses": { "200": { - "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/OAuth2ClientDto" + "$ref": "#/components/schemas/ApiKeyDto" } } } - } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" } - } + }, + "summary": "Retrieve API keys", + "tags": [ + "API Keys" + ] }, + "post": { + "operationId": "createApiKey", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiKeyRequestDto" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiKeyDto" + } + } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Create API key", + "tags": [ + "API Keys" + ] + } + }, + "/api/v2/users/me/api-keys/{keyId}": { "delete": { - "tags": [ - "o-auth-2-controller" + "operationId": "deleteApiKey", + "parameters": [ + { + "in": "path", + "name": "keyId", + "required": true, + "schema": { + "type": "string" + } + } ], - "operationId": "getProviders_3", "responses": { + "204": { + "description": "No Content" + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } + }, + "description": "Bad Request" + } + }, + "summary": "Delete API key", + "tags": [ + "API Keys" + ] + } + }, + "/api/v2/users/me/authentication-activity": { + "get": { + "operationId": "getMyAuthenticationActivity", + "parameters": [ + { + "in": "query", + "name": "unpaged", + "required": false, + "schema": { + "type": "boolean" } }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OAuth2ClientDto" - } - } + { + "description": "Zero-based page index (0..N)", + "in": "query", + "name": "page", + "schema": { + "type": "integer", + "default": 0 + } + }, + { + "description": "The size of the page to be returned", + "in": "query", + "name": "size", + "schema": { + "type": "integer", + "default": 20 + } + }, + { + "description": "Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.", + "in": "query", + "name": "sort", + "schema": { + "type": "array", + "items": { + "type": "string" } } } - } - }, - "options": { - "tags": [ - "o-auth-2-controller" ], - "operationId": "getProviders_6", "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PageAuthenticationActivityDto" + } + } + }, + "description": "OK" + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OAuth2ClientDto" - } - } + }, + "description": "Bad Request" + } + }, + "summary": "Retrieve authentication activity for the current user", + "tags": [ + "Current user" + ] + } + }, + "/api/v2/users/me/password": { + "patch": { + "operationId": "updateMyPassword", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PasswordUpdateDto" } } - } - } - }, - "head": { - "tags": [ - "o-auth-2-controller" - ], - "operationId": "getProviders_5", + }, + "required": true + }, "responses": { + "204": { + "description": "No Content" + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } - } - }, - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OAuth2ClientDto" - } - } - } + }, + "description": "Bad Request" + } + }, + "summary": "Update current user\u0027s password", + "tags": [ + "Current user" + ] + } + }, + "/api/v2/users/{id}": { + "delete": { + "operationId": "delete", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" } } - } + ], + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Delete user", + "tags": [ + "Users" + ] }, "patch": { - "tags": [ - "o-auth-2-controller" + "operationId": "updateUser", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" + } + } ], - "operationId": "getProviders_4", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserUpdateDto" + } + } + }, + "required": true + }, "responses": { + "204": { + "description": "No Content" + }, "400": { - "description": "Bad Request", "content": { "*/*": { "schema": { "$ref": "#/components/schemas/ValidationErrorResponse" } } + }, + "description": "Bad Request" + } + }, + "summary": "Update user", + "tags": [ + "Users" + ] + } + }, + "/api/v2/users/{id}/authentication-activity/latest": { + "get": { + "operationId": "getLatestAuthenticationActivityForUser", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" } }, + { + "in": "query", + "name": "apikey_id", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { "200": { - "description": "OK", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OAuth2ClientDto" - } + "$ref": "#/components/schemas/AuthenticationActivityDto" } } + }, + "description": "OK" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Retrieve latest authentication activity for a user", + "tags": [ + "Users" + ] + } + }, + "/api/v2/users/{id}/password": { + "patch": { + "operationId": "updatePassword", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string" } } - } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PasswordUpdateDto" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ValidationErrorResponse" + } + } + }, + "description": "Bad Request" + } + }, + "summary": "Update user\u0027s password", + "tags": [ + "Users" + ] } } }, "components": { "schemas": { - "ValidationErrorResponse": { - "required": [ - "violations" - ], - "type": "object", - "properties": { - "violations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Violation" - } - } - } - }, - "Violation": { - "type": "object", - "properties": { - "fieldName": { - "type": "string" - }, - "message": { - "type": "string" - } - } - }, - "JsonNode": { - "type": "object" - }, - "Location": { - "required": [ - "fragments" - ], - "type": "object", - "properties": { - "fragments": { - "type": "array", - "items": { - "type": "string" - } - }, - "progression": { - "type": "number", - "format": "float" - }, - "position": { - "type": "integer", - "format": "int32" - }, - "totalProgression": { - "type": "number", - "format": "float" - } - } - }, - "R2Device": { - "required": [ - "id", - "name" - ], - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - } - }, - "R2Locator": { - "required": [ - "href", - "type" - ], - "type": "object", - "properties": { - "href": { - "type": "string" - }, - "type": { - "type": "string" - }, - "title": { - "type": "string" - }, - "locations": { - "$ref": "#/components/schemas/Location" - }, - "text": { - "$ref": "#/components/schemas/Text" - }, - "koboSpan": { - "type": "string" - } - } - }, - "R2Progression": { - "required": [ - "device", - "locator", - "modified" - ], - "type": "object", - "properties": { - "modified": { - "type": "string", - "format": "date-time" - }, - "device": { - "$ref": "#/components/schemas/R2Device" - }, - "locator": { - "$ref": "#/components/schemas/R2Locator" - } - } - }, - "Text": { - "type": "object", - "properties": { - "after": { - "type": "string" - }, - "before": { - "type": "string" - }, - "highlight": { - "type": "string" - } - } - }, - "DocumentProgressDto": { - "required": [ - "device", - "device_id", - "document", - "percentage", - "progress" - ], - "type": "object", - "properties": { - "document": { - "type": "string" - }, - "percentage": { - "type": "number", - "format": "float" - }, - "progress": { - "type": "string" - }, - "device": { - "type": "string" - }, - "device_id": { - "type": "string" - } - } - }, - "BookmarkDto": { - "required": [ - "LastModified" - ], - "type": "object", - "properties": { - "LastModified": { - "type": "string", - "format": "date-time" - }, - "ProgressPercent": { - "type": "number", - "format": "float" - }, - "ContentSourceProgressPercent": { - "type": "number", - "format": "float" - }, - "Location": { - "$ref": "#/components/schemas/LocationDto" - } - } - }, - "LocationDto": { - "required": [ - "Source" - ], - "type": "object", - "properties": { - "Value": { - "type": "string" - }, - "Type": { - "type": "string" - }, - "Source": { - "type": "string" - } - } - }, - "ReadingStateDto": { - "required": [ - "CurrentBookmark", - "EntitlementId", - "LastModified", - "Statistics", - "StatusInfo" - ], - "type": "object", - "properties": { - "Created": { - "type": "string", - "format": "date-time" - }, - "CurrentBookmark": { - "$ref": "#/components/schemas/BookmarkDto" - }, - "EntitlementId": { - "type": "string" - }, - "LastModified": { - "type": "string", - "format": "date-time" - }, - "PriorityTimestamp": { - "type": "string", - "format": "date-time" - }, - "Statistics": { - "$ref": "#/components/schemas/StatisticsDto" - }, - "StatusInfo": { - "$ref": "#/components/schemas/StatusInfoDto" - } - } - }, - "ReadingStateStateUpdateDto": { - "required": [ - "ReadingStates" - ], - "type": "object", - "properties": { - "ReadingStates": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ReadingStateDto" - } - } - } - }, - "StatisticsDto": { - "required": [ - "LastModified" - ], - "type": "object", - "properties": { - "LastModified": { - "type": "string", - "format": "date-time" - }, - "RemainingTimeMinutes": { - "type": "integer", - "format": "int32" - }, - "SpentReadingMinutes": { - "type": "integer", - "format": "int32" - } - } - }, - "StatusInfoDto": { - "required": [ - "LastModified", - "Status" - ], - "type": "object", - "properties": { - "LastModified": { - "type": "string", - "format": "date-time" - }, - "Status": { - "type": "string", - "enum": [ - "ReadyToRead", - "Finished", - "Reading" - ] - }, - "TimesStartedReading": { - "type": "integer", - "format": "int32" - }, - "LastTimeFinished": { - "type": "string", - "format": "date-time" - }, - "LastTimeStartedReading": { - "type": "string", - "format": "date-time" - } - } - }, - "TachiyomiReadProgressUpdateV2Dto": { - "required": [ - "lastBookNumberSortRead" - ], - "type": "object", - "properties": { - "lastBookNumberSortRead": { - "type": "number", - "format": "float" - } - } - }, - "TachiyomiReadProgressUpdateDto": { - "required": [ - "lastBookRead" - ], - "type": "object", - "properties": { - "lastBookRead": { - "type": "integer", - "format": "int32" - } - } - }, - "PageHashCreationDto": { - "required": [ - "action", - "hash" - ], - "type": "object", - "properties": { - "hash": { - "type": "string" - }, - "size": { - "type": "integer", - "format": "int64" - }, - "action": { - "type": "string", - "enum": [ - "DELETE_AUTO", - "DELETE_MANUAL", - "IGNORE" - ] - } - } - }, - "LibraryUpdateDto": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "root": { - "type": "string" - }, - "importComicInfoBook": { - "type": "boolean" - }, - "importComicInfoSeries": { - "type": "boolean" - }, - "importComicInfoCollection": { - "type": "boolean" - }, - "importComicInfoReadList": { - "type": "boolean" - }, - "importComicInfoSeriesAppendVolume": { - "type": "boolean" - }, - "importEpubBook": { - "type": "boolean" - }, - "importEpubSeries": { - "type": "boolean" - }, - "importMylarSeries": { - "type": "boolean" - }, - "importLocalArtwork": { - "type": "boolean" - }, - "importBarcodeIsbn": { - "type": "boolean" - }, - "scanForceModifiedTime": { - "type": "boolean" - }, - "scanInterval": { - "type": "string", - "enum": [ - "DISABLED", - "HOURLY", - "EVERY_6H", - "EVERY_12H", - "DAILY", - "WEEKLY" - ] - }, - "scanOnStartup": { - "type": "boolean" - }, - "scanCbx": { - "type": "boolean" - }, - "scanPdf": { - "type": "boolean" - }, - "scanEpub": { - "type": "boolean" - }, - "repairExtensions": { - "type": "boolean" - }, - "convertToCbz": { - "type": "boolean" - }, - "emptyTrashAfterScan": { - "type": "boolean" - }, - "seriesCover": { - "type": "string", - "enum": [ - "FIRST", - "FIRST_UNREAD_OR_FIRST", - "FIRST_UNREAD_OR_LAST", - "LAST" - ] - }, - "hashFiles": { - "type": "boolean" - }, - "hashPages": { - "type": "boolean" - }, - "hashKoreader": { - "type": "boolean" - }, - "analyzeDimensions": { - "type": "boolean" - }, - "oneshotsDirectory": { - "type": "string" - }, - "scanDirectoryExclusions": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - } - }, - "description": "Fields to update. You can omit fields you don\u0027t want to update." - }, - "UserCreationDto": { - "required": [ - "email", - "password", - "roles" - ], - "type": "object", - "properties": { - "email": { - "type": "string" - }, - "password": { - "type": "string" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "AgeRestrictionDto": { - "required": [ - "age", - "restriction" - ], - "type": "object", - "properties": { - "age": { - "type": "integer", - "format": "int32" - }, - "restriction": { - "type": "string", - "enum": [ - "ALLOW_ONLY", - "EXCLUDE" - ] - } - } - }, - "UserDto": { - "required": [ - "email", - "id", - "labelsAllow", - "labelsExclude", - "roles", - "sharedAllLibraries", - "sharedLibrariesIds" - ], - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "email": { - "type": "string" - }, - "roles": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - }, - "sharedAllLibraries": { - "type": "boolean" - }, - "sharedLibrariesIds": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - }, - "labelsAllow": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - }, - "labelsExclude": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - }, - "ageRestriction": { - "$ref": "#/components/schemas/AgeRestrictionDto" - } - } - }, - "ApiKeyRequestDto": { - "required": [ - "comment" - ], - "type": "object", - "properties": { - "comment": { - "type": "string" - } - } - }, - "ApiKeyDto": { - "required": [ - "comment", - "createdDate", - "id", - "key", - "lastModifiedDate", - "userId" - ], - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "userId": { - "type": "string" - }, - "key": { - "type": "string" - }, - "comment": { - "type": "string" - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - } - } - }, - "ScanRequestDto": { - "required": [ - "path" - ], - "type": "object", - "properties": { - "path": { - "type": "string" - } - } - }, - "PageDto": { - "required": [ - "fileName", - "mediaType", - "number", - "size" - ], - "type": "object", - "properties": { - "number": { - "type": "integer", - "format": "int32" - }, - "fileName": { - "type": "string" - }, - "mediaType": { - "type": "string" - }, - "width": { - "type": "integer", - "format": "int32" - }, - "height": { - "type": "integer", - "format": "int32" - }, - "sizeBytes": { - "type": "integer", - "format": "int64" - }, - "size": { - "type": "string" - } - } - }, - "TransientBookDto": { - "required": [ - "comment", - "fileLastModified", - "files", - "id", - "mediaType", - "name", - "pages", - "size", - "sizeBytes", - "status", - "url" - ], - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "fileLastModified": { - "type": "string", - "format": "date-time" - }, - "sizeBytes": { - "type": "integer", - "format": "int64" - }, - "size": { - "type": "string" - }, - "status": { - "type": "string" - }, - "mediaType": { - "type": "string" - }, - "pages": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PageDto" - } - }, - "files": { - "type": "array", - "items": { - "type": "string" - } - }, - "comment": { - "type": "string" - }, - "number": { - "type": "number", - "format": "float" - }, - "seriesId": { - "type": "string" - } - } - }, - "ThumbnailSeriesDto": { - "required": [ - "fileSize", - "height", - "id", - "mediaType", - "selected", - "seriesId", - "type", - "width" - ], - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "seriesId": { - "type": "string" - }, - "type": { - "type": "string" - }, - "selected": { - "type": "boolean" - }, - "mediaType": { - "type": "string" - }, - "fileSize": { - "type": "integer", - "format": "int64" - }, - "width": { - "type": "integer", - "format": "int32" - }, - "height": { - "type": "integer", - "format": "int32" - } - } - }, "After": { "required": [ "dateTime" @@ -12387,6 +8717,117 @@ } ] }, + "AgeRestrictionDto": { + "required": [ + "age", + "restriction" + ], + "type": "object", + "properties": { + "age": { + "type": "integer", + "format": "int32" + }, + "restriction": { + "type": "string", + "enum": [ + "ALLOW_ONLY", + "EXCLUDE" + ] + } + } + }, + "AgeRestrictionUpdateDto": { + "required": [ + "age", + "restriction" + ], + "type": "object", + "properties": { + "age": { + "type": "integer", + "format": "int32" + }, + "restriction": { + "type": "string", + "enum": [ + "ALLOW_ONLY", + "EXCLUDE" + ] + } + } + }, + "AllOfBook": { + "required": [ + "allOf" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/Book" + }, + { + "type": "object", + "properties": { + "allOf": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/AllOfBook" + }, + { + "$ref": "#/components/schemas/AnyOfBook" + }, + { + "$ref": "#/components/schemas/Author" + }, + { + "$ref": "#/components/schemas/Deleted" + }, + { + "$ref": "#/components/schemas/LibraryId" + }, + { + "$ref": "#/components/schemas/MediaProfile" + }, + { + "$ref": "#/components/schemas/MediaStatus" + }, + { + "$ref": "#/components/schemas/NumberSort" + }, + { + "$ref": "#/components/schemas/OneShot" + }, + { + "$ref": "#/components/schemas/Poster" + }, + { + "$ref": "#/components/schemas/ReadListId" + }, + { + "$ref": "#/components/schemas/ReadStatus" + }, + { + "$ref": "#/components/schemas/ReleaseDate" + }, + { + "$ref": "#/components/schemas/SeriesId" + }, + { + "$ref": "#/components/schemas/Tag" + }, + { + "$ref": "#/components/schemas/Title" + } + ] + } + } + } + } + ] + }, "AllOfSeries": { "required": [ "allOf" @@ -12467,6 +8908,107 @@ } ] }, + "AlternateTitleDto": { + "required": [ + "label", + "title" + ], + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "title": { + "type": "string" + } + } + }, + "AlternateTitleUpdateDto": { + "required": [ + "label", + "title" + ], + "type": "object", + "properties": { + "label": { + "type": "string" + }, + "title": { + "type": "string" + } + } + }, + "AnyOfBook": { + "required": [ + "anyOf" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/Book" + }, + { + "type": "object", + "properties": { + "anyOf": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/AllOfBook" + }, + { + "$ref": "#/components/schemas/AnyOfBook" + }, + { + "$ref": "#/components/schemas/Author" + }, + { + "$ref": "#/components/schemas/Deleted" + }, + { + "$ref": "#/components/schemas/LibraryId" + }, + { + "$ref": "#/components/schemas/MediaProfile" + }, + { + "$ref": "#/components/schemas/MediaStatus" + }, + { + "$ref": "#/components/schemas/NumberSort" + }, + { + "$ref": "#/components/schemas/OneShot" + }, + { + "$ref": "#/components/schemas/Poster" + }, + { + "$ref": "#/components/schemas/ReadListId" + }, + { + "$ref": "#/components/schemas/ReadStatus" + }, + { + "$ref": "#/components/schemas/ReleaseDate" + }, + { + "$ref": "#/components/schemas/SeriesId" + }, + { + "$ref": "#/components/schemas/Tag" + }, + { + "$ref": "#/components/schemas/Title" + } + ] + } + } + } + } + ] + }, "AnyOfSeries": { "required": [ "anyOf" @@ -12547,6 +9089,90 @@ } ] }, + "ApiKeyDto": { + "required": [ + "comment", + "createdDate", + "id", + "key", + "lastModifiedDate", + "userId" + ], + "type": "object", + "properties": { + "comment": { + "type": "string" + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "id": { + "type": "string" + }, + "key": { + "type": "string" + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time" + }, + "userId": { + "type": "string" + } + } + }, + "ApiKeyRequestDto": { + "required": [ + "comment" + ], + "type": "object", + "properties": { + "comment": { + "type": "string" + } + } + }, + "AuthenticationActivityDto": { + "required": [ + "dateTime", + "success" + ], + "type": "object", + "properties": { + "apiKeyComment": { + "type": "string" + }, + "apiKeyId": { + "type": "string" + }, + "dateTime": { + "type": "string", + "format": "date-time" + }, + "email": { + "type": "string" + }, + "error": { + "type": "string" + }, + "ip": { + "type": "string" + }, + "source": { + "type": "string" + }, + "success": { + "type": "boolean" + }, + "userAgent": { + "type": "string" + }, + "userId": { + "type": "string" + } + } + }, "Author": { "required": [ "author" @@ -12576,6 +9202,36 @@ } ] }, + "AuthorDto": { + "required": [ + "name", + "role" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "role": { + "type": "string" + } + } + }, + "AuthorUpdateDto": { + "required": [ + "name", + "role" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "role": { + "type": "string" + } + } + }, "Before": { "required": [ "dateTime" @@ -12615,6 +9271,412 @@ } ] }, + "Book": { + "type": "object" + }, + "BookDto": { + "required": [ + "created", + "deleted", + "fileHash", + "fileLastModified", + "id", + "lastModified", + "libraryId", + "media", + "metadata", + "name", + "number", + "oneshot", + "seriesId", + "seriesTitle", + "size", + "sizeBytes", + "url" + ], + "type": "object", + "properties": { + "created": { + "type": "string", + "format": "date-time" + }, + "deleted": { + "type": "boolean" + }, + "fileHash": { + "type": "string" + }, + "fileLastModified": { + "type": "string", + "format": "date-time" + }, + "id": { + "type": "string" + }, + "lastModified": { + "type": "string", + "format": "date-time" + }, + "libraryId": { + "type": "string" + }, + "media": { + "$ref": "#/components/schemas/MediaDto" + }, + "metadata": { + "$ref": "#/components/schemas/BookMetadataDto" + }, + "name": { + "type": "string" + }, + "number": { + "type": "integer", + "format": "int32" + }, + "oneshot": { + "type": "boolean" + }, + "readProgress": { + "$ref": "#/components/schemas/ReadProgressDto" + }, + "seriesId": { + "type": "string" + }, + "seriesTitle": { + "type": "string" + }, + "size": { + "type": "string" + }, + "sizeBytes": { + "type": "integer", + "format": "int64" + }, + "url": { + "type": "string" + } + } + }, + "BookImportBatchDto": { + "required": [ + "books", + "copyMode" + ], + "type": "object", + "properties": { + "books": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BookImportDto" + } + }, + "copyMode": { + "type": "string", + "enum": [ + "MOVE", + "COPY", + "HARDLINK" + ] + } + } + }, + "BookImportDto": { + "required": [ + "seriesId", + "sourceFile" + ], + "type": "object", + "properties": { + "destinationName": { + "type": "string" + }, + "seriesId": { + "type": "string" + }, + "sourceFile": { + "type": "string" + }, + "upgradeBookId": { + "type": "string" + } + } + }, + "BookMetadataAggregationDto": { + "required": [ + "authors", + "created", + "lastModified", + "summary", + "summaryNumber", + "tags" + ], + "type": "object", + "properties": { + "authors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AuthorDto" + } + }, + "created": { + "type": "string", + "format": "date-time" + }, + "lastModified": { + "type": "string", + "format": "date-time" + }, + "releaseDate": { + "type": "string", + "format": "date" + }, + "summary": { + "type": "string" + }, + "summaryNumber": { + "type": "string" + }, + "tags": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "BookMetadataDto": { + "required": [ + "authors", + "authorsLock", + "created", + "isbn", + "isbnLock", + "lastModified", + "links", + "linksLock", + "number", + "numberLock", + "numberSort", + "numberSortLock", + "releaseDateLock", + "summary", + "summaryLock", + "tags", + "tagsLock", + "title", + "titleLock" + ], + "type": "object", + "properties": { + "authors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AuthorDto" + } + }, + "authorsLock": { + "type": "boolean" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "isbn": { + "type": "string" + }, + "isbnLock": { + "type": "boolean" + }, + "lastModified": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebLinkDto" + } + }, + "linksLock": { + "type": "boolean" + }, + "number": { + "type": "string" + }, + "numberLock": { + "type": "boolean" + }, + "numberSort": { + "type": "number", + "format": "float" + }, + "numberSortLock": { + "type": "boolean" + }, + "releaseDate": { + "type": "string", + "format": "date" + }, + "releaseDateLock": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "summaryLock": { + "type": "boolean" + }, + "tags": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, + "tagsLock": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "titleLock": { + "type": "boolean" + } + } + }, + "BookMetadataUpdateDto": { + "type": "object", + "properties": { + "authors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AuthorUpdateDto" + } + }, + "authorsLock": { + "type": "boolean" + }, + "isbn": { + "type": "string" + }, + "isbnLock": { + "type": "boolean" + }, + "links": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebLinkUpdateDto" + } + }, + "linksLock": { + "type": "boolean" + }, + "number": { + "type": "string" + }, + "numberLock": { + "type": "boolean" + }, + "numberSort": { + "type": "number", + "format": "float" + }, + "numberSortLock": { + "type": "boolean" + }, + "releaseDate": { + "type": "string", + "format": "date" + }, + "releaseDateLock": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "summaryLock": { + "type": "boolean" + }, + "tags": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, + "tagsLock": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "titleLock": { + "type": "boolean" + } + }, + "description": "Metadata fields to update. Set a field to null to unset the metadata. You can omit fields you don\u0027t want to update." + }, + "BookSearch": { + "type": "object", + "properties": { + "condition": { + "oneOf": [ + { + "$ref": "#/components/schemas/AllOfBook" + }, + { + "$ref": "#/components/schemas/AnyOfBook" + }, + { + "$ref": "#/components/schemas/Author" + }, + { + "$ref": "#/components/schemas/Deleted" + }, + { + "$ref": "#/components/schemas/LibraryId" + }, + { + "$ref": "#/components/schemas/MediaProfile" + }, + { + "$ref": "#/components/schemas/MediaStatus" + }, + { + "$ref": "#/components/schemas/NumberSort" + }, + { + "$ref": "#/components/schemas/OneShot" + }, + { + "$ref": "#/components/schemas/Poster" + }, + { + "$ref": "#/components/schemas/ReadListId" + }, + { + "$ref": "#/components/schemas/ReadStatus" + }, + { + "$ref": "#/components/schemas/ReleaseDate" + }, + { + "$ref": "#/components/schemas/SeriesId" + }, + { + "$ref": "#/components/schemas/Tag" + }, + { + "$ref": "#/components/schemas/Title" + } + ] + }, + "fullTextSearch": { + "type": "string" + } + } + }, "Boolean": { "required": [ "operator" @@ -12629,6 +9691,119 @@ "propertyName": "operator" } }, + "ClaimStatus": { + "required": [ + "isClaimed" + ], + "type": "object", + "properties": { + "isClaimed": { + "type": "boolean" + } + } + }, + "ClientSettingDto": { + "required": [ + "value" + ], + "type": "object", + "properties": { + "allowUnauthorized": { + "type": "boolean" + }, + "value": { + "type": "string" + } + } + }, + "ClientSettingGlobalUpdateDto": { + "required": [ + "allowUnauthorized", + "value" + ], + "type": "object", + "properties": { + "allowUnauthorized": { + "type": "boolean" + }, + "value": { + "type": "string" + } + } + }, + "ClientSettingUserUpdateDto": { + "required": [ + "value" + ], + "type": "object", + "properties": { + "value": { + "type": "string" + } + } + }, + "CollectionCreationDto": { + "required": [ + "name", + "ordered", + "seriesIds" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "ordered": { + "type": "boolean" + }, + "seriesIds": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "CollectionDto": { + "required": [ + "createdDate", + "filtered", + "id", + "lastModifiedDate", + "name", + "ordered", + "seriesIds" + ], + "type": "object", + "properties": { + "createdDate": { + "type": "string", + "format": "date-time" + }, + "filtered": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time" + }, + "name": { + "type": "string" + }, + "ordered": { + "type": "boolean" + }, + "seriesIds": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, "CollectionId": { "required": [ "collectionId" @@ -12655,6 +9830,23 @@ } ] }, + "CollectionUpdateDto": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "ordered": { + "type": "boolean" + }, + "seriesIds": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, "Complete": { "required": [ "complete" @@ -12743,6 +9935,45 @@ } ] }, + "DirectoryListingDto": { + "required": [ + "directories", + "files" + ], + "type": "object", + "properties": { + "directories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PathDto" + } + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PathDto" + } + }, + "parent": { + "type": "string" + } + } + }, + "DirectoryRequestDto": { + "required": [ + "path", + "showFiles" + ], + "type": "object", + "properties": { + "path": { + "type": "string" + }, + "showFiles": { + "type": "boolean" + } + } + }, "DoesNotBeginWith": { "required": [ "value" @@ -12833,6 +10064,34 @@ "propertyName": "operator" } }, + "EqualityMediaProfile": { + "required": [ + "operator" + ], + "type": "object", + "properties": { + "operator": { + "type": "string" + } + }, + "discriminator": { + "propertyName": "operator" + } + }, + "EqualityPosterMatch": { + "required": [ + "operator" + ], + "type": "object", + "properties": { + "operator": { + "type": "string" + } + }, + "discriminator": { + "propertyName": "operator" + } + }, "EqualityReadStatus": { "required": [ "operator" @@ -12923,6 +10182,51 @@ } ] }, + "GroupCountDto": { + "required": [ + "count", + "group" + ], + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32" + }, + "group": { + "type": "string" + } + } + }, + "HistoricalEventDto": { + "required": [ + "properties", + "timestamp", + "type" + ], + "type": "object", + "properties": { + "bookId": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "seriesId": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "type": { + "type": "string" + } + } + }, "Is": { "required": [ "value" @@ -12989,13 +10293,6 @@ "duration": { "type": "object", "properties": { - "seconds": { - "type": "integer", - "format": "int64" - }, - "zero": { - "type": "boolean" - }, "nano": { "type": "integer", "format": "int32" @@ -13003,22 +10300,29 @@ "negative": { "type": "boolean" }, + "seconds": { + "type": "integer", + "format": "int64" + }, "units": { "type": "array", "items": { "type": "object", "properties": { + "dateBased": { + "type": "boolean" + }, "durationEstimated": { "type": "boolean" }, "timeBased": { "type": "boolean" - }, - "dateBased": { - "type": "boolean" } } } + }, + "zero": { + "type": "boolean" } } } @@ -13084,13 +10388,6 @@ "duration": { "type": "object", "properties": { - "seconds": { - "type": "integer", - "format": "int64" - }, - "zero": { - "type": "boolean" - }, "nano": { "type": "integer", "format": "int32" @@ -13098,22 +10395,29 @@ "negative": { "type": "boolean" }, + "seconds": { + "type": "integer", + "format": "int64" + }, "units": { "type": "array", "items": { "type": "object", "properties": { + "dateBased": { + "type": "boolean" + }, "durationEstimated": { "type": "boolean" }, "timeBased": { "type": "boolean" - }, - "dateBased": { - "type": "boolean" } } } + }, + "zero": { + "type": "boolean" } } } @@ -13161,6 +10465,86 @@ } ] }, + "ItemDto": { + "required": [ + "id", + "tags" + ], + "type": "object", + "properties": { + "_komga": { + "$ref": "#/components/schemas/KomgaExtensionDto" + }, + "author": { + "$ref": "#/components/schemas/AuthorDto" + }, + "content_html": { + "type": "string" + }, + "date_modified": { + "type": "string", + "format": "date-time" + }, + "id": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "tags": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "JsonFeedDto": { + "required": [ + "items", + "title", + "version" + ], + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "home_page_url": { + "type": "string" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ItemDto" + } + }, + "title": { + "type": "string" + }, + "version": { + "type": "string" + } + } + }, + "KomgaExtensionDto": { + "required": [ + "read" + ], + "type": "object", + "properties": { + "read": { + "type": "boolean" + } + } + }, "Language": { "required": [ "language" @@ -13209,6 +10593,286 @@ } ] }, + "LibraryCreationDto": { + "required": [ + "analyzeDimensions", + "convertToCbz", + "emptyTrashAfterScan", + "hashFiles", + "hashKoreader", + "hashPages", + "importBarcodeIsbn", + "importComicInfoBook", + "importComicInfoCollection", + "importComicInfoReadList", + "importComicInfoSeries", + "importComicInfoSeriesAppendVolume", + "importEpubBook", + "importEpubSeries", + "importLocalArtwork", + "importMylarSeries", + "name", + "repairExtensions", + "root", + "scanCbx", + "scanDirectoryExclusions", + "scanEpub", + "scanForceModifiedTime", + "scanInterval", + "scanOnStartup", + "scanPdf", + "seriesCover" + ], + "type": "object", + "properties": { + "analyzeDimensions": { + "type": "boolean" + }, + "convertToCbz": { + "type": "boolean" + }, + "emptyTrashAfterScan": { + "type": "boolean" + }, + "hashFiles": { + "type": "boolean" + }, + "hashKoreader": { + "type": "boolean" + }, + "hashPages": { + "type": "boolean" + }, + "importBarcodeIsbn": { + "type": "boolean" + }, + "importComicInfoBook": { + "type": "boolean" + }, + "importComicInfoCollection": { + "type": "boolean" + }, + "importComicInfoReadList": { + "type": "boolean" + }, + "importComicInfoSeries": { + "type": "boolean" + }, + "importComicInfoSeriesAppendVolume": { + "type": "boolean" + }, + "importEpubBook": { + "type": "boolean" + }, + "importEpubSeries": { + "type": "boolean" + }, + "importLocalArtwork": { + "type": "boolean" + }, + "importMylarSeries": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "oneshotsDirectory": { + "type": "string" + }, + "repairExtensions": { + "type": "boolean" + }, + "root": { + "type": "string" + }, + "scanCbx": { + "type": "boolean" + }, + "scanDirectoryExclusions": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, + "scanEpub": { + "type": "boolean" + }, + "scanForceModifiedTime": { + "type": "boolean" + }, + "scanInterval": { + "type": "string", + "enum": [ + "DISABLED", + "HOURLY", + "EVERY_6H", + "EVERY_12H", + "DAILY", + "WEEKLY" + ] + }, + "scanOnStartup": { + "type": "boolean" + }, + "scanPdf": { + "type": "boolean" + }, + "seriesCover": { + "type": "string", + "enum": [ + "FIRST", + "FIRST_UNREAD_OR_FIRST", + "FIRST_UNREAD_OR_LAST", + "LAST" + ] + } + } + }, + "LibraryDto": { + "required": [ + "analyzeDimensions", + "convertToCbz", + "emptyTrashAfterScan", + "hashFiles", + "hashKoreader", + "hashPages", + "id", + "importBarcodeIsbn", + "importComicInfoBook", + "importComicInfoCollection", + "importComicInfoReadList", + "importComicInfoSeries", + "importComicInfoSeriesAppendVolume", + "importEpubBook", + "importEpubSeries", + "importLocalArtwork", + "importMylarSeries", + "name", + "repairExtensions", + "root", + "scanCbx", + "scanDirectoryExclusions", + "scanEpub", + "scanForceModifiedTime", + "scanInterval", + "scanOnStartup", + "scanPdf", + "seriesCover", + "unavailable" + ], + "type": "object", + "properties": { + "analyzeDimensions": { + "type": "boolean" + }, + "convertToCbz": { + "type": "boolean" + }, + "emptyTrashAfterScan": { + "type": "boolean" + }, + "hashFiles": { + "type": "boolean" + }, + "hashKoreader": { + "type": "boolean" + }, + "hashPages": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "importBarcodeIsbn": { + "type": "boolean" + }, + "importComicInfoBook": { + "type": "boolean" + }, + "importComicInfoCollection": { + "type": "boolean" + }, + "importComicInfoReadList": { + "type": "boolean" + }, + "importComicInfoSeries": { + "type": "boolean" + }, + "importComicInfoSeriesAppendVolume": { + "type": "boolean" + }, + "importEpubBook": { + "type": "boolean" + }, + "importEpubSeries": { + "type": "boolean" + }, + "importLocalArtwork": { + "type": "boolean" + }, + "importMylarSeries": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "oneshotsDirectory": { + "type": "string" + }, + "repairExtensions": { + "type": "boolean" + }, + "root": { + "type": "string" + }, + "scanCbx": { + "type": "boolean" + }, + "scanDirectoryExclusions": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, + "scanEpub": { + "type": "boolean" + }, + "scanForceModifiedTime": { + "type": "boolean" + }, + "scanInterval": { + "type": "string", + "enum": [ + "DISABLED", + "HOURLY", + "EVERY_6H", + "EVERY_12H", + "DAILY", + "WEEKLY" + ] + }, + "scanOnStartup": { + "type": "boolean" + }, + "scanPdf": { + "type": "boolean" + }, + "seriesCover": { + "type": "string", + "enum": [ + "FIRST", + "FIRST_UNREAD_OR_FIRST", + "FIRST_UNREAD_OR_LAST", + "LAST" + ] + }, + "unavailable": { + "type": "boolean" + } + } + }, "LibraryId": { "required": [ "libraryId" @@ -13238,6 +10902,310 @@ } ] }, + "LibraryUpdateDto": { + "type": "object", + "properties": { + "analyzeDimensions": { + "type": "boolean" + }, + "convertToCbz": { + "type": "boolean" + }, + "emptyTrashAfterScan": { + "type": "boolean" + }, + "hashFiles": { + "type": "boolean" + }, + "hashKoreader": { + "type": "boolean" + }, + "hashPages": { + "type": "boolean" + }, + "importBarcodeIsbn": { + "type": "boolean" + }, + "importComicInfoBook": { + "type": "boolean" + }, + "importComicInfoCollection": { + "type": "boolean" + }, + "importComicInfoReadList": { + "type": "boolean" + }, + "importComicInfoSeries": { + "type": "boolean" + }, + "importComicInfoSeriesAppendVolume": { + "type": "boolean" + }, + "importEpubBook": { + "type": "boolean" + }, + "importEpubSeries": { + "type": "boolean" + }, + "importLocalArtwork": { + "type": "boolean" + }, + "importMylarSeries": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "oneshotsDirectory": { + "type": "string" + }, + "repairExtensions": { + "type": "boolean" + }, + "root": { + "type": "string" + }, + "scanCbx": { + "type": "boolean" + }, + "scanDirectoryExclusions": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, + "scanEpub": { + "type": "boolean" + }, + "scanForceModifiedTime": { + "type": "boolean" + }, + "scanInterval": { + "type": "string", + "enum": [ + "DISABLED", + "HOURLY", + "EVERY_6H", + "EVERY_12H", + "DAILY", + "WEEKLY" + ] + }, + "scanOnStartup": { + "type": "boolean" + }, + "scanPdf": { + "type": "boolean" + }, + "seriesCover": { + "type": "string", + "enum": [ + "FIRST", + "FIRST_UNREAD_OR_FIRST", + "FIRST_UNREAD_OR_LAST", + "LAST" + ] + } + }, + "description": "Fields to update. You can omit fields you don\u0027t want to update." + }, + "Location": { + "required": [ + "fragments" + ], + "type": "object", + "properties": { + "fragments": { + "type": "array", + "items": { + "type": "string" + } + }, + "position": { + "type": "integer", + "format": "int32" + }, + "progression": { + "type": "number", + "format": "float" + }, + "totalProgression": { + "type": "number", + "format": "float" + } + } + }, + "MediaDto": { + "required": [ + "comment", + "epubDivinaCompatible", + "epubIsKepub", + "mediaProfile", + "mediaType", + "pagesCount", + "status" + ], + "type": "object", + "properties": { + "comment": { + "type": "string" + }, + "epubDivinaCompatible": { + "type": "boolean" + }, + "epubIsKepub": { + "type": "boolean" + }, + "mediaProfile": { + "type": "string" + }, + "mediaType": { + "type": "string" + }, + "pagesCount": { + "type": "integer", + "format": "int32" + }, + "status": { + "type": "string" + } + } + }, + "MediaProfile": { + "required": [ + "mediaProfile" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/Book" + }, + { + "type": "object", + "properties": { + "mediaProfile": { + "oneOf": [ + { + "$ref": "#/components/schemas/Is" + }, + { + "$ref": "#/components/schemas/IsNot" + } + ] + } + } + } + ] + }, + "MediaStatus": { + "required": [ + "mediaStatus" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/Book" + }, + { + "type": "object", + "properties": { + "mediaStatus": { + "oneOf": [ + { + "$ref": "#/components/schemas/Is" + }, + { + "$ref": "#/components/schemas/IsNot" + } + ] + } + } + } + ] + }, + "MediaType": { + "type": "object", + "properties": { + "charset": { + "type": "string" + }, + "concrete": { + "type": "boolean" + }, + "parameters": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "qualityValue": { + "type": "number", + "format": "double" + }, + "subtype": { + "type": "string" + }, + "subtypeSuffix": { + "type": "string" + }, + "type": { + "type": "string" + }, + "wildcardSubtype": { + "type": "boolean" + }, + "wildcardType": { + "type": "boolean" + } + } + }, + "NumberSort": { + "required": [ + "numberSort" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/Book" + }, + { + "type": "object", + "properties": { + "numberSort": { + "oneOf": [ + { + "$ref": "#/components/schemas/GreaterThan" + }, + { + "$ref": "#/components/schemas/Is" + }, + { + "$ref": "#/components/schemas/IsNot" + }, + { + "$ref": "#/components/schemas/LessThan" + } + ] + } + } + } + ] + }, + "NumericFloat": { + "required": [ + "operator" + ], + "type": "object", + "properties": { + "operator": { + "type": "string" + } + }, + "discriminator": { + "propertyName": "operator" + } + }, "NumericNullableInteger": { "required": [ "operator" @@ -13252,6 +11220,21 @@ "propertyName": "operator" } }, + "OAuth2ClientDto": { + "required": [ + "name", + "registrationId" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "registrationId": { + "type": "string" + } + } + }, "OneShot": { "required": [ "oneShot" @@ -13281,6 +11264,705 @@ } ] }, + "PageAuthenticationActivityDto": { + "type": "object", + "properties": { + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AuthenticationActivityDto" + } + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "type": "integer", + "format": "int32" + }, + "numberOfElements": { + "type": "integer", + "format": "int32" + }, + "pageable": { + "$ref": "#/components/schemas/PageableObject" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "sort": { + "$ref": "#/components/schemas/SortObject" + }, + "totalElements": { + "type": "integer", + "format": "int64" + }, + "totalPages": { + "type": "integer", + "format": "int32" + } + } + }, + "PageAuthorDto": { + "type": "object", + "properties": { + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AuthorDto" + } + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "type": "integer", + "format": "int32" + }, + "numberOfElements": { + "type": "integer", + "format": "int32" + }, + "pageable": { + "$ref": "#/components/schemas/PageableObject" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "sort": { + "$ref": "#/components/schemas/SortObject" + }, + "totalElements": { + "type": "integer", + "format": "int64" + }, + "totalPages": { + "type": "integer", + "format": "int32" + } + } + }, + "PageBookDto": { + "type": "object", + "properties": { + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BookDto" + } + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "type": "integer", + "format": "int32" + }, + "numberOfElements": { + "type": "integer", + "format": "int32" + }, + "pageable": { + "$ref": "#/components/schemas/PageableObject" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "sort": { + "$ref": "#/components/schemas/SortObject" + }, + "totalElements": { + "type": "integer", + "format": "int64" + }, + "totalPages": { + "type": "integer", + "format": "int32" + } + } + }, + "PageCollectionDto": { + "type": "object", + "properties": { + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CollectionDto" + } + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "type": "integer", + "format": "int32" + }, + "numberOfElements": { + "type": "integer", + "format": "int32" + }, + "pageable": { + "$ref": "#/components/schemas/PageableObject" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "sort": { + "$ref": "#/components/schemas/SortObject" + }, + "totalElements": { + "type": "integer", + "format": "int64" + }, + "totalPages": { + "type": "integer", + "format": "int32" + } + } + }, + "PageDto": { + "required": [ + "fileName", + "mediaType", + "number", + "size" + ], + "type": "object", + "properties": { + "fileName": { + "type": "string" + }, + "height": { + "type": "integer", + "format": "int32" + }, + "mediaType": { + "type": "string" + }, + "number": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "string" + }, + "sizeBytes": { + "type": "integer", + "format": "int64" + }, + "width": { + "type": "integer", + "format": "int32" + } + } + }, + "PageHashCreationDto": { + "required": [ + "action", + "hash" + ], + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "DELETE_AUTO", + "DELETE_MANUAL", + "IGNORE" + ] + }, + "hash": { + "type": "string" + }, + "size": { + "type": "integer", + "format": "int64" + } + } + }, + "PageHashKnownDto": { + "required": [ + "action", + "created", + "deleteCount", + "hash", + "lastModified", + "matchCount" + ], + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "DELETE_AUTO", + "DELETE_MANUAL", + "IGNORE" + ] + }, + "created": { + "type": "string", + "format": "date-time" + }, + "deleteCount": { + "type": "integer", + "format": "int32" + }, + "hash": { + "type": "string" + }, + "lastModified": { + "type": "string", + "format": "date-time" + }, + "matchCount": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int64" + } + } + }, + "PageHashMatchDto": { + "required": [ + "bookId", + "fileName", + "fileSize", + "mediaType", + "pageNumber", + "url" + ], + "type": "object", + "properties": { + "bookId": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "fileSize": { + "type": "integer", + "format": "int64" + }, + "mediaType": { + "type": "string" + }, + "pageNumber": { + "type": "integer", + "format": "int32" + }, + "url": { + "type": "string" + } + } + }, + "PageHashUnknownDto": { + "required": [ + "hash", + "matchCount" + ], + "type": "object", + "properties": { + "hash": { + "type": "string" + }, + "matchCount": { + "type": "integer", + "format": "int32" + }, + "size": { + "type": "integer", + "format": "int64" + } + } + }, + "PageHistoricalEventDto": { + "type": "object", + "properties": { + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HistoricalEventDto" + } + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "type": "integer", + "format": "int32" + }, + "numberOfElements": { + "type": "integer", + "format": "int32" + }, + "pageable": { + "$ref": "#/components/schemas/PageableObject" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "sort": { + "$ref": "#/components/schemas/SortObject" + }, + "totalElements": { + "type": "integer", + "format": "int64" + }, + "totalPages": { + "type": "integer", + "format": "int32" + } + } + }, + "PagePageHashKnownDto": { + "type": "object", + "properties": { + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PageHashKnownDto" + } + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "type": "integer", + "format": "int32" + }, + "numberOfElements": { + "type": "integer", + "format": "int32" + }, + "pageable": { + "$ref": "#/components/schemas/PageableObject" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "sort": { + "$ref": "#/components/schemas/SortObject" + }, + "totalElements": { + "type": "integer", + "format": "int64" + }, + "totalPages": { + "type": "integer", + "format": "int32" + } + } + }, + "PagePageHashMatchDto": { + "type": "object", + "properties": { + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PageHashMatchDto" + } + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "type": "integer", + "format": "int32" + }, + "numberOfElements": { + "type": "integer", + "format": "int32" + }, + "pageable": { + "$ref": "#/components/schemas/PageableObject" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "sort": { + "$ref": "#/components/schemas/SortObject" + }, + "totalElements": { + "type": "integer", + "format": "int64" + }, + "totalPages": { + "type": "integer", + "format": "int32" + } + } + }, + "PagePageHashUnknownDto": { + "type": "object", + "properties": { + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PageHashUnknownDto" + } + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "type": "integer", + "format": "int32" + }, + "numberOfElements": { + "type": "integer", + "format": "int32" + }, + "pageable": { + "$ref": "#/components/schemas/PageableObject" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "sort": { + "$ref": "#/components/schemas/SortObject" + }, + "totalElements": { + "type": "integer", + "format": "int64" + }, + "totalPages": { + "type": "integer", + "format": "int32" + } + } + }, + "PageReadListDto": { + "type": "object", + "properties": { + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ReadListDto" + } + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "type": "integer", + "format": "int32" + }, + "numberOfElements": { + "type": "integer", + "format": "int32" + }, + "pageable": { + "$ref": "#/components/schemas/PageableObject" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "sort": { + "$ref": "#/components/schemas/SortObject" + }, + "totalElements": { + "type": "integer", + "format": "int64" + }, + "totalPages": { + "type": "integer", + "format": "int32" + } + } + }, + "PageSeriesDto": { + "type": "object", + "properties": { + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeriesDto" + } + }, + "empty": { + "type": "boolean" + }, + "first": { + "type": "boolean" + }, + "last": { + "type": "boolean" + }, + "number": { + "type": "integer", + "format": "int32" + }, + "numberOfElements": { + "type": "integer", + "format": "int32" + }, + "pageable": { + "$ref": "#/components/schemas/PageableObject" + }, + "size": { + "type": "integer", + "format": "int32" + }, + "sort": { + "$ref": "#/components/schemas/SortObject" + }, + "totalElements": { + "type": "integer", + "format": "int64" + }, + "totalPages": { + "type": "integer", + "format": "int32" + } + } + }, + "PageableObject": { + "type": "object", + "properties": { + "offset": { + "type": "integer", + "format": "int64" + }, + "pageNumber": { + "type": "integer", + "format": "int32" + }, + "pageSize": { + "type": "integer", + "format": "int32" + }, + "paged": { + "type": "boolean" + }, + "sort": { + "$ref": "#/components/schemas/SortObject" + }, + "unpaged": { + "type": "boolean" + } + } + }, + "PasswordUpdateDto": { + "required": [ + "password" + ], + "type": "object", + "properties": { + "password": { + "type": "string" + } + } + }, + "PathDto": { + "required": [ + "name", + "path", + "type" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "type": { + "type": "string" + } + } + }, + "Poster": { + "required": [ + "poster" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/Book" + }, + { + "type": "object", + "properties": { + "poster": { + "oneOf": [ + { + "$ref": "#/components/schemas/Is" + }, + { + "$ref": "#/components/schemas/IsNot" + } + ] + } + } + } + ] + }, "Publisher": { "required": [ "publisher" @@ -13307,6 +11989,385 @@ } ] }, + "R2Device": { + "required": [ + "id", + "name" + ], + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "R2Locator": { + "required": [ + "href", + "type" + ], + "type": "object", + "properties": { + "href": { + "type": "string" + }, + "koboSpan": { + "type": "string" + }, + "locations": { + "$ref": "#/components/schemas/Location" + }, + "text": { + "$ref": "#/components/schemas/Text" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + } + } + }, + "R2Positions": { + "required": [ + "positions", + "total" + ], + "type": "object", + "properties": { + "positions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/R2Locator" + } + }, + "total": { + "type": "integer", + "format": "int32" + } + } + }, + "R2Progression": { + "required": [ + "device", + "locator", + "modified" + ], + "type": "object", + "properties": { + "device": { + "$ref": "#/components/schemas/R2Device" + }, + "locator": { + "$ref": "#/components/schemas/R2Locator" + }, + "modified": { + "type": "string", + "format": "date-time" + } + } + }, + "ReadListCreationDto": { + "required": [ + "bookIds", + "name", + "ordered", + "summary" + ], + "type": "object", + "properties": { + "bookIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "type": "string" + }, + "ordered": { + "type": "boolean" + }, + "summary": { + "type": "string" + } + } + }, + "ReadListDto": { + "required": [ + "bookIds", + "createdDate", + "filtered", + "id", + "lastModifiedDate", + "name", + "ordered", + "summary" + ], + "type": "object", + "properties": { + "bookIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "createdDate": { + "type": "string", + "format": "date-time" + }, + "filtered": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "lastModifiedDate": { + "type": "string", + "format": "date-time" + }, + "name": { + "type": "string" + }, + "ordered": { + "type": "boolean" + }, + "summary": { + "type": "string" + } + } + }, + "ReadListId": { + "required": [ + "readListId" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/Book" + }, + { + "type": "object", + "properties": { + "readListId": { + "oneOf": [ + { + "$ref": "#/components/schemas/Is" + }, + { + "$ref": "#/components/schemas/IsNot" + } + ] + } + } + } + ] + }, + "ReadListMatchDto": { + "required": [ + "errorCode", + "name" + ], + "type": "object", + "properties": { + "errorCode": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "ReadListRequestBookDto": { + "required": [ + "number", + "series" + ], + "type": "object", + "properties": { + "number": { + "type": "string" + }, + "series": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ReadListRequestBookMatchBookDto": { + "required": [ + "bookId", + "number", + "title" + ], + "type": "object", + "properties": { + "bookId": { + "type": "string" + }, + "number": { + "type": "string" + }, + "title": { + "type": "string" + } + } + }, + "ReadListRequestBookMatchDto": { + "required": [ + "books", + "series" + ], + "type": "object", + "properties": { + "books": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ReadListRequestBookMatchBookDto" + } + }, + "series": { + "$ref": "#/components/schemas/ReadListRequestBookMatchSeriesDto" + } + } + }, + "ReadListRequestBookMatchSeriesDto": { + "required": [ + "seriesId", + "title" + ], + "type": "object", + "properties": { + "releaseDate": { + "type": "string", + "format": "date" + }, + "seriesId": { + "type": "string" + }, + "title": { + "type": "string" + } + } + }, + "ReadListRequestBookMatchesDto": { + "required": [ + "matches", + "request" + ], + "type": "object", + "properties": { + "matches": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ReadListRequestBookMatchDto" + } + }, + "request": { + "$ref": "#/components/schemas/ReadListRequestBookDto" + } + } + }, + "ReadListRequestMatchDto": { + "required": [ + "errorCode", + "readListMatch", + "requests" + ], + "type": "object", + "properties": { + "errorCode": { + "type": "string" + }, + "readListMatch": { + "$ref": "#/components/schemas/ReadListMatchDto" + }, + "requests": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ReadListRequestBookMatchesDto" + } + } + } + }, + "ReadListUpdateDto": { + "type": "object", + "properties": { + "bookIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "type": "string" + }, + "ordered": { + "type": "boolean" + }, + "summary": { + "type": "string" + } + } + }, + "ReadProgressDto": { + "required": [ + "completed", + "created", + "deviceId", + "deviceName", + "lastModified", + "page", + "readDate" + ], + "type": "object", + "properties": { + "completed": { + "type": "boolean" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "deviceId": { + "type": "string" + }, + "deviceName": { + "type": "string" + }, + "lastModified": { + "type": "string", + "format": "date-time" + }, + "page": { + "type": "integer", + "format": "int32" + }, + "readDate": { + "type": "string", + "format": "date-time" + } + } + }, + "ReadProgressUpdateDto": { + "type": "object", + "properties": { + "completed": { + "type": "boolean" + }, + "page": { + "type": "integer", + "format": "int32" + } + }, + "description": "page can be omitted if completed is set to true. completed can be omitted, and will be set accordingly depending on the page passed and the total number of pages in the book." + }, "ReadStatus": { "required": [ "readStatus" @@ -13377,9 +12438,421 @@ } ] }, + "ReleaseDto": { + "required": [ + "description", + "latest", + "preRelease", + "releaseDate", + "url", + "version" + ], + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "latest": { + "type": "boolean" + }, + "preRelease": { + "type": "boolean" + }, + "releaseDate": { + "type": "string", + "format": "date-time" + }, + "url": { + "type": "string" + }, + "version": { + "type": "string" + } + } + }, + "ScanRequestDto": { + "required": [ + "path" + ], + "type": "object", + "properties": { + "path": { + "type": "string" + } + } + }, "Series": { "type": "object" }, + "SeriesDto": { + "required": [ + "booksCount", + "booksInProgressCount", + "booksMetadata", + "booksReadCount", + "booksUnreadCount", + "created", + "deleted", + "fileLastModified", + "id", + "lastModified", + "libraryId", + "metadata", + "name", + "oneshot", + "url" + ], + "type": "object", + "properties": { + "booksCount": { + "type": "integer", + "format": "int32" + }, + "booksInProgressCount": { + "type": "integer", + "format": "int32" + }, + "booksMetadata": { + "$ref": "#/components/schemas/BookMetadataAggregationDto" + }, + "booksReadCount": { + "type": "integer", + "format": "int32" + }, + "booksUnreadCount": { + "type": "integer", + "format": "int32" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "deleted": { + "type": "boolean" + }, + "fileLastModified": { + "type": "string", + "format": "date-time" + }, + "id": { + "type": "string" + }, + "lastModified": { + "type": "string", + "format": "date-time" + }, + "libraryId": { + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/SeriesMetadataDto" + }, + "name": { + "type": "string" + }, + "oneshot": { + "type": "boolean" + }, + "url": { + "type": "string" + } + } + }, + "SeriesId": { + "required": [ + "seriesId" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/Book" + }, + { + "type": "object", + "properties": { + "seriesId": { + "oneOf": [ + { + "$ref": "#/components/schemas/Is" + }, + { + "$ref": "#/components/schemas/IsNot" + } + ] + } + } + } + ] + }, + "SeriesMetadataDto": { + "required": [ + "ageRatingLock", + "alternateTitles", + "alternateTitlesLock", + "created", + "genres", + "genresLock", + "language", + "languageLock", + "lastModified", + "links", + "linksLock", + "publisher", + "publisherLock", + "readingDirection", + "readingDirectionLock", + "sharingLabels", + "sharingLabelsLock", + "status", + "statusLock", + "summary", + "summaryLock", + "tags", + "tagsLock", + "title", + "titleLock", + "titleSort", + "titleSortLock", + "totalBookCountLock" + ], + "type": "object", + "properties": { + "ageRating": { + "type": "integer", + "format": "int32" + }, + "ageRatingLock": { + "type": "boolean" + }, + "alternateTitles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AlternateTitleDto" + } + }, + "alternateTitlesLock": { + "type": "boolean" + }, + "created": { + "type": "string", + "format": "date-time" + }, + "genres": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, + "genresLock": { + "type": "boolean" + }, + "language": { + "type": "string" + }, + "languageLock": { + "type": "boolean" + }, + "lastModified": { + "type": "string", + "format": "date-time" + }, + "links": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebLinkDto" + } + }, + "linksLock": { + "type": "boolean" + }, + "publisher": { + "type": "string" + }, + "publisherLock": { + "type": "boolean" + }, + "readingDirection": { + "type": "string" + }, + "readingDirectionLock": { + "type": "boolean" + }, + "sharingLabels": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, + "sharingLabelsLock": { + "type": "boolean" + }, + "status": { + "type": "string" + }, + "statusLock": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "summaryLock": { + "type": "boolean" + }, + "tags": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, + "tagsLock": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "titleLock": { + "type": "boolean" + }, + "titleSort": { + "type": "string" + }, + "titleSortLock": { + "type": "boolean" + }, + "totalBookCount": { + "type": "integer", + "format": "int32" + }, + "totalBookCountLock": { + "type": "boolean" + } + } + }, + "SeriesMetadataUpdateDto": { + "type": "object", + "properties": { + "ageRating": { + "type": "integer", + "format": "int32" + }, + "ageRatingLock": { + "type": "boolean" + }, + "alternateTitles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AlternateTitleUpdateDto" + } + }, + "alternateTitlesLock": { + "type": "boolean" + }, + "genres": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, + "genresLock": { + "type": "boolean" + }, + "language": { + "type": "string" + }, + "languageLock": { + "type": "boolean" + }, + "links": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebLinkUpdateDto" + } + }, + "linksLock": { + "type": "boolean" + }, + "publisher": { + "type": "string" + }, + "publisherLock": { + "type": "boolean" + }, + "readingDirection": { + "type": "string", + "enum": [ + "LEFT_TO_RIGHT", + "RIGHT_TO_LEFT", + "VERTICAL", + "WEBTOON" + ] + }, + "readingDirectionLock": { + "type": "boolean" + }, + "sharingLabels": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, + "sharingLabelsLock": { + "type": "boolean" + }, + "status": { + "type": "string", + "enum": [ + "ENDED", + "ONGOING", + "ABANDONED", + "HIATUS" + ] + }, + "statusLock": { + "type": "boolean" + }, + "summary": { + "type": "string" + }, + "summaryLock": { + "type": "boolean" + }, + "tags": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, + "tagsLock": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "titleLock": { + "type": "boolean" + }, + "titleSort": { + "type": "string" + }, + "titleSortLock": { + "type": "boolean" + }, + "totalBookCount": { + "type": "integer", + "format": "int32" + }, + "totalBookCountLock": { + "type": "boolean" + } + }, + "description": "Metadata fields to update. Set a field to null to unset the metadata. You can omit fields you don\u0027t want to update." + }, "SeriesSearch": { "type": "object", "properties": { @@ -13475,6 +12948,173 @@ } ] }, + "SettingMultiSourceInteger": { + "required": [ + "configurationSource", + "databaseSource", + "effectiveValue" + ], + "type": "object", + "properties": { + "configurationSource": { + "type": "integer", + "format": "int32" + }, + "databaseSource": { + "type": "integer", + "format": "int32" + }, + "effectiveValue": { + "type": "integer", + "format": "int32" + } + } + }, + "SettingMultiSourceString": { + "required": [ + "configurationSource", + "databaseSource", + "effectiveValue" + ], + "type": "object", + "properties": { + "configurationSource": { + "type": "string" + }, + "databaseSource": { + "type": "string" + }, + "effectiveValue": { + "type": "string" + } + } + }, + "SettingsDto": { + "required": [ + "deleteEmptyCollections", + "deleteEmptyReadLists", + "kepubifyPath", + "koboProxy", + "rememberMeDurationDays", + "serverContextPath", + "serverPort", + "taskPoolSize", + "thumbnailSize" + ], + "type": "object", + "properties": { + "deleteEmptyCollections": { + "type": "boolean" + }, + "deleteEmptyReadLists": { + "type": "boolean" + }, + "kepubifyPath": { + "$ref": "#/components/schemas/SettingMultiSourceString" + }, + "koboPort": { + "type": "integer", + "format": "int32" + }, + "koboProxy": { + "type": "boolean" + }, + "rememberMeDurationDays": { + "type": "integer", + "format": "int64" + }, + "serverContextPath": { + "$ref": "#/components/schemas/SettingMultiSourceString" + }, + "serverPort": { + "$ref": "#/components/schemas/SettingMultiSourceInteger" + }, + "taskPoolSize": { + "type": "integer", + "format": "int32" + }, + "thumbnailSize": { + "type": "string", + "enum": [ + "DEFAULT", + "MEDIUM", + "LARGE", + "XLARGE" + ] + } + } + }, + "SettingsUpdateDto": { + "type": "object", + "properties": { + "deleteEmptyCollections": { + "type": "boolean" + }, + "deleteEmptyReadLists": { + "type": "boolean" + }, + "kepubifyPath": { + "type": "string" + }, + "koboPort": { + "maximum": 65535, + "type": "integer", + "format": "int32" + }, + "koboProxy": { + "type": "boolean" + }, + "rememberMeDurationDays": { + "type": "integer", + "format": "int64" + }, + "renewRememberMeKey": { + "type": "boolean" + }, + "serverContextPath": { + "pattern": "^\\/[\\w-\\/]*[a-zA-Z0-9]$", + "type": "string" + }, + "serverPort": { + "maximum": 65535, + "type": "integer", + "format": "int32" + }, + "taskPoolSize": { + "type": "integer", + "format": "int32" + }, + "thumbnailSize": { + "type": "string", + "enum": [ + "DEFAULT", + "MEDIUM", + "LARGE", + "XLARGE" + ] + } + }, + "description": "Fields to update. You can omit fields you don\u0027t want to update." + }, + "SharedLibrariesUpdateDto": { + "required": [ + "all", + "libraryIds" + ], + "type": "object", + "properties": { + "all": { + "type": "boolean" + }, + "libraryIds": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + }, "SharingLabel": { "required": [ "sharingLabel" @@ -13501,6 +13141,23 @@ } ] }, + "SortObject": { + "type": "object", + "properties": { + "empty": { + "type": "boolean" + }, + "sorted": { + "type": "boolean" + }, + "unsorted": { + "type": "boolean" + } + } + }, + "StreamingResponseBody": { + "type": "object" + }, "StringOp": { "required": [ "operator" @@ -13515,6 +13172,99 @@ "propertyName": "operator" } }, + "TachiyomiReadProgressDto": { + "required": [ + "booksCount", + "booksInProgressCount", + "booksReadCount", + "booksUnreadCount", + "lastReadContinuousIndex" + ], + "type": "object", + "properties": { + "booksCount": { + "type": "integer", + "format": "int32" + }, + "booksInProgressCount": { + "type": "integer", + "format": "int32" + }, + "booksReadCount": { + "type": "integer", + "format": "int32" + }, + "booksUnreadCount": { + "type": "integer", + "format": "int32" + }, + "lastReadContinuousIndex": { + "type": "integer", + "format": "int32" + } + } + }, + "TachiyomiReadProgressUpdateDto": { + "required": [ + "lastBookRead" + ], + "type": "object", + "properties": { + "lastBookRead": { + "type": "integer", + "format": "int32" + } + } + }, + "TachiyomiReadProgressUpdateV2Dto": { + "required": [ + "lastBookNumberSortRead" + ], + "type": "object", + "properties": { + "lastBookNumberSortRead": { + "type": "number", + "format": "float" + } + } + }, + "TachiyomiReadProgressV2Dto": { + "required": [ + "booksCount", + "booksInProgressCount", + "booksReadCount", + "booksUnreadCount", + "lastReadContinuousNumberSort", + "maxNumberSort" + ], + "type": "object", + "properties": { + "booksCount": { + "type": "integer", + "format": "int32" + }, + "booksInProgressCount": { + "type": "integer", + "format": "int32" + }, + "booksReadCount": { + "type": "integer", + "format": "int32" + }, + "booksUnreadCount": { + "type": "integer", + "format": "int32" + }, + "lastReadContinuousNumberSort": { + "type": "number", + "format": "float" + }, + "maxNumberSort": { + "type": "number", + "format": "float" + } + } + }, "Tag": { "required": [ "tag" @@ -13544,6 +13294,188 @@ } ] }, + "Text": { + "type": "object", + "properties": { + "after": { + "type": "string" + }, + "before": { + "type": "string" + }, + "highlight": { + "type": "string" + } + } + }, + "ThumbnailBookDto": { + "required": [ + "bookId", + "fileSize", + "height", + "id", + "mediaType", + "selected", + "type", + "width" + ], + "type": "object", + "properties": { + "bookId": { + "type": "string" + }, + "fileSize": { + "type": "integer", + "format": "int64" + }, + "height": { + "type": "integer", + "format": "int32" + }, + "id": { + "type": "string" + }, + "mediaType": { + "type": "string" + }, + "selected": { + "type": "boolean" + }, + "type": { + "type": "string" + }, + "width": { + "type": "integer", + "format": "int32" + } + } + }, + "ThumbnailReadListDto": { + "required": [ + "fileSize", + "height", + "id", + "mediaType", + "readListId", + "selected", + "type", + "width" + ], + "type": "object", + "properties": { + "fileSize": { + "type": "integer", + "format": "int64" + }, + "height": { + "type": "integer", + "format": "int32" + }, + "id": { + "type": "string" + }, + "mediaType": { + "type": "string" + }, + "readListId": { + "type": "string" + }, + "selected": { + "type": "boolean" + }, + "type": { + "type": "string" + }, + "width": { + "type": "integer", + "format": "int32" + } + } + }, + "ThumbnailSeriesCollectionDto": { + "required": [ + "collectionId", + "fileSize", + "height", + "id", + "mediaType", + "selected", + "type", + "width" + ], + "type": "object", + "properties": { + "collectionId": { + "type": "string" + }, + "fileSize": { + "type": "integer", + "format": "int64" + }, + "height": { + "type": "integer", + "format": "int32" + }, + "id": { + "type": "string" + }, + "mediaType": { + "type": "string" + }, + "selected": { + "type": "boolean" + }, + "type": { + "type": "string" + }, + "width": { + "type": "integer", + "format": "int32" + } + } + }, + "ThumbnailSeriesDto": { + "required": [ + "fileSize", + "height", + "id", + "mediaType", + "selected", + "seriesId", + "type", + "width" + ], + "type": "object", + "properties": { + "fileSize": { + "type": "integer", + "format": "int64" + }, + "height": { + "type": "integer", + "format": "int32" + }, + "id": { + "type": "string" + }, + "mediaType": { + "type": "string" + }, + "selected": { + "type": "boolean" + }, + "seriesId": { + "type": "string" + }, + "type": { + "type": "string" + }, + "width": { + "type": "integer", + "format": "int32" + } + } + }, "Title": { "required": [ "title" @@ -13635,1965 +13567,140 @@ } ] }, - "AlternateTitleDto": { + "TransientBookDto": { "required": [ - "label", - "title" - ], - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "title": { - "type": "string" - } - } - }, - "AuthorDto": { - "required": [ - "name", - "role" - ], - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "role": { - "type": "string" - } - } - }, - "BookMetadataAggregationDto": { - "required": [ - "authors", - "created", - "lastModified", - "summary", - "summaryNumber", - "tags" - ], - "type": "object", - "properties": { - "authors": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AuthorDto" - } - }, - "tags": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - }, - "releaseDate": { - "type": "string", - "format": "date" - }, - "summary": { - "type": "string" - }, - "summaryNumber": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "lastModified": { - "type": "string", - "format": "date-time" - } - } - }, - "PageSeriesDto": { - "type": "object", - "properties": { - "totalElements": { - "type": "integer", - "format": "int64" - }, - "totalPages": { - "type": "integer", - "format": "int32" - }, - "pageable": { - "$ref": "#/components/schemas/PageableObject" - }, - "size": { - "type": "integer", - "format": "int32" - }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SeriesDto" - } - }, - "number": { - "type": "integer", - "format": "int32" - }, - "sort": { - "$ref": "#/components/schemas/SortObject" - }, - "numberOfElements": { - "type": "integer", - "format": "int32" - }, - "first": { - "type": "boolean" - }, - "last": { - "type": "boolean" - }, - "empty": { - "type": "boolean" - } - } - }, - "PageableObject": { - "type": "object", - "properties": { - "paged": { - "type": "boolean" - }, - "pageNumber": { - "type": "integer", - "format": "int32" - }, - "pageSize": { - "type": "integer", - "format": "int32" - }, - "unpaged": { - "type": "boolean" - }, - "offset": { - "type": "integer", - "format": "int64" - }, - "sort": { - "$ref": "#/components/schemas/SortObject" - } - } - }, - "SeriesDto": { - "required": [ - "booksCount", - "booksInProgressCount", - "booksMetadata", - "booksReadCount", - "booksUnreadCount", - "created", - "deleted", + "comment", "fileLastModified", + "files", "id", - "lastModified", - "libraryId", - "metadata", + "mediaType", "name", - "oneshot", + "pages", + "size", + "sizeBytes", + "status", "url" ], "type": "object", "properties": { - "id": { + "comment": { "type": "string" }, - "libraryId": { - "type": "string" - }, - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "lastModified": { - "type": "string", - "format": "date-time" - }, "fileLastModified": { "type": "string", "format": "date-time" }, - "booksCount": { - "type": "integer", - "format": "int32" - }, - "booksReadCount": { - "type": "integer", - "format": "int32" - }, - "booksUnreadCount": { - "type": "integer", - "format": "int32" - }, - "booksInProgressCount": { - "type": "integer", - "format": "int32" - }, - "metadata": { - "$ref": "#/components/schemas/SeriesMetadataDto" - }, - "booksMetadata": { - "$ref": "#/components/schemas/BookMetadataAggregationDto" - }, - "deleted": { - "type": "boolean" - }, - "oneshot": { - "type": "boolean" - } - } - }, - "SeriesMetadataDto": { - "required": [ - "ageRatingLock", - "alternateTitles", - "alternateTitlesLock", - "created", - "genres", - "genresLock", - "language", - "languageLock", - "lastModified", - "links", - "linksLock", - "publisher", - "publisherLock", - "readingDirection", - "readingDirectionLock", - "sharingLabels", - "sharingLabelsLock", - "status", - "statusLock", - "summary", - "summaryLock", - "tags", - "tagsLock", - "title", - "titleLock", - "titleSort", - "titleSortLock", - "totalBookCountLock" - ], - "type": "object", - "properties": { - "status": { - "type": "string" - }, - "statusLock": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "titleLock": { - "type": "boolean" - }, - "titleSort": { - "type": "string" - }, - "titleSortLock": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "summaryLock": { - "type": "boolean" - }, - "readingDirection": { - "type": "string" - }, - "readingDirectionLock": { - "type": "boolean" - }, - "publisher": { - "type": "string" - }, - "publisherLock": { - "type": "boolean" - }, - "ageRating": { - "type": "integer", - "format": "int32" - }, - "ageRatingLock": { - "type": "boolean" - }, - "language": { - "type": "string" - }, - "languageLock": { - "type": "boolean" - }, - "genres": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - }, - "genresLock": { - "type": "boolean" - }, - "tags": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - }, - "tagsLock": { - "type": "boolean" - }, - "totalBookCount": { - "type": "integer", - "format": "int32" - }, - "totalBookCountLock": { - "type": "boolean" - }, - "sharingLabels": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - }, - "sharingLabelsLock": { - "type": "boolean" - }, - "links": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebLinkDto" - } - }, - "linksLock": { - "type": "boolean" - }, - "alternateTitles": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AlternateTitleDto" - } - }, - "alternateTitlesLock": { - "type": "boolean" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "lastModified": { - "type": "string", - "format": "date-time" - } - } - }, - "SortObject": { - "type": "object", - "properties": { - "sorted": { - "type": "boolean" - }, - "unsorted": { - "type": "boolean" - }, - "empty": { - "type": "boolean" - } - } - }, - "WebLinkDto": { - "required": [ - "label", - "url" - ], - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "GroupCountDto": { - "required": [ - "count", - "group" - ], - "type": "object", - "properties": { - "group": { - "type": "string" - }, - "count": { - "type": "integer", - "format": "int32" - } - } - }, - "ReadListCreationDto": { - "required": [ - "bookIds", - "name", - "ordered", - "summary" - ], - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "summary": { - "type": "string" - }, - "ordered": { - "type": "boolean" - }, - "bookIds": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "ReadListDto": { - "required": [ - "bookIds", - "createdDate", - "filtered", - "id", - "lastModifiedDate", - "name", - "ordered", - "summary" - ], - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "summary": { - "type": "string" - }, - "ordered": { - "type": "boolean" - }, - "bookIds": { - "type": "array", - "items": { - "type": "string" - } - }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - }, - "filtered": { - "type": "boolean" - } - } - }, - "ThumbnailReadListDto": { - "required": [ - "fileSize", - "height", - "id", - "mediaType", - "readListId", - "selected", - "type", - "width" - ], - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "readListId": { - "type": "string" - }, - "type": { - "type": "string" - }, - "selected": { - "type": "boolean" - }, - "mediaType": { - "type": "string" - }, - "fileSize": { - "type": "integer", - "format": "int64" - }, - "width": { - "type": "integer", - "format": "int32" - }, - "height": { - "type": "integer", - "format": "int32" - } - } - }, - "ReadListMatchDto": { - "required": [ - "errorCode", - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "errorCode": { - "type": "string" - } - } - }, - "ReadListRequestBookDto": { - "required": [ - "number", - "series" - ], - "type": "object", - "properties": { - "series": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - }, - "number": { - "type": "string" - } - } - }, - "ReadListRequestBookMatchBookDto": { - "required": [ - "bookId", - "number", - "title" - ], - "type": "object", - "properties": { - "bookId": { - "type": "string" - }, - "number": { - "type": "string" - }, - "title": { - "type": "string" - } - } - }, - "ReadListRequestBookMatchDto": { - "required": [ - "books", - "series" - ], - "type": "object", - "properties": { - "series": { - "$ref": "#/components/schemas/ReadListRequestBookMatchSeriesDto" - }, - "books": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ReadListRequestBookMatchBookDto" - } - } - } - }, - "ReadListRequestBookMatchSeriesDto": { - "required": [ - "seriesId", - "title" - ], - "type": "object", - "properties": { - "seriesId": { - "type": "string" - }, - "title": { - "type": "string" - }, - "releaseDate": { - "type": "string", - "format": "date" - } - } - }, - "ReadListRequestBookMatchesDto": { - "required": [ - "matches", - "request" - ], - "type": "object", - "properties": { - "request": { - "$ref": "#/components/schemas/ReadListRequestBookDto" - }, - "matches": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ReadListRequestBookMatchDto" - } - } - } - }, - "ReadListRequestMatchDto": { - "required": [ - "errorCode", - "readListMatch", - "requests" - ], - "type": "object", - "properties": { - "readListMatch": { - "$ref": "#/components/schemas/ReadListMatchDto" - }, - "requests": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ReadListRequestBookMatchesDto" - } - }, - "errorCode": { - "type": "string" - } - } - }, - "PageHashMatchDto": { - "required": [ - "bookId", - "fileName", - "fileSize", - "mediaType", - "pageNumber", - "url" - ], - "type": "object", - "properties": { - "bookId": { - "type": "string" - }, - "url": { - "type": "string" - }, - "pageNumber": { - "type": "integer", - "format": "int32" - }, - "fileName": { - "type": "string" - }, - "fileSize": { - "type": "integer", - "format": "int64" - }, - "mediaType": { - "type": "string" - } - } - }, - "LibraryCreationDto": { - "required": [ - "analyzeDimensions", - "convertToCbz", - "emptyTrashAfterScan", - "hashFiles", - "hashKoreader", - "hashPages", - "importBarcodeIsbn", - "importComicInfoBook", - "importComicInfoCollection", - "importComicInfoReadList", - "importComicInfoSeries", - "importComicInfoSeriesAppendVolume", - "importEpubBook", - "importEpubSeries", - "importLocalArtwork", - "importMylarSeries", - "name", - "repairExtensions", - "root", - "scanCbx", - "scanDirectoryExclusions", - "scanEpub", - "scanForceModifiedTime", - "scanInterval", - "scanOnStartup", - "scanPdf", - "seriesCover" - ], - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "root": { - "type": "string" - }, - "importComicInfoBook": { - "type": "boolean" - }, - "importComicInfoSeries": { - "type": "boolean" - }, - "importComicInfoCollection": { - "type": "boolean" - }, - "importComicInfoReadList": { - "type": "boolean" - }, - "importComicInfoSeriesAppendVolume": { - "type": "boolean" - }, - "importEpubBook": { - "type": "boolean" - }, - "importEpubSeries": { - "type": "boolean" - }, - "importMylarSeries": { - "type": "boolean" - }, - "importLocalArtwork": { - "type": "boolean" - }, - "importBarcodeIsbn": { - "type": "boolean" - }, - "scanForceModifiedTime": { - "type": "boolean" - }, - "scanInterval": { - "type": "string", - "enum": [ - "DISABLED", - "HOURLY", - "EVERY_6H", - "EVERY_12H", - "DAILY", - "WEEKLY" - ] - }, - "scanOnStartup": { - "type": "boolean" - }, - "scanCbx": { - "type": "boolean" - }, - "scanPdf": { - "type": "boolean" - }, - "scanEpub": { - "type": "boolean" - }, - "scanDirectoryExclusions": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - }, - "repairExtensions": { - "type": "boolean" - }, - "convertToCbz": { - "type": "boolean" - }, - "emptyTrashAfterScan": { - "type": "boolean" - }, - "seriesCover": { - "type": "string", - "enum": [ - "FIRST", - "FIRST_UNREAD_OR_FIRST", - "FIRST_UNREAD_OR_LAST", - "LAST" - ] - }, - "hashFiles": { - "type": "boolean" - }, - "hashPages": { - "type": "boolean" - }, - "hashKoreader": { - "type": "boolean" - }, - "analyzeDimensions": { - "type": "boolean" - }, - "oneshotsDirectory": { - "type": "string" - } - } - }, - "LibraryDto": { - "required": [ - "analyzeDimensions", - "convertToCbz", - "emptyTrashAfterScan", - "hashFiles", - "hashKoreader", - "hashPages", - "id", - "importBarcodeIsbn", - "importComicInfoBook", - "importComicInfoCollection", - "importComicInfoReadList", - "importComicInfoSeries", - "importComicInfoSeriesAppendVolume", - "importEpubBook", - "importEpubSeries", - "importLocalArtwork", - "importMylarSeries", - "name", - "repairExtensions", - "root", - "scanCbx", - "scanDirectoryExclusions", - "scanEpub", - "scanForceModifiedTime", - "scanInterval", - "scanOnStartup", - "scanPdf", - "seriesCover", - "unavailable" - ], - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "root": { - "type": "string" - }, - "importComicInfoBook": { - "type": "boolean" - }, - "importComicInfoSeries": { - "type": "boolean" - }, - "importComicInfoCollection": { - "type": "boolean" - }, - "importComicInfoReadList": { - "type": "boolean" - }, - "importComicInfoSeriesAppendVolume": { - "type": "boolean" - }, - "importEpubBook": { - "type": "boolean" - }, - "importEpubSeries": { - "type": "boolean" - }, - "importMylarSeries": { - "type": "boolean" - }, - "importLocalArtwork": { - "type": "boolean" - }, - "importBarcodeIsbn": { - "type": "boolean" - }, - "scanForceModifiedTime": { - "type": "boolean" - }, - "scanInterval": { - "type": "string", - "enum": [ - "DISABLED", - "HOURLY", - "EVERY_6H", - "EVERY_12H", - "DAILY", - "WEEKLY" - ] - }, - "scanOnStartup": { - "type": "boolean" - }, - "scanCbx": { - "type": "boolean" - }, - "scanPdf": { - "type": "boolean" - }, - "scanEpub": { - "type": "boolean" - }, - "scanDirectoryExclusions": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - }, - "repairExtensions": { - "type": "boolean" - }, - "convertToCbz": { - "type": "boolean" - }, - "emptyTrashAfterScan": { - "type": "boolean" - }, - "seriesCover": { - "type": "string", - "enum": [ - "FIRST", - "FIRST_UNREAD_OR_FIRST", - "FIRST_UNREAD_OR_LAST", - "LAST" - ] - }, - "hashFiles": { - "type": "boolean" - }, - "hashPages": { - "type": "boolean" - }, - "hashKoreader": { - "type": "boolean" - }, - "analyzeDimensions": { - "type": "boolean" - }, - "oneshotsDirectory": { - "type": "string" - }, - "unavailable": { - "type": "boolean" - } - } - }, - "DirectoryRequestDto": { - "required": [ - "path", - "showFiles" - ], - "type": "object", - "properties": { - "path": { - "type": "string" - }, - "showFiles": { - "type": "boolean" - } - } - }, - "DirectoryListingDto": { - "required": [ - "directories", - "files" - ], - "type": "object", - "properties": { - "parent": { - "type": "string" - }, - "directories": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PathDto" - } - }, "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PathDto" - } - } - } - }, - "PathDto": { - "required": [ - "name", - "path", - "type" - ], - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - } - } - }, - "CollectionCreationDto": { - "required": [ - "name", - "ordered", - "seriesIds" - ], - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "ordered": { - "type": "boolean" - }, - "seriesIds": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "CollectionDto": { - "required": [ - "createdDate", - "filtered", - "id", - "lastModifiedDate", - "name", - "ordered", - "seriesIds" - ], - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "ordered": { - "type": "boolean" - }, - "seriesIds": { "type": "array", "items": { "type": "string" } }, - "createdDate": { - "type": "string", - "format": "date-time" - }, - "lastModifiedDate": { - "type": "string", - "format": "date-time" - }, - "filtered": { - "type": "boolean" - } - } - }, - "ThumbnailSeriesCollectionDto": { - "required": [ - "collectionId", - "fileSize", - "height", - "id", - "mediaType", - "selected", - "type", - "width" - ], - "type": "object", - "properties": { "id": { "type": "string" }, - "collectionId": { - "type": "string" - }, - "type": { - "type": "string" - }, - "selected": { - "type": "boolean" - }, "mediaType": { "type": "string" }, - "fileSize": { - "type": "integer", - "format": "int64" - }, - "width": { - "type": "integer", - "format": "int32" - }, - "height": { - "type": "integer", - "format": "int32" - } - } - }, - "ThumbnailBookDto": { - "required": [ - "bookId", - "fileSize", - "height", - "id", - "mediaType", - "selected", - "type", - "width" - ], - "type": "object", - "properties": { - "id": { + "name": { "type": "string" }, - "bookId": { - "type": "string" + "number": { + "type": "number", + "format": "float" }, - "type": { - "type": "string" - }, - "selected": { - "type": "boolean" - }, - "mediaType": { - "type": "string" - }, - "fileSize": { - "type": "integer", - "format": "int64" - }, - "width": { - "type": "integer", - "format": "int32" - }, - "height": { - "type": "integer", - "format": "int32" - } - } - }, - "AllOfBook": { - "required": [ - "allOf" - ], - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/Book" - }, - { - "type": "object", - "properties": { - "allOf": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/AllOfBook" - }, - { - "$ref": "#/components/schemas/AnyOfBook" - }, - { - "$ref": "#/components/schemas/Author" - }, - { - "$ref": "#/components/schemas/Deleted" - }, - { - "$ref": "#/components/schemas/LibraryId" - }, - { - "$ref": "#/components/schemas/MediaProfile" - }, - { - "$ref": "#/components/schemas/MediaStatus" - }, - { - "$ref": "#/components/schemas/NumberSort" - }, - { - "$ref": "#/components/schemas/OneShot" - }, - { - "$ref": "#/components/schemas/Poster" - }, - { - "$ref": "#/components/schemas/ReadListId" - }, - { - "$ref": "#/components/schemas/ReadStatus" - }, - { - "$ref": "#/components/schemas/ReleaseDate" - }, - { - "$ref": "#/components/schemas/SeriesId" - }, - { - "$ref": "#/components/schemas/Tag" - }, - { - "$ref": "#/components/schemas/Title" - } - ] - } - } + "pages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PageDto" } - } - ] - }, - "AnyOfBook": { - "required": [ - "anyOf" - ], - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/Book" - }, - { - "type": "object", - "properties": { - "anyOf": { - "type": "array", - "items": { - "oneOf": [ - { - "$ref": "#/components/schemas/AllOfBook" - }, - { - "$ref": "#/components/schemas/AnyOfBook" - }, - { - "$ref": "#/components/schemas/Author" - }, - { - "$ref": "#/components/schemas/Deleted" - }, - { - "$ref": "#/components/schemas/LibraryId" - }, - { - "$ref": "#/components/schemas/MediaProfile" - }, - { - "$ref": "#/components/schemas/MediaStatus" - }, - { - "$ref": "#/components/schemas/NumberSort" - }, - { - "$ref": "#/components/schemas/OneShot" - }, - { - "$ref": "#/components/schemas/Poster" - }, - { - "$ref": "#/components/schemas/ReadListId" - }, - { - "$ref": "#/components/schemas/ReadStatus" - }, - { - "$ref": "#/components/schemas/ReleaseDate" - }, - { - "$ref": "#/components/schemas/SeriesId" - }, - { - "$ref": "#/components/schemas/Tag" - }, - { - "$ref": "#/components/schemas/Title" - } - ] - } - } - } - } - ] - }, - "Book": { - "type": "object" - }, - "BookSearch": { - "type": "object", - "properties": { - "condition": { - "oneOf": [ - { - "$ref": "#/components/schemas/AllOfBook" - }, - { - "$ref": "#/components/schemas/AnyOfBook" - }, - { - "$ref": "#/components/schemas/Author" - }, - { - "$ref": "#/components/schemas/Deleted" - }, - { - "$ref": "#/components/schemas/LibraryId" - }, - { - "$ref": "#/components/schemas/MediaProfile" - }, - { - "$ref": "#/components/schemas/MediaStatus" - }, - { - "$ref": "#/components/schemas/NumberSort" - }, - { - "$ref": "#/components/schemas/OneShot" - }, - { - "$ref": "#/components/schemas/Poster" - }, - { - "$ref": "#/components/schemas/ReadListId" - }, - { - "$ref": "#/components/schemas/ReadStatus" - }, - { - "$ref": "#/components/schemas/ReleaseDate" - }, - { - "$ref": "#/components/schemas/SeriesId" - }, - { - "$ref": "#/components/schemas/Tag" - }, - { - "$ref": "#/components/schemas/Title" - } - ] - }, - "fullTextSearch": { - "type": "string" - } - } - }, - "EqualityMediaProfile": { - "required": [ - "operator" - ], - "type": "object", - "properties": { - "operator": { - "type": "string" - } - }, - "discriminator": { - "propertyName": "operator" - } - }, - "EqualityPosterMatch": { - "required": [ - "operator" - ], - "type": "object", - "properties": { - "operator": { - "type": "string" - } - }, - "discriminator": { - "propertyName": "operator" - } - }, - "MediaProfile": { - "required": [ - "mediaProfile" - ], - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/Book" - }, - { - "type": "object", - "properties": { - "mediaProfile": { - "oneOf": [ - { - "$ref": "#/components/schemas/Is" - }, - { - "$ref": "#/components/schemas/IsNot" - } - ] - } - } - } - ] - }, - "MediaStatus": { - "required": [ - "mediaStatus" - ], - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/Book" - }, - { - "type": "object", - "properties": { - "mediaStatus": { - "oneOf": [ - { - "$ref": "#/components/schemas/Is" - }, - { - "$ref": "#/components/schemas/IsNot" - } - ] - } - } - } - ] - }, - "NumberSort": { - "required": [ - "numberSort" - ], - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/Book" - }, - { - "type": "object", - "properties": { - "numberSort": { - "oneOf": [ - { - "$ref": "#/components/schemas/GreaterThan" - }, - { - "$ref": "#/components/schemas/Is" - }, - { - "$ref": "#/components/schemas/IsNot" - }, - { - "$ref": "#/components/schemas/LessThan" - } - ] - } - } - } - ] - }, - "NumericFloat": { - "required": [ - "operator" - ], - "type": "object", - "properties": { - "operator": { - "type": "string" - } - }, - "discriminator": { - "propertyName": "operator" - } - }, - "Poster": { - "required": [ - "poster" - ], - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/Book" - }, - { - "type": "object", - "properties": { - "poster": { - "oneOf": [ - { - "$ref": "#/components/schemas/Is" - }, - { - "$ref": "#/components/schemas/IsNot" - } - ] - } - } - } - ] - }, - "ReadListId": { - "required": [ - "readListId" - ], - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/Book" - }, - { - "type": "object", - "properties": { - "readListId": { - "oneOf": [ - { - "$ref": "#/components/schemas/Is" - }, - { - "$ref": "#/components/schemas/IsNot" - } - ] - } - } - } - ] - }, - "SeriesId": { - "required": [ - "seriesId" - ], - "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/Book" - }, - { - "type": "object", - "properties": { - "seriesId": { - "oneOf": [ - { - "$ref": "#/components/schemas/Is" - }, - { - "$ref": "#/components/schemas/IsNot" - } - ] - } - } - } - ] - }, - "BookDto": { - "required": [ - "created", - "deleted", - "fileHash", - "fileLastModified", - "id", - "lastModified", - "libraryId", - "media", - "metadata", - "name", - "number", - "oneshot", - "seriesId", - "seriesTitle", - "size", - "sizeBytes", - "url" - ], - "type": "object", - "properties": { - "id": { - "type": "string" }, "seriesId": { "type": "string" }, - "seriesTitle": { + "size": { "type": "string" }, - "libraryId": { - "type": "string" - }, - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "number": { - "type": "integer", - "format": "int32" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "lastModified": { - "type": "string", - "format": "date-time" - }, - "fileLastModified": { - "type": "string", - "format": "date-time" - }, "sizeBytes": { "type": "integer", "format": "int64" }, - "size": { + "status": { "type": "string" }, - "media": { - "$ref": "#/components/schemas/MediaDto" - }, - "metadata": { - "$ref": "#/components/schemas/BookMetadataDto" - }, - "readProgress": { - "$ref": "#/components/schemas/ReadProgressDto" - }, - "deleted": { - "type": "boolean" - }, - "fileHash": { + "url": { "type": "string" - }, - "oneshot": { - "type": "boolean" } } }, - "BookMetadataDto": { + "UserCreationDto": { "required": [ - "authors", - "authorsLock", - "created", - "isbn", - "isbnLock", - "lastModified", - "links", - "linksLock", - "number", - "numberLock", - "numberSort", - "numberSortLock", - "releaseDateLock", - "summary", - "summaryLock", - "tags", - "tagsLock", - "title", - "titleLock" + "email", + "password", + "roles" ], "type": "object", "properties": { - "title": { + "email": { "type": "string" }, - "titleLock": { - "type": "boolean" - }, - "summary": { + "password": { "type": "string" }, - "summaryLock": { - "type": "boolean" - }, - "number": { - "type": "string" - }, - "numberLock": { - "type": "boolean" - }, - "numberSort": { - "type": "number", - "format": "float" - }, - "numberSortLock": { - "type": "boolean" - }, - "releaseDate": { - "type": "string", - "format": "date" - }, - "releaseDateLock": { - "type": "boolean" - }, - "authors": { + "roles": { "type": "array", "items": { - "$ref": "#/components/schemas/AuthorDto" + "type": "string" } + } + } + }, + "UserDto": { + "required": [ + "email", + "id", + "labelsAllow", + "labelsExclude", + "roles", + "sharedAllLibraries", + "sharedLibrariesIds" + ], + "type": "object", + "properties": { + "ageRestriction": { + "$ref": "#/components/schemas/AgeRestrictionDto" }, - "authorsLock": { - "type": "boolean" + "email": { + "type": "string" }, - "tags": { + "id": { + "type": "string" + }, + "labelsAllow": { "uniqueItems": true, "type": "array", "items": { "type": "string" } }, - "tagsLock": { - "type": "boolean" - }, - "isbn": { - "type": "string" - }, - "isbnLock": { - "type": "boolean" - }, - "links": { + "labelsExclude": { + "uniqueItems": true, "type": "array", "items": { - "$ref": "#/components/schemas/WebLinkDto" + "type": "string" } }, - "linksLock": { - "type": "boolean" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "lastModified": { - "type": "string", - "format": "date-time" - } - } - }, - "MediaDto": { - "required": [ - "comment", - "epubDivinaCompatible", - "epubIsKepub", - "mediaProfile", - "mediaType", - "pagesCount", - "status" - ], - "type": "object", - "properties": { - "status": { - "type": "string" - }, - "mediaType": { - "type": "string" - }, - "pagesCount": { - "type": "integer", - "format": "int32" - }, - "comment": { - "type": "string" - }, - "epubDivinaCompatible": { - "type": "boolean" - }, - "epubIsKepub": { - "type": "boolean" - }, - "mediaProfile": { - "type": "string" - } - } - }, - "PageBookDto": { - "type": "object", - "properties": { - "totalElements": { - "type": "integer", - "format": "int64" - }, - "totalPages": { - "type": "integer", - "format": "int32" - }, - "pageable": { - "$ref": "#/components/schemas/PageableObject" - }, - "size": { - "type": "integer", - "format": "int32" - }, - "content": { + "roles": { + "uniqueItems": true, "type": "array", "items": { - "$ref": "#/components/schemas/BookDto" + "type": "string" } }, - "number": { - "type": "integer", - "format": "int32" - }, - "sort": { - "$ref": "#/components/schemas/SortObject" - }, - "numberOfElements": { - "type": "integer", - "format": "int32" - }, - "first": { + "sharedAllLibraries": { "type": "boolean" }, - "last": { - "type": "boolean" - }, - "empty": { - "type": "boolean" - } - } - }, - "ReadProgressDto": { - "required": [ - "completed", - "created", - "deviceId", - "deviceName", - "lastModified", - "page", - "readDate" - ], - "type": "object", - "properties": { - "page": { - "type": "integer", - "format": "int32" - }, - "completed": { - "type": "boolean" - }, - "readDate": { - "type": "string", - "format": "date-time" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "lastModified": { - "type": "string", - "format": "date-time" - }, - "deviceId": { - "type": "string" - }, - "deviceName": { - "type": "string" - } - } - }, - "BookImportBatchDto": { - "required": [ - "books", - "copyMode" - ], - "type": "object", - "properties": { - "books": { - "type": "array", - "items": { - "$ref": "#/components/schemas/BookImportDto" - } - }, - "copyMode": { - "type": "string", - "enum": [ - "MOVE", - "COPY", - "HARDLINK" - ] - } - } - }, - "BookImportDto": { - "required": [ - "seriesId", - "sourceFile" - ], - "type": "object", - "properties": { - "sourceFile": { - "type": "string" - }, - "seriesId": { - "type": "string" - }, - "upgradeBookId": { - "type": "string" - }, - "destinationName": { - "type": "string" - } - } - }, - "AgeRestrictionUpdateDto": { - "required": [ - "age", - "restriction" - ], - "type": "object", - "properties": { - "age": { - "type": "integer", - "format": "int32" - }, - "restriction": { - "type": "string", - "enum": [ - "ALLOW_ONLY", - "EXCLUDE" - ] - } - } - }, - "SharedLibrariesUpdateDto": { - "required": [ - "all", - "libraryIds" - ], - "type": "object", - "properties": { - "all": { - "type": "boolean" - }, - "libraryIds": { + "sharedLibrariesIds": { "uniqueItems": true, "type": "array", "items": { @@ -15605,13 +13712,6 @@ "UserUpdateDto": { "type": "object", "properties": { - "roles": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - }, "ageRestriction": { "$ref": "#/components/schemas/AgeRestrictionUpdateDto" }, @@ -15629,496 +13729,43 @@ "type": "string" } }, + "roles": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, "sharedLibraries": { "$ref": "#/components/schemas/SharedLibrariesUpdateDto" } } }, - "PasswordUpdateDto": { + "ValidationErrorResponse": { "required": [ - "password" + "violations" ], "type": "object", "properties": { - "password": { - "type": "string" - } - } - }, - "SettingsUpdateDto": { - "type": "object", - "properties": { - "deleteEmptyCollections": { - "type": "boolean" - }, - "deleteEmptyReadLists": { - "type": "boolean" - }, - "rememberMeDurationDays": { - "type": "integer", - "format": "int64" - }, - "renewRememberMeKey": { - "type": "boolean" - }, - "thumbnailSize": { - "type": "string", - "enum": [ - "DEFAULT", - "MEDIUM", - "LARGE", - "XLARGE" - ] - }, - "taskPoolSize": { - "type": "integer", - "format": "int32" - }, - "koboProxy": { - "type": "boolean" - }, - "serverPort": { - "maximum": 65535, - "type": "integer", - "format": "int32" - }, - "serverContextPath": { - "pattern": "^\\/[\\w-\\/]*[a-zA-Z0-9]$", - "type": "string" - }, - "koboPort": { - "maximum": 65535, - "type": "integer", - "format": "int32" - }, - "kepubifyPath": { - "type": "string" - } - } - }, - "AlternateTitleUpdateDto": { - "required": [ - "label", - "title" - ], - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "title": { - "type": "string" - } - } - }, - "SeriesMetadataUpdateDto": { - "type": "object", - "properties": { - "status": { - "type": "string", - "enum": [ - "ENDED", - "ONGOING", - "ABANDONED", - "HIATUS" - ] - }, - "statusLock": { - "type": "boolean" - }, - "title": { - "type": "string" - }, - "titleLock": { - "type": "boolean" - }, - "titleSort": { - "type": "string" - }, - "titleSortLock": { - "type": "boolean" - }, - "summary": { - "type": "string" - }, - "summaryLock": { - "type": "boolean" - }, - "publisher": { - "type": "string" - }, - "publisherLock": { - "type": "boolean" - }, - "readingDirectionLock": { - "type": "boolean" - }, - "ageRatingLock": { - "type": "boolean" - }, - "language": { - "type": "string" - }, - "languageLock": { - "type": "boolean" - }, - "genresLock": { - "type": "boolean" - }, - "tagsLock": { - "type": "boolean" - }, - "totalBookCountLock": { - "type": "boolean" - }, - "sharingLabelsLock": { - "type": "boolean" - }, - "linksLock": { - "type": "boolean" - }, - "alternateTitlesLock": { - "type": "boolean" - }, - "tags": { - "uniqueItems": true, + "violations": { "type": "array", "items": { - "type": "string" - } - }, - "links": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebLinkUpdateDto" - } - }, - "readingDirection": { - "type": "string", - "enum": [ - "LEFT_TO_RIGHT", - "RIGHT_TO_LEFT", - "VERTICAL", - "WEBTOON" - ] - }, - "ageRating": { - "type": "integer", - "format": "int32" - }, - "genres": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - }, - "totalBookCount": { - "type": "integer", - "format": "int32" - }, - "sharingLabels": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - }, - "alternateTitles": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AlternateTitleUpdateDto" - } - } - }, - "description": "Metadata fields to update. Set a field to null to unset the metadata. You can omit fields you don\u0027t want to update." - }, - "WebLinkUpdateDto": { - "required": [ - "label" - ], - "type": "object", - "properties": { - "label": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "ReadListUpdateDto": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "summary": { - "type": "string" - }, - "bookIds": { - "type": "array", - "items": { - "type": "string" - } - }, - "ordered": { - "type": "boolean" - } - } - }, - "CollectionUpdateDto": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "ordered": { - "type": "boolean" - }, - "seriesIds": { - "type": "array", - "items": { - "type": "string" + "$ref": "#/components/schemas/Violation" } } } }, - "ReadProgressUpdateDto": { + "Violation": { "type": "object", "properties": { - "page": { - "type": "integer", - "format": "int32" - }, - "completed": { - "type": "boolean" - } - }, - "description": "page can be omitted if completed is set to true. completed can be omitted, and will be set accordingly depending on the page passed and the total number of pages in the book." - }, - "AuthorUpdateDto": { - "required": [ - "name", - "role" - ], - "type": "object", - "properties": { - "name": { + "fieldName": { "type": "string" }, - "role": { + "message": { "type": "string" } } }, - "BookMetadataUpdateDto": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "titleLock": { - "type": "boolean" - }, - "summaryLock": { - "type": "boolean" - }, - "number": { - "type": "string" - }, - "numberLock": { - "type": "boolean" - }, - "numberSort": { - "type": "number", - "format": "float" - }, - "numberSortLock": { - "type": "boolean" - }, - "releaseDateLock": { - "type": "boolean" - }, - "authorsLock": { - "type": "boolean" - }, - "tagsLock": { - "type": "boolean" - }, - "isbnLock": { - "type": "boolean" - }, - "linksLock": { - "type": "boolean" - }, - "tags": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - }, - "isbn": { - "type": "string" - }, - "links": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebLinkUpdateDto" - } - }, - "authors": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AuthorUpdateDto" - } - }, - "summary": { - "type": "string" - }, - "releaseDate": { - "type": "string", - "format": "date" - } - }, - "description": "Metadata fields to update. Set a field to null to unset the metadata. You can omit fields you don\u0027t want to update." - }, - "FacetDto": { - "required": [ - "links", - "metadata" - ], - "type": "object", - "properties": { - "metadata": { - "$ref": "#/components/schemas/FeedMetadataDto" - }, - "links": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WPLinkDto" - } - } - } - }, - "FeedDto": { - "required": [ - "facets", - "groups", - "links", - "metadata", - "navigation", - "publications" - ], - "type": "object", - "properties": { - "metadata": { - "$ref": "#/components/schemas/FeedMetadataDto" - }, - "links": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WPLinkDto" - } - }, - "navigation": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WPLinkDto" - } - }, - "facets": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FacetDto" - } - }, - "groups": { - "type": "array", - "items": { - "$ref": "#/components/schemas/FeedGroupDto" - } - }, - "publications": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WPPublicationDto" - } - } - } - }, - "FeedGroupDto": { - "required": [ - "links", - "metadata", - "navigation", - "publications" - ], - "type": "object", - "properties": { - "metadata": { - "$ref": "#/components/schemas/FeedMetadataDto" - }, - "links": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WPLinkDto" - } - }, - "navigation": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WPLinkDto" - } - }, - "publications": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WPPublicationDto" - } - } - } - }, - "FeedMetadataDto": { - "required": [ - "title" - ], - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "subTitle": { - "type": "string" - }, - "type": { - "type": "string" - }, - "identifier": { - "type": "string" - }, - "modified": { - "type": "string", - "format": "date-time" - }, - "description": { - "type": "string" - }, - "itemsPerPage": { - "type": "integer", - "format": "int32" - }, - "currentPage": { - "type": "integer", - "format": "int32" - }, - "numberOfItems": { - "type": "integer", - "format": "int64" - } - } - }, "WPBelongsToDto": { "required": [ "collection", @@ -16126,13 +13773,13 @@ ], "type": "object", "properties": { - "series": { + "collection": { "type": "array", "items": { "$ref": "#/components/schemas/WPContributorDto" } }, - "collection": { + "series": { "type": "array", "items": { "$ref": "#/components/schemas/WPContributorDto" @@ -16147,18 +13794,18 @@ ], "type": "object", "properties": { + "links": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WPLinkDto" + } + }, "name": { "type": "string" }, "position": { "type": "number", "format": "float" - }, - "links": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WPLinkDto" - } } } }, @@ -16168,29 +13815,13 @@ ], "type": "object", "properties": { - "title": { - "type": "string" - }, - "rel": { - "type": "string" - }, - "href": { - "type": "string" - }, - "type": { - "type": "string" - }, - "templated": { - "type": "boolean" - }, - "width": { - "type": "integer", - "format": "int32" - }, "height": { "type": "integer", "format": "int32" }, + "href": { + "type": "string" + }, "properties": { "type": "object", "additionalProperties": { @@ -16199,6 +13830,22 @@ "type": "object" } } + }, + "rel": { + "type": "string" + }, + "templated": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + }, + "width": { + "type": "integer", + "format": "int32" } } }, @@ -16221,34 +13868,11 @@ ], "type": "object", "properties": { - "title": { - "type": "string" - }, - "identifier": { - "type": "string" - }, - "type": { - "type": "string" - }, - "conformsTo": { - "type": "string" - }, - "sortAs": { - "type": "string" - }, - "subtitle": { - "type": "string" - }, - "modified": { - "type": "string", - "format": "date-time" - }, - "published": { - "type": "string", - "format": "date" - }, - "language": { - "type": "string" + "artist": { + "type": "array", + "items": { + "type": "string" + } }, "author": { "type": "array", @@ -16256,23 +13880,35 @@ "type": "string" } }, - "translator": { + "belongsTo": { + "$ref": "#/components/schemas/WPBelongsToDto" + }, + "colorist": { "type": "array", "items": { "type": "string" } }, + "conformsTo": { + "type": "string" + }, + "contributor": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": { + "type": "string" + }, "editor": { "type": "array", "items": { "type": "string" } }, - "artist": { - "type": "array", - "items": { - "type": "string" - } + "identifier": { + "type": "string" }, "illustrator": { "type": "array", @@ -16280,48 +13916,45 @@ "type": "string" } }, - "letterer": { - "type": "array", - "items": { - "type": "string" - } - }, - "penciler": { - "type": "array", - "items": { - "type": "string" - } - }, - "colorist": { - "type": "array", - "items": { - "type": "string" - } - }, "inker": { "type": "array", "items": { "type": "string" } }, - "contributor": { + "language": { + "type": "string" + }, + "letterer": { "type": "array", "items": { "type": "string" } }, + "modified": { + "type": "string", + "format": "date-time" + }, + "numberOfPages": { + "type": "integer", + "format": "int32" + }, + "penciler": { + "type": "array", + "items": { + "type": "string" + } + }, + "published": { + "type": "string", + "format": "date" + }, "publisher": { "type": "array", "items": { "type": "string" } }, - "subject": { - "type": "array", - "items": { - "type": "string" - } - }, "readingProgression": { "type": "string", "enum": [ @@ -16332,21 +13965,35 @@ "auto" ] }, - "description": { - "type": "string" - }, - "numberOfPages": { - "type": "integer", - "format": "int32" - }, - "belongsTo": { - "$ref": "#/components/schemas/WPBelongsToDto" - }, "rendition": { "type": "object", "additionalProperties": { "type": "object" } + }, + "sortAs": { + "type": "string" + }, + "subject": { + "type": "array", + "items": { + "type": "string" + } + }, + "subtitle": { + "type": "string" + }, + "title": { + "type": "string" + }, + "translator": { + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "type": "string" } } }, @@ -16366,8 +14013,17 @@ "context": { "type": "string" }, - "metadata": { - "$ref": "#/components/schemas/WPMetadataDto" + "images": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WPLinkDto" + } + }, + "landmarks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WPLinkDto" + } }, "links": { "type": "array", @@ -16375,7 +14031,10 @@ "$ref": "#/components/schemas/WPLinkDto" } }, - "images": { + "metadata": { + "$ref": "#/components/schemas/WPMetadataDto" + }, + "pageList": { "type": "array", "items": { "$ref": "#/components/schemas/WPLinkDto" @@ -16398,1122 +14057,135 @@ "items": { "$ref": "#/components/schemas/WPLinkDto" } - }, - "landmarks": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WPLinkDto" - } - }, - "pageList": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WPLinkDto" - } } } }, - "StreamingResponseBody": { - "type": "object" - }, - "AuthenticationDocumentDto": { + "WebLinkDto": { "required": [ - "authentication", - "id", - "links", - "title" - ], - "type": "object", - "properties": { - "authentication": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AuthenticationFlowDto" - } - }, - "title": { - "type": "string" - }, - "id": { - "type": "string" - }, - "description": { - "type": "string" - }, - "links": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WPLinkDto" - } - } - } - }, - "AuthenticationFlowDto": { - "required": [ - "links", - "type" - ], - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "http://opds-spec.org/auth/basic", - "http://opds-spec.org/auth/oauth/implicit", - "http://opds-spec.org/auth/oauth/password" - ] - }, - "labels": { - "$ref": "#/components/schemas/LabelsDto" - }, - "links": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WPLinkDto" - } - } - } - }, - "LabelsDto": { - "type": "object", - "properties": { - "login": { - "type": "string" - }, - "password": { - "type": "string" - } - } - }, - "OpdsAuthor": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "uri": { - "type": "string", - "format": "uri" - } - } - }, - "OpdsEntry": { - "required": [ - "content", - "id", - "title", - "updated" - ], - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "updated": { - "type": "string", - "format": "date-time" - }, - "id": { - "type": "string" - }, - "content": { - "type": "string" - } - } - }, - "OpdsFeed": { - "required": [ - "author", - "entries", - "id", - "links", - "title", - "updated" - ], - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "title": { - "type": "string" - }, - "updated": { - "type": "string", - "format": "date-time" - }, - "author": { - "$ref": "#/components/schemas/OpdsAuthor" - }, - "links": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpdsLink" - } - }, - "entries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OpdsEntry" - } - } - } - }, - "OpdsLink": { - "required": [ - "href", - "rel", - "type" - ], - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "rel": { - "type": "string" - }, - "href": { - "type": "string" - } - } - }, - "OpenSearchDescription": { - "required": [ - "description", - "inputEncoding", - "outputEncoding", - "shortName", + "label", "url" ], "type": "object", "properties": { - "shortName": { - "maxLength": 16, - "minLength": 1, - "type": "string" - }, - "description": { - "maxLength": 1024, - "minLength": 1, - "type": "string" - }, - "inputEncoding": { - "type": "string" - }, - "outputEncoding": { - "type": "string" - }, - "url": { - "$ref": "#/components/schemas/OpenSearchUrl" - } - } - }, - "OpenSearchUrl": { - "required": [ - "template", - "type" - ], - "type": "object", - "properties": { - "template": { - "type": "string" - }, - "type": { - "type": "string" - } - } - }, - "UserAuthenticationDto": { - "required": [ - "authorized" - ], - "type": "object", - "properties": { - "authorized": { - "type": "string" - } - } - }, - "ResourcesDto": { - "required": [ - "Resources" - ], - "type": "object", - "properties": { - "Resources": { - "$ref": "#/components/schemas/JsonNode" - } - } - }, - "AuthenticationActivityDto": { - "required": [ - "dateTime", - "success" - ], - "type": "object", - "properties": { - "userId": { - "type": "string" - }, - "email": { - "type": "string" - }, - "apiKeyId": { - "type": "string" - }, - "apiKeyComment": { - "type": "string" - }, - "ip": { - "type": "string" - }, - "userAgent": { - "type": "string" - }, - "success": { - "type": "boolean" - }, - "error": { - "type": "string" - }, - "dateTime": { - "type": "string", - "format": "date-time" - }, - "source": { - "type": "string" - } - } - }, - "PageAuthenticationActivityDto": { - "type": "object", - "properties": { - "totalElements": { - "type": "integer", - "format": "int64" - }, - "totalPages": { - "type": "integer", - "format": "int32" - }, - "pageable": { - "$ref": "#/components/schemas/PageableObject" - }, - "size": { - "type": "integer", - "format": "int32" - }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AuthenticationActivityDto" - } - }, - "number": { - "type": "integer", - "format": "int32" - }, - "sort": { - "$ref": "#/components/schemas/SortObject" - }, - "numberOfElements": { - "type": "integer", - "format": "int32" - }, - "first": { - "type": "boolean" - }, - "last": { - "type": "boolean" - }, - "empty": { - "type": "boolean" - } - } - }, - "TachiyomiReadProgressV2Dto": { - "required": [ - "booksCount", - "booksInProgressCount", - "booksReadCount", - "booksUnreadCount", - "lastReadContinuousNumberSort", - "maxNumberSort" - ], - "type": "object", - "properties": { - "booksCount": { - "type": "integer", - "format": "int32" - }, - "booksReadCount": { - "type": "integer", - "format": "int32" - }, - "booksUnreadCount": { - "type": "integer", - "format": "int32" - }, - "booksInProgressCount": { - "type": "integer", - "format": "int32" - }, - "lastReadContinuousNumberSort": { - "type": "number", - "format": "float" - }, - "maxNumberSort": { - "type": "number", - "format": "float" - } - } - }, - "PageAuthorDto": { - "type": "object", - "properties": { - "totalElements": { - "type": "integer", - "format": "int64" - }, - "totalPages": { - "type": "integer", - "format": "int32" - }, - "pageable": { - "$ref": "#/components/schemas/PageableObject" - }, - "size": { - "type": "integer", - "format": "int32" - }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AuthorDto" - } - }, - "number": { - "type": "integer", - "format": "int32" - }, - "sort": { - "$ref": "#/components/schemas/SortObject" - }, - "numberOfElements": { - "type": "integer", - "format": "int32" - }, - "first": { - "type": "boolean" - }, - "last": { - "type": "boolean" - }, - "empty": { - "type": "boolean" - } - } - }, - "SettingMultiSourceInteger": { - "required": [ - "configurationSource", - "databaseSource", - "effectiveValue" - ], - "type": "object", - "properties": { - "configurationSource": { - "type": "integer", - "format": "int32" - }, - "databaseSource": { - "type": "integer", - "format": "int32" - }, - "effectiveValue": { - "type": "integer", - "format": "int32" - } - } - }, - "SettingMultiSourceString": { - "required": [ - "configurationSource", - "databaseSource", - "effectiveValue" - ], - "type": "object", - "properties": { - "configurationSource": { - "type": "string" - }, - "databaseSource": { - "type": "string" - }, - "effectiveValue": { - "type": "string" - } - } - }, - "SettingsDto": { - "required": [ - "deleteEmptyCollections", - "deleteEmptyReadLists", - "kepubifyPath", - "koboProxy", - "rememberMeDurationDays", - "serverContextPath", - "serverPort", - "taskPoolSize", - "thumbnailSize" - ], - "type": "object", - "properties": { - "deleteEmptyCollections": { - "type": "boolean" - }, - "deleteEmptyReadLists": { - "type": "boolean" - }, - "rememberMeDurationDays": { - "type": "integer", - "format": "int64" - }, - "thumbnailSize": { - "type": "string", - "enum": [ - "DEFAULT", - "MEDIUM", - "LARGE", - "XLARGE" - ] - }, - "taskPoolSize": { - "type": "integer", - "format": "int32" - }, - "serverPort": { - "$ref": "#/components/schemas/SettingMultiSourceInteger" - }, - "serverContextPath": { - "$ref": "#/components/schemas/SettingMultiSourceString" - }, - "koboProxy": { - "type": "boolean" - }, - "koboPort": { - "type": "integer", - "format": "int32" - }, - "kepubifyPath": { - "$ref": "#/components/schemas/SettingMultiSourceString" - } - } - }, - "ReleaseDto": { - "required": [ - "description", - "latest", - "preRelease", - "releaseDate", - "url", - "version" - ], - "type": "object", - "properties": { - "version": { - "type": "string" - }, - "releaseDate": { - "type": "string", - "format": "date-time" - }, - "url": { - "type": "string" - }, - "latest": { - "type": "boolean" - }, - "preRelease": { - "type": "boolean" - }, - "description": { - "type": "string" - } - } - }, - "PageReadListDto": { - "type": "object", - "properties": { - "totalElements": { - "type": "integer", - "format": "int64" - }, - "totalPages": { - "type": "integer", - "format": "int32" - }, - "pageable": { - "$ref": "#/components/schemas/PageableObject" - }, - "size": { - "type": "integer", - "format": "int32" - }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ReadListDto" - } - }, - "number": { - "type": "integer", - "format": "int32" - }, - "sort": { - "$ref": "#/components/schemas/SortObject" - }, - "numberOfElements": { - "type": "integer", - "format": "int32" - }, - "first": { - "type": "boolean" - }, - "last": { - "type": "boolean" - }, - "empty": { - "type": "boolean" - } - } - }, - "TachiyomiReadProgressDto": { - "required": [ - "booksCount", - "booksInProgressCount", - "booksReadCount", - "booksUnreadCount", - "lastReadContinuousIndex" - ], - "type": "object", - "properties": { - "booksCount": { - "type": "integer", - "format": "int32" - }, - "booksReadCount": { - "type": "integer", - "format": "int32" - }, - "booksUnreadCount": { - "type": "integer", - "format": "int32" - }, - "booksInProgressCount": { - "type": "integer", - "format": "int32" - }, - "lastReadContinuousIndex": { - "type": "integer", - "format": "int32" - } - } - }, - "PageHashKnownDto": { - "required": [ - "action", - "created", - "deleteCount", - "hash", - "lastModified", - "matchCount" - ], - "type": "object", - "properties": { - "hash": { - "type": "string" - }, - "size": { - "type": "integer", - "format": "int64" - }, - "action": { - "type": "string", - "enum": [ - "DELETE_AUTO", - "DELETE_MANUAL", - "IGNORE" - ] - }, - "deleteCount": { - "type": "integer", - "format": "int32" - }, - "matchCount": { - "type": "integer", - "format": "int32" - }, - "created": { - "type": "string", - "format": "date-time" - }, - "lastModified": { - "type": "string", - "format": "date-time" - } - } - }, - "PagePageHashKnownDto": { - "type": "object", - "properties": { - "totalElements": { - "type": "integer", - "format": "int64" - }, - "totalPages": { - "type": "integer", - "format": "int32" - }, - "pageable": { - "$ref": "#/components/schemas/PageableObject" - }, - "size": { - "type": "integer", - "format": "int32" - }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PageHashKnownDto" - } - }, - "number": { - "type": "integer", - "format": "int32" - }, - "sort": { - "$ref": "#/components/schemas/SortObject" - }, - "numberOfElements": { - "type": "integer", - "format": "int32" - }, - "first": { - "type": "boolean" - }, - "last": { - "type": "boolean" - }, - "empty": { - "type": "boolean" - } - } - }, - "PagePageHashMatchDto": { - "type": "object", - "properties": { - "totalElements": { - "type": "integer", - "format": "int64" - }, - "totalPages": { - "type": "integer", - "format": "int32" - }, - "pageable": { - "$ref": "#/components/schemas/PageableObject" - }, - "size": { - "type": "integer", - "format": "int32" - }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PageHashMatchDto" - } - }, - "number": { - "type": "integer", - "format": "int32" - }, - "sort": { - "$ref": "#/components/schemas/SortObject" - }, - "numberOfElements": { - "type": "integer", - "format": "int32" - }, - "first": { - "type": "boolean" - }, - "last": { - "type": "boolean" - }, - "empty": { - "type": "boolean" - } - } - }, - "PageHashUnknownDto": { - "required": [ - "hash", - "matchCount" - ], - "type": "object", - "properties": { - "hash": { - "type": "string" - }, - "size": { - "type": "integer", - "format": "int64" - }, - "matchCount": { - "type": "integer", - "format": "int32" - } - } - }, - "PagePageHashUnknownDto": { - "type": "object", - "properties": { - "totalElements": { - "type": "integer", - "format": "int64" - }, - "totalPages": { - "type": "integer", - "format": "int32" - }, - "pageable": { - "$ref": "#/components/schemas/PageableObject" - }, - "size": { - "type": "integer", - "format": "int32" - }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PageHashUnknownDto" - } - }, - "number": { - "type": "integer", - "format": "int32" - }, - "sort": { - "$ref": "#/components/schemas/SortObject" - }, - "numberOfElements": { - "type": "integer", - "format": "int32" - }, - "first": { - "type": "boolean" - }, - "last": { - "type": "boolean" - }, - "empty": { - "type": "boolean" - } - } - }, - "HistoricalEventDto": { - "required": [ - "properties", - "timestamp", - "type" - ], - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "bookId": { - "type": "string" - }, - "seriesId": { - "type": "string" - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "PageHistoricalEventDto": { - "type": "object", - "properties": { - "totalElements": { - "type": "integer", - "format": "int64" - }, - "totalPages": { - "type": "integer", - "format": "int32" - }, - "pageable": { - "$ref": "#/components/schemas/PageableObject" - }, - "size": { - "type": "integer", - "format": "int32" - }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HistoricalEventDto" - } - }, - "number": { - "type": "integer", - "format": "int32" - }, - "sort": { - "$ref": "#/components/schemas/SortObject" - }, - "numberOfElements": { - "type": "integer", - "format": "int32" - }, - "first": { - "type": "boolean" - }, - "last": { - "type": "boolean" - }, - "empty": { - "type": "boolean" - } - } - }, - "PageCollectionDto": { - "type": "object", - "properties": { - "totalElements": { - "type": "integer", - "format": "int64" - }, - "totalPages": { - "type": "integer", - "format": "int32" - }, - "pageable": { - "$ref": "#/components/schemas/PageableObject" - }, - "size": { - "type": "integer", - "format": "int32" - }, - "content": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CollectionDto" - } - }, - "number": { - "type": "integer", - "format": "int32" - }, - "sort": { - "$ref": "#/components/schemas/SortObject" - }, - "numberOfElements": { - "type": "integer", - "format": "int32" - }, - "first": { - "type": "boolean" - }, - "last": { - "type": "boolean" - }, - "empty": { - "type": "boolean" - } - } - }, - "ClaimStatus": { - "required": [ - "isClaimed" - ], - "type": "object", - "properties": { - "isClaimed": { - "type": "boolean" - } - } - }, - "R2Positions": { - "required": [ - "positions", - "total" - ], - "type": "object", - "properties": { - "total": { - "type": "integer", - "format": "int32" - }, - "positions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/R2Locator" - } - } - } - }, - "MediaType": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "subtype": { - "type": "string" - }, - "parameters": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "qualityValue": { - "type": "number", - "format": "double" - }, - "wildcardType": { - "type": "boolean" - }, - "wildcardSubtype": { - "type": "boolean" - }, - "subtypeSuffix": { - "type": "string" - }, - "concrete": { - "type": "boolean" - }, - "charset": { - "type": "string" - } - } - }, - "ItemDto": { - "required": [ - "id", - "tags" - ], - "type": "object", - "properties": { - "id": { + "label": { "type": "string" }, "url": { "type": "string" - }, - "title": { - "type": "string" - }, - "summary": { - "type": "string" - }, - "content_html": { - "type": "string" - }, - "date_modified": { - "type": "string", - "format": "date-time" - }, - "author": { - "$ref": "#/components/schemas/AuthorDto" - }, - "tags": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - }, - "_komga": { - "$ref": "#/components/schemas/KomgaExtensionDto" } } }, - "JsonFeedDto": { + "WebLinkUpdateDto": { "required": [ - "items", - "title", - "version" + "label" ], "type": "object", "properties": { - "version": { + "label": { "type": "string" }, - "title": { - "type": "string" - }, - "home_page_url": { - "type": "string" - }, - "description": { - "type": "string" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ItemDto" - } - } - } - }, - "KomgaExtensionDto": { - "required": [ - "read" - ], - "type": "object", - "properties": { - "read": { - "type": "boolean" - } - } - }, - "OAuth2ClientDto": { - "required": [ - "name", - "registrationId" - ], - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "registrationId": { + "url": { "type": "string" } } } }, "securitySchemes": { + "apiKey": { + "in": "header", + "name": "X-API-Key", + "type": "apiKey" + }, "basicAuth": { - "type": "http", - "scheme": "basic" + "scheme": "basic", + "type": "http" } } - } + }, + "x-tagGroups": [ + { + "name": "Deprecation", + "tags": [ + "Deprecated" + ] + }, + { + "name": "Libraries", + "tags": [ + "Libraries" + ] + }, + { + "name": "Series", + "tags": [ + "Series", + "Series Poster" + ] + }, + { + "name": "Books", + "tags": [ + "Books", + "Book Pages", + "Book Poster", + "Import", + "Duplicate Pages", + "WebPub Manifest", + "Fonts" + ] + }, + { + "name": "Collections", + "tags": [ + "Collections", + "Collection Series", + "Collection Poster" + ] + }, + { + "name": "Readlists", + "tags": [ + "Readlists", + "Readlist Books", + "Readlist Poster" + ] + }, + { + "name": "Referential", + "tags": [ + "Referential metadata" + ] + }, + { + "name": "Users", + "tags": [ + "Current user", + "Users", + "API Keys", + "User session", + "OAuth2", + "Sync points" + ] + }, + { + "name": "Server", + "tags": [ + "Claim server", + "Server settings", + "Tasks", + "History", + "File system", + "Releases", + "Announcements" + ] + }, + { + "name": "Integrations", + "tags": [ + "Client settings", + "Mihon", + "ComicRack" + ] + } + ] } \ No newline at end of file