Bug 34054: Allow to embed biblio on GET /items
[koha.git] / api / v1 / swagger / paths / items.yaml
1 ---
2 /items:
3   get:
4     x-mojo-to: Items#list
5     operationId: listItems
6     tags:
7       - items
8     summary: List items
9     parameters:
10       - name: external_id
11         in: query
12         description: Search on the item's barcode
13         required: false
14         type: string
15       - name: x-koha-embed
16         in: header
17         required: false
18         description: Embed list sent as a request header
19         type: array
20         items:
21           type: string
22           enum:
23             - +strings
24             - biblio
25         collectionFormat: csv
26       - $ref: "../swagger.yaml#/parameters/match"
27       - $ref: "../swagger.yaml#/parameters/order_by"
28       - $ref: "../swagger.yaml#/parameters/page"
29       - $ref: "../swagger.yaml#/parameters/per_page"
30       - $ref: "../swagger.yaml#/parameters/q_param"
31       - $ref: "../swagger.yaml#/parameters/q_body"
32       - $ref: "../swagger.yaml#/parameters/q_header"
33       - $ref: "../swagger.yaml#/parameters/request_id_header"
34     consumes:
35       - application/json
36     produces:
37       - application/json
38     responses:
39       "200":
40         description: A list of item
41         schema:
42           type: array
43           items:
44             $ref: "../swagger.yaml#/definitions/item"
45       "401":
46         description: Authentication required
47         schema:
48           $ref: "../swagger.yaml#/definitions/error"
49       "403":
50         description: Access forbidden
51         schema:
52           $ref: "../swagger.yaml#/definitions/error"
53       "500":
54         description: |
55           Internal server error. Possible `error_code` attribute values:
56
57           * `internal_server_error`
58         schema:
59           $ref: "../swagger.yaml#/definitions/error"
60       "503":
61         description: Under maintenance
62         schema:
63           $ref: "../swagger.yaml#/definitions/error"
64     x-koha-authorization:
65       permissions:
66         catalogue: "1"
67 "/items/{item_id}":
68   get:
69     x-mojo-to: Items#get
70     operationId: getItem
71     tags:
72       - items
73     summary: Get item
74     parameters:
75       - $ref: "../swagger.yaml#/parameters/item_id_pp"
76       - name: x-koha-embed
77         in: header
78         required: false
79         description: Embed list sent as a request header
80         type: array
81         items:
82           type: string
83           enum:
84             - +strings
85         collectionFormat: csv
86     consumes:
87       - application/json
88     produces:
89       - application/json
90     responses:
91       "200":
92         description: An item
93         schema:
94           $ref: "../swagger.yaml#/definitions/item"
95       "400":
96         description: Missing or wrong parameters
97         schema:
98           $ref: "../swagger.yaml#/definitions/error"
99       "404":
100         description: Item not found
101         schema:
102           $ref: "../swagger.yaml#/definitions/error"
103       "500":
104         description: |
105           Internal server error. Possible `error_code` attribute values:
106
107           * `internal_server_error`
108         schema:
109           $ref: "../swagger.yaml#/definitions/error"
110       "503":
111         description: Under maintenance
112         schema:
113           $ref: "../swagger.yaml#/definitions/error"
114     x-koha-authorization:
115       permissions:
116         catalogue: "1"
117   delete:
118     x-mojo-to: Items#delete
119     operationId: deleteItem
120     tags:
121       - items
122     summary: Delete item
123     parameters:
124       - $ref: "../swagger.yaml#/parameters/item_id_pp"
125     consumes:
126       - application/json
127     produces:
128       - application/json
129     responses:
130       "204":
131         description: Deleted item
132       "400":
133         description: Missing or wrong parameters
134         schema:
135           $ref: "../swagger.yaml#/definitions/error"
136       "403":
137         description: Access forbidden
138         schema:
139           $ref: "../swagger.yaml#/definitions/error"
140       "404":
141         description: Item not found
142         schema:
143           $ref: "../swagger.yaml#/definitions/error"
144       "409":
145         description: |
146           Conflict. Possible `error_code` attribute values:
147
148             * book_on_loan: The item is checked out
149             * book_reserved: Waiting or in-transit hold for the item
150             * last_item_for_hold: The item is the last one on a record on which a biblio-level hold is placed
151             * linked_analytics: The item has linked analytic records
152             * not_same_branch: The item is blocked by independent branches
153         schema:
154               $ref: "../swagger.yaml#/definitions/error"
155       "500":
156         description: |
157           Internal server error. Possible `error_code` attribute values:
158
159           * `internal_server_error`
160         schema:
161           $ref: "../swagger.yaml#/definitions/error"
162       "503":
163         description: Under maintenance
164         schema:
165           $ref: "../swagger.yaml#/definitions/error"
166     x-koha-authorization:
167       permissions:
168         editcatalogue: edit_catalogue
169 "/items/{item_id}/bundled_items":
170   post:
171     x-mojo-to: Items#add_to_bundle
172     operationId: addToBundle
173     tags:
174       - items
175     summary: Add item to bundle
176     parameters:
177       - $ref: "../swagger.yaml#/parameters/item_id_pp"
178       - name: body
179         in: body
180         description: A JSON object containing information about the new bundle link
181         required: true
182         schema:
183           $ref: "../swagger.yaml#/definitions/bundle_link"
184     consumes:
185       - application/json
186     produces:
187       - application/json
188     responses:
189       "201":
190         description: A successfully created bundle link
191         schema:
192           items:
193             $ref: "../swagger.yaml#/definitions/item"
194       "400":
195         description: Bad parameter
196         schema:
197           $ref: "../swagger.yaml#/definitions/error"
198       "401":
199         description: Authentication required
200         schema:
201           $ref: "../swagger.yaml#/definitions/error"
202       "403":
203         description: Access forbidden
204         schema:
205           $ref: "../swagger.yaml#/definitions/error"
206       "404":
207         description: Resource not found
208         schema:
209           $ref: "../swagger.yaml#/definitions/error"
210       "409":
211         description: Conflict in creating resource
212         schema:
213           $ref: "../swagger.yaml#/definitions/error"
214       "500":
215         description: Internal server error
216         schema:
217           $ref: "../swagger.yaml#/definitions/error"
218       "503":
219         description: Under maintenance
220         schema:
221           $ref: "../swagger.yaml#/definitions/error"
222     x-koha-authorization:
223       permissions:
224         catalogue: 1
225   get:
226     x-mojo-to: Items#bundled_items
227     operationId: bundledItems
228     tags:
229       - items
230     summary: List bundled items
231     parameters:
232       - $ref: "../swagger.yaml#/parameters/item_id_pp"
233       - name: external_id
234         in: query
235         description: Search on the item's barcode
236         required: false
237         type: string
238       - $ref: "../swagger.yaml#/parameters/match"
239       - $ref: "../swagger.yaml#/parameters/order_by"
240       - $ref: "../swagger.yaml#/parameters/page"
241       - $ref: "../swagger.yaml#/parameters/per_page"
242       - $ref: "../swagger.yaml#/parameters/q_param"
243       - $ref: "../swagger.yaml#/parameters/q_body"
244       - $ref: "../swagger.yaml#/parameters/q_header"
245       - name: x-koha-embed
246         in: header
247         required: false
248         description: Embed list sent as a request header
249         type: array
250         items:
251           type: string
252           enum:
253             - biblio
254             - checkout
255             - return_claims
256             - return_claim
257             - return_claim.patron
258         collectionFormat: csv
259     consumes:
260       - application/json
261     produces:
262       - application/json
263     responses:
264       "200":
265         description: A list of item
266         schema:
267           type: array
268           items:
269             $ref: "../swagger.yaml#/definitions/item"
270       "401":
271         description: Authentication required
272         schema:
273           $ref: "../swagger.yaml#/definitions/error"
274       "403":
275         description: Access forbidden
276         schema:
277           $ref: "../swagger.yaml#/definitions/error"
278       "500":
279         description: Internal server error
280         schema:
281           $ref: "../swagger.yaml#/definitions/error"
282       "503":
283         description: Under maintenance
284         schema:
285           $ref: "../swagger.yaml#/definitions/error"
286     x-koha-authorization:
287       permissions:
288         catalogue: "1"
289 "/items/{item_id}/bundled_items/{bundled_item_id}":
290   delete:
291     x-mojo-to: Items#remove_from_bundle
292     operationId: removeFromBundle
293     tags:
294       - items
295     summary: Remove item from bundle
296     parameters:
297       - $ref: "../swagger.yaml#/parameters/item_id_pp"
298       - name: bundled_item_id
299         in: path
300         description: Internal identifier for the bundled item
301         required: true
302         type: string
303     consumes:
304       - application/json
305     produces:
306       - application/json
307     responses:
308       "204":
309         description: Bundle link deleted
310       "400":
311         description: Bad parameter
312         schema:
313           $ref: "../swagger.yaml#/definitions/error"
314       "409":
315         description: Conflict in creating resource
316         schema:
317           $ref: "../swagger.yaml#/definitions/error"
318       "401":
319         description: Authentication required
320         schema:
321           $ref: "../swagger.yaml#/definitions/error"
322       "403":
323         description: Access forbidden
324         schema:
325           $ref: "../swagger.yaml#/definitions/error"
326       "404":
327         description: Resource not found
328         schema:
329           $ref: "../swagger.yaml#/definitions/error"
330       "500":
331         description: Internal server error
332         schema:
333           $ref: "../swagger.yaml#/definitions/error"
334       "503":
335         description: Under maintenance
336         schema:
337           $ref: "../swagger.yaml#/definitions/error"
338     x-koha-authorization:
339       permissions:
340         catalogue: 1
341 "/items/{item_id}/pickup_locations":
342   get:
343     x-mojo-to: Items#pickup_locations
344     operationId: getItemPickupLocations
345     summary: Get valid pickup locations for an item
346     tags:
347       - items
348     parameters:
349       - $ref: "../swagger.yaml#/parameters/item_id_pp"
350       - name: patron_id
351         in: query
352         description: Internal patron identifier
353         required: true
354         type: integer
355       - $ref: "../swagger.yaml#/parameters/match"
356       - $ref: "../swagger.yaml#/parameters/order_by"
357       - $ref: "../swagger.yaml#/parameters/page"
358       - $ref: "../swagger.yaml#/parameters/per_page"
359       - $ref: "../swagger.yaml#/parameters/q_param"
360       - $ref: "../swagger.yaml#/parameters/q_body"
361       - $ref: "../swagger.yaml#/parameters/q_header"
362       - $ref: "../swagger.yaml#/parameters/request_id_header"
363     consumes:
364       - application/json
365     produces:
366       - application/json
367     responses:
368       "200":
369         description: Item pickup locations
370         schema:
371           type: array
372           items:
373             $ref: "../swagger.yaml#/definitions/library"
374       "400":
375         description: Missing or wrong parameters
376         schema:
377           $ref: "../swagger.yaml#/definitions/error"
378       "401":
379         description: Authentication required
380         schema:
381           $ref: "../swagger.yaml#/definitions/error"
382       "403":
383         description: Access forbidden
384         schema:
385           $ref: "../swagger.yaml#/definitions/error"
386       "404":
387         description: Biblio not found
388         schema:
389           $ref: "../swagger.yaml#/definitions/error"
390       "500":
391         description: |
392           Internal server error. Possible `error_code` attribute values:
393
394           * `internal_server_error`
395         schema:
396           $ref: "../swagger.yaml#/definitions/error"
397       "503":
398         description: Under maintenance
399         schema:
400           $ref: "../swagger.yaml#/definitions/error"
401     x-koha-authorization:
402       permissions:
403         reserveforothers: place_holds
404 "/public/items":
405   get:
406     x-mojo-to: Items#list_public
407     operationId: listItemsPublic
408     tags:
409       - items
410     summary: List items publically visible
411     parameters:
412       - name: external_id
413         in: query
414         description: Search on the item's barcode
415         required: false
416         type: string
417       - $ref: "../swagger.yaml#/parameters/match"
418       - $ref: "../swagger.yaml#/parameters/order_by"
419       - $ref: "../swagger.yaml#/parameters/page"
420       - $ref: "../swagger.yaml#/parameters/per_page"
421       - $ref: "../swagger.yaml#/parameters/q_param"
422       - $ref: "../swagger.yaml#/parameters/q_body"
423       - $ref: "../swagger.yaml#/parameters/q_header"
424       - $ref: "../swagger.yaml#/parameters/request_id_header"
425       - name: x-koha-embed
426         in: header
427         required: false
428         description: Embed list sent as a request header
429         type: array
430         items:
431           type: string
432           enum:
433             - +strings
434         collectionFormat: csv
435     consumes:
436       - application/json
437     produces:
438       - application/json
439     responses:
440       "200":
441         description: A list of item
442         schema:
443           type: array
444           items:
445             $ref: "../swagger.yaml#/definitions/item"
446       "401":
447         description: Authentication required
448         schema:
449           $ref: "../swagger.yaml#/definitions/error"
450       "403":
451         description: Access forbidden
452         schema:
453           $ref: "../swagger.yaml#/definitions/error"
454       "500":
455         description: |
456           Internal server error. Possible `error_code` attribute values:
457
458           * `internal_server_error`
459         schema:
460           $ref: "../swagger.yaml#/definitions/error"
461       "503":
462         description: Under maintenance
463         schema:
464           $ref: "../swagger.yaml#/definitions/error"