Bug 24476: Rename autorenewal to autorenew_checkouts
[koha.git] / api / v1 / swagger / paths / patrons.json
1 {
2   "/patrons": {
3     "get": {
4       "x-mojo-to": "Patrons#list",
5       "operationId": "listPatrons",
6       "tags": ["patrons"],
7       "produces": [
8           "application/json"
9       ],
10       "parameters": [{
11         "name": "patron_id",
12         "in": "query",
13         "description": "Search on patron_id",
14         "required": false,
15         "type": "string"
16       }, {
17         "name": "cardnumber",
18         "in": "query",
19         "description": "Case insensitive search on cardnumber",
20         "required": false,
21         "type": "string"
22       }, {
23         "name": "surname",
24         "in": "query",
25         "description": "Case insensitive search on surname",
26         "required": false,
27         "type": "string"
28       }, {
29         "name": "firstname",
30         "in": "query",
31         "description": "Case insensitive search on firstname",
32         "required": false,
33         "type": "string"
34       }, {
35         "name": "title",
36         "in": "query",
37         "description": "Case insensitive search on title",
38         "required": false,
39         "type": "string"
40       }, {
41         "name": "other_name",
42         "in": "query",
43         "description": "Case insensitive search on othernames",
44         "required": false,
45         "type": "string"
46       }, {
47         "name": "initials",
48         "in": "query",
49         "description": "Case insensitive search on initials",
50         "required": false,
51         "type": "string"
52       }, {
53         "name": "street_number",
54         "in": "query",
55         "description": "Case insensitive search on streetnumber",
56         "required": false,
57         "type": "string"
58       }, {
59         "name": "street_type",
60         "in": "query",
61         "description": "Case insensitive search on streettype",
62         "required": false,
63         "type": "string"
64       }, {
65         "name": "address",
66         "in": "query",
67         "description": "Case insensitive search on address",
68         "required": false,
69         "type": "string"
70       }, {
71         "name": "address2",
72         "in": "query",
73         "description": "Case insensitive search on address2",
74         "required": false,
75         "type": "string"
76       }, {
77         "name": "city",
78         "in": "query",
79         "description": "Case insensitive search on city",
80         "required": false,
81         "type": "string"
82       }, {
83         "name": "state",
84         "in": "query",
85         "description": "Case insensitive search on state",
86         "required": false,
87         "type": "string"
88       }, {
89         "name": "postal_code",
90         "in": "query",
91         "description": "Case insensitive search on zipcode",
92         "required": false,
93         "type": "string"
94       }, {
95         "name": "country",
96         "in": "query",
97         "description": "Case insensitive search on country",
98         "required": false,
99         "type": "string"
100       }, {
101         "name": "email",
102         "in": "query",
103         "description": "Case insensitive search on email",
104         "required": false,
105         "type": "string"
106       }, {
107         "name": "phone",
108         "in": "query",
109         "description": "Case insensitive search on phone",
110         "required": false,
111         "type": "string"
112       }, {
113         "name": "mobile",
114         "in": "query",
115         "description": "Case insensitive search on mobile",
116         "required": false,
117         "type": "string"
118       }, {
119         "name": "fax",
120         "in": "query",
121         "description": "Case insensitive search on fax",
122         "required": false,
123         "type": "string"
124       }, {
125         "name": "secondary_email",
126         "in": "query",
127         "description": "Case insensitive search on secondary_email",
128         "required": false,
129         "type": "string"
130       }, {
131         "name": "secondary_phone",
132         "in": "query",
133         "description": "Case insensitive search on secondary_phone",
134         "required": false,
135         "type": "string"
136       }, {
137         "name": "altaddress_street_number",
138         "in": "query",
139         "description": "Case insensitive search on altaddress_street_number",
140         "required": false,
141         "type": "string"
142       }, {
143         "name": "altaddress_street_type",
144         "in": "query",
145         "description": "Case insensitive search on altaddress_street_type",
146         "required": false,
147         "type": "string"
148       }, {
149         "name": "altaddress_address",
150         "in": "query",
151         "description": "Case insensitive search on altaddress_address",
152         "required": false,
153         "type": "string"
154       }, {
155         "name": "altaddress_address2",
156         "in": "query",
157         "description": "Case insensitive search on altaddress_address2",
158         "required": false,
159         "type": "string"
160       }, {
161         "name": "altaddress_city",
162         "in": "query",
163         "description": "Case insensitive search on altaddress_city",
164         "required": false,
165         "type": "string"
166       }, {
167         "name": "altaddress_state",
168         "in": "query",
169         "description": "Case insensitive search on altaddress_state",
170         "required": false,
171         "type": "string"
172       }, {
173         "name": "altaddress_postal_code",
174         "in": "query",
175         "description": "Case insensitive search on altaddress_postal_code",
176         "required": false,
177         "type": "string"
178       }, {
179         "name": "altaddress_country",
180         "in": "query",
181         "description": "Case insensitive search on altaddress_country",
182         "required": false,
183         "type": "string"
184       }, {
185         "name": "altaddress_email",
186         "in": "query",
187         "description": "Case insensitive search on altaddress_email",
188         "required": false,
189         "type": "string"
190       }, {
191         "name": "altaddress_phone",
192         "in": "query",
193         "description": "Case insensitive search on altaddress_phone",
194         "required": false,
195         "type": "string"
196       }, {
197         "name": "date_of_birth",
198         "in": "query",
199         "description": "Case insensitive search on date_of_birth",
200         "required": false,
201         "type": "string"
202       }, {
203         "name": "library_id",
204         "in": "query",
205         "description": "Case insensitive search on library_id",
206         "required": false,
207         "type": "string"
208       }, {
209         "name": "category_id",
210         "in": "query",
211         "description": "Case insensitive search on category_id",
212         "required": false,
213         "type": "string"
214       }, {
215         "name": "date_enrolled",
216         "in": "query",
217         "description": "Case insensitive search on date_enrolled",
218         "required": false,
219         "type": "string"
220       }, {
221         "name": "expiry_date",
222         "in": "query",
223         "description": "Case insensitive search on expiry_date",
224         "required": false,
225         "type": "string"
226       }, {
227         "name": "incorrect_address",
228         "in": "query",
229         "description": "Search on incorrect_address",
230         "required": false,
231         "type": "boolean"
232       }, {
233         "name": "patron_card_lost",
234         "in": "query",
235         "description": "Search on patron_card_lost",
236         "required": false,
237         "type": "boolean"
238       }, {
239         "name": "restricted",
240         "in": "query",
241         "description": "Filter search by restricted",
242         "required": false,
243         "type": "boolean"
244       }, {
245         "name": "guarantor_id",
246         "in": "query",
247         "description": "Search on guarantor_id",
248         "required": false,
249         "type": "string"
250       }, {
251         "name": "staff_notes",
252         "in": "query",
253         "description": "Case insensitive search on staff_notes",
254         "required": false,
255         "type": "string"
256       }, {
257         "name": "relationship_type",
258         "in": "query",
259         "description": "Case insensitive search on relationship_type",
260         "required": false,
261         "type": "string"
262       }, {
263         "name": "gender",
264         "in": "query",
265         "description": "Case insensitive search on gender",
266         "required": false,
267         "type": "string"
268       }, {
269         "name": "userid",
270         "in": "query",
271         "description": "Case insensitive search on userid",
272         "required": false,
273         "type": "string"
274       }, {
275         "name": "opac_notes",
276         "in": "query",
277         "description": "Case insensitive search on opac_notes",
278         "required": false,
279         "type": "string"
280       }, {
281         "name": "altaddress_notes",
282         "in": "query",
283         "description": "Case insensitive search on altaddress_notes",
284         "required": false,
285         "type": "string"
286       }, {
287         "name": "statistics_1",
288         "in": "query",
289         "description": "Case insensitive search on statistics_1",
290         "required": false,
291         "type": "string"
292       }, {
293         "name": "statistics_2",
294         "in": "query",
295         "description": "Case insensitive search on statistics_2",
296         "required": false,
297         "type": "string"
298       }, {
299         "name": "autorenew_checkouts",
300         "in": "query",
301         "description": "Search on autorenew_checkouts",
302         "required": false,
303         "type": "boolean"
304       }, {
305         "name": "altcontact_firstname",
306         "in": "query",
307         "description": "Case insensitive search on altcontact_firstname",
308         "required": false,
309         "type": "string"
310       }, {
311         "name": "altcontact_surname",
312         "in": "query",
313         "description": "Case insensitive search on altcontact_surname",
314         "required": false,
315         "type": "string"
316       }, {
317         "name": "altcontact_address",
318         "in": "query",
319         "description": "Case insensitive search on altcontact_address",
320         "required": false,
321         "type": "string"
322       }, {
323         "name": "altcontact_address2",
324         "in": "query",
325         "description": "Case insensitive search on altcontact_address2",
326         "required": false,
327         "type": "string"
328       }, {
329         "name": "altcontact_city",
330         "in": "query",
331         "description": "Case insensitive search on altcontact_city",
332         "required": false,
333         "type": "string"
334       }, {
335         "name": "altcontact_state",
336         "in": "query",
337         "description": "Case insensitive search on altcontact_state",
338         "required": false,
339         "type": "string"
340       }, {
341         "name": "altcontact_postal_code",
342         "in": "query",
343         "description": "Case insensitive search on altcontact_postal_code",
344         "required": false,
345         "type": "string"
346       }, {
347         "name": "altcontact_country",
348         "in": "query",
349         "description": "Case insensitive search on altcontact_country",
350         "required": false,
351         "type": "string"
352       }, {
353         "name": "altcontact_phone",
354         "in": "query",
355         "description": "Case insensitive search on altcontact_phone",
356         "required": false,
357         "type": "string"
358       }, {
359         "name": "sms_number",
360         "in": "query",
361         "description": "Case insensitive search on sms_number",
362         "required": false,
363         "type": "string"
364       }, {
365         "name": "sms_provider_id",
366         "in": "query",
367         "description": "Case insensitive search on sms_provider_id",
368         "required": false,
369         "type": "string"
370       }, {
371         "name": "privacy",
372         "in": "query",
373         "description": "Search on privacy",
374         "required": false,
375         "type": "string"
376       }, {
377         "name": "privacy_guarantor_checkouts",
378         "in": "query",
379         "description": "Search on privacy_guarantor_checkouts",
380         "required": false,
381         "type": "string"
382       }, {
383         "name": "check_previous_checkout",
384         "in": "query",
385         "description": "Case insensitive search on check_previous_checkout",
386         "required": false,
387         "type": "string"
388       }, {
389         "name": "updated_on",
390         "in": "query",
391         "description": "Search on updated_on",
392         "required": false,
393         "type": "string"
394       }, {
395         "name": "last_seen",
396         "in": "query",
397         "description": "Case insensitive search on last_seen",
398         "required": false,
399         "type": "string"
400       }, {
401         "name": "lang",
402         "in": "query",
403         "description": "Case insensitive search on lang",
404         "required": false,
405         "type": "string"
406       }, {
407         "name": "login_attempts",
408         "in": "query",
409         "description": "Search on login_attempts",
410         "required": false,
411         "type": "string"
412       }, {
413         "$ref": "../parameters.json#/match"
414       }, {
415         "$ref": "../parameters.json#/order_by"
416       }, {
417         "$ref": "../parameters.json#/page"
418       }, {
419         "$ref": "../parameters.json#/per_page"
420       }],
421       "responses": {
422         "200": {
423           "description": "A list of patrons",
424           "schema": {
425             "type": "array",
426             "items": {
427               "$ref": "../definitions.json#/patron"
428             }
429           }
430         },
431         "401": {
432           "description": "Authentication required",
433           "schema": {
434             "$ref": "../definitions.json#/error"
435           }
436         },
437         "403": {
438           "description": "Access forbidden",
439           "schema": {
440             "$ref": "../definitions.json#/error"
441           }
442         },
443         "500": {
444           "description": "Internal server error",
445           "schema": {
446             "$ref": "../definitions.json#/error"
447           }
448         }
449       },
450       "x-koha-authorization": {
451         "permissions": {
452           "borrowers": "1"
453         }
454       }
455     },
456     "post": {
457       "x-mojo-to": "Patrons#add",
458       "operationId": "addPatron",
459       "tags": ["patrons"],
460       "parameters": [{
461         "name": "body",
462         "in": "body",
463         "description": "A JSON object containing information about the new patron",
464         "required": true,
465         "schema": {
466           "$ref": "../definitions.json#/patron"
467         }
468       }],
469       "consumes": ["application/json"],
470       "produces": ["application/json"],
471       "responses": {
472         "201": {
473           "description": "A successfully created patron",
474           "schema": {
475             "items": {
476               "$ref": "../definitions.json#/patron"
477             }
478           }
479         },
480         "400": {
481           "description": "Bad parameter",
482           "schema": {
483             "$ref": "../definitions.json#/error"
484           }
485         },
486         "401": {
487           "description": "Authentication required",
488           "schema": {
489             "$ref": "../definitions.json#/error"
490           }
491         },
492         "403": {
493           "description": "Access forbidden",
494           "schema": {
495             "$ref": "../definitions.json#/error"
496           }
497         },
498         "404": {
499           "description": "Resource not found",
500           "schema": {
501             "$ref": "../definitions.json#/error"
502           }
503         },
504         "409": {
505           "description": "Conflict in creating resource",
506           "schema": {
507             "$ref": "../definitions.json#/error"
508           }
509         },
510         "500": {
511           "description": "Internal server error",
512           "schema": {
513             "$ref": "../definitions.json#/error"
514           }
515         },
516         "503": {
517           "description": "Under maintenance",
518           "schema": {
519             "$ref": "../definitions.json#/error"
520           }
521         }
522       },
523       "x-koha-authorization": {
524         "permissions": {
525           "borrowers": "edit_borrowers"
526         }
527       }
528     }
529   },
530   "/patrons/{patron_id}": {
531     "get": {
532       "x-mojo-to": "Patrons#get",
533       "operationId": "getPatron",
534       "tags": ["patrons"],
535       "parameters": [{
536           "$ref": "../parameters.json#/patron_id_pp"
537       }],
538       "produces": [
539         "application/json"
540       ],
541       "responses": {
542         "200": {
543           "description": "A patron",
544           "schema": {
545             "$ref": "../definitions.json#/patron"
546           }
547         },
548         "401": {
549           "description": "Authentication required",
550           "schema": {
551             "$ref": "../definitions.json#/error"
552           }
553         },
554         "403": {
555           "description": "Access forbidden",
556           "schema": {
557             "$ref": "../definitions.json#/error"
558           }
559         },
560         "404": {
561           "description": "Patron not found",
562           "schema": {
563             "$ref": "../definitions.json#/error"
564           }
565         },
566         "500": {
567           "description": "Internal server error",
568           "schema": {
569             "$ref": "../definitions.json#/error"
570           }
571         },
572         "503": {
573           "description": "Under maintenance",
574           "schema": {
575             "$ref": "../definitions.json#/error"
576           }
577         }
578       },
579       "x-koha-authorization": {
580         "permissions": {
581           "borrowers": "edit_borrowers"
582         }
583       }
584     },
585     "put": {
586       "x-mojo-to": "Patrons#update",
587       "operationId": "updatePatron",
588       "tags": ["patrons"],
589       "parameters": [
590         {
591           "$ref": "../parameters.json#/patron_id_pp"
592         },
593         {
594           "name": "body",
595           "in": "body",
596           "description": "A JSON object containing new information about existing patron",
597           "required": true,
598           "schema": {
599             "$ref": "../definitions.json#/patron"
600           }
601         }
602       ],
603       "consumes": ["application/json"],
604       "produces": ["application/json"],
605       "responses": {
606         "200": {
607           "description": "A successfully updated patron",
608           "schema": {
609             "items": {
610               "$ref": "../definitions.json#/patron"
611             }
612           }
613         },
614         "202": {
615           "description": "Accepted and waiting for librarian verification",
616           "schema": {
617             "type": "object"
618           }
619         },
620         "204": {
621           "description": "No Content",
622           "schema": {
623             "type": "object"
624           }
625         },
626         "400": {
627           "description": "Bad parameter",
628           "schema": {
629             "$ref": "../definitions.json#/error"
630           }
631         },
632         "403": {
633           "description": "Access forbidden",
634           "schema": {
635             "$ref": "../definitions.json#/error"
636           }
637         },
638         "404": {
639           "description": "Resource not found",
640           "schema": {
641             "$ref": "../definitions.json#/error"
642           }
643         },
644         "409": {
645           "description": "Conflict in updating resource",
646           "schema": {
647             "$ref": "../definitions.json#/error"
648           }
649         },
650         "500": {
651           "description": "Internal server error",
652           "schema": {
653             "$ref": "../definitions.json#/error"
654           }
655         }
656       },
657       "x-koha-authorization": {
658         "permissions": {
659           "borrowers": "1"
660         }
661       }
662     },
663     "delete": {
664       "x-mojo-to": "Patrons#delete",
665       "operationId": "deletePatron",
666       "tags": ["patrons"],
667       "parameters": [{
668         "$ref": "../parameters.json#/patron_id_pp"
669       }],
670       "produces": ["application/json"],
671       "responses": {
672         "200": {
673           "description": "Patron deleted successfully",
674           "schema": {
675             "type": "object"
676           }
677         },
678         "400": {
679           "description": "Patron deletion failed",
680           "schema": {
681             "$ref": "../definitions.json#/error"
682           }
683         },
684         "401": {
685           "description": "Authentication required",
686           "schema": {
687             "$ref": "../definitions.json#/error"
688           }
689         },
690         "403": {
691           "description": "Access forbidden",
692           "schema": {
693             "$ref": "../definitions.json#/error"
694           }
695         },
696         "404": {
697           "description": "Patron not found",
698           "schema": {
699             "$ref": "../definitions.json#/error"
700           }
701         }
702       },
703       "x-koha-authorization": {
704         "permissions": {
705           "borrowers": "1"
706         }
707       }
708     }
709   }
710 }