Bug 33227: Remove invalid spec and adjust the code accordingly
[koha.git] / api / v1 / swagger / paths / biblios.yaml
1 ---
2 "/biblios":
3   post:
4     x-mojo-to: Biblios#add
5     operationId: addBiblio
6     tags:
7       - biblios
8     summary: Add biblio
9     parameters:
10       - $ref: "../swagger.yaml#/parameters/framework_id_header"
11       - $ref: "../swagger.yaml#/parameters/marc_schema_header"
12       - $ref: "../swagger.yaml#/parameters/confirm_not_duplicate_header"
13     produces:
14       - application/json
15     responses:
16       "200":
17         description: A biblio
18       "400":
19         description: Bad request
20         schema:
21           $ref: "../swagger.yaml#/definitions/error"
22       "401":
23         description: Authentication required
24         schema:
25           $ref: "../swagger.yaml#/definitions/error"
26       "403":
27         description: Access forbidden
28         schema:
29           $ref: "../swagger.yaml#/definitions/error"
30       "406":
31         description: Not acceptable
32         schema:
33           type: array
34           description: Accepted content-types
35           items:
36             type: string
37       "500":
38         description: |
39           Internal server error. Possible `error_code` attribute values:
40
41           * `internal_server_error`
42         schema:
43           $ref: "../swagger.yaml#/definitions/error"
44       "503":
45         description: Under maintenance
46         schema:
47           $ref: "../swagger.yaml#/definitions/error"
48     x-koha-authorization:
49       permissions:
50         editcatalogue: edit_catalogue
51   get:
52     x-mojo-to: Biblios#list
53     operationId: listBiblio
54     tags:
55       - biblios
56     summary: List biblios
57     parameters:
58       - $ref: "../swagger.yaml#/parameters/page"
59       - $ref: "../swagger.yaml#/parameters/per_page"
60       - $ref: "../swagger.yaml#/parameters/match"
61       - $ref: "../swagger.yaml#/parameters/order_by"
62       - $ref: "../swagger.yaml#/parameters/q_param"
63       - $ref: "../swagger.yaml#/parameters/q_body"
64       - $ref: "../swagger.yaml#/parameters/q_header"
65       - $ref: "../swagger.yaml#/parameters/request_id_header"
66     produces:
67       - application/json
68       - application/marcxml+xml
69       - application/marc-in-json
70       - application/marc
71       - text/plain
72     responses:
73       "200":
74         description: A list of biblios
75       "401":
76         description: Authentication required
77         schema:
78           $ref: "../swagger.yaml#/definitions/error"
79       "403":
80         description: Access forbidden
81         schema:
82           $ref: "../swagger.yaml#/definitions/error"
83       "404":
84         description: Biblio not found
85         schema:
86           $ref: "../swagger.yaml#/definitions/error"
87       "406":
88         description: Not acceptable
89         schema:
90           type: array
91           description: Accepted content-types
92           items:
93             type: string
94       "500":
95         description: |
96           Internal server error. Possible `error_code` attribute values:
97
98           * `internal_server_error`
99         schema:
100           $ref: "../swagger.yaml#/definitions/error"
101       "503":
102         description: Under maintenance
103         schema:
104           $ref: "../swagger.yaml#/definitions/error"
105     x-koha-authorization:
106       permissions:
107         catalogue: "1"
108 "/biblios/{biblio_id}":
109   get:
110     x-mojo-to: Biblios#get
111     operationId: getBiblio
112     tags:
113       - biblios
114     summary: Get biblio
115     parameters:
116       - $ref: "../swagger.yaml#/parameters/biblio_id_pp"
117     produces:
118       - application/json
119       - application/marcxml+xml
120       - application/marc-in-json
121       - application/marc
122       - text/plain
123     responses:
124       "200":
125         description: A biblio
126       "401":
127         description: Authentication required
128         schema:
129           $ref: "../swagger.yaml#/definitions/error"
130       "403":
131         description: Access forbidden
132         schema:
133           $ref: "../swagger.yaml#/definitions/error"
134       "404":
135         description: Biblio not found
136         schema:
137           $ref: "../swagger.yaml#/definitions/error"
138       "406":
139         description: Not acceptable
140         schema:
141           type: array
142           description: Accepted content-types
143           items:
144             type: string
145       "500":
146         description: |
147           Internal server error. Possible `error_code` attribute values:
148
149           * `internal_server_error`
150         schema:
151           $ref: "../swagger.yaml#/definitions/error"
152       "503":
153         description: Under maintenance
154         schema:
155           $ref: "../swagger.yaml#/definitions/error"
156     x-koha-authorization:
157       permissions:
158         catalogue: "1"
159   delete:
160     x-mojo-to: Biblios#delete
161     operationId: deleteBiblio
162     tags:
163       - biblios
164     summary: Delete biblio
165     parameters:
166       - $ref: "../swagger.yaml#/parameters/biblio_id_pp"
167     produces:
168       - application/json
169     responses:
170       "204":
171         description: Biblio deleted
172         schema:
173           type: string
174       "401":
175         description: Authentication required
176         schema:
177           $ref: "../swagger.yaml#/definitions/error"
178       "403":
179         description: Access forbidden
180         schema:
181           $ref: "../swagger.yaml#/definitions/error"
182       "404":
183         description: Biblio not found
184         schema:
185           $ref: "../swagger.yaml#/definitions/error"
186       "409":
187         description: Unable to perform action on biblio
188         schema:
189           $ref: "../swagger.yaml#/definitions/error"
190       "500":
191         description: Internal error
192         schema:
193           $ref: "../swagger.yaml#/definitions/error"
194       "503":
195         description: Under maintenance
196         schema:
197           $ref: "../swagger.yaml#/definitions/error"
198     x-koha-authorization:
199       permissions:
200         editcatalogue: edit_catalogue
201   put:
202     x-mojo-to: Biblios#update
203     operationId: updateBiblio
204     tags:
205       - biblios
206     summary: Update biblio
207     parameters:
208       - $ref: "../swagger.yaml#/parameters/biblio_id_pp"
209       - $ref: "../swagger.yaml#/parameters/framework_id_header"
210       - $ref: "../swagger.yaml#/parameters/marc_schema_header"
211       - $ref: "../swagger.yaml#/parameters/confirm_not_duplicate_header"
212     produces:
213       - application/json
214     responses:
215       "200":
216         description: A biblio
217       "400":
218         description: Bad request
219         schema:
220           $ref: "../swagger.yaml#/definitions/error"
221       "401":
222         description: Authentication required
223         schema:
224           $ref: "../swagger.yaml#/definitions/error"
225       "403":
226         description: Access forbidden
227         schema:
228           $ref: "../swagger.yaml#/definitions/error"
229       "404":
230         description: Biblio not found
231         schema:
232           $ref: "../swagger.yaml#/definitions/error"
233       "406":
234         description: Not acceptable
235         schema:
236           type: array
237           description: Accepted content-types
238           items:
239             type: string
240       "500":
241         description: |
242           Internal server error. Possible `error_code` attribute values:
243
244           * `internal_server_error`
245         schema:
246           $ref: "../swagger.yaml#/definitions/error"
247       "503":
248         description: Under maintenance
249         schema:
250           $ref: "../swagger.yaml#/definitions/error"
251     x-koha-authorization:
252       permissions:
253         editcatalogue: edit_catalogue
254 "/biblios/{biblio_id}/checkouts":
255   get:
256     x-mojo-to: Biblios#get_checkouts
257     operationId: listBiblioCheckouts
258     tags:
259       - checkouts
260     summary: List checkouts for a biblio
261     parameters:
262       - $ref: "../swagger.yaml#/parameters/biblio_id_pp"
263       - $ref: "../swagger.yaml#/parameters/page"
264       - $ref: "../swagger.yaml#/parameters/per_page"
265       - $ref: "../swagger.yaml#/parameters/match"
266       - $ref: "../swagger.yaml#/parameters/order_by"
267       - $ref: "../swagger.yaml#/parameters/q_param"
268       - $ref: "../swagger.yaml#/parameters/q_body"
269       - $ref: "../swagger.yaml#/parameters/q_header"
270       - $ref: "../swagger.yaml#/parameters/request_id_header"
271       - name: x-koha-embed
272         in: header
273         required: false
274         description: Embed list sent as a request header
275         type: array
276         items:
277           type: string
278           enum:
279             - issuer
280             - item
281             - patron
282             - library
283         collectionFormat: csv
284       - name: checked_in
285         in: query
286         description: By default, current checkouts are returned, when this is true then
287           checked in checkouts are returned as result.
288         type: boolean
289     produces:
290       - application/json
291     responses:
292       "200":
293         description: A list of checkouts
294         schema:
295           $ref: "../swagger.yaml#/definitions/checkouts"
296       "403":
297         description: Access forbidden
298         schema:
299           $ref: "../swagger.yaml#/definitions/error"
300       "404":
301         description: Biblio not found
302         schema:
303           $ref: "../swagger.yaml#/definitions/error"
304       "500":
305         description: |
306           Internal server error. Possible `error_code` attribute values:
307
308           * `internal_server_error`
309         schema:
310           $ref: "../swagger.yaml#/definitions/error"
311       "503":
312         description: Under maintenance
313         schema:
314           $ref: "../swagger.yaml#/definitions/error"
315     x-koha-authorization:
316       permissions:
317         circulate: circulate_remaining_permissions
318 "/biblios/{biblio_id}/items":
319   get:
320     x-mojo-to: Biblios#get_items
321     operationId: getBiblioItems
322     tags:
323       - biblios
324     summary: Get items for a biblio
325     parameters:
326       - $ref: "../swagger.yaml#/parameters/biblio_id_pp"
327       - $ref: "../swagger.yaml#/parameters/match"
328       - $ref: "../swagger.yaml#/parameters/order_by"
329       - $ref: "../swagger.yaml#/parameters/page"
330       - $ref: "../swagger.yaml#/parameters/per_page"
331       - $ref: "../swagger.yaml#/parameters/q_param"
332       - $ref: "../swagger.yaml#/parameters/q_body"
333       - $ref: "../swagger.yaml#/parameters/q_header"
334       - $ref: "../swagger.yaml#/parameters/request_id_header"
335     consumes:
336       - application/json
337     produces:
338       - application/json
339     responses:
340       "200":
341         description: A list of the items attached to the record
342         schema:
343           type: array
344           items:
345             $ref: "../swagger.yaml#/definitions/item"
346       "401":
347         description: Authentication required
348         schema:
349           $ref: "../swagger.yaml#/definitions/error"
350       "403":
351         description: Access forbidden
352         schema:
353           $ref: "../swagger.yaml#/definitions/error"
354       "404":
355         description: Biblio not found
356         schema:
357           $ref: "../swagger.yaml#/definitions/error"
358       "406":
359         description: Not acceptable
360         schema:
361           type: array
362           description: Accepted content-types
363           items:
364             type: string
365       "500":
366         description: |
367           Internal server error. Possible `error_code` attribute values:
368
369           * `internal_server_error`
370         schema:
371           $ref: "../swagger.yaml#/definitions/error"
372       "503":
373         description: Under maintenance
374         schema:
375           $ref: "../swagger.yaml#/definitions/error"
376     x-koha-authorization:
377       permissions:
378         catalogue: "1"
379 "/biblios/{biblio_id}/pickup_locations":
380   get:
381     x-mojo-to: Biblios#pickup_locations
382     operationId: getBiblioPickupLocations
383     tags:
384       - biblios
385     summary: Get valid pickup locations for a biblio
386     parameters:
387       - $ref: "../swagger.yaml#/parameters/biblio_id_pp"
388       - name: patron_id
389         in: query
390         description: Internal patron identifier
391         required: true
392         type: integer
393       - $ref: "../swagger.yaml#/parameters/match"
394       - $ref: "../swagger.yaml#/parameters/order_by"
395       - $ref: "../swagger.yaml#/parameters/page"
396       - $ref: "../swagger.yaml#/parameters/per_page"
397       - $ref: "../swagger.yaml#/parameters/q_param"
398       - $ref: "../swagger.yaml#/parameters/q_body"
399       - $ref: "../swagger.yaml#/parameters/q_header"
400     consumes:
401       - application/json
402     produces:
403       - application/json
404     responses:
405       "200":
406         description: Biblio pickup locations
407         schema:
408           type: array
409           items:
410             $ref: "../swagger.yaml#/definitions/library"
411       "400":
412         description: Missing or wrong parameters
413         schema:
414           $ref: "../swagger.yaml#/definitions/error"
415       "401":
416         description: Authentication required
417         schema:
418           $ref: "../swagger.yaml#/definitions/error"
419       "403":
420         description: Access forbidden
421         schema:
422           $ref: "../swagger.yaml#/definitions/error"
423       "404":
424         description: Biblio not found
425         schema:
426           $ref: "../swagger.yaml#/definitions/error"
427       "500":
428         description: |
429           Internal server error. Possible `error_code` attribute values:
430
431           * `internal_server_error`
432         schema:
433           $ref: "../swagger.yaml#/definitions/error"
434       "503":
435         description: Under maintenance
436         schema:
437           $ref: "../swagger.yaml#/definitions/error"
438     x-koha-authorization:
439       permissions:
440         reserveforothers: place_holds
441 "/public/biblios/{biblio_id}":
442   get:
443     x-mojo-to: Biblios#get_public
444     operationId: getBiblioPublic
445     tags:
446       - biblios
447     summary: Get biblio (public)
448     parameters:
449       - $ref: "../swagger.yaml#/parameters/biblio_id_pp"
450     produces:
451       - application/marcxml+xml
452       - application/marc-in-json
453       - application/marc
454       - text/plain
455     responses:
456       "200":
457         description: A biblio
458       "401":
459         description: Authentication required
460         schema:
461           $ref: "../swagger.yaml#/definitions/error"
462       "403":
463         description: Access forbidden
464         schema:
465           $ref: "../swagger.yaml#/definitions/error"
466       "404":
467         description: Biblio not found
468         schema:
469           $ref: "../swagger.yaml#/definitions/error"
470       "406":
471         description: Not acceptable
472         schema:
473           type: array
474           description: Accepted content-types
475           items:
476             type: string
477       "500":
478         description: |
479           Internal server error. Possible `error_code` attribute values:
480
481           * `internal_server_error`
482         schema:
483           $ref: "../swagger.yaml#/definitions/error"
484       "503":
485         description: Under maintenance
486         schema:
487           $ref: "../swagger.yaml#/definitions/error"
488 "/public/biblios/{biblio_id}/items":
489   get:
490     x-mojo-to: Biblios#get_items_public
491     operationId: getBiblioItemsPublic
492     tags:
493       - biblios
494       - items
495     parameters:
496       - $ref: "../swagger.yaml#/parameters/biblio_id_pp"
497       - $ref: "../swagger.yaml#/parameters/match"
498       - $ref: "../swagger.yaml#/parameters/order_by"
499       - $ref: "../swagger.yaml#/parameters/page"
500       - $ref: "../swagger.yaml#/parameters/per_page"
501       - $ref: "../swagger.yaml#/parameters/q_param"
502       - $ref: "../swagger.yaml#/parameters/q_body"
503       - $ref: "../swagger.yaml#/parameters/q_header"
504     consumes:
505       - application/json
506     produces:
507       - application/json
508     responses:
509       "200":
510         description: A list of the items attached to the record
511         schema:
512           type: array
513           items:
514             $ref: "../swagger.yaml#/definitions/item"
515       "401":
516         description: Authentication required
517         schema:
518           $ref: "../swagger.yaml#/definitions/error"
519       "403":
520         description: Access forbidden
521         schema:
522           $ref: "../swagger.yaml#/definitions/error"
523       "404":
524         description: Biblio not found
525         schema:
526           $ref: "../swagger.yaml#/definitions/error"
527       "406":
528         description: Not acceptable
529         schema:
530           type: array
531           description: Accepted content-types
532           items:
533             type: string
534       "500":
535         description: |
536           Internal server error. Possible `error_code` attribute values:
537
538           * `internal_server_error`
539         schema:
540           $ref: "../swagger.yaml#/definitions/error"
541       "503":
542         description: Under maintenance
543         schema:
544           $ref: "../swagger.yaml#/definitions/error"
545 "/public/biblios/{biblio_id}/ratings":
546   post:
547     x-mojo-to: Biblios#set_rating
548     operationId: setBiblioRating
549     tags:
550       - biblios
551     summary: set biblio rating (public)
552     parameters:
553       - $ref: "../swagger.yaml#/parameters/biblio_id_pp"
554       - name: body
555         in: body
556         description: A JSON object containing rating information
557         schema:
558           type: object
559           properties:
560             rating:
561               description: the rating
562               type:
563                 - integer
564                 - "null"
565           required:
566               - rating
567           additionalProperties: false
568     produces:
569       - application/json
570     responses:
571       "200":
572         description: Rating set
573         schema:
574           type: object
575           properties:
576             rating:
577               description: user's rating
578               type:
579                 - number
580                 - "null"
581             average:
582               description: average rating
583               type: number
584             count:
585               description: number of ratings
586               type: integer
587           additionalProperties: false
588       "401":
589         description: Authentication required
590         schema:
591           $ref: "../swagger.yaml#/definitions/error"
592       "403":
593         description: Access forbidden
594         schema:
595           $ref: "../swagger.yaml#/definitions/error"
596       "404":
597         description: Biblio not found
598         schema:
599           $ref: "../swagger.yaml#/definitions/error"
600       "500":
601         description: |
602           Internal server error. Possible `error_code` attribute values:
603
604           * `internal_server_error`
605         schema:
606           $ref: "../swagger.yaml#/definitions/error"
607       "503":
608         description: Under maintenance
609         schema:
610           $ref: "../swagger.yaml#/definitions/error"