Merge pull request #3095 from nichwall/parameter_changes

Change: `requestBody` to `parameter`, allow commas in queries
This commit is contained in:
advplyr 2024-06-23 07:41:21 -05:00 committed by GitHub
commit 09bcc1191f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 429 additions and 263 deletions

View File

@ -74,17 +74,14 @@ paths:
description: Get an author by ID. The author's books and series can be included in the response. description: Get an author by ID. The author's books and series can be included in the response.
tags: tags:
- Authors - Authors
requestBody: parameters:
required: false - in: query
description: The author object to create. name: include
content: 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.
application/json: allowReserved: true
schema: schema:
properties: type: string
include: example: 'items,series'
$ref: '#/components/schemas/authorInclude'
library:
$ref: '#/components/schemas/authorLibraryId'
responses: responses:
'200': '200':
description: getAuthorById OK description: getAuthorById OK
@ -150,10 +147,21 @@ paths:
required: true required: true
schema: schema:
$ref: '../objects/entities/Author.yaml#/components/schemas/authorId' $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: get:
operationId: getAuthorImageById operationId: getAuthorImageById
summary: Get an author image by author ID 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. 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: tags:
- Authors - Authors
requestBody: requestBody:

View File

@ -57,6 +57,32 @@ components:
description: The fields to include in the response. The only current option is `rssfeed`. description: The fields to include in the response. The only current option is `rssfeed`.
type: string type: string
example: 'rssfeed' example: 'rssfeed'
parameters:
limit:
in: query
name: limit
description: The number of items to return. This the size of a single page for the optional `page` query.
example: 10
schema:
type: integer
default: 0
page:
in: query
name: page
description: The page number (zero indexed) to return. If no limit is specified, then page will have no effect.
example: 0
schema:
type: integer
default: 0
desc:
in: query
name: desc
description: Return items in reversed order if true.
example: 0
schema:
type: integer
default: 0
responses: responses:
library200: library200:
description: Library found. description: Library found.
@ -135,6 +161,12 @@ paths:
description: Get a single library by ID on server. description: Get a single library by ID on server.
tags: tags:
- Libraries - Libraries
parameters:
- in: query
name: include
schema:
type: string
- $ref: '../schemas.yaml#/components/parameters/minified'
responses: responses:
'200': '200':
$ref: '#/components/responses/library200' $ref: '#/components/responses/library200'
@ -222,30 +254,37 @@ paths:
description: Get items in a library by ID on server. description: Get items in a library by ID on server.
tags: tags:
- Libraries - Libraries
requestBody: parameters:
required: false - $ref: '#/components/parameters/limit'
description: The filters to apply to the requested library items. - $ref: '#/components/parameters/page'
content: - in: query
application/json: name: sort
schema: description: The field to sort by from the request.
type: object example: 'numBooks'
properties: schema:
limit: type: string
$ref: '../schemas.yaml#/components/schemas/limit' default: 'name'
page: - $ref: '#/components/parameters/desc'
$ref: '../schemas.yaml#/components/schemas/page' - in: query
sort: name: filter
$ref: '#/components/schemas/librarySort' description: The filter for the library.
desc: example: 'media.metadata.title'
$ref: '../schemas.yaml#/components/schemas/sortDesc' schema:
filter: type: string
$ref: '#/components/schemas/libraryFilter' - in: query
minified: name: include
$ref: '../schemas.yaml#/components/schemas/minified' description: The fields to include in the response. The only current option is `rssfeed`.
collapseSeries: allowReserved: true
$ref: '#/components/schemas/libraryCollapseSeries' example: 'rssfeed'
include: schema:
$ref: '#/components/schemas/libraryInclude' type: string
- $ref: '../schemas.yaml#/components/parameters/minified'
- in: query
name: collapseSeries
description: Whether to collapse series into a single cover
schema:
type: integer
default: 0
responses: responses:
'200': '200':
description: getLibraryItems OK description: getLibraryItems OK
@ -323,20 +362,8 @@ paths:
tags: tags:
- Libraries - Libraries
parameters: parameters:
- in: query - $ref: '#/components/parameters/limit'
name: limit - $ref: '#/components/parameters/page'
description: The number of series to return. If 0, all series are returned.
example: 10
schema:
type: integer
default: 0
- in: query
name: page
description: The page number (zero indexed) to return. If no limit is specified, then page will have no effect.
example: 0
schema:
type: integer
default: 0
- in: query - in: query
name: sort name: sort
description: The field to sort by from the request. description: The field to sort by from the request.
@ -345,13 +372,7 @@ paths:
type: string type: string
enum: ['name', 'numBooks', 'totalDuration', 'addedAt', 'lastBookAdded', 'lastBookUpdated'] enum: ['name', 'numBooks', 'totalDuration', 'addedAt', 'lastBookAdded', 'lastBookUpdated']
default: 'name' default: 'name'
- in: query - $ref: '#/components/parameters/desc'
name: desc
description: Return items in reversed order if true.
example: true
schema:
type: boolean
default: false
- in: query - in: query
name: filter name: filter
description: The filter for the library. description: The filter for the library.
@ -361,9 +382,11 @@ paths:
- in: query - in: query
name: include name: include
description: The fields to include in the response. The only current option is `rssfeed`. description: The fields to include in the response. The only current option is `rssfeed`.
allowReserved: true
example: 'rssfeed' example: 'rssfeed'
schema: schema:
type: string type: string
- $ref: '../schemas.yaml#/components/parameters/minified'
responses: responses:
'200': '200':
description: getLibrarySeries OK description: getLibrarySeries OK
@ -416,32 +439,32 @@ paths:
deprecated: true deprecated: true
tags: tags:
- Libraries - Libraries
requestBody: parameters:
required: false - $ref: '#/components/parameters/limit'
description: The filters to apply to the requested library series. - $ref: '#/components/parameters/page'
content: - in: query
application/json: name: sort
schema: description: The field to sort by from the request.
type: object example: 'numBooks'
properties: schema:
limit: type: string
$ref: '../schemas.yaml#/components/schemas/limit' enum: ['name', 'numBooks', 'totalDuration', 'addedAt', 'lastBookAdded', 'lastBookUpdated']
page: default: 'name'
$ref: '../schemas.yaml#/components/schemas/page' - $ref: '#/components/parameters/desc'
sort: - in: query
description: The field to sort by from the request. name: filter
type: string description: The filter for the library.
enum: ['name', 'numBooks', 'totalDuration', 'addedAt', 'lastBookAdded', 'lastBookUpdated'] example: 'media.metadata.title'
example: 'numBooks' schema:
default: 'name' type: string
desc: - $ref: '../schemas.yaml#/components/parameters/minified'
$ref: '../schemas.yaml#/components/schemas/sortDesc' - in: query
filter: name: include
$ref: '#/components/schemas/libraryFilter' description: The fields to include in the response. The only current option is `rssfeed`.
minified: allowReserved: true
$ref: '../schemas.yaml#/components/schemas/minified' example: 'rssfeed'
include: schema:
$ref: '#/components/schemas/libraryInclude' type: string
responses: responses:
'200': '200':
description: getLibrarySeriesById OK description: getLibrarySeriesById OK

