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