mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-07-12 20:31:36 +00:00
Update: some library parameters
This commit is contained in:
parent
86cb5049ee
commit
faa31471b4
3 changed files with 278 additions and 204 deletions
|
|
@ -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: true
|
||||||
|
schema:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
|
||||||
responses:
|
responses:
|
||||||
library200:
|
library200:
|
||||||
description: Library found.
|
description: Library found.
|
||||||
|
|
@ -135,6 +161,11 @@ 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
|
||||||
responses:
|
responses:
|
||||||
'200':
|
'200':
|
||||||
$ref: '#/components/responses/library200'
|
$ref: '#/components/responses/library200'
|
||||||
|
|
@ -222,30 +253,38 @@ 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'
|
enum: ['name', 'numBooks', 'totalDuration', 'addedAt', 'lastBookAdded', 'lastBookUpdated']
|
||||||
page:
|
default: 'name'
|
||||||
$ref: '../schemas.yaml#/components/schemas/page'
|
- $ref: '#/components/parameters/desc'
|
||||||
sort:
|
- in: query
|
||||||
$ref: '#/components/schemas/librarySort'
|
name: filter
|
||||||
desc:
|
description: The filter for the library.
|
||||||
$ref: '../schemas.yaml#/components/schemas/sortDesc'
|
example: 'media.metadata.title'
|
||||||
filter:
|
schema:
|
||||||
$ref: '#/components/schemas/libraryFilter'
|
type: string
|
||||||
minified:
|
- in: query
|
||||||
$ref: '../schemas.yaml#/components/schemas/minified'
|
name: include
|
||||||
collapseSeries:
|
description: The fields to include in the response. The only current option is `rssfeed`.
|
||||||
$ref: '#/components/schemas/libraryCollapseSeries'
|
allowReserved: true
|
||||||
include:
|
example: 'rssfeed'
|
||||||
$ref: '#/components/schemas/libraryInclude'
|
schema:
|
||||||
|
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,6 +382,7 @@ 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
|
||||||
|
|
@ -416,32 +438,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
|
||||||
|
|
|
||||||
|
|
@ -492,6 +492,15 @@
|
||||||
"tags": [
|
"tags": [
|
||||||
"Libraries"
|
"Libraries"
|
||||||
],
|
],
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"in": "query",
|
||||||
|
"name": "include",
|
||||||
|
"schema": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
"responses": {
|
"responses": {
|
||||||
"200": {
|
"200": {
|
||||||
"$ref": "#/components/responses/library200"
|
"$ref": "#/components/responses/library200"
|
||||||
|
|
@ -631,43 +640,66 @@
|
||||||
"tags": [
|
"tags": [
|
||||||
"Libraries"
|
"Libraries"
|
||||||
],
|
],
|
||||||
"requestBody": {
|
"parameters": [
|
||||||
"required": false,
|
{
|
||||||
"description": "The filters to apply to the requested library items.",
|
"$ref": "#/components/parameters/limit"
|
||||||
"content": {
|
},
|
||||||
"application/json": {
|
{
|
||||||
"schema": {
|
"$ref": "#/components/parameters/page"
|
||||||
"type": "object",
|
},
|
||||||
"properties": {
|
{
|
||||||
"limit": {
|
"in": "query",
|
||||||
"$ref": "#/components/schemas/limit"
|
"name": "sort",
|
||||||
},
|
"description": "The field to sort by from the request.",
|
||||||
"page": {
|
"example": "numBooks",
|
||||||
"$ref": "#/components/schemas/page"
|
"schema": {
|
||||||
},
|
"type": "string",
|
||||||
"sort": {
|
"enum": [
|
||||||
"$ref": "#/components/schemas/librarySort"
|
"name",
|
||||||
},
|
"numBooks",
|
||||||
"desc": {
|
"totalDuration",
|
||||||
"$ref": "#/components/schemas/sortDesc"
|
"addedAt",
|
||||||
},
|
"lastBookAdded",
|
||||||
"filter": {
|
"lastBookUpdated"
|
||||||
"$ref": "#/components/schemas/libraryFilter"
|
],
|
||||||
},
|
"default": "name"
|
||||||
"minified": {
|
}
|
||||||
"$ref": "#/components/schemas/minified"
|
},
|
||||||
},
|
{
|
||||||
"collapseSeries": {
|
"$ref": "#/components/parameters/desc"
|
||||||
"$ref": "#/components/schemas/libraryCollapseSeries"
|
},
|
||||||
},
|
{
|
||||||
"include": {
|
"in": "query",
|
||||||
"$ref": "#/components/schemas/libraryInclude"
|
"name": "filter",
|
||||||
}
|
"description": "The filter for the library.",
|
||||||
}
|
"example": "media.metadata.title",
|
||||||
}
|
"schema": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"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",
|
||||||
|
|
@ -781,24 +813,10 @@
|
||||||
],
|
],
|
||||||
"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",
|
||||||
|
|
@ -819,14 +837,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"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",
|
||||||
|
|
@ -841,6 +852,7 @@
|
||||||
"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"
|
||||||
|
|
@ -925,51 +937,57 @@
|
||||||
"tags": [
|
"tags": [
|
||||||
"Libraries"
|
"Libraries"
|
||||||
],
|
],
|
||||||
"requestBody": {
|
"parameters": [
|
||||||
"required": false,
|
{
|
||||||
"description": "The filters to apply to the requested library series.",
|
"$ref": "#/components/parameters/limit"
|
||||||
"content": {
|
},
|
||||||
"application/json": {
|
{
|
||||||
"schema": {
|
"$ref": "#/components/parameters/page"
|
||||||
"type": "object",
|
},
|
||||||
"properties": {
|
{
|
||||||
"limit": {
|
"in": "query",
|
||||||
"$ref": "#/components/schemas/limit"
|
"name": "sort",
|
||||||
},
|
"description": "The field to sort by from the request.",
|
||||||
"page": {
|
"example": "numBooks",
|
||||||
"$ref": "#/components/schemas/page"
|
"schema": {
|
||||||
},
|
"type": "string",
|
||||||
"sort": {
|
"enum": [
|
||||||
"description": "The field to sort by from the request.",
|
"name",
|
||||||
"type": "string",
|
"numBooks",
|
||||||
"enum": [
|
"totalDuration",
|
||||||
"name",
|
"addedAt",
|
||||||
"numBooks",
|
"lastBookAdded",
|
||||||
"totalDuration",
|
"lastBookUpdated"
|
||||||
"addedAt",
|
],
|
||||||
"lastBookAdded",
|
"default": "name"
|
||||||
"lastBookUpdated"
|
}
|
||||||
],
|
},
|
||||||
"example": "numBooks",
|
{
|
||||||
"default": "name"
|
"$ref": "#/components/parameters/desc"
|
||||||
},
|
},
|
||||||
"desc": {
|
{
|
||||||
"$ref": "#/components/schemas/sortDesc"
|
"in": "query",
|
||||||
},
|
"name": "filter",
|
||||||
"filter": {
|
"description": "The filter for the library.",
|
||||||
"$ref": "#/components/schemas/libraryFilter"
|
"example": "media.metadata.title",
|
||||||
},
|
"schema": {
|
||||||
"minified": {
|
"type": "string"
|
||||||
"$ref": "#/components/schemas/minified"
|
}
|
||||||
},
|
},
|
||||||
"include": {
|
{
|
||||||
"$ref": "#/components/schemas/libraryInclude"
|
"$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",
|
||||||
|
|
@ -1766,6 +1784,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",
|
||||||
|
|
@ -1778,20 +1801,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": {
|
||||||
|
|
@ -1800,37 +1822,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",
|
||||||
|
|
@ -2004,6 +2005,48 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"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": true,
|
||||||
|
"schema": {
|
||||||
|
"type": "boolean",
|
||||||
|
"default": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"minified": {
|
||||||
|
"in": "query",
|
||||||
|
"name": "minified",
|
||||||
|
"description": "Return minified items if true",
|
||||||
|
"schema": {
|
||||||
|
"type": "integer",
|
||||||
|
"minimum": 0,
|
||||||
|
"example": 1
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue