Bug 34313: Add patron information in pass validation response
[koha.git] / api / v1 / swagger / paths / auth.yaml
1 ---
2 /auth/otp/token_delivery:
3   post:
4     x-mojo-to: TwoFactorAuth#send_otp_token
5     operationId: send_otp_token
6     tags:
7       - 2fa
8     summary: Send OTP token for second step authentication
9     produces:
10       - application/json
11     responses:
12       "200":
13         description: OK
14         schema:
15           type: object
16           properties:
17             access_token:
18               type: string
19             token_type:
20               type: string
21             expires_in:
22               type: integer
23           additionalProperties: false
24       "400":
25         description: Bad Request
26         schema:
27           $ref: "../swagger.yaml#/definitions/error"
28       "403":
29         description: Access forbidden
30         schema:
31           $ref: "../swagger.yaml#/definitions/error"
32       "500":
33         description: |
34           Internal server error. Possible `error_code` attribute values:
35
36           * `internal_server_error`
37         schema:
38           $ref: "../swagger.yaml#/definitions/error"
39     x-koha-authorization:
40       permissions:
41         catalogue: "1"
42
43 /auth/two-factor/registration:
44   post:
45     x-mojo-to: TwoFactorAuth#registration
46     operationId: Two factor register
47     tags:
48       - 2fa
49     summary: Generate a secret
50     produces:
51       - application/json
52     responses:
53       "201":
54         description: OK
55         schema:
56           type: object
57           properties:
58             secret32:
59               type: string
60             qr_code:
61               type: string
62             issuer:
63               type: string
64             key_id:
65               type: string
66           additionalProperties: false
67       "400":
68         description: Bad Request
69         schema:
70           $ref: "../swagger.yaml#/definitions/error"
71       "403":
72         description: Access forbidden
73         schema:
74           $ref: "../swagger.yaml#/definitions/error"
75       "500":
76         description: |
77           Internal server error. Possible `error_code` attribute values:
78
79           * `internal_server_error`
80         schema:
81           $ref: "../swagger.yaml#/definitions/error"
82     x-koha-authorization:
83       permissions:
84         catalogue: "1"
85
86 /auth/two-factor/registration/verification:
87   post:
88     x-mojo-to: TwoFactorAuth#verification
89     operationId: Two factor register verification
90     tags:
91       - 2fa
92     summary: Verify two-factor registration
93     parameters:
94       - name: secret32
95         in: formData
96         description: the secret
97         required: true
98         type: string
99       - name: pin_code
100         in: formData
101         description: the pin code
102         required: true
103         type: string
104     produces:
105       - application/json
106     responses:
107       "204":
108         description: OK
109       "401":
110         description: Authentication required
111         schema:
112           $ref: "../swagger.yaml#/definitions/error"
113       "400":
114         description: Bad Request
115         schema:
116           $ref: "../swagger.yaml#/definitions/error"
117       "403":
118         description: Access forbidden
119         schema:
120           $ref: "../swagger.yaml#/definitions/error"
121       "500":
122         description: |
123           Internal server error. Possible `error_code` attribute values:
124
125           * `internal_server_error`
126         schema:
127           $ref: "../swagger.yaml#/definitions/error"
128     x-koha-authorization:
129       permissions:
130         catalogue: "1"
131 /auth/providers:
132   get:
133     x-mojo-to: Auth::Providers#list
134     operationId: listAuthProviders
135     tags:
136       - auth_providers
137     summary: List configured identity providers
138     parameters:
139       - $ref: ../swagger.yaml#/parameters/match
140       - $ref: ../swagger.yaml#/parameters/order_by
141       - $ref: ../swagger.yaml#/parameters/page
142       - $ref: ../swagger.yaml#/parameters/per_page
143       - $ref: ../swagger.yaml#/parameters/q_param
144       - $ref: ../swagger.yaml#/parameters/q_body
145       - $ref: ../swagger.yaml#/parameters/request_id_header
146       - name: x-koha-embed
147         in: header
148         required: false
149         description: Embed list sent as a request header
150         type: array
151         items:
152           type: string
153           enum:
154             - domains
155         collectionFormat: csv
156     produces:
157       - application/json
158     responses:
159       "200":
160         description: A list of identity providers
161         schema:
162           type: array
163           items:
164             $ref: ../swagger.yaml#/definitions/auth_provider
165       "400":
166         description: Bad Request
167         schema:
168           $ref: ../swagger.yaml#/definitions/error
169       "403":
170         description: Access forbidden
171         schema:
172           $ref: ../swagger.yaml#/definitions/error
173       "500":
174         description: |
175           Internal server error. Possible `error_code` attribute values:
176
177           * `internal_server_error`
178         schema:
179           $ref: ../swagger.yaml#/definitions/error
180       "503":
181         description: Under maintenance
182         schema:
183           $ref: ../swagger.yaml#/definitions/error
184     x-koha-authorization:
185       permissions:
186         parameters: manage_authentication_providers
187   post:
188     x-mojo-to: Auth::Providers#add
189     operationId: addAuthProvider
190     tags:
191       - auth_providers
192     summary: Add a new identity provider
193     parameters:
194       - name: body
195         in: body
196         description: |
197           A JSON object containing OAuth provider parameters.
198
199           The `config` object required attributes depends on the chosen `protocol`
200
201           ## OAuth
202
203           Requires:
204
205           * key
206           * secret
207           * authorize_url
208           * token_url
209
210           ## OIDC
211
212           Requires:
213
214           * key
215           * secret
216           * well_known_url
217         required: true
218         schema:
219           $ref: ../swagger.yaml#/definitions/auth_provider
220     produces:
221       - application/json
222     responses:
223       "201":
224         description: The generated identity provider
225         schema:
226           $ref: ../swagger.yaml#/definitions/auth_provider
227       "400":
228         description: Bad Request
229         schema:
230           $ref: ../swagger.yaml#/definitions/error
231       "403":
232         description: Access forbidden
233         schema:
234           $ref: ../swagger.yaml#/definitions/error
235       "500":
236         description: |
237           Internal server error. Possible `error_code` attribute values:
238
239           * `internal_server_error`
240         schema:
241           $ref: ../swagger.yaml#/definitions/error
242       "503":
243         description: Under maintenance
244         schema:
245           $ref: ../swagger.yaml#/definitions/error
246     x-koha-authorization:
247       permissions:
248         parameters: manage_authentication_providers
249 "/auth/providers/{auth_provider_id}":
250   get:
251     x-mojo-to: Auth::Providers#get
252     operationId: getAuthProvider
253     tags:
254       - auth_providers
255     summary: Get identity provider
256     parameters:
257       - $ref: ../swagger.yaml#/parameters/auth_provider_id_pp
258       - name: x-koha-embed
259         in: header
260         required: false
261         description: Embed list sent as a request header
262         type: array
263         items:
264           type: string
265           enum:
266             - domains
267         collectionFormat: csv
268     produces:
269       - application/json
270     responses:
271       "200":
272         description: An identity provider
273         schema:
274           $ref: ../swagger.yaml#/definitions/auth_provider
275       "404":
276         description: Object not found
277         schema:
278           $ref: ../swagger.yaml#/definitions/error
279       "500":
280         description: |
281           Internal server error. Possible `error_code` attribute values:
282
283           * `internal_server_error`
284         schema:
285           $ref: ../swagger.yaml#/definitions/error
286       "503":
287         description: Under maintenance
288         schema:
289           $ref: ../swagger.yaml#/definitions/error
290     x-koha-authorization:
291       permissions:
292         parameters: manage_authentication_providers
293   put:
294     x-mojo-to: Auth::Providers#update
295     operationId: updateAuthProvider
296     tags:
297       - auth_providers
298     summary: Update an identity provider
299     parameters:
300       - $ref: ../swagger.yaml#/parameters/auth_provider_id_pp
301       - name: body
302         in: body
303         description: |
304           A JSON object containing OAuth provider parameters.
305
306           The `config` object required attributes depends on the chosen `protocol`
307
308           ## OAuth
309
310           Requires:
311
312           * key
313           * secret
314           * authorize_url
315           * token_url
316
317           ## OIDC
318
319           Requires:
320
321           * key
322           * secret
323           * well_known_url
324         required: true
325         schema:
326           $ref: ../swagger.yaml#/definitions/auth_provider
327     produces:
328       - application/json
329     responses:
330       "200":
331         description: Updated identity provider
332         schema:
333           $ref: ../swagger.yaml#/definitions/auth_provider
334       "400":
335         description: Bad Request
336         schema:
337           $ref: ../swagger.yaml#/definitions/error
338       "403":
339         description: Access forbidden
340         schema:
341           $ref: ../swagger.yaml#/definitions/error
342       "404":
343         description: Object not found
344         schema:
345           $ref: ../swagger.yaml#/definitions/error
346       "500":
347         description: |
348           Internal server error. Possible `error_code` attribute values:
349
350           * `internal_server_error`
351         schema:
352           $ref: ../swagger.yaml#/definitions/error
353       "503":
354         description: Under maintenance
355         schema:
356           $ref: ../swagger.yaml#/definitions/error
357     x-koha-authorization:
358       permissions:
359         parameters: manage_authentication_providers
360   delete:
361     x-mojo-to: Auth::Providers#delete
362     operationId: delAuthProvider
363     tags:
364       - auth_providers
365     summary: Delete identity provider
366     parameters:
367       - $ref: ../swagger.yaml#/parameters/auth_provider_id_pp
368     produces:
369       - application/json
370     responses:
371       "204":
372         description: identity provider deleted
373       "401":
374         description: Authentication required
375         schema:
376           $ref: ../swagger.yaml#/definitions/error
377       "403":
378         description: Access forbidden
379         schema:
380           $ref: ../swagger.yaml#/definitions/error
381       "404":
382         description: City not found
383         schema:
384           $ref: ../swagger.yaml#/definitions/error
385       "500":
386         description: |
387           Internal server error. Possible `error_code` attribute values:
388
389           * `internal_server_error`
390       "503":
391         description: Under maintenance
392         schema:
393           $ref: ../swagger.yaml#/definitions/error
394     x-koha-authorization:
395       permissions:
396         parameters: manage_authentication_providers
397 "/auth/providers/{auth_provider_id}/domains":
398   get:
399     x-mojo-to: Auth::Provider::Domains#list
400     operationId: listAuthProviderDomains
401     tags:
402       - auth_providers
403     summary: Get identity provider configured domains
404     parameters:
405       - $ref: ../swagger.yaml#/parameters/auth_provider_id_pp
406       - $ref: ../swagger.yaml#/parameters/match
407       - $ref: ../swagger.yaml#/parameters/order_by
408       - $ref: ../swagger.yaml#/parameters/page
409       - $ref: ../swagger.yaml#/parameters/per_page
410       - $ref: ../swagger.yaml#/parameters/q_param
411       - $ref: ../swagger.yaml#/parameters/q_body
412       - $ref: ../swagger.yaml#/parameters/request_id_header
413       - name: x-koha-embed
414         in: header
415         required: false
416         description: Embed list sent as a request header
417         type: array
418         items:
419           type: string
420           enum:
421             - domains
422         collectionFormat: csv
423     produces:
424       - application/json
425     responses:
426       "200":
427         description: An identity provider
428         schema:
429           items:
430             $ref: ../swagger.yaml#/definitions/auth_provider_domain
431       "404":
432         description: Object not found
433         schema:
434           $ref: ../swagger.yaml#/definitions/error
435       "500":
436         description: |
437           Internal server error. Possible `error_code` attribute values:
438
439           * `internal_server_error`
440         schema:
441           $ref: ../swagger.yaml#/definitions/error
442       "503":
443         description: Under maintenance
444         schema:
445           $ref: ../swagger.yaml#/definitions/error
446     x-koha-authorization:
447       permissions:
448         parameters: manage_authentication_providers
449   post:
450     x-mojo-to: Auth::Provider::Domains#add
451     operationId: addAuthProviderDomain
452     tags:
453       - auth_providers
454     summary: Add an identity provider domain
455     parameters:
456       - $ref: ../swagger.yaml#/parameters/auth_provider_id_pp
457       - name: body
458         in: body
459         description: An identity provider domain object
460         required: true
461         schema:
462           $ref: ../swagger.yaml#/definitions/auth_provider_domain
463     produces:
464       - application/json
465     responses:
466       "201":
467         description: Updated identity provider domain
468         schema:
469           $ref: ../swagger.yaml#/definitions/auth_provider_domain
470       "400":
471         description: Bad Request
472         schema:
473           $ref: ../swagger.yaml#/definitions/error
474       "403":
475         description: Access forbidden
476         schema:
477           $ref: ../swagger.yaml#/definitions/error
478       "404":
479         description: Object not found
480         schema:
481           $ref: ../swagger.yaml#/definitions/error
482       "500":
483         description: |
484           Internal server error. Possible `error_code` attribute values:
485
486           * `internal_server_error`
487         schema:
488           $ref: ../swagger.yaml#/definitions/error
489       "503":
490         description: Under maintenance
491         schema:
492           $ref: ../swagger.yaml#/definitions/error
493     x-koha-authorization:
494       permissions:
495         parameters: manage_authentication_providers
496 "/auth/providers/{auth_provider_id}/domains/{auth_provider_domain_id}":
497   get:
498     x-mojo-to: Auth::Provider::Domains#get
499     operationId: getAuthProviderDomain
500     tags:
501       - auth_providers
502     summary: Get identity provider domain
503     parameters:
504       - $ref: ../swagger.yaml#/parameters/auth_provider_id_pp
505       - $ref: ../swagger.yaml#/parameters/auth_provider_domain_id_pp
506     produces:
507       - application/json
508     responses:
509       "200":
510         description: An identity provider
511         schema:
512           $ref: ../swagger.yaml#/definitions/auth_provider_domain
513       "404":
514         description: Object not found
515         schema:
516           $ref: ../swagger.yaml#/definitions/error
517       "500":
518         description: |
519           Internal server error. Possible `error_code` attribute values:
520
521           * `internal_server_error`
522         schema:
523           $ref: ../swagger.yaml#/definitions/error
524       "503":
525         description: Under maintenance
526         schema:
527           $ref: ../swagger.yaml#/definitions/error
528     x-koha-authorization:
529       permissions:
530         parameters: manage_authentication_providers
531   delete:
532     x-mojo-to: Auth::Provider::Domains#delete
533     operationId: delAuthProviderDomain
534     tags:
535       - auth_providers
536     summary: Delete identity provider
537     parameters:
538       - $ref: ../swagger.yaml#/parameters/auth_provider_id_pp
539       - $ref: ../swagger.yaml#/parameters/auth_provider_domain_id_pp
540     produces:
541       - application/json
542     responses:
543       "204":
544         description: identity provider deleted
545       "401":
546         description: Authentication required
547         schema:
548           $ref: ../swagger.yaml#/definitions/error
549       "403":
550         description: Access forbidden
551         schema:
552           $ref: ../swagger.yaml#/definitions/error
553       "404":
554         description: City not found
555         schema:
556           $ref: ../swagger.yaml#/definitions/error
557       "500":
558         description: |
559           Internal server error. Possible `error_code` attribute values:
560
561           * `internal_server_error`
562       "503":
563         description: Under maintenance
564         schema:
565           $ref: ../swagger.yaml#/definitions/error
566     x-koha-authorization:
567       permissions:
568         parameters: manage_authentication_providers
569 /auth/identity_providers:
570   get:
571     x-mojo-to: Auth::Identity::Providers#list
572     operationId: listIdentityProviders
573     tags:
574       - identity_providers
575     summary: List configured identity providers
576     parameters:
577       - $ref: ../swagger.yaml#/parameters/match
578       - $ref: ../swagger.yaml#/parameters/order_by
579       - $ref: ../swagger.yaml#/parameters/page
580       - $ref: ../swagger.yaml#/parameters/per_page
581       - $ref: ../swagger.yaml#/parameters/q_param
582       - $ref: ../swagger.yaml#/parameters/q_body
583       - $ref: ../swagger.yaml#/parameters/request_id_header
584       - name: x-koha-embed
585         in: header
586         required: false
587         description: Embed list sent as a request header
588         type: array
589         items:
590           type: string
591           enum:
592             - domains
593         collectionFormat: csv
594     produces:
595       - application/json
596     responses:
597       "200":
598         description: A list of identity providers
599         schema:
600           type: array
601           items:
602             $ref: ../swagger.yaml#/definitions/identity_provider
603       "400":
604         description: Bad Request
605         schema:
606           $ref: ../swagger.yaml#/definitions/error
607       "403":
608         description: Access forbidden
609         schema:
610           $ref: ../swagger.yaml#/definitions/error
611       "500":
612         description: |
613           Internal server error. Possible `error_code` attribute values:
614
615           * `internal_server_error`
616         schema:
617           $ref: ../swagger.yaml#/definitions/error
618       "503":
619         description: Under maintenance
620         schema:
621           $ref: ../swagger.yaml#/definitions/error
622     x-koha-authorization:
623       permissions:
624         parameters: manage_identity_providers
625   post:
626     x-mojo-to: Auth::Identity::Providers#add
627     operationId: addIdentityProvider
628     tags:
629       - identity_providers
630     summary: Add a new identity provider
631     parameters:
632       - name: body
633         in: body
634         description: |
635           A JSON object containing OAuth provider parameters.
636
637           The `config` object required attributes depends on the chosen `protocol`
638
639           ## OAuth
640
641           Requires:
642
643           * key
644           * secret
645           * authorize_url
646           * token_url
647
648           ## OIDC
649
650           Requires:
651
652           * key
653           * secret
654           * well_known_url
655         required: true
656         schema:
657           $ref: ../swagger.yaml#/definitions/identity_provider
658     produces:
659       - application/json
660     responses:
661       "201":
662         description: The generated identity provider
663         schema:
664           $ref: ../swagger.yaml#/definitions/identity_provider
665       "400":
666         description: Bad Request
667         schema:
668           $ref: ../swagger.yaml#/definitions/error
669       "403":
670         description: Access forbidden
671         schema:
672           $ref: ../swagger.yaml#/definitions/error
673       "500":
674         description: |
675           Internal server error. Possible `error_code` attribute values:
676
677           * `internal_server_error`
678         schema:
679           $ref: ../swagger.yaml#/definitions/error
680       "503":
681         description: Under maintenance
682         schema:
683           $ref: ../swagger.yaml#/definitions/error
684     x-koha-authorization:
685       permissions:
686         parameters: manage_identity_providers
687 "/auth/identity_providers/{identity_provider_id}":
688   get:
689     x-mojo-to: Auth::Identity::Providers#get
690     operationId: getIdentityProvider
691     tags:
692       - identity_providers
693     summary: Get identity provider
694     parameters:
695       - $ref: ../swagger.yaml#/parameters/identity_provider_id_pp
696       - name: x-koha-embed
697         in: header
698         required: false
699         description: Embed list sent as a request header
700         type: array
701         items:
702           type: string
703           enum:
704             - domains
705         collectionFormat: csv
706     produces:
707       - application/json
708     responses:
709       "200":
710         description: An identity provider
711         schema:
712           $ref: ../swagger.yaml#/definitions/identity_provider
713       "404":
714         description: Object not found
715         schema:
716           $ref: ../swagger.yaml#/definitions/error
717       "500":
718         description: |
719           Internal server error. Possible `error_code` attribute values:
720
721           * `internal_server_error`
722         schema:
723           $ref: ../swagger.yaml#/definitions/error
724       "503":
725         description: Under maintenance
726         schema:
727           $ref: ../swagger.yaml#/definitions/error
728     x-koha-authorization:
729       permissions:
730         parameters: manage_identity_providers
731   put:
732     x-mojo-to: Auth::Identity::Providers#update
733     operationId: updateIdentityProvider
734     tags:
735       - identity_providers
736     summary: Update an identity provider
737     parameters:
738       - $ref: ../swagger.yaml#/parameters/identity_provider_id_pp
739       - name: body
740         in: body
741         description: |
742           A JSON object containing OAuth provider parameters.
743
744           The `config` object required attributes depends on the chosen `protocol`
745
746           ## OAuth
747
748           Requires:
749
750           * key
751           * secret
752           * authorize_url
753           * token_url
754
755           ## OIDC
756
757           Requires:
758
759           * key
760           * secret
761           * well_known_url
762         required: true
763         schema:
764           $ref: ../swagger.yaml#/definitions/identity_provider
765     produces:
766       - application/json
767     responses:
768       "200":
769         description: Updated identity provider
770         schema:
771           $ref: ../swagger.yaml#/definitions/identity_provider
772       "400":
773         description: Bad Request
774         schema:
775           $ref: ../swagger.yaml#/definitions/error
776       "403":
777         description: Access forbidden
778         schema:
779           $ref: ../swagger.yaml#/definitions/error
780       "404":
781         description: Object not found
782         schema:
783           $ref: ../swagger.yaml#/definitions/error
784       "500":
785         description: |
786           Internal server error. Possible `error_code` attribute values:
787
788           * `internal_server_error`
789         schema:
790           $ref: ../swagger.yaml#/definitions/error
791       "503":
792         description: Under maintenance
793         schema:
794           $ref: ../swagger.yaml#/definitions/error
795     x-koha-authorization:
796       permissions:
797         parameters: manage_identity_providers
798   delete:
799     x-mojo-to: Auth::Identity::Providers#delete
800     operationId: delIdentityProvider
801     tags:
802       - identity_providers
803     summary: Delete identity provider
804     parameters:
805       - $ref: ../swagger.yaml#/parameters/identity_provider_id_pp
806     produces:
807       - application/json
808     responses:
809       "204":
810         description: identity provider deleted
811       "401":
812         description: Authentication required
813         schema:
814           $ref: ../swagger.yaml#/definitions/error
815       "403":
816         description: Access forbidden
817         schema:
818           $ref: ../swagger.yaml#/definitions/error
819       "404":
820         description: City not found
821         schema:
822           $ref: ../swagger.yaml#/definitions/error
823       "500":
824         description: |
825           Internal server error. Possible `error_code` attribute values:
826
827           * `internal_server_error`
828       "503":
829         description: Under maintenance
830         schema:
831           $ref: ../swagger.yaml#/definitions/error
832     x-koha-authorization:
833       permissions:
834         parameters: manage_identity_providers
835 "/auth/identity_providers/{identity_provider_id}/domains":
836   get:
837     x-mojo-to: Auth::Identity::Provider::Domains#list
838     operationId: listIdentityProviderDomains
839     tags:
840       - identity_providers
841     summary: Get identity provider configured domains
842     parameters:
843       - $ref: ../swagger.yaml#/parameters/identity_provider_id_pp
844       - $ref: ../swagger.yaml#/parameters/match
845       - $ref: ../swagger.yaml#/parameters/order_by
846       - $ref: ../swagger.yaml#/parameters/page
847       - $ref: ../swagger.yaml#/parameters/per_page
848       - $ref: ../swagger.yaml#/parameters/q_param
849       - $ref: ../swagger.yaml#/parameters/q_body
850       - $ref: ../swagger.yaml#/parameters/request_id_header
851       - name: x-koha-embed
852         in: header
853         required: false
854         description: Embed list sent as a request header
855         type: array
856         items:
857           type: string
858           enum:
859             - domains
860         collectionFormat: csv
861     produces:
862       - application/json
863     responses:
864       "200":
865         description: An identity provider
866         schema:
867           items:
868             $ref: ../swagger.yaml#/definitions/identity_provider_domain
869       "404":
870         description: Object not found
871         schema:
872           $ref: ../swagger.yaml#/definitions/error
873       "500":
874         description: |
875           Internal server error. Possible `error_code` attribute values:
876
877           * `internal_server_error`
878         schema:
879           $ref: ../swagger.yaml#/definitions/error
880       "503":
881         description: Under maintenance
882         schema:
883           $ref: ../swagger.yaml#/definitions/error
884     x-koha-authorization:
885       permissions:
886         parameters: manage_identity_providers
887   post:
888     x-mojo-to: Auth::Identity::Provider::Domains#add
889     operationId: addIdentityProviderDomain
890     tags:
891       - identity_providers
892     summary: Add an identity provider domain
893     parameters:
894       - $ref: ../swagger.yaml#/parameters/identity_provider_id_pp
895       - name: body
896         in: body
897         description: An identity provider domain object
898         required: true
899         schema:
900           $ref: ../swagger.yaml#/definitions/identity_provider_domain
901     produces:
902       - application/json
903     responses:
904       "201":
905         description: Updated identity provider domain
906         schema:
907           $ref: ../swagger.yaml#/definitions/identity_provider_domain
908       "400":
909         description: Bad Request
910         schema:
911           $ref: ../swagger.yaml#/definitions/error
912       "403":
913         description: Access forbidden
914         schema:
915           $ref: ../swagger.yaml#/definitions/error
916       "404":
917         description: Object not found
918         schema:
919           $ref: ../swagger.yaml#/definitions/error
920       "500":
921         description: |
922           Internal server error. Possible `error_code` attribute values:
923
924           * `internal_server_error`
925         schema:
926           $ref: ../swagger.yaml#/definitions/error
927       "503":
928         description: Under maintenance
929         schema:
930           $ref: ../swagger.yaml#/definitions/error
931     x-koha-authorization:
932       permissions:
933         parameters: manage_identity_providers
934 "/auth/identity_providers/{identity_provider_id}/domains/{identity_provider_domain_id}":
935   get:
936     x-mojo-to: Auth::Identity::Provider::Domains#get
937     operationId: getIdentityProviderDomain
938     tags:
939       - identity_providers
940     summary: Get identity provider domain
941     parameters:
942       - $ref: ../swagger.yaml#/parameters/identity_provider_id_pp
943       - $ref: ../swagger.yaml#/parameters/identity_provider_domain_id_pp
944     produces:
945       - application/json
946     responses:
947       "200":
948         description: An identity provider
949         schema:
950           $ref: ../swagger.yaml#/definitions/identity_provider_domain
951       "404":
952         description: Object not found
953         schema:
954           $ref: ../swagger.yaml#/definitions/error
955       "500":
956         description: |
957           Internal server error. Possible `error_code` attribute values:
958
959           * `internal_server_error`
960         schema:
961           $ref: ../swagger.yaml#/definitions/error
962       "503":
963         description: Under maintenance
964         schema:
965           $ref: ../swagger.yaml#/definitions/error
966     x-koha-authorization:
967       permissions:
968         parameters: manage_identity_providers
969   put:
970     x-mojo-to: Auth::Identity::Provider::Domains#update
971     operationId: updateIdentityProviderDomain
972     tags:
973       - identity_providers
974     summary: Update an identity provider domain
975     parameters:
976       - $ref: ../swagger.yaml#/parameters/identity_provider_id_pp
977       - $ref: ../swagger.yaml#/parameters/identity_provider_domain_id_pp
978       - name: body
979         in: body
980         description: An identity provider domain object
981         required: true
982         schema:
983           $ref: ../swagger.yaml#/definitions/identity_provider_domain
984     produces:
985       - application/json
986     responses:
987       "200":
988         description: Updated identity provider domain
989         schema:
990           $ref: ../swagger.yaml#/definitions/identity_provider_domain
991       "400":
992         description: Bad Request
993         schema:
994           $ref: ../swagger.yaml#/definitions/error
995       "403":
996         description: Access forbidden
997         schema:
998           $ref: ../swagger.yaml#/definitions/error
999       "404":
1000         description: Object not found
1001         schema:
1002           $ref: ../swagger.yaml#/definitions/error
1003       "500":
1004         description: |
1005           Internal server error. Possible `error_code` attribute values:
1006
1007           * `internal_server_error`
1008         schema:
1009           $ref: ../swagger.yaml#/definitions/error
1010       "503":
1011         description: Under maintenance
1012         schema:
1013           $ref: ../swagger.yaml#/definitions/error
1014     x-koha-authorization:
1015       permissions:
1016         parameters: manage_identity_providers
1017   delete:
1018     x-mojo-to: Auth::Identity::Provider::Domains#delete
1019     operationId: delIdentityProviderDomain
1020     tags:
1021       - identity_providers
1022     summary: Delete identity provider
1023     parameters:
1024       - $ref: ../swagger.yaml#/parameters/identity_provider_id_pp
1025       - $ref: ../swagger.yaml#/parameters/identity_provider_domain_id_pp
1026     produces:
1027       - application/json
1028     responses:
1029       "204":
1030         description: identity provider deleted
1031       "401":
1032         description: Authentication required
1033         schema:
1034           $ref: ../swagger.yaml#/definitions/error
1035       "403":
1036         description: Access forbidden
1037         schema:
1038           $ref: ../swagger.yaml#/definitions/error
1039       "404":
1040         description: City not found
1041         schema:
1042           $ref: ../swagger.yaml#/definitions/error
1043       "500":
1044         description: |
1045           Internal server error. Possible `error_code` attribute values:
1046
1047           * `internal_server_error`
1048       "503":
1049         description: Under maintenance
1050         schema:
1051           $ref: ../swagger.yaml#/definitions/error
1052     x-koha-authorization:
1053       permissions:
1054         parameters: manage_identity_providers
1055 "/auth/password/validation":
1056   post:
1057     x-mojo-to: Auth::Password#validate
1058     operationId: validateUserAndPassword
1059     tags:
1060       - patrons
1061     summary: Check validity of username and password
1062     parameters:
1063       - name: body
1064         in: body
1065         description: |
1066           A JSON object containing a patron identifier and password information.
1067
1068           The identifier will be used to match patrons on the database using the
1069           following order:
1070
1071           * userid
1072           * cardnumber
1073
1074           Optionally, you can specify the `userid` attribute if you don't want it
1075           to be checked against the patron cardnumbers.
1076         schema:
1077           type: object
1078           properties:
1079             identifier:
1080               description: A patron identifier (`userid` or `cardnumber`)
1081               type: string
1082             password:
1083               description: Password (plain text)
1084               type: string
1085             userid:
1086               description: A patron userid
1087               type: string
1088           required:
1089             - password
1090           additionalProperties: false
1091     produces:
1092       - application/json
1093     responses:
1094       "201":
1095         description: Validation successful
1096         schema:
1097           type: object
1098           properties:
1099             cardnumber:
1100               type: string
1101               description: cardnumber for the validated patron
1102             patron_id:
1103               type: integer
1104               description: Internal patron identifier
1105             userid:
1106               type: string
1107               description: userid for the validated patron
1108           additionalProperties: false
1109       "400":
1110         description: Bad request
1111         schema:
1112           $ref: ../swagger.yaml#/definitions/error
1113       "401":
1114         description: Authentication required
1115         schema:
1116           $ref: ../swagger.yaml#/definitions/error
1117       "403":
1118         description: Access forbidden
1119         schema:
1120           $ref: ../swagger.yaml#/definitions/error
1121       "500":
1122         description: |
1123           Internal server error. Possible `error_code` attribute values:
1124
1125           * `internal_server_error`
1126         schema:
1127           $ref: ../swagger.yaml#/definitions/error
1128       "503":
1129         description: Under maintenance
1130         schema:
1131           $ref: ../swagger.yaml#/definitions/error
1132     x-koha-authorization:
1133       permissions:
1134         borrowers: "1"