Bug 36480: Add GET /libraries/:library_id/desks
[koha.git] / api / v1 / swagger / paths / libraries.yaml
1 ---
2 /libraries:
3   get:
4     x-mojo-to: Libraries#list
5     operationId: listLibraries
6     tags:
7       - libraries
8     summary: List libraries
9     parameters:
10       - name: name
11         in: query
12         description: Case insensitive 'starts-with' search on name
13         required: false
14         type: string
15       - name: address1
16         in: query
17         description: Case insensitive 'starts-with' search on address1
18         required: false
19         type: string
20       - name: address2
21         in: query
22         description: Case insensitive 'starts-with' search on address2
23         required: false
24         type: string
25       - name: address3
26         in: query
27         description: Case insensitive 'starts-with' search on address3
28         required: false
29         type: string
30       - name: postal_code
31         in: query
32         description: Case insensitive 'starts-with' search on postal code
33         required: false
34         type: string
35       - name: city
36         in: query
37         description: Case insensitive 'starts-with' search on city
38         required: false
39         type: string
40       - name: state
41         in: query
42         description: Case insensitive 'starts-with' search on state
43         required: false
44         type: string
45       - name: country
46         in: query
47         description: Case insensitive 'starts_with' search on country
48         required: false
49         type: string
50       - name: phone
51         in: query
52         description: Case insensitive 'starts_with' search on phone number
53         required: false
54         type: string
55       - name: fax
56         in: query
57         description: Case insensitive 'starts_with' search on fax number
58         required: false
59         type: string
60       - name: email
61         in: query
62         description: Case insensitive 'starts_with' search on email address
63         required: false
64         type: string
65       - name: reply_to_email
66         in: query
67         description: Case insensitive 'starts_with' search on Reply-To email address
68         required: false
69         type: string
70       - name: return_path_email
71         in: query
72         description: Case insensitive 'starts_with' search on Return-Path email address
73         required: false
74         type: string
75       - name: url
76         in: query
77         description: Case insensitive 'starts_with' search on website URL
78         required: false
79         type: string
80       - name: ip
81         in: query
82         description: Case insensitive 'starts_with' search on IP address
83         required: false
84         type: string
85       - name: notes
86         in: query
87         description: Case insensitive 'starts_with' search on notes
88         required: false
89         type: string
90       - $ref: "../swagger.yaml#/parameters/match"
91       - $ref: "../swagger.yaml#/parameters/order_by"
92       - $ref: "../swagger.yaml#/parameters/page"
93       - $ref: "../swagger.yaml#/parameters/per_page"
94       - $ref: "../swagger.yaml#/parameters/q_param"
95       - $ref: "../swagger.yaml#/parameters/q_body"
96       - $ref: "../swagger.yaml#/parameters/request_id_header"
97       - name: x-koha-embed
98         in: header
99         required: false
100         description: Embed list sent as a request header
101         type: array
102         items:
103           type: string
104           enum:
105             - smtp_server
106             - library_hours
107         collectionFormat: csv
108     produces:
109       - application/json
110     responses:
111       "200":
112         description: A list of libraries
113         schema:
114           type: array
115           items:
116             $ref: "../swagger.yaml#/definitions/library"
117       "500":
118         description: |
119           Internal server error. Possible `error_code` attribute values:
120
121           * `internal_server_error`
122         schema:
123           $ref: "../swagger.yaml#/definitions/error"
124       "503":
125         description: Under maintenance
126         schema:
127           $ref: "../swagger.yaml#/definitions/error"
128     x-koha-authorization:
129       permissions:
130         catalogue: "1"
131   post:
132     x-mojo-to: Libraries#add
133     operationId: addLibrary
134     tags:
135       - libraries
136     summary: Add library
137     parameters:
138       - name: body
139         in: body
140         description: A JSON object containing informations about the new library
141         required: true
142         schema:
143           $ref: "../swagger.yaml#/definitions/library"
144     produces:
145       - application/json
146     responses:
147       "201":
148         description: Library added
149         schema:
150           $ref: "../swagger.yaml#/definitions/library"
151       "400":
152         description: Bad request
153         schema:
154           $ref: "../swagger.yaml#/definitions/error"
155       "401":
156         description: Authentication required
157         schema:
158           $ref: "../swagger.yaml#/definitions/error"
159       "403":
160         description: Access forbidden
161         schema:
162           $ref: "../swagger.yaml#/definitions/error"
163       "409":
164         description: Conflict in creating resource
165         schema:
166           $ref: "../swagger.yaml#/definitions/error"
167       "500":
168         description: |
169           Internal server error. Possible `error_code` attribute values:
170
171           * `internal_server_error`
172         schema:
173           $ref: "../swagger.yaml#/definitions/error"
174       "503":
175         description: Under maintenance
176         schema:
177           $ref: "../swagger.yaml#/definitions/error"
178     x-koha-authorization:
179       permissions:
180         parameters: manage_libraries
181 "/libraries/{library_id}":
182   get:
183     x-mojo-to: Libraries#get
184     operationId: getLibrary
185     tags:
186       - libraries
187     summary: Get library
188     parameters:
189       - $ref: "../swagger.yaml#/parameters/library_id_pp"
190       - name: x-koha-embed
191         in: header
192         required: false
193         description: Embed list sent as a request header
194         type: array
195         items:
196           type: string
197           enum:
198             - smtp_server
199             - library_hours
200         collectionFormat: csv
201     produces:
202       - application/json
203     responses:
204       "200":
205         description: A library
206         schema:
207           $ref: "../swagger.yaml#/definitions/library"
208       "404":
209         description: Library not found
210         schema:
211           $ref: "../swagger.yaml#/definitions/error"
212     x-koha-authorization:
213       permissions:
214         catalogue: "1"
215   put:
216     x-mojo-to: Libraries#update
217     operationId: updateLibrary
218     tags:
219       - libraries
220     summary: Update library
221     parameters:
222       - $ref: "../swagger.yaml#/parameters/library_id_pp"
223       - name: body
224         in: body
225         description: A JSON object containing information on the library
226         required: true
227         schema:
228           $ref: "../swagger.yaml#/definitions/library"
229     consumes:
230       - application/json
231     produces:
232       - application/json
233     responses:
234       "200":
235         description: A library
236         schema:
237           $ref: "../swagger.yaml#/definitions/library"
238       "400":
239         description: Bad request
240         schema:
241           $ref: "../swagger.yaml#/definitions/error"
242       "401":
243         description: Authentication required
244         schema:
245           $ref: "../swagger.yaml#/definitions/error"
246       "403":
247         description: Access forbidden
248         schema:
249           $ref: "../swagger.yaml#/definitions/error"
250       "404":
251         description: Library not found
252         schema:
253           $ref: "../swagger.yaml#/definitions/error"
254       "500":
255         description: |
256           Internal server error. Possible `error_code` attribute values:
257
258           * `internal_server_error`
259         schema:
260           $ref: "../swagger.yaml#/definitions/error"
261       "503":
262         description: Under maintenance
263         schema:
264           $ref: "../swagger.yaml#/definitions/error"
265     x-koha-authorization:
266       permissions:
267         parameters: manage_libraries
268   delete:
269     x-mojo-to: Libraries#delete
270     operationId: deleteLibrary
271     tags:
272       - libraries
273     summary: Delete library
274     parameters:
275       - $ref: "../swagger.yaml#/parameters/library_id_pp"
276     produces:
277       - application/json
278     responses:
279       "204":
280         description: Library deleted
281         schema:
282           type: string
283       "401":
284         description: Authentication required
285         schema:
286           $ref: "../swagger.yaml#/definitions/error"
287       "403":
288         description: Access forbidden
289         schema:
290           $ref: "../swagger.yaml#/definitions/error"
291       "404":
292         description: Library not found
293         schema:
294           $ref: "../swagger.yaml#/definitions/error"
295       "500":
296         description: |
297           Internal server error. Possible `error_code` attribute values:
298
299           * `internal_server_error`
300         schema:
301           $ref: "../swagger.yaml#/definitions/error"
302       "503":
303         description: Under maintenance
304         schema:
305           $ref: "../swagger.yaml#/definitions/error"
306     x-koha-authorization:
307       permissions:
308         parameters: manage_libraries
309 "/libraries/{library_id}/desks":
310   get:
311     x-mojo-to: Libraries#list_desks
312     operationId: listLibraryDesks
313     tags:
314       - desks
315     summary: List the library's desks
316     parameters:
317       - $ref: "../swagger.yaml#/parameters/match"
318       - $ref: "../swagger.yaml#/parameters/order_by"
319       - $ref: "../swagger.yaml#/parameters/page"
320       - $ref: "../swagger.yaml#/parameters/per_page"
321       - $ref: "../swagger.yaml#/parameters/q_param"
322       - $ref: "../swagger.yaml#/parameters/q_body"
323       - $ref: "../swagger.yaml#/parameters/request_id_header"
324     produces:
325       - application/json
326     responses:
327       200:
328         description: A list of desks for the library
329         schema:
330           type: array
331           items:
332             $ref: "../swagger.yaml#/definitions/desk"
333       404:
334         description: Resource not found
335         schema:
336           $ref: "../swagger.yaml#/definitions/error"
337       500:
338         description: |
339           Internal server error. Possible `error_code` attribute values:
340
341           * `internal_server_error`
342         schema:
343           $ref: "../swagger.yaml#/definitions/error"
344       503:
345         description: Under maintenance
346         schema:
347           $ref: "../swagger.yaml#/definitions/error"
348     x-koha-authorization:
349       permissions:
350         catalogue: 1
351 /public/libraries:
352   get:
353     x-mojo-to: Libraries#list
354     operationId: listLibrariesPublic
355     tags:
356       - libraries
357     summary: List libraries
358     parameters:
359       - $ref: "../swagger.yaml#/parameters/match"
360       - $ref: "../swagger.yaml#/parameters/order_by"
361       - $ref: "../swagger.yaml#/parameters/page"
362       - $ref: "../swagger.yaml#/parameters/per_page"
363       - $ref: "../swagger.yaml#/parameters/q_param"
364       - $ref: "../swagger.yaml#/parameters/q_body"
365       - $ref: "../swagger.yaml#/parameters/request_id_header"
366     produces:
367       - application/json
368     responses:
369       "200":
370         description: A list of libraries
371         schema:
372           type: array
373           items:
374             $ref: "../swagger.yaml#/definitions/library"
375       "500":
376         description: |
377           Internal server error. Possible `error_code` attribute values:
378
379           * `internal_server_error`
380         schema:
381           $ref: "../swagger.yaml#/definitions/error"
382       "503":
383         description: Under maintenance
384         schema:
385           $ref: "../swagger.yaml#/definitions/error"
386 "/public/libraries/{library_id}":
387   get:
388     x-mojo-to: Libraries#get
389     operationId: getLibraryPublic
390     tags:
391       - libraries
392     summary: Get library (public)
393     parameters:
394       - $ref: "../swagger.yaml#/parameters/library_id_pp"
395     produces:
396       - application/json
397     responses:
398       "200":
399         description: A library
400       "401":
401         description: Authentication required
402         schema:
403           $ref: "../swagger.yaml#/definitions/error"
404       "403":
405         description: Access forbidden
406         schema:
407           $ref: "../swagger.yaml#/definitions/error"
408       "404":
409         description: Library not found
410         schema:
411           $ref: "../swagger.yaml#/definitions/error"
412       "406":
413         description: Not acceptable
414         schema:
415           type: array
416           description: Accepted content-types
417           items:
418             type: string
419       "500":
420         description: |
421           Internal server error. Possible `error_code` attribute values:
422
423           * `internal_server_error`
424         schema:
425           $ref: "../swagger.yaml#/definitions/error"
426       "503":
427         description: Under maintenance
428         schema:
429           $ref: "../swagger.yaml#/definitions/error"