components: schemas: authorUpdated: description: Whether the author was updated without errors. Will not exist if author was merged. type: boolean nullable: true authorMerged: description: Whether the author was merged with another author. Will not exist if author was updated. type: boolean nullable: true authorInclude: description: A comma separated list of what to include with the author. The options are `items` and `series`. `series` will only have an effect if `items` is included. For example, the value `items,series` will include both library items and series. type: string example: 'items' authorLibraryId: $ref: '../objects/Library.yaml#/components/schemas/libraryId' authorSearchName: description: The name of the author to use for searching. type: string example: Terry Goodkind authorName: $ref: '../objects/entities/Author.yaml#/components/schemas/authorName' imageUrl: description: The URL of the image to add to the server type: string format: uri example: https://images-na.ssl-images-amazon.com/images/I/51NoQTm33OL.__01_SX120_CR0,0,120,120__.jpg imageWidth: description: The requested width of image in pixels. type: integer default: 400 example: 400 imageHeight: description: The requested height of image in pixels. If `null`, the height is scaled to maintain aspect ratio based on the requested width. type: integer nullable: true default: null example: 600 imageFormat: description: The requested output format. type: string default: jpeg example: webp imageRaw: description: Return the raw image without scaling if true. type: boolean default: false responses: author200: description: Author found. content: application/json: schema: $ref: '../objects/entities/Author.yaml#/components/schemas/author' author404: description: Author not found. content: text/html: schema: type: string example: Author not found. paths: /api/authors/{id}: parameters: - name: id in: path description: Author ID required: true schema: $ref: '../objects/entities/Author.yaml#/components/schemas/authorId' get: operationId: getAuthorById summary: Get an author by ID description: Get an author by ID. The author's books and series can be included in the response. tags: - Authors parameters: - in: query name: include description: A comma separated list of what to include with the author. The options are `items` and `series`. `series` will only have an effect if `items` is included. For example, the value `items,series` will include both library items and series. allowReserved: true schema: type: string example: 'items,series' responses: '200': description: getAuthorById OK content: application/json: schema: $ref: '../objects/entities/Author.yaml#/components/schemas/author' '404': $ref: '#/components/responses/author404' patch: operationId: updateAuthorById summary: Update an author by ID description: Update an author by ID. The author's name and description can be updated. This endpoint will merge two authors if the new author name matches another author name in the database. tags: - Authors requestBody: description: The author object to update. content: application/json: schema: properties: name: $ref: '#/components/schemas/authorName' description: $ref: '../objects/entities/Author.yaml#/components/schemas/authorDescription' imagePath: $ref: '../objects/entities/Author.yaml#/components/schemas/authorImagePath' asin: $ref: '../objects/entities/Author.yaml#/components/schemas/authorAsin' responses: '200': description: updateAuthorById OK content: application/json: schema: oneOf: - $ref: '../objects/entities/Author.yaml#/components/schemas/author' - $ref: '#/components/schemas/authorUpdated' - $ref: '#/components/schemas/authorMerged' '404': $ref: '#/components/responses/author404' delete: operationId: deleteAuthorById summary: Delete an author by ID description: Delete an author by ID. This will remove the author from all books. tags: - Authors responses: '200': description: deleteAuthorById OK content: text/plain: schema: type: string example: Author deleted. '404': $ref: '#/components/responses/author404' /api/authors/{id}/image: parameters: - name: id in: path description: Author ID required: true schema: $ref: '../objects/entities/Author.yaml#/components/schemas/authorId' - name: token in: query description: API token schema: type: string - name: ts in: query description: Updated at value schema: type: integer get: operationId: getAuthorImageById summary: Get an author image by author ID description: Get an author image by author ID. The image will be returned in the requested format and size. security: [] # No security for getting author image tags: - Authors requestBody: required: false description: The author image to get. content: application/json: schema: properties: width: $ref: '#/components/schemas/imageWidth' height: $ref: '#/components/schemas/imageHeight' format: $ref: '#/components/schemas/imageFormat' raw: $ref: '#/components/schemas/imageRaw' responses: '200': description: getAuthorImageById OK content: image/webp: schema: type: string format: binary image/jpeg: schema: type: string format: binary image/*: schema: type: string format: binary '404': $ref: '#/components/responses/author404' post: operationId: addAuthorImageById summary: Add an author image to the server description: Add an author image to the server. The image will be downloaded from the provided URL and stored on the server. tags: - Authors requestBody: required: true description: The author image to add by URL. content: application/json: schema: $ref: '#/components/schemas/imageUrl' responses: '200': description: addAuthorImageById OK content: image/*: schema: type: string format: binary '404': $ref: '#/components/responses/author404' patch: operationId: updateAuthorImageById summary: Update an author image by author ID description: Update an author image by author ID. The image will be resized if the width, height, or format is provided. tags: - Authors requestBody: description: The author image to update. content: application/json: schema: properties: width: $ref: '#/components/schemas/imageWidth' height: $ref: '#/components/schemas/imageHeight' format: $ref: '#/components/schemas/imageFormat' raw: $ref: '#/components/schemas/imageRaw' responses: '200': description: updateAuthorImageById OK content: image/*: schema: type: string format: binary '404': $ref: '#/components/responses/author404' delete: operationId: deleteAuthorImageById summary: Delete an author image by author ID description: Delete an author image by author ID. This will remove the image from the server and the database. tags: - Authors responses: '200': description: deleteAuthorImageById OK '404': $ref: '#/components/responses/author404' /api/authors/{id}/match: parameters: - name: id in: path description: Author ID required: true schema: $ref: '../objects/entities/Author.yaml#/components/schemas/authorId' post: operationId: matchAuthorById summary: Match the author against Audible using quick match description: Match the author against Audible using quick match. Quick match updates the author's description and image (if no image already existed) with information from audible. Either `asin` or `q` must be provided, with `asin` taking priority if both are provided. tags: - Authors requestBody: required: true description: The author object to match against an online provider. content: application/json: schema: type: object properties: q: $ref: '#/components/schemas/authorSearchName' asin: $ref: '../objects/entities/Author.yaml#/components/schemas/authorAsin' region: $ref: '../schemas.yaml#/components/schemas/region' responses: '200': description: matchAuthorById OK content: application/json: schema: oneOf: - $ref: '../objects/entities/Author.yaml#/components/schemas/author' - $ref: '#/components/schemas/authorUpdated' '404': $ref: '#/components/responses/author404'