diff --git a/docs/objects/Library.yaml b/docs/objects/Library.yaml index 7d2a7833c..c5bf1ecfc 100644 --- a/docs/objects/Library.yaml +++ b/docs/objects/Library.yaml @@ -3,10 +3,75 @@ components: oldLibraryId: type: string description: The ID of the libraries created on server version 2.2.23 and before. - format: "lib_[a-z0-9]{18}" + format: 'lib_[a-z0-9]{18}' example: lib_o78uaoeuh78h6aoeif libraryId: type: string description: The ID of the library. format: uuid example: e4bb1afb-4a4f-4dd6-8be0-e615d233185b + libraryName: + description: The name of the library. + type: string + example: My Audiobooks + librarySettings: + description: The settings for the library. + allOf: + - type: object + properties: + coverAspectRatio: + description: Whether the library should use square book covers. Must be 0 (for false) or 1 (for true). + type: integer + example: 1 + disableWatcher: + description: Whether to disable the folder watcher for the library. + type: boolean + example: false + skipMatchingMediaWithAsin: + description: Whether to skip matching books that already have an ASIN. + type: boolean + example: false + skipMatchingMediaWithIsbn: + description: Whether to skip matching books that already have an ISBN. + type: boolean + example: false + autoScanCronExpression: + description: The cron expression for when to automatically scan the library folders. If null, automatic scanning will be disabled. + type: string + nullable: true + example: '0 0 0 * * *' + library: + description: A library object which includes either books or podcasts. + type: object + properties: + id: + $ref: '#/components/schemas/libraryId' + name: + $ref: '#/components/schemas/libraryName' + folders: + description: The folders that belong to the library. + type: array + items: + $ref: './Folder.yaml#/components/schemas/folder' + displayOrder: + description: Display position of the library in the list of libraries. Must be >= 1. + type: integer + example: 1 + icon: + description: The selected icon for the library. See Library Icons for a list of possible icons. + type: string + example: 'audiobookshelf' + mediaType: + description: The type of media that the library contains. Will be `book` or `podcast`. (Read Only) + type: string + example: 'book' + provider: + description: Preferred metadata provider for the library. See Metadata Providers for a list of possible providers. + type: string + example: 'audible' + settings: + $ref: '#/components/schemas/librarySettings' + createdAt: + $ref: './../schemas.yaml#/components/schemas/createdAt' + lastUpdate: + $ref: './../schemas.yaml#/components/schemas/updatedAt' diff --git a/docs/openapi.json b/docs/openapi.json index 93c7b27ad..f33b72472 100644 Binary files a/docs/openapi.json and b/docs/openapi.json differ diff --git a/docs/root.yaml b/docs/root.yaml index f31ccf67c..314099fd6 100644 --- a/docs/root.yaml +++ b/docs/root.yaml @@ -7,15 +7,16 @@ servers: - url: http://localhost:3000 description: Development server components: - securitySchemes: - BearerAuth: - type: http - scheme: bearer - responses: - ok200: - description: OK + securitySchemes: + BearerAuth: + description: Bearer authentication + type: http + scheme: bearer + responses: + ok200: + description: OK security: - - BearerAuth: [] + - BearerAuth: [] paths: /api/authors/{id}: get: @@ -152,6 +153,23 @@ paths: - $ref: './controllers/AuthorController.yaml#/components/schemas/authorUpdated' 404: $ref: './controllers/AuthorController.yaml#/components/responses/author404' + /api/libraries: + get: + operationId: getLibraries + summary: Get all libraries on server + tags: + - Libraries + responses: + 200: + description: getLibraries OK + content: + application/json: + schema: + type: array + items: + $ref: './objects/Library.yaml#/components/schemas/library' tags: - name: Authors description: Author endpoints + - name: Libraries + description: Library endpoints