diff --git a/docs/controllers/LibraryItemController.yaml b/docs/controllers/LibraryItemController.yaml new file mode 100644 index 0000000000..a66acf2b41 --- /dev/null +++ b/docs/controllers/LibraryItemController.yaml @@ -0,0 +1,53 @@ +components: + schemas: + expanded: + type: integer + description: Whether to return Library Item Expanded instead. 0 for false, 1 for true. + format: binary + example: 0 + include: + type: string + description: "A comma separated list of what to include with the library item. The options are: progress, rssfeed, authors (for books), and downloads (for podcasts). expanded must be 1 for include to have an effect." + example: progress,rssfeed,authors + episode: + type: string + description: If requesting progress for a podcast, the episode ID to get progress for. + +paths: + /api/items/{id}: + parameters: + - name: id + in: path + description: The ID of the libraryItem. + required: true + schema: + $ref: '../objects/LibraryItem.yaml#/components/schemas/libraryItemId' + get: + summary: Get a library item by ID + description: Get a library item by ID + operationId: getLibraryItemById + tags: + - LibraryItem + parameters: + - name: expanded + in: query + description: Whether to return Library Item Expanded instead. 0 for false, 1 for true. + schema: + $ref: '#/components/schemas/expanded' + - name: include + in: query + description: "A comma separated list of what to include with the library item. The options are: progress, rssfeed, authors (for books), and downloads (for podcasts). expanded must be 1 for include to have an effect." + schema: + $ref: '#/components/schemas/include' + - name: episode + in: query + description: If requesting progress for a podcast, the episode ID to get progress for. + schema: + $ref: '#/components/schemas/episode' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '../objects/LibraryItem.yaml#/components/schemas/libraryItemBase' \ No newline at end of file diff --git a/docs/objects/LibraryItem.yaml b/docs/objects/LibraryItem.yaml index 107ba9f3f9..ff0b9815e6 100644 --- a/docs/objects/LibraryItem.yaml +++ b/docs/objects/LibraryItem.yaml @@ -55,6 +55,12 @@ components: type: boolean mediaType: $ref: './mediaTypes/media.yaml#/components/schemas/mediaType' + media: + type: object + description: The media of the library item. + oneOf: + - $ref: './mediaTypes/Book.yaml#/components/schemas/bookBase' + - $ref: './mediaTypes/Podcast.yaml#/components/schemas/Podcast' libraryItemMinified: type: object description: A single item on the server, like a book or podcast. Minified media format. diff --git a/docs/objects/mediaTypes/Book.yaml b/docs/objects/mediaTypes/Book.yaml index ebe2b63d9d..fa7ede063e 100644 --- a/docs/objects/mediaTypes/Book.yaml +++ b/docs/objects/mediaTypes/Book.yaml @@ -23,6 +23,8 @@ components: type: array items: $ref: '../metadata/BookMetadata.yaml#/components/schemas/bookChapter' + metadata: + $ref: '../metadata/BookMetadata.yaml#/components/schemas/bookMetadataBase' missingParts: description: Any parts missing from the book by track index. type: array diff --git a/docs/root.yaml b/docs/root.yaml index 4d6c055db7..efb1c1b7c1 100644 --- a/docs/root.yaml +++ b/docs/root.yaml @@ -90,3 +90,5 @@ tags: description: Notifications endpoints - name: Podcasts description: Podcast endpoints + - name: LibraryItem + description: LibraryItem endpoints