{
  "openapi": "3.0.1",
  "info": {
    "title": "Komga API",
    "description": "Komga offers 2 APIs: REST and OPDS.\n\nBoth APIs are secured using HTTP Basic Authentication.",
    "license": {
      "name": "MIT",
      "url": "https://github.com/gotson/komga/blob/master/LICENSE"
    },
    "version": "v1.0"
  },
  "externalDocs": {
    "description": "Komga documentation",
    "url": "https://komga.org"
  },
  "servers": [
    {
      "url": "http://localhost:8080",
      "description": "Generated server url"
    }
  ],
  "paths": {
    "/api/v2/series/{seriesId}/read-progress/tachiyomi": {
      "get": {
        "tags": [
          "series-controller"
        ],
        "operationId": "getReadProgressTachiyomiV2",
        "parameters": [
          {
            "name": "seriesId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TachiyomiReadProgressV2Dto"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "series-controller"
        ],
        "operationId": "markReadProgressTachiyomiV2",
        "parameters": [
          {
            "name": "seriesId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TachiyomiReadProgressUpdateV2Dto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/api/v1/series/{seriesId}/thumbnails/{thumbnailId}/selected": {
      "put": {
        "tags": [
          "series-controller"
        ],
        "operationId": "postMarkSelectedSeriesThumbnail",
        "parameters": [
          {
            "name": "seriesId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "thumbnailId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          }
        }
      }
    },
    "/api/v1/readlists/{id}/thumbnails/{thumbnailId}/selected": {
      "put": {
        "tags": [
          "read-list-controller"
        ],
        "operationId": "markSelectedReadListThumbnail",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "thumbnailId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          }
        }
      }
    },
    "/api/v1/readlists/{id}/read-progress/tachiyomi": {
      "get": {
        "tags": [
          "read-list-controller"
        ],
        "operationId": "getReadProgress",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TachiyomiReadProgressDto"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "read-list-controller"
        ],
        "operationId": "markReadProgressTachiyomi",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TachiyomiReadProgressUpdateDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/api/v1/page-hashes": {
      "get": {
        "tags": [
          "page-hash-controller"
        ],
        "operationId": "getKnownPageHashes",
        "parameters": [
          {
            "name": "action",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "DELETE_AUTO",
                  "DELETE_MANUAL",
                  "IGNORE"
                ]
              }
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The size of the page to be returned",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagePageHashKnownDto"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "page-hash-controller"
        ],
        "operationId": "createOrUpdateKnownPageHash",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PageHashCreationDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          }
        }
      }
    },
    "/api/v1/libraries/{libraryId}": {
      "get": {
        "tags": [
          "library-controller"
        ],
        "operationId": "getOne_1",
        "parameters": [
          {
            "name": "libraryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LibraryDto"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "library-controller"
        ],
        "operationId": "updateOne",
        "parameters": [
          {
            "name": "libraryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LibraryUpdateDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        },
        "deprecated": true
      },
      "delete": {
        "tags": [
          "library-controller"
        ],
        "operationId": "deleteOne_1",
        "parameters": [
          {
            "name": "libraryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      },
      "patch": {
        "tags": [
          "library-controller"
        ],
        "operationId": "patchOne",
        "parameters": [
          {
            "name": "libraryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LibraryUpdateDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/api/v1/collections/{id}/thumbnails/{thumbnailId}/selected": {
      "put": {
        "tags": [
          "series-collection-controller"
        ],
        "operationId": "markSelectedCollectionThumbnail",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "thumbnailId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          }
        }
      }
    },
    "/api/v1/books/{bookId}/thumbnails/{thumbnailId}/selected": {
      "put": {
        "tags": [
          "book-controller"
        ],
        "operationId": "markSelectedBookThumbnail",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "thumbnailId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          }
        }
      }
    },
    "/api/v1/announcements": {
      "get": {
        "tags": [
          "announcement-controller"
        ],
        "operationId": "getAnnouncements",
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonFeedDto"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "announcement-controller"
        ],
        "operationId": "markAnnouncementsRead",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "uniqueItems": true,
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/api/v2/users": {
      "get": {
        "tags": [
          "user-controller"
        ],
        "operationId": "getAll",
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserDto"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "user-controller"
        ],
        "operationId": "addOne",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserCreationDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transient-books": {
      "post": {
        "tags": [
          "transient-books-controller"
        ],
        "operationId": "scanForTransientBooks",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScanRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TransientBookDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transient-books/{id}/analyze": {
      "post": {
        "tags": [
          "transient-books-controller"
        ],
        "operationId": "analyze",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransientBookDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/series/{seriesId}/thumbnails": {
      "get": {
        "tags": [
          "series-controller"
        ],
        "operationId": "getSeriesThumbnails",
        "parameters": [
          {
            "name": "seriesId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SeriesThumbnailDto"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "series-controller"
        ],
        "operationId": "postUserUploadedSeriesThumbnail",
        "parameters": [
          {
            "name": "seriesId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "selected",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "file"
                ],
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SeriesThumbnailDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/series/{seriesId}/read-progress": {
      "post": {
        "tags": [
          "series-controller"
        ],
        "description": "Mark all book for series as read",
        "operationId": "markAsRead",
        "parameters": [
          {
            "name": "seriesId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      },
      "delete": {
        "tags": [
          "series-controller"
        ],
        "description": "Mark all book for series as unread",
        "operationId": "markAsUnread",
        "parameters": [
          {
            "name": "seriesId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/api/v1/series/{seriesId}/metadata/refresh": {
      "post": {
        "tags": [
          "series-controller"
        ],
        "operationId": "refreshMetadata",
        "parameters": [
          {
            "name": "seriesId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          }
        }
      }
    },
    "/api/v1/series/{seriesId}/analyze": {
      "post": {
        "tags": [
          "series-controller"
        ],
        "operationId": "analyze_1",
        "parameters": [
          {
            "name": "seriesId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          }
        }
      }
    },
    "/api/v1/readlists": {
      "get": {
        "tags": [
          "read-list-controller"
        ],
        "operationId": "getAll_1",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "library_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "unpaged",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The size of the page to be returned",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageReadListDto"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "read-list-controller"
        ],
        "operationId": "addOne_1",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReadListCreationDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReadListDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/readlists/{id}/thumbnails": {
      "get": {
        "tags": [
          "read-list-controller"
        ],
        "operationId": "getReadListThumbnails",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ThumbnailReadListDto"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "read-list-controller"
        ],
        "operationId": "addUserUploadedReadListThumbnail",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "selected",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "file"
                ],
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThumbnailReadListDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/readlists/match/comicrack": {
      "post": {
        "tags": [
          "read-list-controller"
        ],
        "operationId": "matchFromComicRackList",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "file"
                ],
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReadListRequestMatchDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/page-hashes/{pageHash}/delete-match": {
      "post": {
        "tags": [
          "page-hash-controller"
        ],
        "operationId": "deleteSingleMatch",
        "parameters": [
          {
            "name": "pageHash",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PageHashMatchDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          }
        }
      }
    },
    "/api/v1/page-hashes/{pageHash}/delete-all": {
      "post": {
        "tags": [
          "page-hash-controller"
        ],
        "operationId": "performDelete",
        "parameters": [
          {
            "name": "pageHash",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          }
        }
      }
    },
    "/api/v1/libraries": {
      "get": {
        "tags": [
          "library-controller"
        ],
        "operationId": "getAll_2",
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LibraryDto"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "library-controller"
        ],
        "operationId": "addOne_2",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LibraryCreationDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LibraryDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/libraries/{libraryId}/scan": {
      "post": {
        "tags": [
          "library-controller"
        ],
        "operationId": "scan",
        "parameters": [
          {
            "name": "libraryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deep",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          }
        }
      }
    },
    "/api/v1/libraries/{libraryId}/metadata/refresh": {
      "post": {
        "tags": [
          "library-controller"
        ],
        "operationId": "refreshMetadata_1",
        "parameters": [
          {
            "name": "libraryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          }
        }
      }
    },
    "/api/v1/libraries/{libraryId}/empty-trash": {
      "post": {
        "tags": [
          "library-controller"
        ],
        "operationId": "emptyTrash",
        "parameters": [
          {
            "name": "libraryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          }
        }
      }
    },
    "/api/v1/libraries/{libraryId}/analyze": {
      "post": {
        "tags": [
          "library-controller"
        ],
        "operationId": "analyze_2",
        "parameters": [
          {
            "name": "libraryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          }
        }
      }
    },
    "/api/v1/filesystem": {
      "post": {
        "tags": [
          "file-system-controller"
        ],
        "operationId": "getDirectoryListing",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DirectoryRequestDto"
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DirectoryListingDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/collections": {
      "get": {
        "tags": [
          "series-collection-controller"
        ],
        "operationId": "getAll_4",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "library_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "unpaged",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The size of the page to be returned",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageCollectionDto"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "series-collection-controller"
        ],
        "operationId": "addOne_3",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CollectionCreationDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CollectionDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/collections/{id}/thumbnails": {
      "get": {
        "tags": [
          "series-collection-controller"
        ],
        "operationId": "getCollectionThumbnails",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ThumbnailSeriesCollectionDto"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "series-collection-controller"
        ],
        "operationId": "addUserUploadedCollectionThumbnail",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "selected",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "file"
                ],
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThumbnailSeriesCollectionDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/claim": {
      "get": {
        "tags": [
          "claim-controller"
        ],
        "operationId": "getClaimStatus",
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClaimStatus"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "claim-controller"
        ],
        "operationId": "claimAdmin",
        "parameters": [
          {
            "name": "X-Komga-Email",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Komga-Password",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/books/{bookId}/thumbnails": {
      "get": {
        "tags": [
          "book-controller"
        ],
        "operationId": "getBookThumbnails",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ThumbnailBookDto"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "book-controller"
        ],
        "operationId": "addUserUploadedBookThumbnail",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "selected",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "file"
                ],
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThumbnailBookDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/books/{bookId}/metadata/refresh": {
      "post": {
        "tags": [
          "book-controller"
        ],
        "operationId": "refreshMetadata_2",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          }
        }
      }
    },
    "/api/v1/books/{bookId}/analyze": {
      "post": {
        "tags": [
          "book-controller"
        ],
        "operationId": "analyze_3",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          }
        }
      }
    },
    "/api/v1/books/import": {
      "post": {
        "tags": [
          "book-controller"
        ],
        "operationId": "importBooks",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BookImportBatchDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          }
        }
      }
    },
    "/api/v2/users/{id}": {
      "delete": {
        "tags": [
          "user-controller"
        ],
        "operationId": "delete",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      },
      "patch": {
        "tags": [
          "user-controller"
        ],
        "operationId": "updateUser",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdateDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/api/v2/users/{id}/password": {
      "patch": {
        "tags": [
          "user-controller"
        ],
        "operationId": "updatePassword",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PasswordUpdateDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/api/v2/users/me/password": {
      "patch": {
        "tags": [
          "user-controller"
        ],
        "operationId": "updateMyPassword",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PasswordUpdateDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/api/v1/series/{seriesId}/metadata": {
      "patch": {
        "tags": [
          "series-controller"
        ],
        "operationId": "updateMetadata",
        "parameters": [
          {
            "name": "seriesId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SeriesMetadataUpdateDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/api/v1/readlists/{id}": {
      "get": {
        "tags": [
          "read-list-controller"
        ],
        "operationId": "getOne",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReadListDto"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "read-list-controller"
        ],
        "operationId": "deleteOne",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      },
      "patch": {
        "tags": [
          "read-list-controller"
        ],
        "operationId": "updateOne_1",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReadListUpdateDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/api/v1/collections/{id}": {
      "get": {
        "tags": [
          "series-collection-controller"
        ],
        "operationId": "getOne_2",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CollectionDto"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "series-collection-controller"
        ],
        "operationId": "deleteOne_2",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      },
      "patch": {
        "tags": [
          "series-collection-controller"
        ],
        "operationId": "updateOne_2",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CollectionUpdateDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/api/v1/books/{bookId}/read-progress": {
      "delete": {
        "tags": [
          "book-controller"
        ],
        "description": "Mark book as unread",
        "operationId": "deleteReadProgress",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      },
      "patch": {
        "tags": [
          "book-controller"
        ],
        "description": "Mark book as read and/or change page progress",
        "operationId": "markReadProgress",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReadProgressUpdateDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/api/v1/books/{bookId}/metadata": {
      "patch": {
        "tags": [
          "book-controller"
        ],
        "operationId": "updateMetadata_1",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BookMetadataUpdateDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/api/v1/books/metadata": {
      "patch": {
        "tags": [
          "book-controller"
        ],
        "operationId": "updateBatchMetadata",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/BookMetadataUpdateDto"
                },
                "description": "A map of book IDs which values are the metadata fields to update. Set a field to null to unset the metadata. You can omit fields you don\u0027t want to update."
              }
            }
          },
          "required": true
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/opds/v1.2/series": {
      "get": {
        "tags": [
          "opds-controller"
        ],
        "operationId": "getAllSeries",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "publisher",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/atom+xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              }
            }
          }
        }
      }
    },
    "/opds/v1.2/series/{id}": {
      "get": {
        "tags": [
          "opds-controller"
        ],
        "operationId": "getOneSeries",
        "parameters": [
          {
            "name": "User-Agent",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/atom+xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              }
            }
          }
        }
      }
    },
    "/opds/v1.2/series/latest": {
      "get": {
        "tags": [
          "opds-controller"
        ],
        "operationId": "getLatestSeries",
        "parameters": [
          {
            "name": "User-Agent",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/atom+xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              }
            }
          }
        }
      }
    },
    "/opds/v1.2/search": {
      "get": {
        "tags": [
          "opds-controller"
        ],
        "operationId": "getSearch",
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/atom+xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpenSearchDescription"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpenSearchDescription"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpenSearchDescription"
                }
              }
            }
          }
        }
      }
    },
    "/opds/v1.2/readlists": {
      "get": {
        "tags": [
          "opds-controller"
        ],
        "operationId": "getReadLists",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/atom+xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              }
            }
          }
        }
      }
    },
    "/opds/v1.2/readlists/{id}": {
      "get": {
        "tags": [
          "opds-controller"
        ],
        "operationId": "getOneReadList",
        "parameters": [
          {
            "name": "User-Agent",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/atom+xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              }
            }
          }
        }
      }
    },
    "/opds/v1.2/publishers": {
      "get": {
        "tags": [
          "opds-controller"
        ],
        "operationId": "getPublishers",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/atom+xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              }
            }
          }
        }
      }
    },
    "/opds/v1.2/ondeck": {
      "get": {
        "tags": [
          "opds-controller"
        ],
        "operationId": "getOnDeck",
        "parameters": [
          {
            "name": "User-Agent",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/atom+xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              }
            }
          }
        }
      }
    },
    "/opds/v1.2/libraries": {
      "get": {
        "tags": [
          "opds-controller"
        ],
        "operationId": "getLibraries",
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/atom+xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              }
            }
          }
        }
      }
    },
    "/opds/v1.2/libraries/{id}": {
      "get": {
        "tags": [
          "opds-controller"
        ],
        "operationId": "getOneLibrary",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/atom+xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              }
            }
          }
        }
      }
    },
    "/opds/v1.2/keep-reading": {
      "get": {
        "tags": [
          "opds-controller"
        ],
        "operationId": "getKeepReading",
        "parameters": [
          {
            "name": "User-Agent",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/atom+xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              }
            }
          }
        }
      }
    },
    "/opds/v1.2/collections": {
      "get": {
        "tags": [
          "opds-controller"
        ],
        "operationId": "getCollections",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/atom+xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              }
            }
          }
        }
      }
    },
    "/opds/v1.2/collections/{id}": {
      "get": {
        "tags": [
          "opds-controller"
        ],
        "operationId": "getOneCollection",
        "parameters": [
          {
            "name": "User-Agent",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/atom+xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              }
            }
          }
        }
      }
    },
    "/opds/v1.2/catalog": {
      "get": {
        "tags": [
          "opds-controller"
        ],
        "operationId": "getCatalog",
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/atom+xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              }
            }
          }
        }
      }
    },
    "/opds/v1.2/books/{bookId}/thumbnail": {
      "get": {
        "tags": [
          "opds-controller"
        ],
        "operationId": "getBookThumbnail",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "default": {
            "description": "default response",
            "content": {
              "image/jpeg": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/opds/v1.2/books/{bookId}/thumbnail/small": {
      "get": {
        "tags": [
          "opds-controller"
        ],
        "operationId": "getBookThumbnailSmall",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "default": {
            "description": "default response",
            "content": {
              "image/jpeg": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/books/{bookId}/pages/{pageNumber}": {
      "get": {
        "tags": [
          "book-controller"
        ],
        "operationId": "getBookPage",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "convert",
            "in": "query",
            "description": "Convert the image to the provided format.",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "jpeg",
                "png"
              ]
            }
          },
          {
            "name": "zero_based",
            "in": "query",
            "description": "If set to true, pages will start at index 0. If set to false, pages will start at index 1.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "default": {
            "description": "default response",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/opds/v1.2/books/{bookId}/pages/{pageNumber}": {
      "get": {
        "tags": [
          "book-controller"
        ],
        "operationId": "getBookPage_1",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "convert",
            "in": "query",
            "description": "Convert the image to the provided format.",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "jpeg",
                "png"
              ]
            }
          },
          {
            "name": "zero_based",
            "in": "query",
            "description": "If set to true, pages will start at index 0. If set to false, pages will start at index 1.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "default": {
            "description": "default response",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/opds/v1.2/books/latest": {
      "get": {
        "tags": [
          "opds-controller"
        ],
        "operationId": "getLatestBooks",
        "parameters": [
          {
            "name": "User-Agent",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/atom+xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              },
              "text/xml": {
                "schema": {
                  "$ref": "#/components/schemas/OpdsFeed"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/users/{id}/authentication-activity/latest": {
      "get": {
        "tags": [
          "user-controller"
        ],
        "operationId": "getLatestAuthenticationActivityForUser",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationActivityDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/users/me": {
      "get": {
        "tags": [
          "user-controller"
        ],
        "operationId": "getMe",
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/users/me/authentication-activity": {
      "get": {
        "tags": [
          "user-controller"
        ],
        "operationId": "getMyAuthenticationActivity",
        "parameters": [
          {
            "name": "unpaged",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer",
              "default": 0
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The size of the page to be returned",
            "schema": {
              "type": "integer",
              "default": 20
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageAuthenticationActivityDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/users/authentication-activity": {
      "get": {
        "tags": [
          "user-controller"
        ],
        "operationId": "getAuthenticationActivity",
        "parameters": [
          {
            "name": "unpaged",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer",
              "default": 0
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The size of the page to be returned",
            "schema": {
              "type": "integer",
              "default": 20
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageAuthenticationActivityDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/authors": {
      "get": {
        "tags": [
          "referential-controller"
        ],
        "operationId": "getAuthors",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "role",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "library_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "collection_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "series_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "readlist_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "unpaged",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The size of the page to be returned",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageAuthorDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/transient-books/{id}/pages/{pageNumber}": {
      "get": {
        "tags": [
          "transient-books-controller"
        ],
        "operationId": "getSourcePage",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "type": "string",
                  "format": "byte"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tags": {
      "get": {
        "tags": [
          "referential-controller"
        ],
        "operationId": "getTags",
        "parameters": [
          {
            "name": "library_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "collection_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tags/series": {
      "get": {
        "tags": [
          "referential-controller"
        ],
        "operationId": "getSeriesTags",
        "parameters": [
          {
            "name": "library_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "collection_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tags/book": {
      "get": {
        "tags": [
          "referential-controller"
        ],
        "operationId": "getBookTags",
        "parameters": [
          {
            "name": "series_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "readlist_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/sharing-labels": {
      "get": {
        "tags": [
          "referential-controller"
        ],
        "operationId": "getSharingLabels",
        "parameters": [
          {
            "name": "library_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "collection_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/series": {
      "get": {
        "tags": [
          "series-controller"
        ],
        "operationId": "getAllSeries_1",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "library_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "collection_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "ENDED",
                  "ONGOING",
                  "ABANDONED",
                  "HIATUS"
                ]
              }
            }
          },
          {
            "name": "read_status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "UNREAD",
                  "READ",
                  "IN_PROGRESS"
                ]
              }
            }
          },
          {
            "name": "publisher",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "language",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "genre",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "tag",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "age_rating",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "release_year",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sharing_label",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "deleted",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "complete",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "oneshot",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "unpaged",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "search_regex",
            "in": "query",
            "description": "Search by regex criteria, in the form: regex,field. Supported fields are TITLE and TITLE_SORT.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The size of the page to be returned",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "author",
            "in": "query",
            "description": "Author criteria in the format: name,role. Multiple author criteria are supported.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageSeriesDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/series/{seriesId}": {
      "get": {
        "tags": [
          "series-controller"
        ],
        "operationId": "getOneSeries_1",
        "parameters": [
          {
            "name": "seriesId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SeriesDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/series/{seriesId}/thumbnails/{thumbnailId}": {
      "get": {
        "tags": [
          "series-controller"
        ],
        "operationId": "getSeriesThumbnailById",
        "parameters": [
          {
            "name": "seriesId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "thumbnailId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "default": {
            "description": "default response",
            "content": {
              "image/jpeg": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "series-controller"
        ],
        "operationId": "deleteUserUploadedSeriesThumbnail",
        "parameters": [
          {
            "name": "seriesId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "thumbnailId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          }
        }
      }
    },
    "/api/v1/series/{seriesId}/thumbnail": {
      "get": {
        "tags": [
          "series-controller"
        ],
        "operationId": "getSeriesDefaultThumbnail",
        "parameters": [
          {
            "name": "seriesId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "default": {
            "description": "default response",
            "content": {
              "image/jpeg": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/series/{seriesId}/file": {
      "get": {
        "tags": [
          "series-controller"
        ],
        "operationId": "getSeriesFile",
        "parameters": [
          {
            "name": "seriesId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "$ref": "#/components/schemas/StreamingResponseBody"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "series-controller"
        ],
        "operationId": "deleteSeries",
        "parameters": [
          {
            "name": "seriesId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          }
        }
      }
    },
    "/api/v1/series/{seriesId}/collections": {
      "get": {
        "tags": [
          "series-controller"
        ],
        "operationId": "getAllCollectionsBySeries",
        "parameters": [
          {
            "name": "seriesId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CollectionDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/series/{seriesId}/books": {
      "get": {
        "tags": [
          "series-controller"
        ],
        "operationId": "getAllBooksBySeries",
        "parameters": [
          {
            "name": "seriesId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "media_status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "UNKNOWN",
                  "ERROR",
                  "READY",
                  "UNSUPPORTED",
                  "OUTDATED"
                ]
              }
            }
          },
          {
            "name": "read_status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "UNREAD",
                  "READ",
                  "IN_PROGRESS"
                ]
              }
            }
          },
          {
            "name": "tag",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "deleted",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "unpaged",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The size of the page to be returned",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "author",
            "in": "query",
            "description": "Author criteria in the format: name,role. Multiple author criteria are supported.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageBookDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/series/updated": {
      "get": {
        "tags": [
          "series-controller"
        ],
        "description": "Return recently updated series, but not newly added ones.",
        "operationId": "getUpdatedSeries",
        "parameters": [
          {
            "name": "library_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "deleted",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "oneshot",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "unpaged",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The size of the page to be returned",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageSeriesDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/series/release-dates": {
      "get": {
        "tags": [
          "referential-controller"
        ],
        "operationId": "getSeriesReleaseDates",
        "parameters": [
          {
            "name": "library_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "collection_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/series/new": {
      "get": {
        "tags": [
          "series-controller"
        ],
        "description": "Return newly added series.",
        "operationId": "getNewSeries",
        "parameters": [
          {
            "name": "library_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "deleted",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "oneshot",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "unpaged",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The size of the page to be returned",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageSeriesDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/series/latest": {
      "get": {
        "tags": [
          "series-controller"
        ],
        "description": "Return recently added or updated series.",
        "operationId": "getLatestSeries_1",
        "parameters": [
          {
            "name": "library_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "deleted",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "oneshot",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "unpaged",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The size of the page to be returned",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageSeriesDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/series/alphabetical-groups": {
      "get": {
        "tags": [
          "series-controller"
        ],
        "operationId": "getAlphabeticalGroups",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "library_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "collection_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "ENDED",
                  "ONGOING",
                  "ABANDONED",
                  "HIATUS"
                ]
              }
            }
          },
          {
            "name": "read_status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "UNREAD",
                  "READ",
                  "IN_PROGRESS"
                ]
              }
            }
          },
          {
            "name": "publisher",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "language",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "genre",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "tag",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "age_rating",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "release_year",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sharing_label",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "deleted",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "complete",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "oneshot",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "search_regex",
            "in": "query",
            "description": "Search by regex criteria, in the form: regex,field. Supported fields are TITLE and TITLE_SORT.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "author",
            "in": "query",
            "description": "Author criteria in the format: name,role. Multiple author criteria are supported.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/GroupCountDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/readlists/{id}/thumbnails/{thumbnailId}": {
      "get": {
        "tags": [
          "read-list-controller"
        ],
        "operationId": "getReadListThumbnailById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "thumbnailId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "default": {
            "description": "default response",
            "content": {
              "image/jpeg": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "read-list-controller"
        ],
        "operationId": "deleteUserUploadedReadListThumbnail",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "thumbnailId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          }
        }
      }
    },
    "/api/v1/readlists/{id}/thumbnail": {
      "get": {
        "tags": [
          "read-list-controller"
        ],
        "operationId": "getReadListThumbnail",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "default": {
            "description": "default response",
            "content": {
              "image/jpeg": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/readlists/{id}/file": {
      "get": {
        "tags": [
          "read-list-controller"
        ],
        "operationId": "getReadListFile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "$ref": "#/components/schemas/StreamingResponseBody"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/readlists/{id}/books": {
      "get": {
        "tags": [
          "read-list-controller"
        ],
        "operationId": "getBooksForReadList",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "library_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "read_status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "UNREAD",
                  "READ",
                  "IN_PROGRESS"
                ]
              }
            }
          },
          {
            "name": "tag",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "media_status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "UNKNOWN",
                  "ERROR",
                  "READY",
                  "UNSUPPORTED",
                  "OUTDATED"
                ]
              }
            }
          },
          {
            "name": "deleted",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "unpaged",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The size of the page to be returned",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "author",
            "in": "query",
            "description": "Author criteria in the format: name,role. Multiple author criteria are supported.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageBookDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/readlists/{id}/books/{bookId}/previous": {
      "get": {
        "tags": [
          "read-list-controller"
        ],
        "operationId": "getBookSiblingPrevious",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BookDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/readlists/{id}/books/{bookId}/next": {
      "get": {
        "tags": [
          "read-list-controller"
        ],
        "operationId": "getBookSiblingNext",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BookDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/publishers": {
      "get": {
        "tags": [
          "referential-controller"
        ],
        "operationId": "getPublishers_1",
        "parameters": [
          {
            "name": "library_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "collection_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/page-hashes/{pageHash}": {
      "get": {
        "tags": [
          "page-hash-controller"
        ],
        "operationId": "getPageHashMatches",
        "parameters": [
          {
            "name": "pageHash",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The size of the page to be returned",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagePageHashMatchDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/page-hashes/{pageHash}/thumbnail": {
      "get": {
        "tags": [
          "page-hash-controller"
        ],
        "operationId": "getKnownPageHashThumbnail",
        "parameters": [
          {
            "name": "pageHash",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "default": {
            "description": "default response",
            "content": {
              "image/jpeg": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/page-hashes/unknown": {
      "get": {
        "tags": [
          "page-hash-controller"
        ],
        "operationId": "getUnknownPageHashes",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The size of the page to be returned",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagePageHashUnknownDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/page-hashes/unknown/{pageHash}/thumbnail": {
      "get": {
        "tags": [
          "page-hash-controller"
        ],
        "operationId": "getUnknownPageHashThumbnail",
        "parameters": [
          {
            "name": "pageHash",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "resize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "default": {
            "description": "default response",
            "content": {
              "image/jpeg": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/login/set-cookie": {
      "get": {
        "tags": [
          "login-controller"
        ],
        "operationId": "headerToCookie",
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/api/v1/languages": {
      "get": {
        "tags": [
          "referential-controller"
        ],
        "operationId": "getLanguages",
        "parameters": [
          {
            "name": "library_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "collection_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/history": {
      "get": {
        "tags": [
          "historical-event-controller"
        ],
        "operationId": "getAll_3",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The size of the page to be returned",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageHistoricalEventDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/genres": {
      "get": {
        "tags": [
          "referential-controller"
        ],
        "operationId": "getGenres",
        "parameters": [
          {
            "name": "library_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "collection_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/collections/{id}/thumbnails/{thumbnailId}": {
      "get": {
        "tags": [
          "series-collection-controller"
        ],
        "operationId": "getCollectionThumbnailById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "thumbnailId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "default": {
            "description": "default response",
            "content": {
              "image/jpeg": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "series-collection-controller"
        ],
        "operationId": "deleteUserUploadedCollectionThumbnail",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "thumbnailId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          }
        }
      }
    },
    "/api/v1/collections/{id}/thumbnail": {
      "get": {
        "tags": [
          "series-collection-controller"
        ],
        "operationId": "getCollectionThumbnail",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "default": {
            "description": "default response",
            "content": {
              "image/jpeg": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/collections/{id}/series": {
      "get": {
        "tags": [
          "series-collection-controller"
        ],
        "operationId": "getSeriesForCollection",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "library_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "ENDED",
                  "ONGOING",
                  "ABANDONED",
                  "HIATUS"
                ]
              }
            }
          },
          {
            "name": "read_status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "UNREAD",
                  "READ",
                  "IN_PROGRESS"
                ]
              }
            }
          },
          {
            "name": "publisher",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "language",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "genre",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "tag",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "age_rating",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "release_years",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "deleted",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "complete",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "unpaged",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The size of the page to be returned",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "author",
            "in": "query",
            "description": "Author criteria in the format: name,role. Multiple author criteria are supported.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageSeriesDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/books": {
      "get": {
        "tags": [
          "book-controller"
        ],
        "operationId": "getAllBooks",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "library_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "media_status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "UNKNOWN",
                  "ERROR",
                  "READY",
                  "UNSUPPORTED",
                  "OUTDATED"
                ]
              }
            }
          },
          {
            "name": "read_status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "UNREAD",
                  "READ",
                  "IN_PROGRESS"
                ]
              }
            }
          },
          {
            "name": "released_after",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "tag",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "unpaged",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The size of the page to be returned",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageBookDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/books/{bookId}": {
      "get": {
        "tags": [
          "book-controller"
        ],
        "operationId": "getOneBook",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BookDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/books/{bookId}/thumbnails/{thumbnailId}": {
      "get": {
        "tags": [
          "book-controller"
        ],
        "operationId": "getBookThumbnailById",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "thumbnailId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "default": {
            "description": "default response",
            "content": {
              "image/jpeg": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "book-controller"
        ],
        "operationId": "deleteUserUploadedBookThumbnail",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "thumbnailId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          }
        }
      }
    },
    "/api/v1/books/{bookId}/thumbnail": {
      "get": {
        "tags": [
          "book-controller"
        ],
        "operationId": "getBookThumbnail_1",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "default": {
            "description": "default response",
            "content": {
              "image/jpeg": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/books/{bookId}/readlists": {
      "get": {
        "tags": [
          "book-controller"
        ],
        "operationId": "getAllReadListsByBook",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReadListDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/books/{bookId}/previous": {
      "get": {
        "tags": [
          "book-controller"
        ],
        "operationId": "getBookSiblingPrevious_1",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BookDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/books/{bookId}/pages": {
      "get": {
        "tags": [
          "book-controller"
        ],
        "operationId": "getBookPages",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PageDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/books/{bookId}/pages/{pageNumber}/thumbnail": {
      "get": {
        "tags": [
          "book-controller"
        ],
        "operationId": "getBookPageThumbnail",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "default": {
            "description": "default response",
            "content": {
              "image/jpeg": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/books/{bookId}/next": {
      "get": {
        "tags": [
          "book-controller"
        ],
        "operationId": "getBookSiblingNext_1",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BookDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/books/{bookId}/file": {
      "get": {
        "tags": [
          "book-controller"
        ],
        "description": "Download the book file.",
        "operationId": "getBookFile",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "$ref": "#/components/schemas/StreamingResponseBody"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "book-controller"
        ],
        "operationId": "deleteBook",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          }
        }
      }
    },
    "/api/v1/books/{bookId}/file/*": {
      "get": {
        "tags": [
          "book-controller"
        ],
        "description": "Download the book file.",
        "operationId": "getBookFile_1",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "$ref": "#/components/schemas/StreamingResponseBody"
                }
              }
            }
          }
        }
      }
    },
    "/opds/v1.2/books/{bookId}/file/*": {
      "get": {
        "tags": [
          "book-controller"
        ],
        "description": "Download the book file.",
        "operationId": "getBookFile_2",
        "parameters": [
          {
            "name": "bookId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "$ref": "#/components/schemas/StreamingResponseBody"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/books/ondeck": {
      "get": {
        "tags": [
          "book-controller"
        ],
        "description": "Return first unread book of series with at least one book read and no books in progress.",
        "operationId": "getBooksOnDeck",
        "parameters": [
          {
            "name": "library_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The size of the page to be returned",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageBookDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/books/latest": {
      "get": {
        "tags": [
          "book-controller"
        ],
        "description": "Return newly added or updated books.",
        "operationId": "getLatestBooks_1",
        "parameters": [
          {
            "name": "unpaged",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The size of the page to be returned",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageBookDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/books/duplicates": {
      "get": {
        "tags": [
          "book-controller"
        ],
        "operationId": "getDuplicateBooks",
        "parameters": [
          {
            "name": "unpaged",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Zero-based page index (0..N)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "The size of the page to be returned",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageBookDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/authors": {
      "get": {
        "tags": [
          "referential-controller"
        ],
        "operationId": "getAuthorsV1",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": ""
            }
          },
          {
            "name": "library_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "collection_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "series_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AuthorDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/authors/roles": {
      "get": {
        "tags": [
          "referential-controller"
        ],
        "operationId": "getAuthorsRoles",
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/authors/names": {
      "get": {
        "tags": [
          "referential-controller"
        ],
        "operationId": "getAuthorsNames",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/age-ratings": {
      "get": {
        "tags": [
          "referential-controller"
        ],
        "operationId": "getAgeRatings",
        "parameters": [
          {
            "name": "library_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "collection_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/tasks": {
      "delete": {
        "tags": [
          "task-controller"
        ],
        "operationId": "emptyTaskQueue",
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/oauth2/providers": {
      "get": {
        "tags": [
          "o-auth-2-controller"
        ],
        "operationId": "getProviders",
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OAuth2ClientDto"
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "o-auth-2-controller"
        ],
        "operationId": "getProviders_3",
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OAuth2ClientDto"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "o-auth-2-controller"
        ],
        "operationId": "getProviders_2",
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OAuth2ClientDto"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "o-auth-2-controller"
        ],
        "operationId": "getProviders_5",
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OAuth2ClientDto"
                  }
                }
              }
            }
          }
        }
      },
      "options": {
        "tags": [
          "o-auth-2-controller"
        ],
        "operationId": "getProviders_6",
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OAuth2ClientDto"
                  }
                }
              }
            }
          }
        }
      },
      "head": {
        "tags": [
          "o-auth-2-controller"
        ],
        "operationId": "getProviders_1",
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OAuth2ClientDto"
                  }
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "o-auth-2-controller"
        ],
        "operationId": "getProviders_4",
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationErrorResponse"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OAuth2ClientDto"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ValidationErrorResponse": {
        "required": [
          "violations"
        ],
        "type": "object",
        "properties": {
          "violations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Violation"
            }
          }
        }
      },
      "Violation": {
        "type": "object",
        "properties": {
          "fieldName": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        }
      },
      "TachiyomiReadProgressUpdateV2Dto": {
        "required": [
          "lastBookNumberSortRead"
        ],
        "type": "object",
        "properties": {
          "lastBookNumberSortRead": {
            "type": "number",
            "format": "float"
          }
        }
      },
      "TachiyomiReadProgressUpdateDto": {
        "required": [
          "lastBookRead"
        ],
        "type": "object",
        "properties": {
          "lastBookRead": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PageHashCreationDto": {
        "required": [
          "action",
          "hash"
        ],
        "type": "object",
        "properties": {
          "hash": {
            "type": "string"
          },
          "size": {
            "type": "integer",
            "format": "int64"
          },
          "action": {
            "type": "string",
            "enum": [
              "DELETE_AUTO",
              "DELETE_MANUAL",
              "IGNORE"
            ]
          }
        }
      },
      "LibraryUpdateDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "root": {
            "type": "string"
          },
          "importComicInfoBook": {
            "type": "boolean"
          },
          "importComicInfoSeries": {
            "type": "boolean"
          },
          "importComicInfoCollection": {
            "type": "boolean"
          },
          "importComicInfoReadList": {
            "type": "boolean"
          },
          "importComicInfoSeriesAppendVolume": {
            "type": "boolean"
          },
          "importEpubBook": {
            "type": "boolean"
          },
          "importEpubSeries": {
            "type": "boolean"
          },
          "importMylarSeries": {
            "type": "boolean"
          },
          "importLocalArtwork": {
            "type": "boolean"
          },
          "importBarcodeIsbn": {
            "type": "boolean"
          },
          "scanForceModifiedTime": {
            "type": "boolean"
          },
          "repairExtensions": {
            "type": "boolean"
          },
          "convertToCbz": {
            "type": "boolean"
          },
          "emptyTrashAfterScan": {
            "type": "boolean"
          },
          "seriesCover": {
            "type": "string",
            "enum": [
              "FIRST",
              "FIRST_UNREAD_OR_FIRST",
              "FIRST_UNREAD_OR_LAST",
              "LAST"
            ]
          },
          "hashFiles": {
            "type": "boolean"
          },
          "hashPages": {
            "type": "boolean"
          },
          "analyzeDimensions": {
            "type": "boolean"
          },
          "oneshotsDirectory": {
            "type": "string"
          }
        },
        "description": "Fields to update. You can omit fields you don\u0027t want to update."
      },
      "UserCreationDto": {
        "required": [
          "email",
          "password",
          "roles"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "AgeRestrictionDto": {
        "required": [
          "age",
          "restriction"
        ],
        "type": "object",
        "properties": {
          "age": {
            "type": "integer",
            "format": "int32"
          },
          "restriction": {
            "type": "string",
            "enum": [
              "ALLOW_ONLY",
              "EXCLUDE"
            ]
          }
        }
      },
      "UserDto": {
        "required": [
          "email",
          "id",
          "labelsAllow",
          "labelsExclude",
          "roles",
          "sharedAllLibraries",
          "sharedLibrariesIds"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "roles": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sharedAllLibraries": {
            "type": "boolean"
          },
          "sharedLibrariesIds": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "labelsAllow": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "labelsExclude": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "ageRestriction": {
            "$ref": "#/components/schemas/AgeRestrictionDto"
          }
        }
      },
      "ScanRequestDto": {
        "required": [
          "path"
        ],
        "type": "object",
        "properties": {
          "path": {
            "type": "string"
          }
        }
      },
      "PageDto": {
        "required": [
          "fileName",
          "mediaType",
          "number",
          "size"
        ],
        "type": "object",
        "properties": {
          "number": {
            "type": "integer",
            "format": "int32"
          },
          "fileName": {
            "type": "string"
          },
          "mediaType": {
            "type": "string"
          },
          "width": {
            "type": "integer",
            "format": "int32"
          },
          "height": {
            "type": "integer",
            "format": "int32"
          },
          "sizeBytes": {
            "type": "integer",
            "format": "int64"
          },
          "size": {
            "type": "string"
          }
        }
      },
      "TransientBookDto": {
        "required": [
          "comment",
          "fileLastModified",
          "files",
          "id",
          "mediaType",
          "name",
          "pages",
          "size",
          "sizeBytes",
          "status",
          "url"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "fileLastModified": {
            "type": "string",
            "format": "date-time"
          },
          "sizeBytes": {
            "type": "integer",
            "format": "int64"
          },
          "size": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "mediaType": {
            "type": "string"
          },
          "pages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PageDto"
            }
          },
          "files": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "comment": {
            "type": "string"
          }
        }
      },
      "SeriesThumbnailDto": {
        "required": [
          "id",
          "selected",
          "seriesId",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "seriesId": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "selected": {
            "type": "boolean"
          }
        }
      },
      "ReadListCreationDto": {
        "required": [
          "bookIds",
          "name",
          "ordered",
          "summary"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "ordered": {
            "type": "boolean"
          },
          "bookIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ReadListDto": {
        "required": [
          "bookIds",
          "createdDate",
          "filtered",
          "id",
          "lastModifiedDate",
          "name",
          "ordered",
          "summary"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "ordered": {
            "type": "boolean"
          },
          "bookIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "lastModifiedDate": {
            "type": "string",
            "format": "date-time"
          },
          "filtered": {
            "type": "boolean"
          }
        }
      },
      "ThumbnailReadListDto": {
        "required": [
          "id",
          "readListId",
          "selected",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "readListId": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "selected": {
            "type": "boolean"
          }
        }
      },
      "ReadListMatchDto": {
        "required": [
          "errorCode",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "errorCode": {
            "type": "string"
          }
        }
      },
      "ReadListRequestBookDto": {
        "required": [
          "number",
          "series"
        ],
        "type": "object",
        "properties": {
          "series": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "number": {
            "type": "string"
          }
        }
      },
      "ReadListRequestBookMatchBookDto": {
        "required": [
          "bookId",
          "number",
          "title"
        ],
        "type": "object",
        "properties": {
          "bookId": {
            "type": "string"
          },
          "number": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        }
      },
      "ReadListRequestBookMatchDto": {
        "required": [
          "books",
          "series"
        ],
        "type": "object",
        "properties": {
          "series": {
            "$ref": "#/components/schemas/ReadListRequestBookMatchSeriesDto"
          },
          "books": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReadListRequestBookMatchBookDto"
            }
          }
        }
      },
      "ReadListRequestBookMatchSeriesDto": {
        "required": [
          "seriesId",
          "title"
        ],
        "type": "object",
        "properties": {
          "seriesId": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "releaseDate": {
            "type": "string",
            "format": "date"
          }
        }
      },
      "ReadListRequestBookMatchesDto": {
        "required": [
          "matches",
          "request"
        ],
        "type": "object",
        "properties": {
          "request": {
            "$ref": "#/components/schemas/ReadListRequestBookDto"
          },
          "matches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReadListRequestBookMatchDto"
            }
          }
        }
      },
      "ReadListRequestMatchDto": {
        "required": [
          "errorCode",
          "readListMatch",
          "requests"
        ],
        "type": "object",
        "properties": {
          "readListMatch": {
            "$ref": "#/components/schemas/ReadListMatchDto"
          },
          "requests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReadListRequestBookMatchesDto"
            }
          },
          "errorCode": {
            "type": "string"
          }
        }
      },
      "PageHashMatchDto": {
        "required": [
          "bookId",
          "fileName",
          "fileSize",
          "mediaType",
          "pageNumber",
          "url"
        ],
        "type": "object",
        "properties": {
          "bookId": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "fileName": {
            "type": "string"
          },
          "fileSize": {
            "type": "integer",
            "format": "int64"
          },
          "mediaType": {
            "type": "string"
          }
        }
      },
      "LibraryCreationDto": {
        "required": [
          "analyzeDimensions",
          "convertToCbz",
          "emptyTrashAfterScan",
          "hashFiles",
          "hashPages",
          "importBarcodeIsbn",
          "importComicInfoBook",
          "importComicInfoCollection",
          "importComicInfoReadList",
          "importComicInfoSeries",
          "importComicInfoSeriesAppendVolume",
          "importEpubBook",
          "importEpubSeries",
          "importLocalArtwork",
          "importMylarSeries",
          "name",
          "repairExtensions",
          "root",
          "scanForceModifiedTime",
          "seriesCover"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "root": {
            "type": "string"
          },
          "importComicInfoBook": {
            "type": "boolean"
          },
          "importComicInfoSeries": {
            "type": "boolean"
          },
          "importComicInfoCollection": {
            "type": "boolean"
          },
          "importComicInfoReadList": {
            "type": "boolean"
          },
          "importComicInfoSeriesAppendVolume": {
            "type": "boolean"
          },
          "importEpubBook": {
            "type": "boolean"
          },
          "importEpubSeries": {
            "type": "boolean"
          },
          "importMylarSeries": {
            "type": "boolean"
          },
          "importLocalArtwork": {
            "type": "boolean"
          },
          "importBarcodeIsbn": {
            "type": "boolean"
          },
          "scanForceModifiedTime": {
            "type": "boolean"
          },
          "repairExtensions": {
            "type": "boolean"
          },
          "convertToCbz": {
            "type": "boolean"
          },
          "emptyTrashAfterScan": {
            "type": "boolean"
          },
          "seriesCover": {
            "type": "string",
            "enum": [
              "FIRST",
              "FIRST_UNREAD_OR_FIRST",
              "FIRST_UNREAD_OR_LAST",
              "LAST"
            ]
          },
          "hashFiles": {
            "type": "boolean"
          },
          "hashPages": {
            "type": "boolean"
          },
          "analyzeDimensions": {
            "type": "boolean"
          },
          "oneshotsDirectory": {
            "type": "string"
          }
        }
      },
      "LibraryDto": {
        "required": [
          "analyzeDimensions",
          "convertToCbz",
          "emptyTrashAfterScan",
          "hashFiles",
          "hashPages",
          "id",
          "importBarcodeIsbn",
          "importComicInfoBook",
          "importComicInfoCollection",
          "importComicInfoReadList",
          "importComicInfoSeries",
          "importComicInfoSeriesAppendVolume",
          "importEpubBook",
          "importEpubSeries",
          "importLocalArtwork",
          "importMylarSeries",
          "name",
          "repairExtensions",
          "root",
          "scanForceModifiedTime",
          "seriesCover",
          "unavailable"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "root": {
            "type": "string"
          },
          "importComicInfoBook": {
            "type": "boolean"
          },
          "importComicInfoSeries": {
            "type": "boolean"
          },
          "importComicInfoCollection": {
            "type": "boolean"
          },
          "importComicInfoReadList": {
            "type": "boolean"
          },
          "importComicInfoSeriesAppendVolume": {
            "type": "boolean"
          },
          "importEpubBook": {
            "type": "boolean"
          },
          "importEpubSeries": {
            "type": "boolean"
          },
          "importMylarSeries": {
            "type": "boolean"
          },
          "importLocalArtwork": {
            "type": "boolean"
          },
          "importBarcodeIsbn": {
            "type": "boolean"
          },
          "scanForceModifiedTime": {
            "type": "boolean"
          },
          "repairExtensions": {
            "type": "boolean"
          },
          "convertToCbz": {
            "type": "boolean"
          },
          "emptyTrashAfterScan": {
            "type": "boolean"
          },
          "seriesCover": {
            "type": "string",
            "enum": [
              "FIRST",
              "FIRST_UNREAD_OR_FIRST",
              "FIRST_UNREAD_OR_LAST",
              "LAST"
            ]
          },
          "hashFiles": {
            "type": "boolean"
          },
          "hashPages": {
            "type": "boolean"
          },
          "analyzeDimensions": {
            "type": "boolean"
          },
          "oneshotsDirectory": {
            "type": "string"
          },
          "unavailable": {
            "type": "boolean"
          }
        }
      },
      "DirectoryRequestDto": {
        "required": [
          "path"
        ],
        "type": "object",
        "properties": {
          "path": {
            "type": "string"
          }
        }
      },
      "DirectoryListingDto": {
        "required": [
          "directories"
        ],
        "type": "object",
        "properties": {
          "parent": {
            "type": "string"
          },
          "directories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PathDto"
            }
          }
        }
      },
      "PathDto": {
        "required": [
          "name",
          "path",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "path": {
            "type": "string"
          }
        }
      },
      "CollectionCreationDto": {
        "required": [
          "name",
          "ordered",
          "seriesIds"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "ordered": {
            "type": "boolean"
          },
          "seriesIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "CollectionDto": {
        "required": [
          "createdDate",
          "filtered",
          "id",
          "lastModifiedDate",
          "name",
          "ordered",
          "seriesIds"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "ordered": {
            "type": "boolean"
          },
          "seriesIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "createdDate": {
            "type": "string",
            "format": "date-time"
          },
          "lastModifiedDate": {
            "type": "string",
            "format": "date-time"
          },
          "filtered": {
            "type": "boolean"
          }
        }
      },
      "ThumbnailSeriesCollectionDto": {
        "required": [
          "collectionId",
          "id",
          "selected",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "collectionId": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "selected": {
            "type": "boolean"
          }
        }
      },
      "ThumbnailBookDto": {
        "required": [
          "bookId",
          "id",
          "selected",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "bookId": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "selected": {
            "type": "boolean"
          }
        }
      },
      "BookImportBatchDto": {
        "required": [
          "books",
          "copyMode"
        ],
        "type": "object",
        "properties": {
          "books": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BookImportDto"
            }
          },
          "copyMode": {
            "type": "string",
            "enum": [
              "MOVE",
              "COPY",
              "HARDLINK"
            ]
          }
        }
      },
      "BookImportDto": {
        "required": [
          "seriesId",
          "sourceFile"
        ],
        "type": "object",
        "properties": {
          "sourceFile": {
            "type": "string"
          },
          "seriesId": {
            "type": "string"
          },
          "upgradeBookId": {
            "type": "string"
          },
          "destinationName": {
            "type": "string"
          }
        }
      },
      "AgeRestrictionUpdateDto": {
        "required": [
          "age",
          "restriction"
        ],
        "type": "object",
        "properties": {
          "age": {
            "type": "integer",
            "format": "int32"
          },
          "restriction": {
            "type": "string",
            "enum": [
              "ALLOW_ONLY",
              "EXCLUDE"
            ]
          }
        }
      },
      "SharedLibrariesUpdateDto": {
        "required": [
          "all",
          "libraryIds"
        ],
        "type": "object",
        "properties": {
          "all": {
            "type": "boolean"
          },
          "libraryIds": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "UserUpdateDto": {
        "type": "object",
        "properties": {
          "roles": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "ageRestriction": {
            "$ref": "#/components/schemas/AgeRestrictionUpdateDto"
          },
          "labelsAllow": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "labelsExclude": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sharedLibraries": {
            "$ref": "#/components/schemas/SharedLibrariesUpdateDto"
          }
        }
      },
      "PasswordUpdateDto": {
        "required": [
          "password"
        ],
        "type": "object",
        "properties": {
          "password": {
            "type": "string"
          }
        }
      },
      "AlternateTitleUpdateDto": {
        "required": [
          "label",
          "title"
        ],
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        }
      },
      "SeriesMetadataUpdateDto": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "ENDED",
              "ONGOING",
              "ABANDONED",
              "HIATUS"
            ]
          },
          "statusLock": {
            "type": "boolean"
          },
          "title": {
            "type": "string"
          },
          "titleLock": {
            "type": "boolean"
          },
          "titleSort": {
            "type": "string"
          },
          "titleSortLock": {
            "type": "boolean"
          },
          "summary": {
            "type": "string"
          },
          "summaryLock": {
            "type": "boolean"
          },
          "publisher": {
            "type": "string"
          },
          "publisherLock": {
            "type": "boolean"
          },
          "readingDirectionLock": {
            "type": "boolean"
          },
          "ageRatingLock": {
            "type": "boolean"
          },
          "language": {
            "type": "string"
          },
          "languageLock": {
            "type": "boolean"
          },
          "genresLock": {
            "type": "boolean"
          },
          "tagsLock": {
            "type": "boolean"
          },
          "totalBookCountLock": {
            "type": "boolean"
          },
          "sharingLabelsLock": {
            "type": "boolean"
          },
          "linksLock": {
            "type": "boolean"
          },
          "alternateTitlesLock": {
            "type": "boolean"
          },
          "tags": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebLinkUpdateDto"
            }
          },
          "readingDirection": {
            "type": "string",
            "enum": [
              "LEFT_TO_RIGHT",
              "RIGHT_TO_LEFT",
              "VERTICAL",
              "WEBTOON"
            ]
          },
          "ageRating": {
            "type": "integer",
            "format": "int32"
          },
          "genres": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "totalBookCount": {
            "type": "integer",
            "format": "int32"
          },
          "alternateTitles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AlternateTitleUpdateDto"
            }
          },
          "sharingLabels": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "Metadata fields to update. Set a field to null to unset the metadata. You can omit fields you don\u0027t want to update."
      },
      "WebLinkUpdateDto": {
        "required": [
          "label"
        ],
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        }
      },
      "ReadListUpdateDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "bookIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "ordered": {
            "type": "boolean"
          }
        }
      },
      "CollectionUpdateDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "ordered": {
            "type": "boolean"
          },
          "seriesIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ReadProgressUpdateDto": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "completed": {
            "type": "boolean"
          }
        },
        "description": "page can be omitted if completed is set to true. completed can be omitted, and will be set accordingly depending on the page passed and the total number of pages in the book."
      },
      "AuthorUpdateDto": {
        "required": [
          "name",
          "role"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "role": {
            "type": "string"
          }
        }
      },
      "BookMetadataUpdateDto": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "titleLock": {
            "type": "boolean"
          },
          "summaryLock": {
            "type": "boolean"
          },
          "number": {
            "type": "string"
          },
          "numberLock": {
            "type": "boolean"
          },
          "numberSort": {
            "type": "number",
            "format": "float"
          },
          "numberSortLock": {
            "type": "boolean"
          },
          "releaseDateLock": {
            "type": "boolean"
          },
          "authorsLock": {
            "type": "boolean"
          },
          "tagsLock": {
            "type": "boolean"
          },
          "isbnLock": {
            "type": "boolean"
          },
          "linksLock": {
            "type": "boolean"
          },
          "tags": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "summary": {
            "type": "string"
          },
          "releaseDate": {
            "type": "string",
            "format": "date"
          },
          "isbn": {
            "type": "string"
          },
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebLinkUpdateDto"
            }
          },
          "authors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AuthorUpdateDto"
            }
          }
        },
        "description": "Metadata fields to update. Set a field to null to unset the metadata. You can omit fields you don\u0027t want to update."
      },
      "OpdsAuthor": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "uri": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "OpdsEntry": {
        "required": [
          "content",
          "id",
          "title",
          "updated"
        ],
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "updated": {
            "type": "string",
            "format": "date-time"
          },
          "id": {
            "type": "string"
          },
          "content": {
            "type": "string"
          }
        }
      },
      "OpdsFeed": {
        "required": [
          "author",
          "entries",
          "id",
          "links",
          "title",
          "updated"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "updated": {
            "type": "string",
            "format": "date-time"
          },
          "author": {
            "$ref": "#/components/schemas/OpdsAuthor"
          },
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OpdsLink"
            }
          },
          "entries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OpdsEntry"
            }
          }
        }
      },
      "OpdsLink": {
        "required": [
          "href",
          "rel",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "rel": {
            "type": "string"
          },
          "href": {
            "type": "string"
          }
        }
      },
      "OpenSearchDescription": {
        "required": [
          "description",
          "inputEncoding",
          "outputEncoding",
          "shortName",
          "url"
        ],
        "type": "object",
        "properties": {
          "shortName": {
            "maxLength": 16,
            "minLength": 1,
            "type": "string"
          },
          "description": {
            "maxLength": 1024,
            "minLength": 1,
            "type": "string"
          },
          "inputEncoding": {
            "type": "string"
          },
          "outputEncoding": {
            "type": "string"
          },
          "url": {
            "$ref": "#/components/schemas/OpenSearchUrl"
          }
        }
      },
      "OpenSearchUrl": {
        "required": [
          "template",
          "type"
        ],
        "type": "object",
        "properties": {
          "template": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        }
      },
      "AuthenticationActivityDto": {
        "required": [
          "dateTime",
          "success"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "ip": {
            "type": "string"
          },
          "userAgent": {
            "type": "string"
          },
          "success": {
            "type": "boolean"
          },
          "error": {
            "type": "string"
          },
          "dateTime": {
            "type": "string",
            "format": "date-time"
          },
          "source": {
            "type": "string"
          }
        }
      },
      "PageAuthenticationActivityDto": {
        "type": "object",
        "properties": {
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AuthenticationActivityDto"
            }
          },
          "number": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/SortObject"
          },
          "pageable": {
            "$ref": "#/components/schemas/PageableObject"
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "first": {
            "type": "boolean"
          },
          "last": {
            "type": "boolean"
          },
          "empty": {
            "type": "boolean"
          }
        }
      },
      "PageableObject": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "format": "int64"
          },
          "sort": {
            "$ref": "#/components/schemas/SortObject"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "paged": {
            "type": "boolean"
          },
          "unpaged": {
            "type": "boolean"
          }
        }
      },
      "SortObject": {
        "type": "object",
        "properties": {
          "empty": {
            "type": "boolean"
          },
          "sorted": {
            "type": "boolean"
          },
          "unsorted": {
            "type": "boolean"
          }
        }
      },
      "TachiyomiReadProgressV2Dto": {
        "required": [
          "booksCount",
          "booksInProgressCount",
          "booksReadCount",
          "booksUnreadCount",
          "lastReadContinuousNumberSort",
          "maxNumberSort"
        ],
        "type": "object",
        "properties": {
          "booksCount": {
            "type": "integer",
            "format": "int32"
          },
          "booksReadCount": {
            "type": "integer",
            "format": "int32"
          },
          "booksUnreadCount": {
            "type": "integer",
            "format": "int32"
          },
          "booksInProgressCount": {
            "type": "integer",
            "format": "int32"
          },
          "lastReadContinuousNumberSort": {
            "type": "number",
            "format": "float"
          },
          "maxNumberSort": {
            "type": "number",
            "format": "float"
          }
        }
      },
      "AuthorDto": {
        "required": [
          "name",
          "role"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "role": {
            "type": "string"
          }
        }
      },
      "PageAuthorDto": {
        "type": "object",
        "properties": {
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AuthorDto"
            }
          },
          "number": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/SortObject"
          },
          "pageable": {
            "$ref": "#/components/schemas/PageableObject"
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "first": {
            "type": "boolean"
          },
          "last": {
            "type": "boolean"
          },
          "empty": {
            "type": "boolean"
          }
        }
      },
      "AlternateTitleDto": {
        "required": [
          "label",
          "title"
        ],
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        }
      },
      "BookMetadataAggregationDto": {
        "required": [
          "authors",
          "created",
          "lastModified",
          "summary",
          "summaryNumber",
          "tags"
        ],
        "type": "object",
        "properties": {
          "authors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AuthorDto"
            }
          },
          "tags": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "releaseDate": {
            "type": "string",
            "format": "date"
          },
          "summary": {
            "type": "string"
          },
          "summaryNumber": {
            "type": "string"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "lastModified": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PageSeriesDto": {
        "type": "object",
        "properties": {
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SeriesDto"
            }
          },
          "number": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/SortObject"
          },
          "pageable": {
            "$ref": "#/components/schemas/PageableObject"
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "first": {
            "type": "boolean"
          },
          "last": {
            "type": "boolean"
          },
          "empty": {
            "type": "boolean"
          }
        }
      },
      "SeriesDto": {
        "required": [
          "booksCount",
          "booksInProgressCount",
          "booksMetadata",
          "booksReadCount",
          "booksUnreadCount",
          "created",
          "deleted",
          "fileLastModified",
          "id",
          "lastModified",
          "libraryId",
          "metadata",
          "name",
          "oneshot",
          "url"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "libraryId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "lastModified": {
            "type": "string",
            "format": "date-time"
          },
          "fileLastModified": {
            "type": "string",
            "format": "date-time"
          },
          "booksCount": {
            "type": "integer",
            "format": "int32"
          },
          "booksReadCount": {
            "type": "integer",
            "format": "int32"
          },
          "booksUnreadCount": {
            "type": "integer",
            "format": "int32"
          },
          "booksInProgressCount": {
            "type": "integer",
            "format": "int32"
          },
          "metadata": {
            "$ref": "#/components/schemas/SeriesMetadataDto"
          },
          "booksMetadata": {
            "$ref": "#/components/schemas/BookMetadataAggregationDto"
          },
          "deleted": {
            "type": "boolean"
          },
          "oneshot": {
            "type": "boolean"
          }
        }
      },
      "SeriesMetadataDto": {
        "required": [
          "ageRatingLock",
          "alternateTitles",
          "alternateTitlesLock",
          "created",
          "genres",
          "genresLock",
          "language",
          "languageLock",
          "lastModified",
          "links",
          "linksLock",
          "publisher",
          "publisherLock",
          "readingDirection",
          "readingDirectionLock",
          "sharingLabels",
          "sharingLabelsLock",
          "status",
          "statusLock",
          "summary",
          "summaryLock",
          "tags",
          "tagsLock",
          "title",
          "titleLock",
          "titleSort",
          "titleSortLock",
          "totalBookCountLock"
        ],
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "statusLock": {
            "type": "boolean"
          },
          "title": {
            "type": "string"
          },
          "titleLock": {
            "type": "boolean"
          },
          "titleSort": {
            "type": "string"
          },
          "titleSortLock": {
            "type": "boolean"
          },
          "summary": {
            "type": "string"
          },
          "summaryLock": {
            "type": "boolean"
          },
          "readingDirection": {
            "type": "string"
          },
          "readingDirectionLock": {
            "type": "boolean"
          },
          "publisher": {
            "type": "string"
          },
          "publisherLock": {
            "type": "boolean"
          },
          "ageRating": {
            "type": "integer",
            "format": "int32"
          },
          "ageRatingLock": {
            "type": "boolean"
          },
          "language": {
            "type": "string"
          },
          "languageLock": {
            "type": "boolean"
          },
          "genres": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "genresLock": {
            "type": "boolean"
          },
          "tags": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "tagsLock": {
            "type": "boolean"
          },
          "totalBookCount": {
            "type": "integer",
            "format": "int32"
          },
          "totalBookCountLock": {
            "type": "boolean"
          },
          "sharingLabels": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sharingLabelsLock": {
            "type": "boolean"
          },
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebLinkDto"
            }
          },
          "linksLock": {
            "type": "boolean"
          },
          "alternateTitles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AlternateTitleDto"
            }
          },
          "alternateTitlesLock": {
            "type": "boolean"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "lastModified": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "WebLinkDto": {
        "required": [
          "label",
          "url"
        ],
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        }
      },
      "StreamingResponseBody": {
        "type": "object"
      },
      "BookDto": {
        "required": [
          "created",
          "deleted",
          "fileHash",
          "fileLastModified",
          "id",
          "lastModified",
          "libraryId",
          "media",
          "metadata",
          "name",
          "number",
          "oneshot",
          "seriesId",
          "seriesTitle",
          "size",
          "sizeBytes",
          "url"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "seriesId": {
            "type": "string"
          },
          "seriesTitle": {
            "type": "string"
          },
          "libraryId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "number": {
            "type": "integer",
            "format": "int32"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "lastModified": {
            "type": "string",
            "format": "date-time"
          },
          "fileLastModified": {
            "type": "string",
            "format": "date-time"
          },
          "sizeBytes": {
            "type": "integer",
            "format": "int64"
          },
          "size": {
            "type": "string"
          },
          "media": {
            "$ref": "#/components/schemas/MediaDto"
          },
          "metadata": {
            "$ref": "#/components/schemas/BookMetadataDto"
          },
          "readProgress": {
            "$ref": "#/components/schemas/ReadProgressDto"
          },
          "deleted": {
            "type": "boolean"
          },
          "fileHash": {
            "type": "string"
          },
          "oneshot": {
            "type": "boolean"
          }
        }
      },
      "BookMetadataDto": {
        "required": [
          "authors",
          "authorsLock",
          "created",
          "isbn",
          "isbnLock",
          "lastModified",
          "links",
          "linksLock",
          "number",
          "numberLock",
          "numberSort",
          "numberSortLock",
          "releaseDateLock",
          "summary",
          "summaryLock",
          "tags",
          "tagsLock",
          "title",
          "titleLock"
        ],
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "titleLock": {
            "type": "boolean"
          },
          "summary": {
            "type": "string"
          },
          "summaryLock": {
            "type": "boolean"
          },
          "number": {
            "type": "string"
          },
          "numberLock": {
            "type": "boolean"
          },
          "numberSort": {
            "type": "number",
            "format": "float"
          },
          "numberSortLock": {
            "type": "boolean"
          },
          "releaseDate": {
            "type": "string",
            "format": "date"
          },
          "releaseDateLock": {
            "type": "boolean"
          },
          "authors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AuthorDto"
            }
          },
          "authorsLock": {
            "type": "boolean"
          },
          "tags": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "tagsLock": {
            "type": "boolean"
          },
          "isbn": {
            "type": "string"
          },
          "isbnLock": {
            "type": "boolean"
          },
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebLinkDto"
            }
          },
          "linksLock": {
            "type": "boolean"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "lastModified": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "MediaDto": {
        "required": [
          "comment",
          "mediaType",
          "pagesCount",
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "mediaType": {
            "type": "string"
          },
          "pagesCount": {
            "type": "integer",
            "format": "int32"
          },
          "comment": {
            "type": "string"
          }
        }
      },
      "PageBookDto": {
        "type": "object",
        "properties": {
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BookDto"
            }
          },
          "number": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/SortObject"
          },
          "pageable": {
            "$ref": "#/components/schemas/PageableObject"
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "first": {
            "type": "boolean"
          },
          "last": {
            "type": "boolean"
          },
          "empty": {
            "type": "boolean"
          }
        }
      },
      "ReadProgressDto": {
        "required": [
          "completed",
          "created",
          "lastModified",
          "page",
          "readDate"
        ],
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "completed": {
            "type": "boolean"
          },
          "readDate": {
            "type": "string",
            "format": "date-time"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "lastModified": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "GroupCountDto": {
        "required": [
          "count",
          "group"
        ],
        "type": "object",
        "properties": {
          "group": {
            "type": "string"
          },
          "count": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PageReadListDto": {
        "type": "object",
        "properties": {
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReadListDto"
            }
          },
          "number": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/SortObject"
          },
          "pageable": {
            "$ref": "#/components/schemas/PageableObject"
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "first": {
            "type": "boolean"
          },
          "last": {
            "type": "boolean"
          },
          "empty": {
            "type": "boolean"
          }
        }
      },
      "TachiyomiReadProgressDto": {
        "required": [
          "booksCount",
          "booksInProgressCount",
          "booksReadCount",
          "booksUnreadCount",
          "lastReadContinuousIndex"
        ],
        "type": "object",
        "properties": {
          "booksCount": {
            "type": "integer",
            "format": "int32"
          },
          "booksReadCount": {
            "type": "integer",
            "format": "int32"
          },
          "booksUnreadCount": {
            "type": "integer",
            "format": "int32"
          },
          "booksInProgressCount": {
            "type": "integer",
            "format": "int32"
          },
          "lastReadContinuousIndex": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PageHashKnownDto": {
        "required": [
          "action",
          "created",
          "deleteCount",
          "hash",
          "lastModified",
          "matchCount"
        ],
        "type": "object",
        "properties": {
          "hash": {
            "type": "string"
          },
          "size": {
            "type": "integer",
            "format": "int64"
          },
          "action": {
            "type": "string",
            "enum": [
              "DELETE_AUTO",
              "DELETE_MANUAL",
              "IGNORE"
            ]
          },
          "deleteCount": {
            "type": "integer",
            "format": "int32"
          },
          "matchCount": {
            "type": "integer",
            "format": "int32"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "lastModified": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PagePageHashKnownDto": {
        "type": "object",
        "properties": {
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PageHashKnownDto"
            }
          },
          "number": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/SortObject"
          },
          "pageable": {
            "$ref": "#/components/schemas/PageableObject"
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "first": {
            "type": "boolean"
          },
          "last": {
            "type": "boolean"
          },
          "empty": {
            "type": "boolean"
          }
        }
      },
      "PagePageHashMatchDto": {
        "type": "object",
        "properties": {
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PageHashMatchDto"
            }
          },
          "number": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/SortObject"
          },
          "pageable": {
            "$ref": "#/components/schemas/PageableObject"
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "first": {
            "type": "boolean"
          },
          "last": {
            "type": "boolean"
          },
          "empty": {
            "type": "boolean"
          }
        }
      },
      "PageHashUnknownDto": {
        "required": [
          "hash",
          "matchCount"
        ],
        "type": "object",
        "properties": {
          "hash": {
            "type": "string"
          },
          "size": {
            "type": "integer",
            "format": "int64"
          },
          "matchCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PagePageHashUnknownDto": {
        "type": "object",
        "properties": {
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PageHashUnknownDto"
            }
          },
          "number": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/SortObject"
          },
          "pageable": {
            "$ref": "#/components/schemas/PageableObject"
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "first": {
            "type": "boolean"
          },
          "last": {
            "type": "boolean"
          },
          "empty": {
            "type": "boolean"
          }
        }
      },
      "HistoricalEventDto": {
        "required": [
          "properties",
          "timestamp",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "bookId": {
            "type": "string"
          },
          "seriesId": {
            "type": "string"
          },
          "properties": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "PageHistoricalEventDto": {
        "type": "object",
        "properties": {
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/HistoricalEventDto"
            }
          },
          "number": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/SortObject"
          },
          "pageable": {
            "$ref": "#/components/schemas/PageableObject"
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "first": {
            "type": "boolean"
          },
          "last": {
            "type": "boolean"
          },
          "empty": {
            "type": "boolean"
          }
        }
      },
      "PageCollectionDto": {
        "type": "object",
        "properties": {
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          },
          "size": {
            "type": "integer",
            "format": "int32"
          },
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CollectionDto"
            }
          },
          "number": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/SortObject"
          },
          "pageable": {
            "$ref": "#/components/schemas/PageableObject"
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "first": {
            "type": "boolean"
          },
          "last": {
            "type": "boolean"
          },
          "empty": {
            "type": "boolean"
          }
        }
      },
      "ClaimStatus": {
        "required": [
          "isClaimed"
        ],
        "type": "object",
        "properties": {
          "isClaimed": {
            "type": "boolean"
          }
        }
      },
      "ItemDto": {
        "required": [
          "id",
          "tags"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "content_html": {
            "type": "string"
          },
          "date_modified": {
            "type": "string",
            "format": "date-time"
          },
          "author": {
            "$ref": "#/components/schemas/AuthorDto"
          },
          "tags": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "_komga": {
            "$ref": "#/components/schemas/KomgaExtensionDto"
          }
        }
      },
      "JsonFeedDto": {
        "required": [
          "items",
          "title",
          "version"
        ],
        "type": "object",
        "properties": {
          "version": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "home_page_url": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ItemDto"
            }
          }
        }
      },
      "KomgaExtensionDto": {
        "required": [
          "read"
        ],
        "type": "object",
        "properties": {
          "read": {
            "type": "boolean"
          }
        }
      },
      "OAuth2ClientDto": {
        "required": [
          "name",
          "registrationId"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "registrationId": {
            "type": "string"
          }
        }
      }
    },
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "scheme": "basic"
      }
    }
  }
}