Files
Tranga/API/openapi/API_v2.json
glax ed07bba841
Some checks failed
Docker Image CI / build (push) Has been cancelled
Use DelegatingHandler for RateLimits
2025-10-06 22:48:46 +02:00

4240 lines
116 KiB
JSON

{
"openapi": "3.0.4",
"info": {
"title": "Tranga v2",
"version": "2.0"
},
"paths": {
"/v2/FileLibrary": {
"get": {
"tags": [
"FileLibrary"
],
"summary": "Returns all API.Controllers.DTOs.FileLibrary",
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FileLibrary"
}
}
}
}
},
"500": {
"description": "Error during Database Operation"
}
}
},
"put": {
"tags": [
"FileLibrary"
],
"summary": "Creates new API.Controllers.DTOs.FileLibrary",
"requestBody": {
"description": "New API.Controllers.DTOs.FileLibrary to add",
"content": {
"application/json-patch+json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreateLibraryRecord"
}
},
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreateLibraryRecord"
}
},
"text/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreateLibraryRecord"
}
},
"application/*+json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreateLibraryRecord"
}
}
}
},
"responses": {
"201": {
"description": "Created",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Error during Database Operation",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"200": {
"description": "Key of new Library"
}
}
}
},
"/v2/FileLibrary/{FileLibraryId}": {
"get": {
"tags": [
"FileLibrary"
],
"summary": "Returns API.Controllers.DTOs.FileLibrary with FileLibraryId",
"parameters": [
{
"name": "FileLibraryId",
"in": "path",
"description": "API.Controllers.DTOs.FileLibrary.Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/FileLibrary"
}
}
}
},
"404": {
"description": "API.Controllers.DTOs.FileLibrary with FileLibraryId not found.",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
},
"delete": {
"tags": [
"FileLibrary"
],
"summary": "Deletes the !:FileLibraryId.LibraryName with FileLibraryId",
"parameters": [
{
"name": "FileLibraryId",
"in": "path",
"description": "API.Controllers.DTOs.FileLibrary.Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": ""
},
"404": {
"description": "API.Controllers.DTOs.FileLibrary with FileLibraryId not found.",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Error during Database Operation",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/FileLibrary/{FileLibraryId}/ChangeBasePath": {
"patch": {
"tags": [
"FileLibrary"
],
"summary": "Changes the !:FileLibraryId.BasePath with FileLibraryId",
"parameters": [
{
"name": "FileLibraryId",
"in": "path",
"description": "API.Controllers.DTOs.FileLibrary.Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "New !:FileLibraryId.BasePath",
"content": {
"application/json-patch+json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"application/json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"text/json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"application/*+json; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"responses": {
"200": {
"description": ""
},
"404": {
"description": "API.Controllers.DTOs.FileLibrary with FileLibraryId not found.",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Error during Database Operation",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/FileLibrary/{FileLibraryId}/ChangeName": {
"patch": {
"tags": [
"FileLibrary"
],
"summary": "Changes the !:FileLibraryId.LibraryName with FileLibraryId",
"parameters": [
{
"name": "FileLibraryId",
"in": "path",
"description": "API.Controllers.DTOs.FileLibrary.Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "New !:FileLibraryId.LibraryName",
"content": {
"application/json-patch+json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"application/json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"text/json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"application/*+json; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"responses": {
"200": {
"description": ""
},
"404": {
"description": "API.Controllers.DTOs.FileLibrary with FileLibraryId not found.",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Error during Database Operation",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/LibraryConnector": {
"get": {
"tags": [
"LibraryConnector"
],
"summary": "Gets all configured API.Controllers.DTOs.LibraryConnector",
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LibraryConnector"
}
}
}
}
},
"500": {
"description": "Error during Database Operation"
}
}
},
"put": {
"tags": [
"LibraryConnector"
],
"summary": "Creates a new API.Controllers.DTOs.LibraryConnector",
"requestBody": {
"description": "",
"content": {
"application/json-patch+json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreateLibraryConnectorRecord"
}
},
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreateLibraryConnectorRecord"
}
},
"text/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreateLibraryConnectorRecord"
}
},
"application/*+json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreateLibraryConnectorRecord"
}
}
}
},
"responses": {
"201": {
"description": "",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Error during Database Operation",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/LibraryConnector/{LibraryConnectorId}": {
"get": {
"tags": [
"LibraryConnector"
],
"summary": "Returns API.Controllers.DTOs.LibraryConnector with LibraryConnectorId",
"parameters": [
{
"name": "LibraryConnectorId",
"in": "path",
"description": "API.Controllers.DTOs.LibraryConnector.Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/LibraryConnector"
}
}
}
},
"404": {
"description": "API.Controllers.DTOs.LibraryConnector with LibraryConnectorId not found.",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
},
"delete": {
"tags": [
"LibraryConnector"
],
"summary": "Deletes API.Controllers.DTOs.LibraryConnector with LibraryConnectorId",
"parameters": [
{
"name": "LibraryConnectorId",
"in": "path",
"description": "ToFileLibrary-Connector-ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": ""
},
"404": {
"description": "API.Controllers.DTOs.LibraryConnector with LibraryConnectorId not found.",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Error during Database Operation",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/Maintenance/CleanupNoDownloadManga": {
"post": {
"tags": [
"Maintenance"
],
"summary": "Removes all API.Schema.MangaContext.Manga not marked for Download on any API.MangaConnectors.MangaConnector",
"responses": {
"200": {
"description": ""
},
"500": {
"description": "Error during Database Operation",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/Manga": {
"get": {
"tags": [
"Manga"
],
"summary": "Returns all cached API.Controllers.DTOs.Manga",
"responses": {
"200": {
"description": "API.Controllers.DTOs.MinimalManga exert of API.Schema.MangaContext.Manga. Use M:API.Controllers.MangaController.GetManga(System.String) for more information",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MinimalManga"
}
}
}
}
},
"500": {
"description": "Error during Database Operation"
}
}
}
},
"/v2/Manga/Keys": {
"get": {
"tags": [
"Manga"
],
"summary": "Returns all cached API.Schema.MangaContext.Manga.Keys",
"responses": {
"200": {
"description": "API.Schema.MangaContext.Manga Keys/IDs",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"500": {
"description": "Error during Database Operation"
}
}
}
},
"/v2/Manga/Downloading": {
"get": {
"tags": [
"Manga"
],
"summary": "Returns all API.Schema.MangaContext.Manga that are being downloaded from at least one API.MangaConnectors.MangaConnector",
"responses": {
"200": {
"description": "API.Controllers.DTOs.MinimalManga exert of API.Schema.MangaContext.Manga. Use M:API.Controllers.MangaController.GetManga(System.String) for more information",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MinimalManga"
}
}
}
}
},
"500": {
"description": "Error during Database Operation"
}
}
}
},
"/v2/Manga/WithIDs": {
"post": {
"tags": [
"Manga"
],
"summary": "Returns all cached API.Schema.MangaContext.Manga with MangaIds",
"requestBody": {
"description": "Array of API.Schema.MangaContext.Manga.Key",
"content": {
"application/json-patch+json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"text/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"application/*+json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"responses": {
"200": {
"description": "API.Controllers.DTOs.Manga",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Manga"
}
}
}
}
},
"500": {
"description": "Error during Database Operation"
}
}
}
},
"/v2/Manga/{MangaId}": {
"get": {
"tags": [
"Manga"
],
"summary": "Return API.Schema.MangaContext.Manga with MangaId",
"parameters": [
{
"name": "MangaId",
"in": "path",
"description": "API.Schema.MangaContext.Manga.Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/Manga"
}
}
}
},
"404": {
"description": "API.Controllers.DTOs.Manga with MangaId not found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
},
"delete": {
"tags": [
"Manga"
],
"summary": "Delete API.Controllers.DTOs.Manga with MangaId",
"parameters": [
{
"name": "MangaId",
"in": "path",
"description": "API.Controllers.DTOs.Manga.Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": ""
},
"404": {
"description": "API.Controllers.DTOs.Manga with MangaId not found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Error during Database Operation",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/Manga/{MangaIdFrom}/MergeInto/{MangaIdInto}": {
"patch": {
"tags": [
"Manga"
],
"summary": "Merge two API.Controllers.DTOs.Manga into one. THIS IS NOT REVERSIBLE!",
"parameters": [
{
"name": "MangaIdFrom",
"in": "path",
"description": "API.Controllers.DTOs.Manga.Key of API.Controllers.DTOs.Manga merging data from (getting deleted)",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "MangaIdInto",
"in": "path",
"description": "API.Controllers.DTOs.Manga.Key of API.Controllers.DTOs.Manga merging data into",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": ""
},
"404": {
"description": "API.Controllers.DTOs.Manga with MangaIdFrom or MangaIdInto not found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/Manga/{MangaId}/Cover/{CoverSize}": {
"get": {
"tags": [
"Manga"
],
"summary": "Returns Cover of API.Controllers.DTOs.Manga with MangaId",
"parameters": [
{
"name": "MangaId",
"in": "path",
"description": "API.Controllers.DTOs.Manga.Key",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "CoverSize",
"in": "path",
"description": "Size of the cover returned\n \n - API.Controllers.MangaController.CoverSize.SmallAPI.Constants.ImageSmSize\n - API.Controllers.MangaController.CoverSize.MediumAPI.Constants.ImageMdSize\n - API.Controllers.MangaController.CoverSize.LargeAPI.Constants.ImageLgSize",
"required": true,
"schema": {
"$ref": "#/components/schemas/CoverSize"
}
}
],
"responses": {
"200": {
"description": "JPEG Image",
"content": {
"image/jpeg; x-version=2.0": {
"schema": {
"type": "string",
"format": "binary"
}
}
}
},
"204": {
"description": "Cover not loaded"
},
"400": {
"description": "Bad Request",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"404": {
"description": "API.Controllers.DTOs.Manga with MangaId not found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"503": {
"description": "Retry later, downloading cover"
}
}
}
},
"/v2/Manga/{MangaId}/Chapters": {
"get": {
"tags": [
"Manga"
],
"summary": "Returns all API.Controllers.DTOs.Chapter of API.Controllers.DTOs.Manga with MangaId",
"parameters": [
{
"name": "MangaId",
"in": "path",
"description": "API.Controllers.DTOs.Manga.Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Chapter"
}
}
}
}
},
"404": {
"description": "API.Controllers.DTOs.Manga with MangaId not found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/Manga/{MangaId}/Chapters/Downloaded": {
"get": {
"tags": [
"Manga"
],
"summary": "Returns all downloaded API.Controllers.DTOs.Chapter for API.Controllers.DTOs.Manga with MangaId",
"parameters": [
{
"name": "MangaId",
"in": "path",
"description": "API.Controllers.DTOs.Manga.Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Chapter"
}
}
}
}
},
"204": {
"description": "No available chapters"
},
"404": {
"description": "API.Controllers.DTOs.Manga with MangaId not found.",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/Manga/{MangaId}/Chapters/NotDownloaded": {
"get": {
"tags": [
"Manga"
],
"summary": "Returns all API.Controllers.DTOs.Chapter not downloaded for API.Controllers.DTOs.Manga with MangaId",
"parameters": [
{
"name": "MangaId",
"in": "path",
"description": "API.Controllers.DTOs.Manga.Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Chapter"
}
}
}
}
},
"204": {
"description": "No available chapters"
},
"404": {
"description": "API.Controllers.DTOs.Manga with MangaId not found.",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/Manga/{MangaId}/Chapter/LatestAvailable": {
"get": {
"tags": [
"Manga"
],
"summary": "Returns the latest API.Controllers.DTOs.Chapter of requested API.Controllers.DTOs.Manga available on API.MangaConnectors.MangaConnector",
"parameters": [
{
"name": "MangaId",
"in": "path",
"description": "API.Controllers.DTOs.Manga.Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "integer",
"format": "int32"
}
}
}
},
"204": {
"description": "No available chapters"
},
"404": {
"description": "API.Controllers.DTOs.Manga with MangaId not found.",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Internal Server Error"
},
"503": {
"description": "Retry after timeout, updating value"
},
"412": {
"description": "Could not retrieve the maximum chapter-number"
}
}
}
},
"/v2/Manga/{MangaId}/Chapter/LatestDownloaded": {
"get": {
"tags": [
"Manga"
],
"summary": "Returns the latest API.Controllers.DTOs.Chapter of requested API.Controllers.DTOs.Manga that is downloaded",
"parameters": [
{
"name": "MangaId",
"in": "path",
"description": "API.Controllers.DTOs.Manga.Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/Chapter"
}
}
}
},
"204": {
"description": "No available chapters"
},
"404": {
"description": "API.Controllers.DTOs.Manga with MangaId not found.",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"412": {
"description": "Could not retrieve the maximum chapter-number",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"503": {
"description": "Retry after timeout, updating value"
}
}
}
},
"/v2/Manga/{MangaId}/IgnoreChaptersBefore": {
"patch": {
"tags": [
"Manga"
],
"summary": "Configure the API.Controllers.DTOs.Chapter cut-off for API.Controllers.DTOs.Manga",
"parameters": [
{
"name": "MangaId",
"in": "path",
"description": "API.Controllers.DTOs.Manga.Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "Threshold (API.Controllers.DTOs.Chapter ChapterNumber)",
"content": {
"application/json-patch+json; x-version=2.0": {
"schema": {
"type": "number",
"format": "float"
}
},
"application/json; x-version=2.0": {
"schema": {
"type": "number",
"format": "float"
}
},
"text/json; x-version=2.0": {
"schema": {
"type": "number",
"format": "float"
}
},
"application/*+json; x-version=2.0": {
"schema": {
"type": "number",
"format": "float"
}
}
}
},
"responses": {
"200": {
"description": "OK"
},
"404": {
"description": "API.Controllers.DTOs.Manga with MangaId not found.",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Error during Database Operation",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"202": {
"description": ""
}
}
}
},
"/v2/Manga/{MangaId}/ChangeLibrary/{LibraryId}": {
"post": {
"tags": [
"Manga"
],
"summary": "Move API.Controllers.DTOs.Manga to different API.Controllers.DTOs.FileLibrary",
"parameters": [
{
"name": "MangaId",
"in": "path",
"description": "API.Controllers.DTOs.Manga.Key",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "LibraryId",
"in": "path",
"description": "API.Controllers.DTOs.FileLibrary.Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK"
},
"404": {
"description": "MangaId or LibraryId not found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"202": {
"description": "Folder is going to be moved"
}
}
}
},
"/v2/Manga/{MangaId}/SetAsDownloadFrom/{MangaConnectorName}/{IsRequested}": {
"post": {
"tags": [
"Manga"
],
"summary": "(Un-)Marks API.Controllers.DTOs.Manga as requested for Download from API.MangaConnectors.MangaConnector",
"parameters": [
{
"name": "MangaId",
"in": "path",
"description": "API.Controllers.DTOs.Manga with MangaId",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "MangaConnectorName",
"in": "path",
"description": "API.MangaConnectors.MangaConnector with MangaConnectorName",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "IsRequested",
"in": "path",
"description": "true to mark as requested, false to mark as not-requested",
"required": true,
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": ""
},
"404": {
"description": "MangaId or MangaConnectorName not found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"412": {
"description": "API.Controllers.DTOs.Manga was not linked to API.MangaConnectors.MangaConnector, so nothing changed",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"428": {
"description": "API.Controllers.DTOs.Manga is not linked to API.MangaConnectors.MangaConnector yet. Search for API.Controllers.DTOs.Manga on API.MangaConnectors.MangaConnector first (to create a API.Schema.MangaContext.MangaConnectorId`1).",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Error during Database Operation",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/Manga/{MangaId}/SearchOn/{MangaConnectorName}": {
"post": {
"tags": [
"Manga"
],
"summary": "Initiate a search for API.Schema.MangaContext.Manga on a different API.MangaConnectors.MangaConnector",
"parameters": [
{
"name": "MangaId",
"in": "path",
"description": "API.Schema.MangaContext.Manga with MangaId",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "MangaConnectorName",
"in": "path",
"description": "API.MangaConnectors.MangaConnector.Name",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "API.Controllers.DTOs.MinimalManga exert of API.Schema.MangaContext.Manga",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MinimalManga"
}
}
}
}
},
"404": {
"description": "API.MangaConnectors.MangaConnector with Name not found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"406": {
"description": "Not Acceptable",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"412": {
"description": "API.MangaConnectors.MangaConnector with Name is disabled"
}
}
}
},
"/v2/Manga/WithAuthorId/{AuthorId}": {
"get": {
"tags": [
"Manga"
],
"summary": "Returns all API.Controllers.DTOs.Manga which where Authored by API.Controllers.DTOs.Author with AuthorId",
"parameters": [
{
"name": "AuthorId",
"in": "path",
"description": "API.Controllers.DTOs.Author.Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Manga"
}
}
}
}
},
"404": {
"description": "API.Controllers.DTOs.Author with AuthorId",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Error during Database Operation"
}
}
}
},
"/v2/Manga/WithTag/{Tag}": {
"get": {
"tags": [
"Manga"
],
"summary": "Returns all API.Controllers.DTOs.Manga with !:Tag",
"parameters": [
{
"name": "Tag",
"in": "path",
"description": "!:Tag.Tag",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Manga"
}
}
}
}
},
"404": {
"description": "!:Tag not found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Error during Database Operation"
}
}
}
},
"/v2/MangaConnector": {
"get": {
"tags": [
"MangaConnector"
],
"summary": "Get all API.MangaConnectors.MangaConnector (Scanlation-Sites)",
"responses": {
"200": {
"description": "Names of API.MangaConnectors.MangaConnector (Scanlation-Sites)",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MangaConnector"
}
}
}
}
}
}
}
},
"/v2/MangaConnector/{MangaConnectorName}": {
"get": {
"tags": [
"MangaConnector"
],
"summary": "Returns the API.MangaConnectors.MangaConnector (Scanlation-Sites) with the requested Name",
"parameters": [
{
"name": "MangaConnectorName",
"in": "path",
"description": "API.MangaConnectors.MangaConnector.Name",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/MangaConnector"
}
}
}
},
"404": {
"description": "API.Controllers.DTOs.MangaConnector (Scanlation-Sites) with Name not found.",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/MangaConnector/Enabled": {
"get": {
"tags": [
"MangaConnector"
],
"summary": "Get all enabled API.MangaConnectors.MangaConnector (Scanlation-Sites)",
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MangaConnector"
}
}
}
}
}
}
}
},
"/v2/MangaConnector/Disabled": {
"get": {
"tags": [
"MangaConnector"
],
"summary": "Get all disabled API.MangaConnectors.MangaConnector (Scanlation-Sites)",
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MangaConnector"
}
}
}
}
}
}
}
},
"/v2/MangaConnector/{MangaConnectorName}/SetEnabled/{Enabled}": {
"patch": {
"tags": [
"MangaConnector"
],
"summary": "Enabled or disables API.MangaConnectors.MangaConnector (Scanlation-Sites) with Name",
"parameters": [
{
"name": "MangaConnectorName",
"in": "path",
"description": "API.MangaConnectors.MangaConnector.Name",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "Enabled",
"in": "path",
"description": "Set true to enable, false to disable",
"required": true,
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": ""
},
"404": {
"description": "API.MangaConnectors.MangaConnector (Scanlation-Sites) with Name not found.",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Error during Database Operation",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/MetadataFetcher": {
"get": {
"tags": [
"MetadataFetcher"
],
"summary": "Get all API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites)",
"responses": {
"200": {
"description": "Names of API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites)",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
},
"/v2/MetadataFetcher/Links": {
"get": {
"tags": [
"MetadataFetcher"
],
"summary": "Returns all API.Schema.MangaContext.MetadataFetchers.MetadataEntry",
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MetadataEntry"
}
}
}
}
},
"500": {
"description": "Error during Database Operation"
}
}
}
},
"/v2/MetadataFetcher/{MetadataFetcherName}/SearchManga/{MangaId}": {
"post": {
"tags": [
"MetadataFetcher"
],
"summary": "Searches API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites) for Manga-Metadata",
"parameters": [
{
"name": "MangaId",
"in": "path",
"description": "API.Schema.MangaContext.Manga.Key",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "MetadataFetcherName",
"in": "path",
"description": "API.Schema.MangaContext.MetadataFetchers.MetadataFetcher.Name",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "Instead of using the MangaId for search on Website, use a specific term",
"content": {
"application/json-patch+json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"application/json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"text/json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"application/*+json; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MetadataSearchResult"
}
}
}
}
},
"400": {
"description": "API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites) with MetadataFetcherName does not exist",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"404": {
"description": "API.Schema.MangaContext.Manga with MangaId not found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/MetadataFetcher/{MetadataFetcherName}/Link/{MangaId}": {
"post": {
"tags": [
"MetadataFetcher"
],
"summary": "Links API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites) using Provider-Specific Identifier to API.Schema.MangaContext.Manga",
"parameters": [
{
"name": "MangaId",
"in": "path",
"description": "API.Schema.MangaContext.Manga.Key",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "MetadataFetcherName",
"in": "path",
"description": "API.Schema.MangaContext.MetadataFetchers.MetadataFetcher.Name",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "!:MetadataFetcherName-Specific ID",
"content": {
"application/json-patch+json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"application/json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"text/json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"application/*+json; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/MetadataEntry"
}
}
}
},
"400": {
"description": "API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites) with MetadataFetcherName does not exist",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"404": {
"description": "API.Schema.MangaContext.Manga with MangaId not found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Error during Database Operation",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/MetadataFetcher/{MetadataFetcherName}/Unlink/{MangaId}": {
"post": {
"tags": [
"MetadataFetcher"
],
"summary": "Un-Links API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites) from API.Schema.MangaContext.Manga",
"parameters": [
{
"name": "MangaId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "MetadataFetcherName",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": ""
},
"400": {
"description": "API.Schema.MangaContext.MetadataFetchers.MetadataFetcher (Metadata-Sites) with MetadataFetcherName does not exist",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"404": {
"description": "API.Schema.MangaContext.Manga with MangaId not found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"412": {
"description": "No API.Schema.MangaContext.MetadataFetchers.MetadataEntry linking API.Schema.MangaContext.Manga and API.Schema.MangaContext.MetadataFetchers.MetadataFetcher found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"500": {
"description": "Error during Database Operation",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/NotificationConnector": {
"get": {
"tags": [
"NotificationConnector"
],
"summary": "Gets all configured API.Controllers.DTOs.NotificationConnector",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/NotificationConnector"
}
}
}
}
},
"500": {
"description": "Error during Database Operation"
}
}
},
"put": {
"tags": [
"NotificationConnector"
],
"summary": "Creates a new API.Controllers.DTOs.NotificationConnector",
"description": "Formatting placeholders: \"%title\" and \"%text\" can be placed in url, header-values and body and will be replaced when notifications are sent",
"requestBody": {
"content": {
"application/json-patch+json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreateNotificationConnectorRecord"
}
},
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreateNotificationConnectorRecord"
}
},
"text/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreateNotificationConnectorRecord"
}
},
"application/*+json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreateNotificationConnectorRecord"
}
}
}
},
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Error during Database Operation",
"content": {
"application/json": {
"schema": {
"type": "string"
}
}
}
},
"200": {
"description": "ID of the new API.Controllers.DTOs.NotificationConnector"
}
}
}
},
"/v2/NotificationConnector/{Name}": {
"get": {
"tags": [
"NotificationConnector"
],
"summary": "Returns API.Controllers.DTOs.NotificationConnector with requested Name",
"parameters": [
{
"name": "Name",
"in": "path",
"description": "API.Controllers.DTOs.NotificationConnector.Name",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationConnector"
}
}
}
},
"404": {
"description": "API.Controllers.DTOs.NotificationConnector with Name not found",
"content": {
"application/json": {
"schema": {
"type": "string"
}
}
}
}
}
},
"delete": {
"tags": [
"NotificationConnector"
],
"summary": "Deletes the API.Controllers.DTOs.NotificationConnector with the requested Name",
"parameters": [
{
"name": "Name",
"in": "path",
"description": "API.Controllers.DTOs.NotificationConnector.Name",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": ""
},
"404": {
"description": "API.Controllers.DTOs.NotificationConnector with Name not found",
"content": {
"application/json": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Error during Database Operation",
"content": {
"application/json": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/NotificationConnector/Gotify": {
"put": {
"tags": [
"NotificationConnector"
],
"summary": "Creates a new Gotify-API.Controllers.DTOs.NotificationConnector",
"description": "Priority needs to be between 0 and 10",
"requestBody": {
"content": {
"application/json-patch+json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreateGotifyConnectorRecord"
}
},
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreateGotifyConnectorRecord"
}
},
"text/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreateGotifyConnectorRecord"
}
},
"application/*+json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreateGotifyConnectorRecord"
}
}
}
},
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Error during Database Operation",
"content": {
"application/json": {
"schema": {
"type": "string"
}
}
}
},
"200": {
"description": "ID of the new API.Controllers.DTOs.NotificationConnector"
}
}
}
},
"/v2/NotificationConnector/Ntfy": {
"put": {
"tags": [
"NotificationConnector"
],
"summary": "Creates a new Ntfy-API.Controllers.DTOs.NotificationConnector",
"description": "Priority needs to be between 1 and 5",
"requestBody": {
"content": {
"application/json-patch+json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreateNtfyConnectorRecord"
}
},
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreateNtfyConnectorRecord"
}
},
"text/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreateNtfyConnectorRecord"
}
},
"application/*+json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreateNtfyConnectorRecord"
}
}
}
},
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Error during Database Operation",
"content": {
"application/json": {
"schema": {
"type": "string"
}
}
}
},
"200": {
"description": "ID of the new API.Controllers.DTOs.NotificationConnector"
}
}
}
},
"/v2/NotificationConnector/Pushover": {
"put": {
"tags": [
"NotificationConnector"
],
"summary": "Creates a new Pushover-API.Controllers.DTOs.NotificationConnector",
"description": "https://pushover.net/api",
"requestBody": {
"content": {
"application/json-patch+json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreatePushoverConnectorRecord"
}
},
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreatePushoverConnectorRecord"
}
},
"text/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreatePushoverConnectorRecord"
}
},
"application/*+json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/CreatePushoverConnectorRecord"
}
}
}
},
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Error during Database Operation",
"content": {
"application/json": {
"schema": {
"type": "string"
}
}
}
},
"200": {
"description": "ID of the new API.Controllers.DTOs.NotificationConnector"
}
}
}
},
"/v2/Query/Author/{AuthorId}": {
"get": {
"tags": [
"Query"
],
"summary": "Returns the API.Controllers.DTOs.Author with AuthorId",
"parameters": [
{
"name": "AuthorId",
"in": "path",
"description": "API.Controllers.DTOs.Author.Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/Author"
}
}
}
},
"404": {
"description": "API.Controllers.DTOs.Author with AuthorId not found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/Query/Chapter/{ChapterId}": {
"get": {
"tags": [
"Query"
],
"summary": "Returns API.Controllers.DTOs.Chapter with ChapterId",
"parameters": [
{
"name": "ChapterId",
"in": "path",
"description": "API.Controllers.DTOs.Chapter.Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/Chapter"
}
}
}
},
"404": {
"description": "API.Controllers.DTOs.Chapter with ChapterId not found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/Query/Manga/MangaConnectorId/{MangaConnectorIdId}": {
"get": {
"tags": [
"Query"
],
"summary": "Returns the API.Schema.MangaContext.MangaConnectorId`1 with API.Schema.MangaContext.MangaConnectorId`1.Key",
"parameters": [
{
"name": "MangaConnectorIdId",
"in": "path",
"description": "Key of API.Schema.MangaContext.MangaConnectorId`1",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/MangaConnectorId"
}
}
}
},
"404": {
"description": "API.Schema.MangaContext.MangaConnectorId`1 with MangaConnectorIdId not found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/Query/Manga/{MangaId}/SimilarName": {
"get": {
"tags": [
"Query"
],
"summary": "Returns API.Schema.MangaContext.Manga with names similar to API.Schema.MangaContext.Manga (identified by MangaId)",
"parameters": [
{
"name": "MangaId",
"in": "path",
"description": "Key of API.Schema.MangaContext.Manga",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"404": {
"description": "API.Schema.MangaContext.Manga with MangaId not found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Error during Database Operation"
}
}
}
},
"/v2/Query/Chapter/MangaConnectorId/{MangaConnectorIdId}": {
"get": {
"tags": [
"Query"
],
"summary": "Returns the API.Schema.MangaContext.MangaConnectorId`1 with API.Schema.MangaContext.MangaConnectorId`1.Key",
"parameters": [
{
"name": "MangaConnectorIdId",
"in": "path",
"description": "Key of API.Schema.MangaContext.MangaConnectorId`1",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/MangaConnectorId"
}
}
}
},
"404": {
"description": "API.Schema.MangaContext.MangaConnectorId`1 with MangaConnectorIdId not found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/Search/{MangaConnectorName}/{Query}": {
"get": {
"tags": [
"Search"
],
"summary": "Initiate a search for a API.Schema.MangaContext.Manga on API.Controllers.DTOs.MangaConnector with searchTerm",
"parameters": [
{
"name": "MangaConnectorName",
"in": "path",
"description": "API.Controllers.DTOs.MangaConnector.Name",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "Query",
"in": "path",
"description": "searchTerm",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "API.Controllers.DTOs.MinimalManga exert of API.Schema.MangaContext.Manga",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MinimalManga"
}
}
}
}
},
"404": {
"description": "API.Controllers.DTOs.MangaConnector with Name not found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"406": {
"description": "Not Acceptable",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"412": {
"description": "API.Controllers.DTOs.MangaConnector with Name is disabled"
}
}
}
},
"/v2/Search/Url": {
"post": {
"tags": [
"Search"
],
"summary": "Returns API.Schema.MangaContext.Manga from the API.Controllers.DTOs.MangaConnector associated with url",
"requestBody": {
"description": "",
"content": {
"application/json-patch+json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"application/json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"text/json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"application/*+json; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"responses": {
"200": {
"description": "API.Controllers.DTOs.MinimalManga exert of API.Schema.MangaContext.Manga.",
"content": {
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/MinimalManga"
}
}
}
},
"404": {
"description": "API.Schema.MangaContext.Manga not found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Error during Database Operation",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/Settings": {
"get": {
"tags": [
"Settings"
],
"summary": "Get all API.Tranga.Settings",
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/TrangaSettings"
}
}
}
}
}
}
},
"/v2/Settings/UserAgent": {
"get": {
"tags": [
"Settings"
],
"summary": "Get the current UserAgent used by Tranga",
"responses": {
"200": {
"description": "",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
},
"patch": {
"tags": [
"Settings"
],
"summary": "Set a new UserAgent",
"requestBody": {
"content": {
"application/json-patch+json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"application/json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"text/json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"application/*+json; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"responses": {
"200": {
"description": ""
}
}
},
"delete": {
"tags": [
"Settings"
],
"summary": "Reset the UserAgent to default",
"responses": {
"200": {
"description": ""
}
}
}
},
"/v2/Settings/RequestLimits": {
"patch": {
"tags": [
"Settings"
],
"summary": "Update all Request-Limits to new values",
"description": "<h1>NOT IMPLEMENTED</h1>",
"responses": {
"501": {
"description": "Not Implemented"
}
}
}
},
"/v2/Settings/ImageCompressionLevel": {
"get": {
"tags": [
"Settings"
],
"summary": "Returns Level of Image-Compression for Images",
"responses": {
"200": {
"description": "JPEG ImageCompression-level as Integer",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "integer",
"format": "int32"
}
}
}
}
}
}
},
"/v2/Settings/ImageCompressionLevel/{level}": {
"patch": {
"tags": [
"Settings"
],
"summary": "Set the Image-Compression-Level for Images",
"parameters": [
{
"name": "level",
"in": "path",
"description": "100 to disable, 0-99 for JPEG ImageCompression-Level",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": ""
},
"400": {
"description": "Level outside permitted range",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/v2/Settings/BWImages": {
"get": {
"tags": [
"Settings"
],
"summary": "Get state of Black/White-Image setting",
"responses": {
"200": {
"description": "True if enabled",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "boolean"
}
}
}
}
}
}
},
"/v2/Settings/BWImages/{enabled}": {
"patch": {
"tags": [
"Settings"
],
"summary": "Enable/Disable conversion of Images to Black and White",
"parameters": [
{
"name": "enabled",
"in": "path",
"description": "true to enable",
"required": true,
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": ""
}
}
}
},
"/v2/Settings/ChapterNamingScheme": {
"get": {
"tags": [
"Settings"
],
"summary": "Gets the Chapter Naming Scheme",
"description": "Placeholders:\n%M Obj Name\n%V Volume\n%C Chapter\n%T Title\n%A Author (first in list)\n%I Chapter Internal ID\n%i Obj Internal ID\n%Y Year (Obj)\n \n?_(...) replace _ with a value from above:\nEverything inside the braces will only be added if the value of %_ is not null",
"responses": {
"200": {
"description": "",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
},
"patch": {
"tags": [
"Settings"
],
"summary": "Sets the Chapter Naming Scheme",
"description": "Placeholders:\n%M Obj Name\n%V Volume\n%C Chapter\n%T Title\n%A Author (first in list)\n%Y Year (Obj)\n \n?_(...) replace _ with a value from above:\nEverything inside the braces will only be added if the value of %_ is not null",
"requestBody": {
"content": {
"application/json-patch+json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"application/json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"text/json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"application/*+json; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"responses": {
"200": {
"description": ""
}
}
}
},
"/v2/Settings/FlareSolverr/Url": {
"post": {
"tags": [
"Settings"
],
"summary": "Sets the FlareSolverr-URL",
"requestBody": {
"description": "URL of FlareSolverr-Instance",
"content": {
"application/json-patch+json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"application/json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"text/json; x-version=2.0": {
"schema": {
"type": "string"
}
},
"application/*+json; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"responses": {
"200": {
"description": ""
}
}
},
"delete": {
"tags": [
"Settings"
],
"summary": "Resets the FlareSolverr-URL (HttpClient does not use FlareSolverr anymore)",
"responses": {
"200": {
"description": ""
}
}
}
},
"/v2/Settings/FlareSolverr/Test": {
"post": {
"tags": [
"Settings"
],
"summary": "Test FlareSolverr",
"responses": {
"200": {
"description": "FlareSolverr is working!"
},
"500": {
"description": "FlareSolverr is not working"
}
}
}
},
"/v2/Settings/DownloadLanguage": {
"get": {
"tags": [
"Settings"
],
"summary": "Returns the language in which Manga are downloaded",
"responses": {
"200": {
"description": "",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/Settings/DownloadLanguage/{Language}": {
"patch": {
"tags": [
"Settings"
],
"summary": "Sets the language in which Manga are downloaded",
"parameters": [
{
"name": "Language",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": ""
}
}
}
},
"/v2/Settings/LibraryRefresh": {
"patch": {
"tags": [
"Settings"
],
"summary": "Sets the time when Libraries are refreshed",
"requestBody": {
"content": {
"application/json-patch+json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/PatchLibraryRefreshRecord"
}
},
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/PatchLibraryRefreshRecord"
}
},
"text/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/PatchLibraryRefreshRecord"
}
},
"application/*+json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/PatchLibraryRefreshRecord"
}
}
}
},
"responses": {
"200": {
"description": ""
}
}
}
},
"/v2/Worker": {
"get": {
"tags": [
"Worker"
],
"summary": "Returns all API.Workers.BaseWorker",
"responses": {
"200": {
"description": "API.Controllers.DTOs.Worker",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Worker"
}
}
}
}
}
}
}
},
"/v2/Worker/Keys": {
"get": {
"tags": [
"Worker"
],
"summary": "Returns all API.Workers.BaseWorker.Keys",
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}
},
"/v2/Worker/State/{State}": {
"get": {
"tags": [
"Worker"
],
"summary": "Get all API.Workers.BaseWorker in requested API.Workers.WorkerExecutionState",
"parameters": [
{
"name": "State",
"in": "path",
"description": "Requested API.Workers.WorkerExecutionState",
"required": true,
"schema": {
"$ref": "#/components/schemas/WorkerExecutionState"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Worker"
}
}
}
}
}
}
}
},
"/v2/Worker/{WorkerId}": {
"get": {
"tags": [
"Worker"
],
"summary": "Return API.Workers.BaseWorker with WorkerId",
"parameters": [
{
"name": "WorkerId",
"in": "path",
"description": "API.Workers.BaseWorker.Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/Worker"
}
}
}
},
"404": {
"description": "API.Workers.BaseWorker with WorkerId could not be found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
},
"delete": {
"tags": [
"Worker"
],
"summary": "Delete API.Workers.BaseWorker with WorkerId and all child-API.Workers.BaseWorkers",
"parameters": [
{
"name": "WorkerId",
"in": "path",
"description": "API.Workers.BaseWorker.Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": ""
},
"404": {
"description": "API.Workers.BaseWorker with WorkerId could not be found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/Worker/{WorkerId}/Start": {
"post": {
"tags": [
"Worker"
],
"summary": "Starts API.Workers.BaseWorker with WorkerId",
"parameters": [
{
"name": "WorkerId",
"in": "path",
"description": "API.Workers.BaseWorker.Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"202": {
"description": "Accepted"
},
"404": {
"description": "API.Workers.BaseWorker with WorkerId could not be found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"412": {
"description": "API.Workers.BaseWorker was already running",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": ""
}
}
}
},
"/v2/Worker/{WorkerId}/Stop": {
"post": {
"tags": [
"Worker"
],
"summary": "Stops API.Workers.BaseWorker with WorkerId",
"parameters": [
{
"name": "WorkerId",
"in": "path",
"description": "API.Workers.BaseWorker.Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"202": {
"description": "Accepted"
},
"404": {
"description": "API.Workers.BaseWorker with WorkerId could not be found",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"type": "string"
}
}
}
},
"412": {
"description": "API.Workers.BaseWorker was already not running",
"content": {
"text/plain; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json; x-version=2.0": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"200": {
"description": ""
}
}
}
}
},
"components": {
"schemas": {
"AltTitle": {
"required": [
"language",
"title"
],
"type": "object",
"properties": {
"language": {
"minLength": 1,
"type": "string",
"description": "Language of the Title"
},
"title": {
"minLength": 1,
"type": "string",
"description": "Title"
}
},
"additionalProperties": false,
"description": "API.Schema.MangaContext.AltTitle DTO"
},
"Author": {
"required": [
"key",
"name"
],
"type": "object",
"properties": {
"name": {
"minLength": 1,
"type": "string",
"description": "Name of the Author."
},
"key": {
"maxLength": 64,
"minLength": 16,
"type": "string",
"description": "Unique Identifier of the DTO"
}
},
"additionalProperties": false,
"description": "The API.Schema.MangaContext.Author DTO"
},
"Chapter": {
"required": [
"chapterNumber",
"downloaded",
"fileName",
"key",
"mangaConnectorIds",
"mangaId",
"title",
"volume"
],
"type": "object",
"properties": {
"mangaId": {
"minLength": 1,
"type": "string",
"description": "Identifier of the Manga this Chapter belongs to"
},
"volume": {
"type": "integer",
"description": "Volume number",
"format": "int32"
},
"chapterNumber": {
"minLength": 1,
"type": "string",
"description": "Chapter number"
},
"title": {
"minLength": 1,
"type": "string",
"description": "Title of the Chapter"
},
"downloaded": {
"type": "boolean",
"description": "Whether Chapter is Downloaded (on disk)"
},
"mangaConnectorIds": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MangaConnectorId"
},
"description": "Ids of the Manga on MangaConnectors"
},
"fileName": {
"minLength": 1,
"type": "string",
"description": "Filename of the archive"
},
"key": {
"maxLength": 64,
"minLength": 16,
"type": "string",
"description": "Unique Identifier of the DTO"
}
},
"additionalProperties": false,
"description": "API.Schema.MangaContext.Chapter DTO"
},
"CoverSize": {
"enum": [
"Original",
"Large",
"Medium",
"Small"
],
"type": "string"
},
"CreateGotifyConnectorRecord": {
"required": [
"appToken",
"name",
"priority",
"url"
],
"type": "object",
"properties": {
"name": {
"minLength": 1,
"type": "string",
"description": "The Name of the Notification Connector"
},
"url": {
"minLength": 1,
"type": "string",
"description": "The Url of the Instance",
"format": "uri"
},
"appToken": {
"minLength": 1,
"type": "string",
"description": "The Apptoken used for authentication"
},
"priority": {
"type": "integer",
"description": "The Priority of Notifications",
"format": "int32"
}
},
"additionalProperties": false
},
"CreateLibraryConnectorRecord": {
"required": [
"libraryType",
"password",
"url",
"username"
],
"type": "object",
"properties": {
"libraryType": {
"$ref": "#/components/schemas/LibraryType"
},
"url": {
"minLength": 1,
"type": "string",
"description": "The Url of the Library instance",
"format": "uri"
},
"username": {
"minLength": 1,
"type": "string",
"description": "The Username to authenticate to the Library instance"
},
"password": {
"minLength": 1,
"type": "string",
"description": "The Password to authenticate to the Library instance"
}
},
"additionalProperties": false
},
"CreateLibraryRecord": {
"required": [
"basePath",
"libraryName"
],
"type": "object",
"properties": {
"basePath": {
"minLength": 1,
"type": "string",
"description": "The directory Path of the library"
},
"libraryName": {
"minLength": 1,
"type": "string",
"description": "The Name of the library"
}
},
"additionalProperties": false
},
"CreateNotificationConnectorRecord": {
"required": [
"body",
"headers",
"httpMethod",
"name",
"url"
],
"type": "object",
"properties": {
"name": {
"minLength": 1,
"type": "string",
"description": "The Name of the Notification Connector"
},
"url": {
"minLength": 1,
"type": "string",
"description": "The Url of the Instance",
"format": "uri"
},
"httpMethod": {
"minLength": 1,
"type": "string",
"description": "The HTTP Request Method to use for notifications"
},
"body": {
"minLength": 1,
"type": "string",
"description": "The Request Body to use to send notifications"
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "The Request Headers to use to send notifications"
}
},
"additionalProperties": false
},
"CreateNtfyConnectorRecord": {
"required": [
"name",
"password",
"priority",
"topic",
"url",
"username"
],
"type": "object",
"properties": {
"name": {
"minLength": 1,
"type": "string",
"description": "The Name of the Notification Connector"
},
"url": {
"minLength": 1,
"type": "string",
"description": "The Url of the Instance",
"format": "uri"
},
"priority": {
"type": "integer",
"description": "The Priority of Notifications",
"format": "int32"
},
"username": {
"minLength": 1,
"type": "string",
"description": "The Username used for authentication"
},
"password": {
"minLength": 1,
"type": "string",
"description": "The Password used for authentication"
},
"topic": {
"minLength": 1,
"type": "string",
"description": "The Topic of Notifications"
}
},
"additionalProperties": false
},
"CreatePushoverConnectorRecord": {
"required": [
"appToken",
"name",
"username"
],
"type": "object",
"properties": {
"name": {
"minLength": 1,
"type": "string",
"description": "The Name of the Notification Connector"
},
"appToken": {
"minLength": 1,
"type": "string",
"description": "The Apptoken used for authentication"
},
"username": {
"minLength": 1,
"type": "string",
"description": "The Username used for authentication"
}
},
"additionalProperties": false
},
"FileLibrary": {
"required": [
"basePath",
"key",
"libraryName"
],
"type": "object",
"properties": {
"basePath": {
"minLength": 1,
"type": "string",
"description": "The directory Path of the library"
},
"libraryName": {
"minLength": 1,
"type": "string",
"description": "The Name of the library"
},
"key": {
"maxLength": 64,
"minLength": 16,
"type": "string",
"description": "Unique Identifier of the DTO"
}
},
"additionalProperties": false
},
"LibraryConnector": {
"required": [
"baseUrl",
"key",
"type"
],
"type": "object",
"properties": {
"baseUrl": {
"minLength": 1,
"type": "string",
"description": "The Url of the Library instance",
"format": "uri"
},
"type": {
"$ref": "#/components/schemas/LibraryType"
},
"key": {
"maxLength": 64,
"minLength": 16,
"type": "string",
"description": "Unique Identifier of the DTO"
}
},
"additionalProperties": false
},
"LibraryRefreshSetting": {
"enum": [
"AfterAllFinished",
"AfterMangaFinished",
"AfterEveryChapter",
"WhileDownloading"
],
"type": "string"
},
"LibraryType": {
"enum": [
"Komga",
"Kavita"
],
"type": "string"
},
"Link": {
"required": [
"key",
"provider",
"url"
],
"type": "object",
"properties": {
"provider": {
"minLength": 1,
"type": "string",
"description": "Name of the Provider"
},
"url": {
"minLength": 1,
"type": "string",
"description": "Url"
},
"key": {
"maxLength": 64,
"minLength": 16,
"type": "string",
"description": "Unique Identifier of the DTO"
}
},
"additionalProperties": false,
"description": "API.Schema.MangaContext.Link DTO"
},
"Manga": {
"required": [
"altTitles",
"authors",
"chapterIds",
"description",
"fileLibraryId",
"ignoreChaptersBefore",
"key",
"links",
"mangaConnectorIds",
"name",
"releaseStatus",
"tags"
],
"type": "object",
"properties": {
"ignoreChaptersBefore": {
"type": "number",
"description": "Chapter cutoff for Downloads (Chapters before this will not be downloaded)",
"format": "float"
},
"year": {
"type": "integer",
"description": "Release Year",
"format": "int32",
"nullable": true
},
"originalLanguage": {
"type": "string",
"description": "Release Language",
"nullable": true
},
"chapterIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Keys of ChapterDTOs"
},
"authors": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Author"
},
"description": "Author-names"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Manga Tags"
},
"links": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Link"
},
"description": "Links for more Metadata"
},
"altTitles": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AltTitle"
},
"description": "Alt Titles of Manga"
},
"fileLibraryId": {
"minLength": 1,
"type": "string",
"description": "Id of the Library the Manga gets downloaded to"
},
"name": {
"minLength": 1,
"type": "string",
"description": "Name of the Manga"
},
"description": {
"minLength": 1,
"type": "string",
"description": "Description of the Manga"
},
"releaseStatus": {
"$ref": "#/components/schemas/MangaReleaseStatus"
},
"mangaConnectorIds": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MangaConnectorId"
},
"description": "Ids of the Manga on MangaConnectors"
},
"key": {
"maxLength": 64,
"minLength": 16,
"type": "string",
"description": "Unique Identifier of the DTO"
}
},
"additionalProperties": false,
"description": "API.Schema.MangaContext.Manga DTO"
},
"MangaConnector": {
"required": [
"enabled",
"iconUrl",
"key",
"supportedLanguages"
],
"type": "object",
"properties": {
"name": {
"type": "string",
"nullable": true
},
"enabled": {
"type": "boolean",
"description": "Whether Connector is used for Searches and Downloads"
},
"supportedLanguages": {
"type": "array",
"items": {
"type": "string"
},
"description": "Languages supported by the Connector"
},
"iconUrl": {
"minLength": 1,
"type": "string",
"description": "Url of the Website Icon"
},
"key": {
"maxLength": 64,
"minLength": 16,
"type": "string",
"description": "Unique Identifier of the DTO"
}
},
"additionalProperties": false
},
"MangaConnectorId": {
"required": [
"foreignKey",
"key",
"mangaConnectorName",
"useForDownload"
],
"type": "object",
"properties": {
"mangaConnectorName": {
"minLength": 1,
"type": "string",
"description": "Name of the Connector"
},
"foreignKey": {
"minLength": 1,
"type": "string",
"description": "Key of the referenced DTO"
},
"websiteUrl": {
"type": "string",
"description": "Website Link for reference, if any",
"nullable": true
},
"useForDownload": {
"type": "boolean",
"description": "Whether this Link is used for downloads"
},
"key": {
"maxLength": 64,
"minLength": 16,
"type": "string",
"description": "Unique Identifier of the DTO"
}
},
"additionalProperties": false,
"description": "API.Schema.MangaContext.MangaConnectorId`1 DTO"
},
"MangaReleaseStatus": {
"enum": [
"Continuing",
"Completed",
"OnHiatus",
"Cancelled",
"Unreleased"
],
"type": "string"
},
"MetadataEntry": {
"type": "object",
"properties": {
"mangaId": {
"type": "string",
"nullable": true
},
"metadataFetcherName": {
"type": "string",
"nullable": true
},
"identifier": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"MetadataSearchResult": {
"type": "object",
"properties": {
"identifier": {
"type": "string",
"nullable": true
},
"name": {
"type": "string",
"nullable": true
},
"url": {
"type": "string",
"nullable": true
},
"description": {
"type": "string",
"nullable": true
},
"coverUrl": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"MinimalManga": {
"required": [
"description",
"key",
"mangaConnectorIds",
"name",
"releaseStatus"
],
"type": "object",
"properties": {
"name": {
"minLength": 1,
"type": "string",
"description": "Name of the Manga"
},
"description": {
"minLength": 1,
"type": "string",
"description": "Description of the Manga"
},
"releaseStatus": {
"$ref": "#/components/schemas/MangaReleaseStatus"
},
"mangaConnectorIds": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MangaConnectorId"
},
"description": "Ids of the Manga on MangaConnectors"
},
"key": {
"maxLength": 64,
"minLength": 16,
"type": "string",
"description": "Unique Identifier of the DTO"
}
},
"additionalProperties": false,
"description": "Shortened Version of API.Controllers.DTOs.Manga"
},
"NotificationConnector": {
"required": [
"body",
"headers",
"httpMethod",
"key",
"name",
"url"
],
"type": "object",
"properties": {
"name": {
"minLength": 1,
"type": "string",
"description": "The Name of the Notification Connector"
},
"url": {
"minLength": 1,
"type": "string",
"description": "The Url of the Instance",
"format": "uri"
},
"httpMethod": {
"minLength": 1,
"type": "string",
"description": "The HTTP Request Method to use for notifications"
},
"body": {
"minLength": 1,
"type": "string",
"description": "The Request Body to use to send notifications"
},
"headers": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "The Request Headers to use to send notifications"
},
"key": {
"maxLength": 64,
"minLength": 16,
"type": "string",
"description": "Unique Identifier of the DTO"
}
},
"additionalProperties": false
},
"PatchLibraryRefreshRecord": {
"required": [
"setting"
],
"type": "object",
"properties": {
"setting": {
"$ref": "#/components/schemas/LibraryRefreshSetting"
},
"refreshLibraryWhileDownloadingEveryMinutes": {
"type": "integer",
"description": "When API.Workers.LibraryRefreshSetting.WhileDownloading is selected, update the time between refreshes",
"format": "int32",
"nullable": true
}
},
"additionalProperties": false
},
"ProblemDetails": {
"type": "object",
"properties": {
"type": {
"type": "string",
"nullable": true
},
"title": {
"type": "string",
"nullable": true
},
"status": {
"type": "integer",
"format": "int32",
"nullable": true
},
"detail": {
"type": "string",
"nullable": true
},
"instance": {
"type": "string",
"nullable": true
}
},
"additionalProperties": { }
},
"TrangaSettings": {
"type": "object",
"properties": {
"defaultDownloadLocation": {
"type": "string",
"nullable": true,
"readOnly": true
},
"userAgent": {
"type": "string",
"nullable": true
},
"imageCompression": {
"type": "integer",
"format": "int32"
},
"blackWhiteImages": {
"type": "boolean"
},
"flareSolverrUrl": {
"type": "string",
"nullable": true
},
"chapterNamingScheme": {
"type": "string",
"description": "Placeholders:\n%M Obj Name\n%V Volume\n%C Chapter\n%T Title\n%A Author (first in list)\n%I Chapter Internal ID\n%i Obj Internal ID\n%Y Year (Obj)\n \n?_(...) replace _ with a value from above:\nEverything inside the braces will only be added if the value of %_ is not null",
"nullable": true
},
"workCycleTimeoutMs": {
"type": "integer",
"format": "int32"
},
"downloadLanguage": {
"type": "string",
"nullable": true
},
"maxConcurrentDownloads": {
"type": "integer",
"format": "int32"
},
"maxConcurrentWorkers": {
"type": "integer",
"format": "int32"
},
"libraryRefreshSetting": {
"$ref": "#/components/schemas/LibraryRefreshSetting"
},
"refreshLibraryWhileDownloadingEveryMinutes": {
"type": "integer",
"format": "int32"
}
},
"additionalProperties": false
},
"Worker": {
"required": [
"dependencies",
"dependenciesFulfilled",
"key",
"missingDependencies",
"state"
],
"type": "object",
"properties": {
"dependencies": {
"type": "array",
"items": {
"type": "string"
},
"description": "Workers this worker depends on having ran."
},
"missingDependencies": {
"type": "array",
"items": {
"type": "string"
},
"description": "Workers that have not yet ran, that need to run for this Worker to run."
},
"dependenciesFulfilled": {
"type": "boolean",
"description": "Worker can run."
},
"state": {
"$ref": "#/components/schemas/WorkerExecutionState"
},
"key": {
"maxLength": 64,
"minLength": 16,
"type": "string",
"description": "Unique Identifier of the DTO"
}
},
"additionalProperties": false,
"description": "API.Workers.BaseWorker DTO"
},
"WorkerExecutionState": {
"enum": [
"Failed",
"Cancelled",
"Created",
"Waiting",
"Running",
"Completed"
],
"type": "string"
}
}
}
}