14248 lines
346 KiB
JSON
14248 lines
346 KiB
JSON
{
|
|
"openapi": "3.1.0",
|
|
"info": {
|
|
"description": "Komga REST API.\n\n## Reference\n\nCheck the API reference:\n- on the [Komga website](https://komga.org/docs/openapi/komga-api)\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 `KOMGA-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 `komga-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"
|
|
},
|
|
"title": "Komga API",
|
|
"version": "1.24.1"
|
|
},
|
|
"externalDocs": {
|
|
"description": "Komga documentation",
|
|
"url": "https://komga.org"
|
|
},
|
|
"servers": [
|
|
{
|
|
"url": "https://demo.komga.org",
|
|
"description": "Demo server"
|
|
},
|
|
{
|
|
"url": "http://localhost:{port}",
|
|
"description": "Local development server",
|
|
"variables": {
|
|
"port": {
|
|
"enum": [
|
|
"8080",
|
|
"25600"
|
|
],
|
|
"default": "25600"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"security": [
|
|
{
|
|
"basicAuth": []
|
|
},
|
|
{
|
|
"apiKey": []
|
|
}
|
|
],
|
|
"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"
|
|
},
|
|
{
|
|
"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"
|
|
},
|
|
{
|
|
"description": "Manage server",
|
|
"name": "Management"
|
|
},
|
|
{
|
|
"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": {
|
|
"/actuator/info": {
|
|
"get": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "getActuatorInfo",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"examples": {
|
|
"Example": {
|
|
"value": "{\n \"git\": {\n \"branch\": \"master\",\n \"commit\": {\n \"id\": \"9be980d\",\n \"time\": \"2025-03-12T03:40:38Z\"\n }\n },\n \"build\": {\n \"artifact\": \"komga\",\n \"name\": \"komga\",\n \"version\": \"1.21.2\",\n \"group\": \"komga\"\n },\n \"java\": {\n \"version\": \"23.0.2\",\n \"vendor\": {\n \"name\": \"Eclipse Adoptium\",\n \"version\": \"Temurin-23.0.2+7\"\n },\n \"runtime\": {\n \"name\": \"OpenJDK Runtime Environment\",\n \"version\": \"23.0.2+7\"\n },\n \"jvm\": {\n \"name\": \"OpenJDK 64-Bit Server VM\",\n \"vendor\": \"Eclipse Adoptium\",\n \"version\": \"23.0.2+7\"\n }\n },\n \"os\": {\n \"name\": \"Linux\",\n \"version\": \"6.8.0-57-generic\",\n \"arch\": \"amd64\"\n }\n}"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
}
|
|
},
|
|
"summary": "Get server information",
|
|
"tags": [
|
|
"Management"
|
|
]
|
|
},
|
|
"summary": "Get general information about the server"
|
|
},
|
|
"/api/logout": {
|
|
"get": {
|
|
"description": "Invalidates the current session and clean up any remember-me authentication.",
|
|
"operationId": "postLogout",
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content"
|
|
}
|
|
},
|
|
"summary": "Logout",
|
|
"tags": [
|
|
"User session"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Invalidates the current session and clean up any remember-me authentication.",
|
|
"operationId": "postLogout_1",
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content"
|
|
}
|
|
},
|
|
"summary": "Logout",
|
|
"tags": [
|
|
"User session"
|
|
]
|
|
},
|
|
"summary": "Logout current session"
|
|
},
|
|
"/api/v1/age-ratings": {
|
|
"get": {
|
|
"description": "Can be filtered by various criteria",
|
|
"operationId": "getAgeRatings",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "library_id",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "collection_id",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "List age ratings",
|
|
"tags": [
|
|
"Referential metadata"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/announcements": {
|
|
"get": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "getAnnouncements",
|
|
"responses": {
|
|
"200": {
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "markAnnouncementsRead",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content"
|
|
},
|
|
"400": {
|
|
"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": "getAuthorsDeprecated",
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"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": "getAllBooksDeprecated",
|
|
"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"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/books/duplicates": {
|
|
"get": {
|
|
"description": "Return books that have the same file hash.\n\nRequired role: **ADMIN**",
|
|
"operationId": "getBooksDuplicates",
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "importBooks",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BookImportBatchDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"202": {
|
|
"description": "Accepted"
|
|
},
|
|
"400": {
|
|
"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": "getBooksLatest",
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$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": "getBooks",
|
|
"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.\n\nRequired role: **ADMIN**",
|
|
"operationId": "updateBookMetadataByBatch",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "booksRegenerateThumbnails",
|
|
"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": "getBookById",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "bookAnalyze",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"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.\n\nRequired role: **FILE_DOWNLOAD**",
|
|
"operationId": "downloadBookFile",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "bookId",
|
|
"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 book file",
|
|
"tags": [
|
|
"Books"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/books/{bookId}/file/*": {
|
|
"get": {
|
|
"description": "Download the book file.\n\nRequired role: **FILE_DOWNLOAD**",
|
|
"operationId": "downloadBookFile_1",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "bookId",
|
|
"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 book file",
|
|
"tags": [
|
|
"Books"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/books/{bookId}/manifest": {
|
|
"get": {
|
|
"operationId": "getBookWebPubManifest",
|
|
"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"
|
|
}
|
|
},
|
|
"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",
|
|
"tags": [
|
|
"WebPub Manifest"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/books/{bookId}/manifest/divina": {
|
|
"get": {
|
|
"operationId": "getBookWebPubManifestDivina",
|
|
"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": "getBookWebPubManifestEpub",
|
|
"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": "getBookWebPubManifestPdf",
|
|
"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.\n\nRequired role: **ADMIN**",
|
|
"operationId": "updateBookMetadata",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "bookRefreshMetadata",
|
|
"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",
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PageDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "List book pages",
|
|
"tags": [
|
|
"Book Pages"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/books/{bookId}/pages/{pageNumber}": {
|
|
"get": {
|
|
"description": "Required role: **PAGE_STREAMING**",
|
|
"operationId": "getBookPageByNumber",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "bookId",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"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.\n\nRequired role: **PAGE_STREAMING**",
|
|
"operationId": "getBookPageRawByNumber",
|
|
"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": "getBookPageThumbnailByNumber",
|
|
"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": "getBookPositions",
|
|
"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",
|
|
"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": "getBookProgression",
|
|
"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": "updateBookProgression",
|
|
"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": "deleteBookReadProgress",
|
|
"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": "markBookReadProgress",
|
|
"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": "getReadListsByBookId",
|
|
"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": "getBookEpubResource",
|
|
"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"
|
|
}
|
|
},
|
|
"security": [],
|
|
"summary": "Get Epub 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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "addUserUploadedBookThumbnail",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "bookId",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "selected",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
}
|
|
},
|
|
"required": [
|
|
"file"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ThumbnailBookDto"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "Add book poster",
|
|
"tags": [
|
|
"Book Poster"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/books/{bookId}/thumbnails/{thumbnailId}": {
|
|
"delete": {
|
|
"description": "Only uploaded posters can be deleted.\n\nRequired role: **ADMIN**",
|
|
"operationId": "deleteUserUploadedBookThumbnail",
|
|
"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": "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"
|
|
}
|
|
}
|
|
],
|
|
"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 poster image",
|
|
"tags": [
|
|
"Book Poster"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/books/{bookId}/thumbnails/{thumbnailId}/selected": {
|
|
"put": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "markBookThumbnailSelected",
|
|
"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"
|
|
}
|
|
},
|
|
"security": [],
|
|
"summary": "Retrieve claim status",
|
|
"tags": [
|
|
"Claim"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Creates an admin user with the provided credentials.",
|
|
"operationId": "claimServer",
|
|
"parameters": [
|
|
{
|
|
"in": "header",
|
|
"name": "X-Komga-Email",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "header",
|
|
"name": "X-Komga-Password",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"security": [],
|
|
"summary": "Claim server",
|
|
"tags": [
|
|
"Claim"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/client-settings/global": {
|
|
"delete": {
|
|
"description": "Setting key should be a valid lowercase namespace string like \u0027application.domain.key\u0027\n\nRequired role: **ADMIN**",
|
|
"operationId": "deleteGlobalSettings",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"example": [
|
|
"application.key1",
|
|
"application.key2"
|
|
],
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content"
|
|
},
|
|
"400": {
|
|
"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\n\nRequired role: **ADMIN**",
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "Save global settings",
|
|
"tags": [
|
|
"Client settings"
|
|
]
|
|
}
|
|
},
|
|
"/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"
|
|
}
|
|
},
|
|
"security": [],
|
|
"summary": "Retrieve global client settings",
|
|
"tags": [
|
|
"Client settings"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/client-settings/user": {
|
|
"delete": {
|
|
"description": "Setting key should be a valid lowercase namespace string like \u0027application.domain.key\u0027",
|
|
"operationId": "deleteUserSettings",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"example": [
|
|
"application.key1",
|
|
"application.key2"
|
|
],
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
}
|
|
},
|
|
"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": "getCollections",
|
|
"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": "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/PageCollectionDto"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "List collections",
|
|
"tags": [
|
|
"Collections"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "createCollection",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "deleteCollectionById",
|
|
"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": "getCollectionById",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "updateCollectionById",
|
|
"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": "getSeriesByCollectionId",
|
|
"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"
|
|
}
|
|
},
|
|
{
|
|
"description": "The size of the page to be returned",
|
|
"in": "query",
|
|
"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": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PageSeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"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": {
|
|
"type": "object",
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
}
|
|
},
|
|
"required": [
|
|
"file"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "markCollectionThumbnailSelected",
|
|
"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.\n\nRequired role: **ADMIN**",
|
|
"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": "getFonts",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
},
|
|
"security": [],
|
|
"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"
|
|
}
|
|
},
|
|
"security": [],
|
|
"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": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "collection_id",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "List genres",
|
|
"tags": [
|
|
"Referential metadata"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/history": {
|
|
"get": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "getHistoricalEvents",
|
|
"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": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "collection_id",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
}
|
|
},
|
|
"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": "getLibraries",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "addLibrary",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "deleteLibraryById",
|
|
"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": "getLibraryById",
|
|
"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\n\nRequired role: **ADMIN**",
|
|
"operationId": "updateLibraryById",
|
|
"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.\n\nRequired role: **ADMIN**",
|
|
"operationId": "updateLibraryByIdDeprecated",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "libraryAnalyze",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "libraryEmptyTrash",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "libraryRefreshMetadata",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "libraryScan",
|
|
"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": "convertHeaderSessionToCookie",
|
|
"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": "getOAuth2Providers",
|
|
"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"
|
|
}
|
|
},
|
|
"security": [],
|
|
"summary": "List registered OAuth2 providers",
|
|
"tags": [
|
|
"OAuth2"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/page-hashes": {
|
|
"get": {
|
|
"description": "Required role: **ADMIN**",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "deleteDuplicatePagesByPageHash",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "deleteSingleMatchByPageHash",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"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": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "collection_id",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "List publishers",
|
|
"tags": [
|
|
"Referential metadata"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/readlists": {
|
|
"get": {
|
|
"operationId": "getReadLists",
|
|
"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": "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/PageReadListDto"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "List readlists",
|
|
"tags": [
|
|
"Readlists"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "createReadList",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReadListCreationDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReadListDto"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "Create readlist",
|
|
"tags": [
|
|
"Readlists"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/readlists/match/comicrack": {
|
|
"post": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "matchComicRackList",
|
|
"requestBody": {
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
}
|
|
},
|
|
"required": [
|
|
"file"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReadListRequestMatchDto"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "Match ComicRack list",
|
|
"tags": [
|
|
"ComicRack"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/readlists/{id}": {
|
|
"delete": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "deleteReadListById",
|
|
"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 readlist",
|
|
"tags": [
|
|
"Readlists"
|
|
]
|
|
},
|
|
"get": {
|
|
"operationId": "getReadListById",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReadListDto"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "Get readlist details",
|
|
"tags": [
|
|
"Readlists"
|
|
]
|
|
},
|
|
"patch": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "updateReadListById",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ReadListUpdateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "Update readlist",
|
|
"tags": [
|
|
"Readlists"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/readlists/{id}/books": {
|
|
"get": {
|
|
"operationId": "getBooksByReadListId",
|
|
"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": "read_status",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"UNREAD",
|
|
"READ",
|
|
"IN_PROGRESS"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "tag",
|
|
"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": "deleted",
|
|
"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"
|
|
}
|
|
},
|
|
{
|
|
"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": {
|
|
"$ref": "#/components/schemas/PageBookDto"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "List readlist\u0027s books",
|
|
"tags": [
|
|
"Readlist Books"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/readlists/{id}/books/{bookId}/next": {
|
|
"get": {
|
|
"operationId": "getBookSiblingNextInReadList",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"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 readlist",
|
|
"tags": [
|
|
"Readlist Books"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/readlists/{id}/books/{bookId}/previous": {
|
|
"get": {
|
|
"operationId": "getBookSiblingPreviousInReadList",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"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.\n\nRequired role: **FILE_DOWNLOAD**",
|
|
"operationId": "downloadReadListAsZip",
|
|
"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": "getMihonReadProgressByReadListId",
|
|
"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": "updateMihonReadProgressByReadListId",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"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\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": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ThumbnailReadListDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "List readlist\u0027s posters",
|
|
"tags": [
|
|
"Readlist Poster"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "addUserUploadedReadListThumbnail",
|
|
"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": {
|
|
"type": "object",
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
}
|
|
},
|
|
"required": [
|
|
"file"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "markReadListThumbnailSelected",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "getReleases",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReleaseDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "List releases",
|
|
"tags": [
|
|
"Releases"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/series": {
|
|
"get": {
|
|
"deprecated": true,
|
|
"description": "Use POST /api/v1/series/list instead. Deprecated since 1.19.0.",
|
|
"operationId": "getSeriesDeprecated",
|
|
"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": "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"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "unpaged",
|
|
"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": "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"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"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": {
|
|
"$ref": "#/components/schemas/PageSeriesDto"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "List series",
|
|
"tags": [
|
|
"Series",
|
|
"Deprecated"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/series/alphabetical-groups": {
|
|
"get": {
|
|
"deprecated": true,
|
|
"description": "Use POST /api/v1/series/list/alphabetical-groups instead. Deprecated since 1.19.0.",
|
|
"operationId": "getSeriesAlphabeticalGroupsDeprecated",
|
|
"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": "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": "getSeriesLatest",
|
|
"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": "getSeries",
|
|
"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": "getSeriesAlphabeticalGroups",
|
|
"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": "getSeriesNew",
|
|
"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": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "collection_id",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
}
|
|
},
|
|
"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": "getSeriesUpdated",
|
|
"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": "getSeriesById",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "seriesAnalyze",
|
|
"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": "getBooksBySeriesId",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "seriesId",
|
|
"required": true,
|
|
"schema": {
|
|
"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": "tag",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "deleted",
|
|
"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"
|
|
}
|
|
},
|
|
{
|
|
"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": {
|
|
"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 series\u0027 books",
|
|
"tags": [
|
|
"Series",
|
|
"Deprecated"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/series/{seriesId}/collections": {
|
|
"get": {
|
|
"operationId": "getCollectionsBySeriesId",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "seriesId",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"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.\n\nRequired role: **ADMIN**",
|
|
"operationId": "deleteSeriesFile",
|
|
"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.\n\nRequired role: **FILE_DOWNLOAD**",
|
|
"operationId": "downloadSeriesAsZip",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "updateSeriesMetadata",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "seriesRefreshMetadata",
|
|
"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": "markSeriesAsUnread",
|
|
"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": "markSeriesAsRead",
|
|
"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": "getSeriesThumbnail",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "addUserUploadedSeriesThumbnail",
|
|
"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": {
|
|
"type": "object",
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
}
|
|
},
|
|
"required": [
|
|
"file"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$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/series/{seriesId}/thumbnails/{thumbnailId}": {
|
|
"delete": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "deleteUserUploadedSeriesThumbnail",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "seriesId",
|
|
"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 series poster",
|
|
"tags": [
|
|
"Series Poster"
|
|
]
|
|
},
|
|
"get": {
|
|
"operationId": "getSeriesThumbnailById",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "seriesId",
|
|
"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 series poster image",
|
|
"tags": [
|
|
"Series Poster"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/series/{seriesId}/thumbnails/{thumbnailId}/selected": {
|
|
"put": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "markSeriesThumbnailSelected",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "seriesId",
|
|
"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 series poster as selected",
|
|
"tags": [
|
|
"Series Poster"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/settings": {
|
|
"get": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "getServerSettings",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SettingsDto"
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "Retrieve server settings",
|
|
"tags": [
|
|
"Server settings"
|
|
]
|
|
},
|
|
"patch": {
|
|
"description": "You can omit fields you don\u0027t want to update\n\nRequired role: **ADMIN**",
|
|
"operationId": "updateServerSettings",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SettingsUpdateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "Update server settings",
|
|
"tags": [
|
|
"Server settings"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/sharing-labels": {
|
|
"get": {
|
|
"description": "Can be filtered by various criteria",
|
|
"operationId": "getSharingLabels",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "library_id",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "collection_id",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "List sharing labels",
|
|
"tags": [
|
|
"Referential metadata"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/syncpoints/me": {
|
|
"delete": {
|
|
"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": "deleteSyncPointsForCurrentUser",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "key_id",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "Delete all sync points",
|
|
"tags": [
|
|
"Sync points"
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/tags": {
|
|
"get": {
|
|
"description": "Can be filtered by various criteria",
|
|
"operationId": "getTags",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "library_id",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "collection_id",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"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": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
}
|
|
},
|
|
"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": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
}
|
|
},
|
|
"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\n\nRequired role: **ADMIN**",
|
|
"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.\n\nRequired role: **ADMIN**",
|
|
"operationId": "scanTransientBooks",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ScanRequestDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "analyzeTransientBook",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "getPageByTransientBookId",
|
|
"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": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
},
|
|
{
|
|
"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": "getMihonReadProgressBySeriesId",
|
|
"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": {
|
|
"description": "Mihon specific, due to how read progress is handled in Mihon.",
|
|
"operationId": "updateMihonReadProgressBySeriesId",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "seriesId",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TachiyomiReadProgressUpdateV2Dto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "Update series read progress (Mihon)",
|
|
"tags": [
|
|
"Mihon"
|
|
]
|
|
}
|
|
},
|
|
"/api/v2/users": {
|
|
"get": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "getUsers",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"description": "OK"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "List users",
|
|
"tags": [
|
|
"Users"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "addUser",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserCreationDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserDto"
|
|
}
|
|
}
|
|
},
|
|
"description": "Created"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "Create user",
|
|
"tags": [
|
|
"Users"
|
|
]
|
|
}
|
|
},
|
|
"/api/v2/users/authentication-activity": {
|
|
"get": {
|
|
"description": "Required role: **ADMIN**",
|
|
"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": "getCurrentUser",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "remember-me",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"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": "getApiKeysForCurrentUser",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$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": "createApiKeyForCurrentUser",
|
|
"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": {
|
|
"operationId": "deleteApiKeyByKeyId",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "keyId",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "Delete API key",
|
|
"tags": [
|
|
"API Keys"
|
|
]
|
|
}
|
|
},
|
|
"/api/v2/users/me/authentication-activity": {
|
|
"get": {
|
|
"operationId": "getAuthenticationActivityForCurrentUser",
|
|
"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 for the current user",
|
|
"tags": [
|
|
"Current user"
|
|
]
|
|
}
|
|
},
|
|
"/api/v2/users/me/password": {
|
|
"patch": {
|
|
"operationId": "updatePasswordForCurrentUser",
|
|
"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 current user\u0027s password",
|
|
"tags": [
|
|
"Current user"
|
|
]
|
|
}
|
|
},
|
|
"/api/v2/users/{id}": {
|
|
"delete": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "deleteUserById",
|
|
"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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "updateUserById",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserUpdateDto"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"204": {
|
|
"description": "No Content"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"*/*": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ValidationErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Bad Request"
|
|
}
|
|
},
|
|
"summary": "Update user",
|
|
"tags": [
|
|
"Users"
|
|
]
|
|
}
|
|
},
|
|
"/api/v2/users/{id}/authentication-activity/latest": {
|
|
"get": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "getLatestAuthenticationActivityByUserId",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "apikey_id",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$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": {
|
|
"description": "Required role: **ADMIN**",
|
|
"operationId": "updatePasswordByUserId",
|
|
"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": {
|
|
"After": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Date"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"dateTime": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"dateTime"
|
|
]
|
|
},
|
|
"AgeRating": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Series"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"ageRating": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/GreaterThan"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Is"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNot"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNotNullT"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNullT"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/LessThan"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"ageRating"
|
|
]
|
|
},
|
|
"AgeRestrictionDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"age": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"restriction": {
|
|
"type": "string",
|
|
"enum": [
|
|
"ALLOW_ONLY",
|
|
"EXCLUDE"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"age",
|
|
"restriction"
|
|
]
|
|
},
|
|
"AgeRestrictionUpdateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"age": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"restriction": {
|
|
"type": "string",
|
|
"enum": [
|
|
"ALLOW_ONLY",
|
|
"EXCLUDE",
|
|
"NONE"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"age",
|
|
"restriction"
|
|
]
|
|
},
|
|
"AllOfBook": {
|
|
"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"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"allOf"
|
|
]
|
|
},
|
|
"AllOfSeries": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Series"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"allOf": {
|
|
"type": "array",
|
|
"items": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AgeRating"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/AllOfSeries"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/AnyOfSeries"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Author"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/CollectionId"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Complete"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Deleted"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Genre"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Language"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/LibraryId"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/OneShot"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Publisher"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/ReadStatus"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/ReleaseDate"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/SeriesStatus"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/SharingLabel"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Tag"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Title"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/TitleSort"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"allOf"
|
|
]
|
|
},
|
|
"AlternateTitleDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"label",
|
|
"title"
|
|
]
|
|
},
|
|
"AlternateTitleUpdateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"label": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
}
|
|
},
|
|
"required": [
|
|
"label",
|
|
"title"
|
|
]
|
|
},
|
|
"AnyOfBook": {
|
|
"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"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"anyOf"
|
|
]
|
|
},
|
|
"AnyOfSeries": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Series"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"anyOf": {
|
|
"type": "array",
|
|
"items": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AgeRating"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/AllOfSeries"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/AnyOfSeries"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Author"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/CollectionId"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Complete"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Deleted"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Genre"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Language"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/LibraryId"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/OneShot"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Publisher"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/ReadStatus"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/ReleaseDate"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/SeriesStatus"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/SharingLabel"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Tag"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Title"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/TitleSort"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"anyOf"
|
|
]
|
|
},
|
|
"ApiKeyDto": {
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"comment",
|
|
"createdDate",
|
|
"id",
|
|
"key",
|
|
"lastModifiedDate",
|
|
"userId"
|
|
]
|
|
},
|
|
"ApiKeyRequestDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"comment": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
}
|
|
},
|
|
"required": [
|
|
"comment"
|
|
]
|
|
},
|
|
"AuthenticationActivityDto": {
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"dateTime",
|
|
"success"
|
|
]
|
|
},
|
|
"Author": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Series"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"author": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Is"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNot"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Book"
|
|
}
|
|
],
|
|
"required": [
|
|
"author"
|
|
]
|
|
},
|
|
"AuthorDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"role": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"role"
|
|
]
|
|
},
|
|
"AuthorUpdateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"role": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"role"
|
|
]
|
|
},
|
|
"Before": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Date"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"dateTime": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"dateTime"
|
|
]
|
|
},
|
|
"BeginsWith": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/StringOp"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"value"
|
|
]
|
|
},
|
|
"Book": {},
|
|
"BookDto": {
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"created",
|
|
"deleted",
|
|
"fileHash",
|
|
"fileLastModified",
|
|
"id",
|
|
"lastModified",
|
|
"libraryId",
|
|
"media",
|
|
"metadata",
|
|
"name",
|
|
"number",
|
|
"oneshot",
|
|
"seriesId",
|
|
"seriesTitle",
|
|
"size",
|
|
"sizeBytes",
|
|
"url"
|
|
]
|
|
},
|
|
"BookImportBatchDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"books": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/BookImportDto"
|
|
}
|
|
},
|
|
"copyMode": {
|
|
"type": "string",
|
|
"enum": [
|
|
"MOVE",
|
|
"COPY",
|
|
"HARDLINK"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"books",
|
|
"copyMode"
|
|
]
|
|
},
|
|
"BookImportDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"destinationName": {
|
|
"type": "string"
|
|
},
|
|
"seriesId": {
|
|
"type": "string"
|
|
},
|
|
"sourceFile": {
|
|
"type": "string"
|
|
},
|
|
"upgradeBookId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"seriesId",
|
|
"sourceFile"
|
|
]
|
|
},
|
|
"BookMetadataAggregationDto": {
|
|
"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": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
},
|
|
"required": [
|
|
"authors",
|
|
"created",
|
|
"lastModified",
|
|
"summary",
|
|
"summaryNumber",
|
|
"tags"
|
|
]
|
|
},
|
|
"BookMetadataDto": {
|
|
"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": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"tagsLock": {
|
|
"type": "boolean"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"titleLock": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"authors",
|
|
"authorsLock",
|
|
"created",
|
|
"isbn",
|
|
"isbnLock",
|
|
"lastModified",
|
|
"links",
|
|
"linksLock",
|
|
"number",
|
|
"numberLock",
|
|
"numberSort",
|
|
"numberSortLock",
|
|
"releaseDateLock",
|
|
"summary",
|
|
"summaryLock",
|
|
"tags",
|
|
"tagsLock",
|
|
"title",
|
|
"titleLock"
|
|
]
|
|
},
|
|
"BookMetadataUpdateDto": {
|
|
"type": "object",
|
|
"description": "Metadata fields to update. Set a field to null to unset the metadata. You can omit fields you don\u0027t want to update.",
|
|
"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": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"tagsLock": {
|
|
"type": "boolean"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"titleLock": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"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": {
|
|
"discriminator": {
|
|
"propertyName": "operator"
|
|
},
|
|
"properties": {
|
|
"operator": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"operator"
|
|
]
|
|
},
|
|
"ClaimStatus": {
|
|
"type": "object",
|
|
"properties": {
|
|
"isClaimed": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"isClaimed"
|
|
]
|
|
},
|
|
"ClientSettingDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"allowUnauthorized": {
|
|
"type": "boolean"
|
|
},
|
|
"value": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"value"
|
|
]
|
|
},
|
|
"ClientSettingGlobalUpdateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"allowUnauthorized": {
|
|
"type": "boolean"
|
|
},
|
|
"value": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
}
|
|
},
|
|
"required": [
|
|
"allowUnauthorized",
|
|
"value"
|
|
]
|
|
},
|
|
"ClientSettingUserUpdateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
}
|
|
},
|
|
"required": [
|
|
"value"
|
|
]
|
|
},
|
|
"CollectionCreationDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"ordered": {
|
|
"type": "boolean"
|
|
},
|
|
"seriesIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"minItems": 1
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"ordered",
|
|
"seriesIds"
|
|
]
|
|
},
|
|
"CollectionDto": {
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"createdDate",
|
|
"filtered",
|
|
"id",
|
|
"lastModifiedDate",
|
|
"name",
|
|
"ordered",
|
|
"seriesIds"
|
|
]
|
|
},
|
|
"CollectionId": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Series"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"collectionId": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Is"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNot"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"collectionId"
|
|
]
|
|
},
|
|
"CollectionUpdateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"ordered": {
|
|
"type": "boolean"
|
|
},
|
|
"seriesIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Complete": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Series"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"complete": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/IsFalse"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsTrue"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"complete"
|
|
]
|
|
},
|
|
"Contains": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/StringOp"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"value"
|
|
]
|
|
},
|
|
"Date": {
|
|
"discriminator": {
|
|
"propertyName": "operator"
|
|
},
|
|
"properties": {
|
|
"operator": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"operator"
|
|
]
|
|
},
|
|
"Deleted": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Series"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"deleted": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/IsFalse"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsTrue"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Book"
|
|
}
|
|
],
|
|
"required": [
|
|
"deleted"
|
|
]
|
|
},
|
|
"DirectoryListingDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"directories": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PathDto"
|
|
}
|
|
},
|
|
"files": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PathDto"
|
|
}
|
|
},
|
|
"parent": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"directories",
|
|
"files"
|
|
]
|
|
},
|
|
"DirectoryRequestDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"path": {
|
|
"type": "string"
|
|
},
|
|
"showFiles": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"path",
|
|
"showFiles"
|
|
]
|
|
},
|
|
"DoesNotBeginWith": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/StringOp"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"value"
|
|
]
|
|
},
|
|
"DoesNotContain": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/StringOp"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"value"
|
|
]
|
|
},
|
|
"DoesNotEndWith": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/StringOp"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"value"
|
|
]
|
|
},
|
|
"EndsWith": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/StringOp"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"value"
|
|
]
|
|
},
|
|
"EqualityAuthorMatch": {
|
|
"discriminator": {
|
|
"propertyName": "operator"
|
|
},
|
|
"properties": {
|
|
"operator": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"operator"
|
|
]
|
|
},
|
|
"EqualityMediaProfile": {
|
|
"discriminator": {
|
|
"propertyName": "operator"
|
|
},
|
|
"properties": {
|
|
"operator": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"operator"
|
|
]
|
|
},
|
|
"EqualityNullableString": {
|
|
"discriminator": {
|
|
"propertyName": "operator"
|
|
},
|
|
"properties": {
|
|
"operator": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"operator"
|
|
]
|
|
},
|
|
"EqualityPosterMatch": {
|
|
"discriminator": {
|
|
"propertyName": "operator"
|
|
},
|
|
"properties": {
|
|
"operator": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"operator"
|
|
]
|
|
},
|
|
"EqualityReadStatus": {
|
|
"discriminator": {
|
|
"propertyName": "operator"
|
|
},
|
|
"properties": {
|
|
"operator": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"operator"
|
|
]
|
|
},
|
|
"EqualityStatus": {
|
|
"discriminator": {
|
|
"propertyName": "operator"
|
|
},
|
|
"properties": {
|
|
"operator": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"operator"
|
|
]
|
|
},
|
|
"EqualityString": {
|
|
"discriminator": {
|
|
"propertyName": "operator"
|
|
},
|
|
"properties": {
|
|
"operator": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"operator"
|
|
]
|
|
},
|
|
"Genre": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Series"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"genre": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Is"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNot"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNotNullT"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNullT"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"genre"
|
|
]
|
|
},
|
|
"GreaterThan": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/NumericNullableInteger"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {}
|
|
}
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/NumericFloat"
|
|
}
|
|
],
|
|
"required": [
|
|
"value"
|
|
]
|
|
},
|
|
"GroupCountDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"count": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"group": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"count",
|
|
"group"
|
|
]
|
|
},
|
|
"HistoricalEventDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"bookId": {
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"properties": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"seriesId": {
|
|
"type": "string"
|
|
},
|
|
"timestamp": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"type": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"properties",
|
|
"timestamp",
|
|
"type"
|
|
]
|
|
},
|
|
"Is": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/NumericNullableInteger"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {}
|
|
}
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/EqualityAuthorMatch"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/EqualityString"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/EqualityNullableString"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/EqualityReadStatus"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/EqualityStatus"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/StringOp"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/EqualityMediaProfile"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/NumericFloat"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/EqualityPosterMatch"
|
|
}
|
|
],
|
|
"required": [
|
|
"value"
|
|
]
|
|
},
|
|
"IsFalse": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Boolean"
|
|
}
|
|
]
|
|
},
|
|
"IsInTheLast": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Date"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"duration": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"duration"
|
|
]
|
|
},
|
|
"IsNot": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/NumericNullableInteger"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {}
|
|
}
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/EqualityAuthorMatch"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/EqualityString"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/EqualityNullableString"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/EqualityReadStatus"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/EqualityStatus"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/StringOp"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/EqualityMediaProfile"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/NumericFloat"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/EqualityPosterMatch"
|
|
}
|
|
],
|
|
"required": [
|
|
"value"
|
|
]
|
|
},
|
|
"IsNotInTheLast": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Date"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"duration": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"duration"
|
|
]
|
|
},
|
|
"IsNotNull": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Date"
|
|
}
|
|
]
|
|
},
|
|
"IsNotNullT": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/NumericNullableInteger"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/EqualityNullableString"
|
|
}
|
|
]
|
|
},
|
|
"IsNull": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Date"
|
|
}
|
|
]
|
|
},
|
|
"IsNullT": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/NumericNullableInteger"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/EqualityNullableString"
|
|
}
|
|
]
|
|
},
|
|
"IsTrue": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Boolean"
|
|
}
|
|
]
|
|
},
|
|
"ItemDto": {
|
|
"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": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"tags"
|
|
]
|
|
},
|
|
"JsonFeedDto": {
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"items",
|
|
"title",
|
|
"version"
|
|
]
|
|
},
|
|
"KomgaExtensionDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"read": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"read"
|
|
]
|
|
},
|
|
"Language": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Series"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"language": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Is"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNot"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"language"
|
|
]
|
|
},
|
|
"LessThan": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/NumericNullableInteger"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"value": {}
|
|
}
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/NumericFloat"
|
|
}
|
|
],
|
|
"required": [
|
|
"value"
|
|
]
|
|
},
|
|
"LibraryCreationDto": {
|
|
"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",
|
|
"minLength": 1
|
|
},
|
|
"oneshotsDirectory": {
|
|
"type": "string"
|
|
},
|
|
"repairExtensions": {
|
|
"type": "boolean"
|
|
},
|
|
"root": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"scanCbx": {
|
|
"type": "boolean"
|
|
},
|
|
"scanDirectoryExclusions": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"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"
|
|
]
|
|
}
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"LibraryDto": {
|
|
"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": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"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"
|
|
}
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"LibraryId": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Series"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"libraryId": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Is"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNot"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Book"
|
|
}
|
|
],
|
|
"required": [
|
|
"libraryId"
|
|
]
|
|
},
|
|
"LibraryUpdateDto": {
|
|
"type": "object",
|
|
"description": "Fields to update. You can omit fields you don\u0027t want to update.",
|
|
"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": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"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"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"Location": {
|
|
"type": "object",
|
|
"properties": {
|
|
"fragments": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"position": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"progression": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"totalProgression": {
|
|
"type": "number",
|
|
"format": "float"
|
|
}
|
|
},
|
|
"required": [
|
|
"fragments"
|
|
]
|
|
},
|
|
"MediaDto": {
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"comment",
|
|
"epubDivinaCompatible",
|
|
"epubIsKepub",
|
|
"mediaProfile",
|
|
"mediaType",
|
|
"pagesCount",
|
|
"status"
|
|
]
|
|
},
|
|
"MediaProfile": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Book"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"mediaProfile": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Is"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNot"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"mediaProfile"
|
|
]
|
|
},
|
|
"MediaStatus": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Book"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"mediaStatus": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Is"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNot"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"mediaStatus"
|
|
]
|
|
},
|
|
"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": {
|
|
"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"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"numberSort"
|
|
]
|
|
},
|
|
"NumericFloat": {
|
|
"discriminator": {
|
|
"propertyName": "operator"
|
|
},
|
|
"properties": {
|
|
"operator": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"operator"
|
|
]
|
|
},
|
|
"NumericNullableInteger": {
|
|
"discriminator": {
|
|
"propertyName": "operator"
|
|
},
|
|
"properties": {
|
|
"operator": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"operator"
|
|
]
|
|
},
|
|
"OAuth2ClientDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"registrationId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"registrationId"
|
|
]
|
|
},
|
|
"OneShot": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Series"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"oneShot": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/IsFalse"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsTrue"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Book"
|
|
}
|
|
],
|
|
"required": [
|
|
"oneShot"
|
|
]
|
|
},
|
|
"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": {
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"fileName",
|
|
"mediaType",
|
|
"number",
|
|
"size"
|
|
]
|
|
},
|
|
"PageHashCreationDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"action": {
|
|
"type": "string",
|
|
"enum": [
|
|
"DELETE_AUTO",
|
|
"DELETE_MANUAL",
|
|
"IGNORE"
|
|
]
|
|
},
|
|
"hash": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"size": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"required": [
|
|
"action",
|
|
"hash"
|
|
]
|
|
},
|
|
"PageHashKnownDto": {
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"action",
|
|
"created",
|
|
"deleteCount",
|
|
"hash",
|
|
"lastModified",
|
|
"matchCount"
|
|
]
|
|
},
|
|
"PageHashMatchDto": {
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"bookId",
|
|
"fileName",
|
|
"fileSize",
|
|
"mediaType",
|
|
"pageNumber",
|
|
"url"
|
|
]
|
|
},
|
|
"PageHashUnknownDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"hash": {
|
|
"type": "string"
|
|
},
|
|
"matchCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"size": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
}
|
|
},
|
|
"required": [
|
|
"hash",
|
|
"matchCount"
|
|
]
|
|
},
|
|
"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": {
|
|
"type": "object",
|
|
"properties": {
|
|
"password": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
}
|
|
},
|
|
"required": [
|
|
"password"
|
|
]
|
|
},
|
|
"PathDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"path",
|
|
"type"
|
|
]
|
|
},
|
|
"Poster": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Book"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"poster": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Is"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNot"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"poster"
|
|
]
|
|
},
|
|
"Publisher": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Series"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"publisher": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Is"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNot"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"publisher"
|
|
]
|
|
},
|
|
"R2Device": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"name"
|
|
]
|
|
},
|
|
"R2Locator": {
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"href",
|
|
"type"
|
|
]
|
|
},
|
|
"R2Positions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"positions": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/R2Locator"
|
|
}
|
|
},
|
|
"total": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"required": [
|
|
"positions",
|
|
"total"
|
|
]
|
|
},
|
|
"R2Progression": {
|
|
"type": "object",
|
|
"properties": {
|
|
"device": {
|
|
"$ref": "#/components/schemas/R2Device"
|
|
},
|
|
"locator": {
|
|
"$ref": "#/components/schemas/R2Locator"
|
|
},
|
|
"modified": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
},
|
|
"required": [
|
|
"device",
|
|
"locator",
|
|
"modified"
|
|
]
|
|
},
|
|
"ReadListCreationDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"bookIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"minItems": 1
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"ordered": {
|
|
"type": "boolean"
|
|
},
|
|
"summary": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"bookIds",
|
|
"name",
|
|
"ordered",
|
|
"summary"
|
|
]
|
|
},
|
|
"ReadListDto": {
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"bookIds",
|
|
"createdDate",
|
|
"filtered",
|
|
"id",
|
|
"lastModifiedDate",
|
|
"name",
|
|
"ordered",
|
|
"summary"
|
|
]
|
|
},
|
|
"ReadListId": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Book"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"readListId": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Is"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNot"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"readListId"
|
|
]
|
|
},
|
|
"ReadListMatchDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"errorCode": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"errorCode",
|
|
"name"
|
|
]
|
|
},
|
|
"ReadListRequestBookDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"number": {
|
|
"type": "string"
|
|
},
|
|
"series": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
},
|
|
"required": [
|
|
"number",
|
|
"series"
|
|
]
|
|
},
|
|
"ReadListRequestBookMatchBookDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"bookId": {
|
|
"type": "string"
|
|
},
|
|
"number": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"bookId",
|
|
"number",
|
|
"title"
|
|
]
|
|
},
|
|
"ReadListRequestBookMatchDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"books": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadListRequestBookMatchBookDto"
|
|
}
|
|
},
|
|
"series": {
|
|
"$ref": "#/components/schemas/ReadListRequestBookMatchSeriesDto"
|
|
}
|
|
},
|
|
"required": [
|
|
"books",
|
|
"series"
|
|
]
|
|
},
|
|
"ReadListRequestBookMatchSeriesDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"releaseDate": {
|
|
"type": "string",
|
|
"format": "date"
|
|
},
|
|
"seriesId": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"seriesId",
|
|
"title"
|
|
]
|
|
},
|
|
"ReadListRequestBookMatchesDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"matches": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadListRequestBookMatchDto"
|
|
}
|
|
},
|
|
"request": {
|
|
"$ref": "#/components/schemas/ReadListRequestBookDto"
|
|
}
|
|
},
|
|
"required": [
|
|
"matches",
|
|
"request"
|
|
]
|
|
},
|
|
"ReadListRequestMatchDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"errorCode": {
|
|
"type": "string"
|
|
},
|
|
"readListMatch": {
|
|
"$ref": "#/components/schemas/ReadListMatchDto"
|
|
},
|
|
"requests": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReadListRequestBookMatchesDto"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"errorCode",
|
|
"readListMatch",
|
|
"requests"
|
|
]
|
|
},
|
|
"ReadListUpdateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"bookIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"ordered": {
|
|
"type": "boolean"
|
|
},
|
|
"summary": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"ReadProgressDto": {
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"completed",
|
|
"created",
|
|
"deviceId",
|
|
"deviceName",
|
|
"lastModified",
|
|
"page",
|
|
"readDate"
|
|
]
|
|
},
|
|
"ReadProgressUpdateDto": {
|
|
"type": "object",
|
|
"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.",
|
|
"properties": {
|
|
"completed": {
|
|
"type": "boolean"
|
|
},
|
|
"page": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
}
|
|
},
|
|
"ReadStatus": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Series"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"readStatus": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Is"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNot"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Book"
|
|
}
|
|
],
|
|
"required": [
|
|
"readStatus"
|
|
]
|
|
},
|
|
"ReleaseDate": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Series"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"releaseDate": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/After"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Before"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsInTheLast"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNotInTheLast"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNotNull"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNull"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Book"
|
|
}
|
|
],
|
|
"required": [
|
|
"releaseDate"
|
|
]
|
|
},
|
|
"ReleaseDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"latest": {
|
|
"type": "boolean"
|
|
},
|
|
"preRelease": {
|
|
"type": "boolean"
|
|
},
|
|
"releaseDate": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
},
|
|
"version": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"description",
|
|
"latest",
|
|
"preRelease",
|
|
"releaseDate",
|
|
"url",
|
|
"version"
|
|
]
|
|
},
|
|
"ScanRequestDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"path": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"path"
|
|
]
|
|
},
|
|
"Series": {},
|
|
"SeriesDto": {
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"booksCount",
|
|
"booksInProgressCount",
|
|
"booksMetadata",
|
|
"booksReadCount",
|
|
"booksUnreadCount",
|
|
"created",
|
|
"deleted",
|
|
"fileLastModified",
|
|
"id",
|
|
"lastModified",
|
|
"libraryId",
|
|
"metadata",
|
|
"name",
|
|
"oneshot",
|
|
"url"
|
|
]
|
|
},
|
|
"SeriesId": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Book"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesId": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Is"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNot"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"seriesId"
|
|
]
|
|
},
|
|
"SeriesMetadataDto": {
|
|
"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": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"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": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"sharingLabelsLock": {
|
|
"type": "boolean"
|
|
},
|
|
"status": {
|
|
"type": "string"
|
|
},
|
|
"statusLock": {
|
|
"type": "boolean"
|
|
},
|
|
"summary": {
|
|
"type": "string"
|
|
},
|
|
"summaryLock": {
|
|
"type": "boolean"
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"tagsLock": {
|
|
"type": "boolean"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"titleLock": {
|
|
"type": "boolean"
|
|
},
|
|
"titleSort": {
|
|
"type": "string"
|
|
},
|
|
"titleSortLock": {
|
|
"type": "boolean"
|
|
},
|
|
"totalBookCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"totalBookCountLock": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"SeriesMetadataUpdateDto": {
|
|
"type": "object",
|
|
"description": "Metadata fields to update. Set a field to null to unset the metadata. You can omit fields you don\u0027t want to update.",
|
|
"properties": {
|
|
"ageRating": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"ageRatingLock": {
|
|
"type": "boolean"
|
|
},
|
|
"alternateTitles": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/AlternateTitleUpdateDto"
|
|
}
|
|
},
|
|
"alternateTitlesLock": {
|
|
"type": "boolean"
|
|
},
|
|
"genres": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"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": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"sharingLabelsLock": {
|
|
"type": "boolean"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": [
|
|
"ENDED",
|
|
"ONGOING",
|
|
"ABANDONED",
|
|
"HIATUS"
|
|
]
|
|
},
|
|
"statusLock": {
|
|
"type": "boolean"
|
|
},
|
|
"summary": {
|
|
"type": "string"
|
|
},
|
|
"summaryLock": {
|
|
"type": "boolean"
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"tagsLock": {
|
|
"type": "boolean"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"titleLock": {
|
|
"type": "boolean"
|
|
},
|
|
"titleSort": {
|
|
"type": "string"
|
|
},
|
|
"titleSortLock": {
|
|
"type": "boolean"
|
|
},
|
|
"totalBookCount": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"totalBookCountLock": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"SeriesSearch": {
|
|
"type": "object",
|
|
"properties": {
|
|
"condition": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AgeRating"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/AllOfSeries"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/AnyOfSeries"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Author"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/CollectionId"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Complete"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Deleted"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Genre"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Language"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/LibraryId"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/OneShot"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Publisher"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/ReadStatus"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/ReleaseDate"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/SeriesStatus"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/SharingLabel"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Tag"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Title"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/TitleSort"
|
|
}
|
|
]
|
|
},
|
|
"fullTextSearch": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"SeriesStatus": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Series"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"seriesStatus": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Is"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNot"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"seriesStatus"
|
|
]
|
|
},
|
|
"SettingMultiSourceInteger": {
|
|
"type": "object",
|
|
"properties": {
|
|
"configurationSource": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"databaseSource": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"effectiveValue": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"required": [
|
|
"configurationSource",
|
|
"databaseSource",
|
|
"effectiveValue"
|
|
]
|
|
},
|
|
"SettingMultiSourceString": {
|
|
"type": "object",
|
|
"properties": {
|
|
"configurationSource": {
|
|
"type": "string"
|
|
},
|
|
"databaseSource": {
|
|
"type": "string"
|
|
},
|
|
"effectiveValue": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"configurationSource",
|
|
"databaseSource",
|
|
"effectiveValue"
|
|
]
|
|
},
|
|
"SettingsDto": {
|
|
"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"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"deleteEmptyCollections",
|
|
"deleteEmptyReadLists",
|
|
"kepubifyPath",
|
|
"koboProxy",
|
|
"rememberMeDurationDays",
|
|
"serverContextPath",
|
|
"serverPort",
|
|
"taskPoolSize",
|
|
"thumbnailSize"
|
|
]
|
|
},
|
|
"SettingsUpdateDto": {
|
|
"type": "object",
|
|
"description": "Fields to update. You can omit fields you don\u0027t want to update.",
|
|
"properties": {
|
|
"deleteEmptyCollections": {
|
|
"type": "boolean"
|
|
},
|
|
"deleteEmptyReadLists": {
|
|
"type": "boolean"
|
|
},
|
|
"kepubifyPath": {
|
|
"type": "string",
|
|
"deprecated": true,
|
|
"description": "Will be removed in a future version"
|
|
},
|
|
"koboPort": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"maximum": 65535
|
|
},
|
|
"koboProxy": {
|
|
"type": "boolean"
|
|
},
|
|
"rememberMeDurationDays": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"renewRememberMeKey": {
|
|
"type": "boolean"
|
|
},
|
|
"serverContextPath": {
|
|
"type": "string",
|
|
"pattern": "^/[\\w-/]*[a-zA-Z0-9]$"
|
|
},
|
|
"serverPort": {
|
|
"type": "integer",
|
|
"format": "int32",
|
|
"maximum": 65535
|
|
},
|
|
"taskPoolSize": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"thumbnailSize": {
|
|
"type": "string",
|
|
"enum": [
|
|
"DEFAULT",
|
|
"MEDIUM",
|
|
"LARGE",
|
|
"XLARGE"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"SharedLibrariesUpdateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"all": {
|
|
"type": "boolean"
|
|
},
|
|
"libraryIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
},
|
|
"required": [
|
|
"all",
|
|
"libraryIds"
|
|
]
|
|
},
|
|
"SharingLabel": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Series"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"sharingLabel": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Is"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNot"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNotNullT"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNullT"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"sharingLabel"
|
|
]
|
|
},
|
|
"SortObject": {
|
|
"type": "object",
|
|
"properties": {
|
|
"empty": {
|
|
"type": "boolean"
|
|
},
|
|
"sorted": {
|
|
"type": "boolean"
|
|
},
|
|
"unsorted": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"StreamingResponseBody": {},
|
|
"StringOp": {
|
|
"discriminator": {
|
|
"propertyName": "operator"
|
|
},
|
|
"properties": {
|
|
"operator": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"operator"
|
|
]
|
|
},
|
|
"TachiyomiReadProgressDto": {
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"booksCount",
|
|
"booksInProgressCount",
|
|
"booksReadCount",
|
|
"booksUnreadCount",
|
|
"lastReadContinuousIndex"
|
|
]
|
|
},
|
|
"TachiyomiReadProgressUpdateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"lastBookRead": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"required": [
|
|
"lastBookRead"
|
|
]
|
|
},
|
|
"TachiyomiReadProgressUpdateV2Dto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"lastBookNumberSortRead": {
|
|
"type": "number",
|
|
"format": "float"
|
|
}
|
|
},
|
|
"required": [
|
|
"lastBookNumberSortRead"
|
|
]
|
|
},
|
|
"TachiyomiReadProgressV2Dto": {
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"booksCount",
|
|
"booksInProgressCount",
|
|
"booksReadCount",
|
|
"booksUnreadCount",
|
|
"lastReadContinuousNumberSort",
|
|
"maxNumberSort"
|
|
]
|
|
},
|
|
"Tag": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Series"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"tag": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Is"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNot"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNotNullT"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNullT"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Book"
|
|
}
|
|
],
|
|
"required": [
|
|
"tag"
|
|
]
|
|
},
|
|
"Text": {
|
|
"type": "object",
|
|
"properties": {
|
|
"after": {
|
|
"type": "string"
|
|
},
|
|
"before": {
|
|
"type": "string"
|
|
},
|
|
"highlight": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"ThumbnailBookDto": {
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"bookId",
|
|
"fileSize",
|
|
"height",
|
|
"id",
|
|
"mediaType",
|
|
"selected",
|
|
"type",
|
|
"width"
|
|
]
|
|
},
|
|
"ThumbnailReadListDto": {
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"fileSize",
|
|
"height",
|
|
"id",
|
|
"mediaType",
|
|
"readListId",
|
|
"selected",
|
|
"type",
|
|
"width"
|
|
]
|
|
},
|
|
"ThumbnailSeriesCollectionDto": {
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"collectionId",
|
|
"fileSize",
|
|
"height",
|
|
"id",
|
|
"mediaType",
|
|
"selected",
|
|
"type",
|
|
"width"
|
|
]
|
|
},
|
|
"ThumbnailSeriesDto": {
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"fileSize",
|
|
"height",
|
|
"id",
|
|
"mediaType",
|
|
"selected",
|
|
"seriesId",
|
|
"type",
|
|
"width"
|
|
]
|
|
},
|
|
"Title": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Series"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"title": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/BeginsWith"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Contains"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/DoesNotBeginWith"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/DoesNotContain"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/DoesNotEndWith"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/EndsWith"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Is"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNot"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Book"
|
|
}
|
|
],
|
|
"required": [
|
|
"title"
|
|
]
|
|
},
|
|
"TitleSort": {
|
|
"allOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Series"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"titleSort": {
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/BeginsWith"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Contains"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/DoesNotBeginWith"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/DoesNotContain"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/DoesNotEndWith"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/EndsWith"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Is"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/IsNot"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"required": [
|
|
"titleSort"
|
|
]
|
|
},
|
|
"TransientBookDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"comment": {
|
|
"type": "string"
|
|
},
|
|
"fileLastModified": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"files": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"mediaType": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"number": {
|
|
"type": "number",
|
|
"format": "float"
|
|
},
|
|
"pages": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PageDto"
|
|
}
|
|
},
|
|
"seriesId": {
|
|
"type": "string"
|
|
},
|
|
"size": {
|
|
"type": "string"
|
|
},
|
|
"sizeBytes": {
|
|
"type": "integer",
|
|
"format": "int64"
|
|
},
|
|
"status": {
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"comment",
|
|
"fileLastModified",
|
|
"files",
|
|
"id",
|
|
"mediaType",
|
|
"name",
|
|
"pages",
|
|
"size",
|
|
"sizeBytes",
|
|
"status",
|
|
"url"
|
|
]
|
|
},
|
|
"UserCreationDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"ageRestriction": {
|
|
"$ref": "#/components/schemas/AgeRestrictionUpdateDto"
|
|
},
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"labelsAllow": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"labelsExclude": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"password": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"roles": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"sharedLibraries": {
|
|
"$ref": "#/components/schemas/SharedLibrariesUpdateDto"
|
|
}
|
|
},
|
|
"required": [
|
|
"email",
|
|
"password",
|
|
"roles"
|
|
]
|
|
},
|
|
"UserDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"ageRestriction": {
|
|
"$ref": "#/components/schemas/AgeRestrictionDto"
|
|
},
|
|
"email": {
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"labelsAllow": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"labelsExclude": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"roles": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"sharedAllLibraries": {
|
|
"type": "boolean"
|
|
},
|
|
"sharedLibrariesIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
}
|
|
},
|
|
"required": [
|
|
"email",
|
|
"id",
|
|
"labelsAllow",
|
|
"labelsExclude",
|
|
"roles",
|
|
"sharedAllLibraries",
|
|
"sharedLibrariesIds"
|
|
]
|
|
},
|
|
"UserUpdateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"ageRestriction": {
|
|
"$ref": "#/components/schemas/AgeRestrictionUpdateDto"
|
|
},
|
|
"labelsAllow": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"labelsExclude": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"roles": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"sharedLibraries": {
|
|
"$ref": "#/components/schemas/SharedLibrariesUpdateDto"
|
|
}
|
|
}
|
|
},
|
|
"ValidationErrorResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"violations": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Violation"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"violations"
|
|
]
|
|
},
|
|
"Violation": {
|
|
"type": "object",
|
|
"properties": {
|
|
"fieldName": {
|
|
"type": "string"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"WPBelongsToDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"collection": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/WPContributorDto"
|
|
}
|
|
},
|
|
"series": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/WPContributorDto"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"collection",
|
|
"series"
|
|
]
|
|
},
|
|
"WPContributorDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"links": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/WPLinkDto"
|
|
}
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"position": {
|
|
"type": "number",
|
|
"format": "float"
|
|
}
|
|
},
|
|
"required": [
|
|
"links",
|
|
"name"
|
|
]
|
|
},
|
|
"WPLinkDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"height": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
},
|
|
"href": {
|
|
"type": "string"
|
|
},
|
|
"properties": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"rel": {
|
|
"type": "string"
|
|
},
|
|
"templated": {
|
|
"type": "boolean"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"type": "string"
|
|
},
|
|
"width": {
|
|
"type": "integer",
|
|
"format": "int32"
|
|
}
|
|
},
|
|
"required": [
|
|
"properties"
|
|
]
|
|
},
|
|
"WPMetadataDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"artist": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"author": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
},
|
|
"identifier": {
|
|
"type": "string"
|
|
},
|
|
"illustrator": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"inker": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
},
|
|
"readingProgression": {
|
|
"type": "string",
|
|
"enum": [
|
|
"rtl",
|
|
"ltr",
|
|
"ttb",
|
|
"btt",
|
|
"auto"
|
|
]
|
|
},
|
|
"rendition": {
|
|
"type": "object",
|
|
"additionalProperties": {}
|
|
},
|
|
"sortAs": {
|
|
"type": "string"
|
|
},
|
|
"subject": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"subtitle": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"translator": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"artist",
|
|
"author",
|
|
"colorist",
|
|
"contributor",
|
|
"editor",
|
|
"illustrator",
|
|
"inker",
|
|
"letterer",
|
|
"penciler",
|
|
"publisher",
|
|
"rendition",
|
|
"subject",
|
|
"title",
|
|
"translator"
|
|
]
|
|
},
|
|
"WPPublicationDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"context": {
|
|
"type": "string"
|
|
},
|
|
"images": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/WPLinkDto"
|
|
}
|
|
},
|
|
"landmarks": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/WPLinkDto"
|
|
}
|
|
},
|
|
"links": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/WPLinkDto"
|
|
}
|
|
},
|
|
"metadata": {
|
|
"$ref": "#/components/schemas/WPMetadataDto"
|
|
},
|
|
"pageList": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/WPLinkDto"
|
|
}
|
|
},
|
|
"readingOrder": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/WPLinkDto"
|
|
}
|
|
},
|
|
"resources": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/WPLinkDto"
|
|
}
|
|
},
|
|
"toc": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/WPLinkDto"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"images",
|
|
"landmarks",
|
|
"links",
|
|
"metadata",
|
|
"pageList",
|
|
"readingOrder",
|
|
"resources",
|
|
"toc"
|
|
]
|
|
},
|
|
"WebLinkDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"label": {
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"label",
|
|
"url"
|
|
]
|
|
},
|
|
"WebLinkUpdateDto": {
|
|
"type": "object",
|
|
"properties": {
|
|
"label": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"label"
|
|
]
|
|
}
|
|
},
|
|
"securitySchemes": {
|
|
"apiKey": {
|
|
"in": "header",
|
|
"name": "X-API-Key",
|
|
"type": "apiKey"
|
|
},
|
|
"basicAuth": {
|
|
"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 settings",
|
|
"Tasks",
|
|
"History",
|
|
"File system",
|
|
"Releases",
|
|
"Announcements",
|
|
"Management"
|
|
]
|
|
},
|
|
{
|
|
"name": "Integrations",
|
|
"tags": [
|
|
"Client settings",
|
|
"Mihon",
|
|
"ComicRack"
|
|
]
|
|
}
|
|
]
|
|
} |