View File

@ -47,25 +47,21 @@
"operationId": "getAuthorById", "operationId": "getAuthorById",
"summary": "Get an author by ID", "summary": "Get an author by ID",
"description": "Get an author by ID. The author's books and series can be included in the response.", "description": "Get an author by ID. The author's books and series can be included in the response.",
"tags": ["Authors"], "tags": [
"requestBody": { "Authors"
"required": false, ],
"description": "The author object to create.", "parameters": [
"content": { {
"application/json": { "in": "query",
"schema": { "name": "include",
"properties": { "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.",
"include": { "allowReserved": true,
"$ref": "#/components/schemas/authorInclude" "schema": {
}, "type": "string"
"library": { },
"$ref": "#/components/schemas/libraryId" "example": "items,series"
}
}
}
}
} }
}, ],
"responses": { "responses": {
"200": { "200": {
"description": "getAuthorById OK", "description": "getAuthorById OK",
@ -86,7 +82,9 @@
"operationId": "updateAuthorById", "operationId": "updateAuthorById",
"summary": "Update an author by ID", "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.", "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"], "tags": [
"Authors"
],
"requestBody": { "requestBody": {
"description": "The author object to update.", "description": "The author object to update.",
"content": { "content": {
@ -140,7 +138,9 @@
"operationId": "deleteAuthorById", "operationId": "deleteAuthorById",
"summary": "Delete an author by ID", "summary": "Delete an author by ID",
"description": "Delete an author by ID. This will remove the author from all books.", "description": "Delete an author by ID. This will remove the author from all books.",
"tags": ["Authors"], "tags": [
"Authors"
],
"responses": { "responses": {
"200": { "200": {
"description": "deleteAuthorById OK", "description": "deleteAuthorById OK",
@ -169,13 +169,32 @@
"schema": { "schema": {
"$ref": "#/components/schemas/authorId" "$ref": "#/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": { "get": {
"operationId": "getAuthorImageById", "operationId": "getAuthorImageById",
"summary": "Get an author image by author ID", "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.", "description": "Get an author image by author ID. The image will be returned in the requested format and size.",
"tags": ["Authors"], "security": [],
"tags": [
"Authors"
],
"requestBody": { "requestBody": {
"required": false, "required": false,
"description": "The author image to get.", "description": "The author image to get.",
@ -233,7 +252,9 @@
"operationId": "addAuthorImageById", "operationId": "addAuthorImageById",
"summary": "Add an author image to the server", "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.", "description": "Add an author image to the server. The image will be downloaded from the provided URL and stored on the server.",
"tags": ["Authors"], "tags": [
"Authors"
],
"requestBody": { "requestBody": {
"required": true, "required": true,
"description": "The author image to add by URL.", "description": "The author image to add by URL.",
@ -266,7 +287,9 @@
"operationId": "updateAuthorImageById", "operationId": "updateAuthorImageById",
"summary": "Update an author image by author ID", "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.", "description": "Update an author image by author ID. The image will be resized if the width, height, or format is provided.",
"tags": ["Authors"], "tags": [
"Authors"
],
"requestBody": { "requestBody": {
"description": "The author image to update.", "description": "The author image to update.",
"content": { "content": {
@ -311,7 +334,9 @@
"operationId": "deleteAuthorImageById", "operationId": "deleteAuthorImageById",
"summary": "Delete an author image by author ID", "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.", "description": "Delete an author image by author ID. This will remove the image from the server and the database.",
"tags": ["Authors"], "tags": [
"Authors"
],
"responses": { "responses": {
"200": { "200": {
"description": "deleteAuthorImageById OK" "description": "deleteAuthorImageById OK"
@ -338,7 +363,9 @@
"operationId": "matchAuthorById", "operationId": "matchAuthorById",
"summary": "Match the author against Audible using quick match", "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.", "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"], "tags": [
"Authors"
],
"requestBody": { "requestBody": {
"required": true, "required": true,
"description": "The author object to match against an online provider.", "description": "The author object to match against an online provider.",
@ -390,7 +417,9 @@
"operationId": "getLibraries", "operationId": "getLibraries",
"summary": "Get all libraries on server", "summary": "Get all libraries on server",
"description": "Get all libraries on server.", "description": "Get all libraries on server.",
"tags": ["Libraries"], "tags": [
"Libraries"
],
"responses": { "responses": {
"200": { "200": {
"description": "getLibraries OK", "description": "getLibraries OK",
@ -411,14 +440,19 @@
"operationId": "createLibrary", "operationId": "createLibrary",
"summary": "Create a new library on server", "summary": "Create a new library on server",
"description": "Create a new library on server.", "description": "Create a new library on server.",
"tags": ["Libraries"], "tags": [
"Libraries"
],
"requestBody": { "requestBody": {
"description": "The library object to create.", "description": "The library object to create.",
"content": { "content": {
"application/json": { "application/json": {
"schema": { "schema": {
"type": "object", "type": "object",
"required": ["name", "folders"], "required": [
"name",
"folders"
],
"properties": { "properties": {
"name": { "name": {
"$ref": "#/components/schemas/libraryName" "$ref": "#/components/schemas/libraryName"
@ -472,7 +506,21 @@
"operationId": "getLibraryById", "operationId": "getLibraryById",
"summary": "Get a single library by ID on server", "summary": "Get a single library by ID on server",
"description": "Get a single library by ID on server.", "description": "Get a single library by ID on server.",
"tags": ["Libraries"], "tags": [
"Libraries"
],
"parameters": [
{
"in": "query",
"name": "include",
"schema": {
"type": "string"
}
},
{
"$ref": "#/components/parameters/minified"
}
],
"responses": { "responses": {
"200": { "200": {
"$ref": "#/components/responses/library200" "$ref": "#/components/responses/library200"
@ -486,7 +534,9 @@
"operationId": "updateLibraryById", "operationId": "updateLibraryById",
"summary": "Update a single library by ID on server", "summary": "Update a single library by ID on server",
"description": "Update a single library by ID on server.", "description": "Update a single library by ID on server.",
"tags": ["Libraries"], "tags": [
"Libraries"
],
"requestBody": { "requestBody": {
"required": true, "required": true,
"description": "The library object to update.", "description": "The library object to update.",
@ -534,7 +584,9 @@
"operationId": "deleteLibraryById", "operationId": "deleteLibraryById",
"summary": "Delete a single library by ID on server", "summary": "Delete a single library by ID on server",
"description": "Delete a single library by ID on server and return the deleted object.", "description": "Delete a single library by ID on server and return the deleted object.",
"tags": ["Libraries"], "tags": [
"Libraries"
],
"responses": { "responses": {
"200": { "200": {
"$ref": "#/components/responses/library200" "$ref": "#/components/responses/library200"
@ -561,7 +613,9 @@
"operationId": "getLibraryAuthors", "operationId": "getLibraryAuthors",
"summary": "Get all authors in a library", "summary": "Get all authors in a library",
"description": "Get all authors in a library by ID on server.", "description": "Get all authors in a library by ID on server.",
"tags": ["Libraries"], "tags": [
"Libraries"
],
"responses": { "responses": {
"200": { "200": {
"description": "getLibraryAuthors OK", "description": "getLibraryAuthors OK",
@ -603,44 +657,61 @@
"operationId": "getLibraryItems", "operationId": "getLibraryItems",
"summary": "Get items in a library", "summary": "Get items in a library",
"description": "Get items in a library by ID on server.", "description": "Get items in a library by ID on server.",
"tags": ["Libraries"], "tags": [
"requestBody": { "Libraries"
"required": false, ],
"description": "The filters to apply to the requested library items.", "parameters": [
"content": { {
"application/json": { "$ref": "#/components/parameters/limit"
"schema": { },
"type": "object", {
"properties": { "$ref": "#/components/parameters/page"
"limit": { },
"$ref": "#/components/schemas/limit" {
}, "in": "query",
"page": { "name": "sort",
"$ref": "#/components/schemas/page" "description": "The field to sort by from the request.",
}, "example": "numBooks",
"sort": { "schema": {
"$ref": "#/components/schemas/librarySort" "type": "string",
}, "default": "name"
"desc": { }
"$ref": "#/components/schemas/sortDesc" },
}, {
"filter": { "$ref": "#/components/parameters/desc"
"$ref": "#/components/schemas/libraryFilter" },
}, {
"minified": { "in": "query",
"$ref": "#/components/schemas/minified" "name": "filter",
}, "description": "The filter for the library.",
"collapseSeries": { "example": "media.metadata.title",
"$ref": "#/components/schemas/libraryCollapseSeries" "schema": {
}, "type": "string"
"include": { }
"$ref": "#/components/schemas/libraryInclude" },
} {
} "in": "query",
} "name": "include",
"description": "The fields to include in the response. The only current option is `rssfeed`.",
"allowReserved": true,
"example": "rssfeed",
"schema": {
"type": "string"
}
},
{
"$ref": "#/components/parameters/minified"
},
{
"in": "query",
"name": "collapseSeries",
"description": "Whether to collapse series into a single cover",
"schema": {
"type": "integer",
"default": 0
} }
} }
}, ],
"responses": { "responses": {
"200": { "200": {
"description": "getLibraryItems OK", "description": "getLibraryItems OK",
@ -712,7 +783,9 @@
"operationId": "deleteLibraryIssues", "operationId": "deleteLibraryIssues",
"summary": "Delete items with issues in a library.", "summary": "Delete items with issues in a library.",
"description": "Delete all items with issues in a library by library ID on the server. This only removes the items from the ABS database and does not delete media files.", "description": "Delete all items with issues in a library by library ID on the server. This only removes the items from the ABS database and does not delete media files.",
"tags": ["Libraries"], "tags": [
"Libraries"
],
"responses": { "responses": {
"200": { "200": {
"description": "deleteLibraryIssues OK", "description": "deleteLibraryIssues OK",
@ -747,27 +820,15 @@
"operationId": "getLibrarySeries", "operationId": "getLibrarySeries",
"summary": "Get library series", "summary": "Get library series",
"description": "Get series in a library. Filtering and sorting can be applied.", "description": "Get series in a library. Filtering and sorting can be applied.",
"tags": ["Libraries"], "tags": [
"Libraries"
],
"parameters": [ "parameters": [
{ {
"in": "query", "$ref": "#/components/parameters/limit"
"name": "limit",
"description": "The number of series to return. If 0, all series are returned.",
"example": 10,
"schema": {
"type": "integer",
"default": 0
}
}, },
{ {
"in": "query", "$ref": "#/components/parameters/page"
"name": "page",
"description": "The page number (zero indexed) to return. If no limit is specified, then page will have no effect.",
"example": 0,
"schema": {
"type": "integer",
"default": 0
}
}, },
{ {
"in": "query", "in": "query",
@ -776,19 +837,19 @@
"example": "numBooks", "example": "numBooks",
"schema": { "schema": {
"type": "string", "type": "string",
"enum": ["name", "numBooks", "totalDuration", "addedAt", "lastBookAdded", "lastBookUpdated"], "enum": [
"name",
"numBooks",
"totalDuration",
"addedAt",
"lastBookAdded",
"lastBookUpdated"
],
"default": "name" "default": "name"
} }
}, },
{ {
"in": "query", "$ref": "#/components/parameters/desc"
"name": "desc",
"description": "Return items in reversed order if true.",
"example": true,
"schema": {
"type": "boolean",
"default": false
}
}, },
{ {
"in": "query", "in": "query",
@ -803,10 +864,14 @@
"in": "query", "in": "query",
"name": "include", "name": "include",
"description": "The fields to include in the response. The only current option is `rssfeed`.", "description": "The fields to include in the response. The only current option is `rssfeed`.",
"allowReserved": true,
"example": "rssfeed", "example": "rssfeed",
"schema": { "schema": {
"type": "string" "type": "string"
} }
},
{
"$ref": "#/components/parameters/minified"
} }
], ],
"responses": { "responses": {
@ -884,45 +949,60 @@
"summary": "Get single series in library", "summary": "Get single series in library",
"description": "Get a single series in a library by ID on server. This endpoint is deprecated and `/api/series/{id}` should be used instead.", "description": "Get a single series in a library by ID on server. This endpoint is deprecated and `/api/series/{id}` should be used instead.",
"deprecated": true, "deprecated": true,
"tags": ["Libraries"], "tags": [
"requestBody": { "Libraries"
"required": false, ],
"description": "The filters to apply to the requested library series.", "parameters": [
"content": { {
"application/json": { "$ref": "#/components/parameters/limit"
"schema": { },
"type": "object", {
"properties": { "$ref": "#/components/parameters/page"
"limit": { },
"$ref": "#/components/schemas/limit" {
}, "in": "query",
"page": { "name": "sort",
"$ref": "#/components/schemas/page" "description": "The field to sort by from the request.",
}, "example": "numBooks",
"sort": { "schema": {
"description": "The field to sort by from the request.", "type": "string",
"type": "string", "enum": [
"enum": ["name", "numBooks", "totalDuration", "addedAt", "lastBookAdded", "lastBookUpdated"], "name",
"example": "numBooks", "numBooks",
"default": "name" "totalDuration",
}, "addedAt",
"desc": { "lastBookAdded",
"$ref": "#/components/schemas/sortDesc" "lastBookUpdated"
}, ],
"filter": { "default": "name"
"$ref": "#/components/schemas/libraryFilter" }
}, },
"minified": { {
"$ref": "#/components/schemas/minified" "$ref": "#/components/parameters/desc"
}, },
"include": { {
"$ref": "#/components/schemas/libraryInclude" "in": "query",
} "name": "filter",
} "description": "The filter for the library.",
} "example": "media.metadata.title",
"schema": {
"type": "string"
}
},
{
"$ref": "#/components/parameters/minified"
},
{
"in": "query",
"name": "include",
"description": "The fields to include in the response. The only current option is `rssfeed`.",
"allowReserved": true,
"example": "rssfeed",
"schema": {
"type": "string"
} }
} }
}, ],
"responses": { "responses": {
"200": { "200": {
"description": "getLibrarySeriesById OK", "description": "getLibrarySeriesById OK",
@ -954,7 +1034,9 @@
], ],
"get": { "get": {
"operationId": "getSeries", "operationId": "getSeries",
"tags": ["Series"], "tags": [
"Series"
],
"summary": "Get series", "summary": "Get series",
"description": "Get a series by ID.", "description": "Get a series by ID.",
"requestBody": { "requestBody": {
@ -969,7 +1051,12 @@
"type": "string", "type": "string",
"description": "A comma separated list of what to include with the series.", "description": "A comma separated list of what to include with the series.",
"example": "progress,rssfeed", "example": "progress,rssfeed",
"enum": ["progress", "rssfeed", "progress,rssfeed", "rssfeed,progress"] "enum": [
"progress",
"rssfeed",
"progress,rssfeed",
"rssfeed,progress"
]
} }
} }
} }
@ -994,7 +1081,9 @@
}, },
"patch": { "patch": {
"operationId": "updateSeries", "operationId": "updateSeries",
"tags": ["Series"], "tags": [
"Series"
],
"summary": "Update series", "summary": "Update series",
"description": "Update a series by ID.", "description": "Update a series by ID.",
"requestBody": { "requestBody": {
@ -1048,17 +1137,6 @@
"format": "uuid", "format": "uuid",
"example": "e4bb1afb-4a4f-4dd6-8be0-e615d233185b" "example": "e4bb1afb-4a4f-4dd6-8be0-e615d233185b"
}, },
"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"
},
"libraryId": {
"type": "string",
"description": "The ID of the library.",
"format": "uuid",
"example": "e4bb1afb-4a4f-4dd6-8be0-e615d233185b"
},
"authorAsin": { "authorAsin": {
"description": "The Audible identifier (ASIN) of the author. Will be null if unknown. Not the Amazon identifier.", "description": "The Audible identifier (ASIN) of the author. Will be null if unknown. Not the Amazon identifier.",
"type": "string", "type": "string",
@ -1111,6 +1189,12 @@
"format": "[0-9]*", "format": "[0-9]*",
"example": "649644248522215260" "example": "649644248522215260"
}, },
"libraryId": {
"type": "string",
"description": "The ID of the library.",
"format": "uuid",
"example": "e4bb1afb-4a4f-4dd6-8be0-e615d233185b"
},
"folderId": { "folderId": {
"type": "string", "type": "string",
"description": "The ID of the folder.", "description": "The ID of the folder.",
@ -1120,7 +1204,10 @@
"mediaType": { "mediaType": {
"type": "string", "type": "string",
"description": "The type of media, will be book or podcast.", "description": "The type of media, will be book or podcast.",
"enum": ["book", "podcast"] "enum": [
"book",
"podcast"
]
}, },
"libraryItemBase": { "libraryItemBase": {
"type": "object", "type": "object",
@ -1205,7 +1292,11 @@
"items": { "items": {
"type": "string" "type": "string"
}, },
"example": ["Fantasy", "Sci-Fi", "Nonfiction: History"] "example": [
"Fantasy",
"Sci-Fi",
"Nonfiction: History"
]
}, },
"publishedYear": { "publishedYear": {
"description": "The year the book was published. Will be null if unknown.", "description": "The year the book was published. Will be null if unknown.",
@ -1303,7 +1394,10 @@
"items": { "items": {
"type": "string" "type": "string"
}, },
"example": ["To Be Read", "Genre: Nonfiction"] "example": [
"To Be Read",
"Genre: Nonfiction"
]
}, },
"durationSec": { "durationSec": {
"description": "The total length (in seconds) of the item or file.", "description": "The total length (in seconds) of the item or file.",
@ -1589,7 +1683,14 @@
"items": { "items": {
"type": "string" "type": "string"
}, },
"example": ["folderStructure", "audioMetatags", "nfoFile", "txtFiles", "opfFile", "absMetadata"] "example": [
"folderStructure",
"audioMetatags",
"nfoFile",
"txtFiles",
"opfFile",
"absMetadata"
]
}, },
"podcastSearchRegion": { "podcastSearchRegion": {
"description": "The region to use when searching for podcasts.", "description": "The region to use when searching for podcasts.",
@ -1698,6 +1799,11 @@
} }
] ]
}, },
"total": {
"description": "The total number of items in the response.",
"type": "integer",
"example": 100
},
"limit": { "limit": {
"description": "The number of items to return. If 0, no items are returned.", "description": "The number of items to return. If 0, no items are returned.",
"type": "integer", "type": "integer",
@ -1710,20 +1816,19 @@
"example": 1, "example": 1,
"default": 0 "default": 0
}, },
"librarySort": { "sortBy": {
"description": "The sort order of the library. For example, to sort by title use 'sort=media.metadata.title'.",
"type": "string", "type": "string",
"description": "The field to sort by from the request.",
"example": "media.metadata.title" "example": "media.metadata.title"
}, },
"sortDesc": { "sortDesc": {
"description": "Return items in reversed order if true.", "description": "Whether to sort in descending order.",
"type": "boolean", "type": "boolean",
"example": true, "example": true
"default": false
}, },
"libraryFilter": { "filterBy": {
"description": "The filter for the library.",
"type": "string", "type": "string",
"description": "The field to filter by from the request. TODO",
"example": "media.metadata.title" "example": "media.metadata.title"
}, },
"minified": { "minified": {
@ -1732,37 +1837,16 @@
"example": true, "example": true,
"default": false "default": false
}, },
"libraryCollapseSeries": { "collapseSeries": {
"description": "Whether to collapse series.",
"type": "boolean", "type": "boolean",
"example": true, "description": "Whether collapse series was set in the request.",
"default": false "example": true
}, },
"libraryInclude": { "libraryInclude": {
"description": "The fields to include in the response. The only current option is `rssfeed`.", "description": "The fields to include in the response. The only current option is `rssfeed`.",
"type": "string", "type": "string",
"example": "rssfeed" "example": "rssfeed"
}, },
"total": {
"description": "The total number of items in the response.",
"type": "integer",
"example": 100
},
"sortBy": {
"type": "string",
"description": "The field to sort by from the request.",
"example": "media.metadata.title"
},
"filterBy": {
"type": "string",
"description": "The field to filter by from the request. TODO",
"example": "media.metadata.title"
},
"collapseSeries": {
"type": "boolean",
"description": "Whether collapse series was set in the request.",
"example": true
},
"sequence": { "sequence": {
"description": "The position in the series the book is.", "description": "The position in the series the book is.",
"type": "string", "type": "string",
@ -1936,6 +2020,48 @@
} }
} }
} }
},
"parameters": {
"minified": {
"in": "query",
"name": "minified",
"description": "Return minified items if true",
"schema": {
"type": "integer",
"minimum": 0,
"example": 1
}
},
"limit": {
"in": "query",
"name": "limit",
"description": "The number of items to return. This the size of a single page for the optional `page` query.",
"example": 10,
"schema": {
"type": "integer",
"default": 0
}
},
"page": {
"in": "query",
"name": "page",
"description": "The page number (zero indexed) to return. If no limit is specified, then page will have no effect.",
"example": 0,
"schema": {
"type": "integer",
"default": 0
}
},
"desc": {
"in": "query",
"name": "desc",
"description": "Return items in reversed order if true.",
"example": 0,
"schema": {
"type": "integer",
"default": 0
}
}
} }
} }
} }

View File

@ -60,3 +60,12 @@ components:
type: string type: string
example: 'us' example: 'us'
default: 'us' default: 'us'
parameters:
minified:
in: query
name: minified
description: Return minified items if true
schema:
type: integer
minimum: 0
example: 1