Bug 33859: Use the phrase 'Identity providers' instead of 'Authentication providers'
[koha.git] / api / v1 / swagger / swagger.yaml
1 ---
2 swagger: "2.0"
3 basePath: /api/v1
4 definitions:
5   account_line:
6     $ref: ./definitions/account_line.yaml
7   advancededitormacro:
8     $ref: ./definitions/advancededitormacro.yaml
9   allows_renewal:
10     $ref: ./definitions/allows_renewal.yaml
11   authorised_value:
12     $ref: ./definitions/authorised_value.yaml
13   authorised_value_category:
14     $ref: ./definitions/authorised_value_category.yaml
15   identity_provider:
16     "$ref": ./definitions/identity_provider.yaml
17   identity_provider_domain:
18     "$ref": ./definitions/identity_provider_domain.yaml
19   basket:
20     $ref: ./definitions/basket.yaml
21   bundle_link:
22     $ref: ./definitions/bundle_link.yaml
23   cashup:
24     $ref: ./definitions/cashup.yaml
25   checkout:
26     $ref: ./definitions/checkout.yaml
27   checkouts:
28     $ref: ./definitions/checkouts.yaml
29   circ-rule-kind:
30     $ref: ./definitions/circ-rule-kind.yaml
31   city:
32     $ref: ./definitions/city.yaml
33   credit:
34     $ref: ./definitions/credit.yaml
35   debit:
36     $ref: ./definitions/debit.yaml
37   erm_agreement:
38     $ref: ./definitions/erm_agreement.yaml
39   erm_eholdings_title:
40     $ref: ./definitions/erm_eholdings_title.yaml
41   erm_eholdings_package:
42     $ref: ./definitions/erm_eholdings_package.yaml
43   erm_eholdings_resource:
44     $ref: ./definitions/erm_eholdings_resource.yaml
45   erm_license:
46     $ref: ./definitions/erm_license.yaml
47   error:
48     $ref: ./definitions/error.yaml
49   fund:
50     $ref: ./definitions/fund.yaml
51   hold:
52     $ref: ./definitions/hold.yaml
53   holds:
54     $ref: ./definitions/holds.yaml
55   ill_backend:
56     $ref: ./definitions/ill_backend.yaml
57   ill_backends:
58     $ref: ./definitions/ill_backends.yaml
59   ill_status:
60     $ref: ./definitions/ill_status.yaml
61   ill_request:
62     $ref: ./definitions/ill_request.yaml
63   import_batch_profile:
64     $ref: ./definitions/import_batch_profile.yaml
65   import_batch_profiles:
66     $ref: ./definitions/import_batch_profiles.yaml
67   import_record_match:
68     $ref: ./definitions/import_record_match.yaml
69   invoice:
70     $ref: ./definitions/invoice.yaml
71   item:
72     $ref: ./definitions/item.yaml
73   item_group:
74     $ref: ./definitions/item_group.yaml
75   job:
76     $ref: ./definitions/job.yaml
77   library:
78     $ref: ./definitions/library.yaml
79   order:
80     $ref: ./definitions/order.yaml
81   patron:
82     $ref: ./definitions/patron.yaml
83   patron_account_credit:
84     $ref: ./definitions/patron_account_credit.yaml
85   patron_balance:
86     $ref: ./definitions/patron_balance.yaml
87   patron_extended_attribute:
88     $ref: ./definitions/patron_extended_attribute.yaml
89   quote:
90     $ref: ./definitions/quote.yaml
91   renewal:
92     $ref: ./definitions/renewal.yaml
93   renewals:
94     $ref: ./definitions/renewals.yaml
95   return_claim:
96     $ref: ./definitions/return_claim.yaml
97   search_filter:
98     $ref: ./definitions/search_filter.yaml
99   smtp_server:
100     $ref: ./definitions/smtp_server.yaml
101   suggestion:
102     $ref: ./definitions/suggestion.yaml
103   ticket:
104     $ref: ./definitions/ticket.yaml
105   ticket_update:
106     $ref: ./definitions/ticket_update.yaml
107   transfer_limit:
108     $ref: ./definitions/transfer_limit.yaml
109   vendor:
110     $ref: ./definitions/vendor.yaml
111 paths:
112   /acquisitions/baskets/managers:
113     $ref: paths/acquisitions_baskets.yaml#/~1acquisitions~1baskets~1managers
114   /acquisitions/funds:
115     $ref: ./paths/acquisitions_funds.yaml#/~1acquisitions~1funds
116   /acquisitions/funds/owners:
117     $ref: paths/acquisitions_funds.yaml#/~1acquisitions~1funds~1owners
118   /acquisitions/funds/users:
119     $ref: paths/acquisitions_funds.yaml#/~1acquisitions~1funds~1users
120   /acquisitions/orders:
121     $ref: ./paths/acquisitions_orders.yaml#/~1acquisitions~1orders
122   "/acquisitions/orders/{order_id}":
123     $ref: "./paths/acquisitions_orders.yaml#/~1acquisitions~1orders~1{order_id}"
124   /acquisitions/vendors:
125     $ref: ./paths/acquisitions_vendors.yaml#/~1acquisitions~1vendors
126   "/acquisitions/vendors/{vendor_id}":
127     $ref: "./paths/acquisitions_vendors.yaml#/~1acquisitions~1vendors~1{vendor_id}"
128   /advanced_editor/macros:
129     $ref: ./paths/advancededitormacros.yaml#/~1advanced_editor~1macros
130   /advanced_editor/macros/shared:
131     $ref: ./paths/advancededitormacros.yaml#/~1advanced_editor~1macros~1shared
132   /search_filters:
133     $ref: ./paths/search_filters.yaml#/~1search_filters
134   "/search_filters/{search_filter_id}":
135     $ref: "./paths/search_filters.yaml#/~1search_filters~1{search_filter_id}"
136   "/advanced_editor/macros/shared/{advancededitormacro_id}":
137     $ref: "./paths/advancededitormacros.yaml#/~1advanced_editor~1macros~1shared~1{advancededitormacro_id}"
138   "/advanced_editor/macros/{advancededitormacro_id}":
139     $ref: "./paths/advancededitormacros.yaml#/~1advanced_editor~1macros~1{advancededitormacro_id}"
140   "/article_requests/{article_request_id}":
141     $ref: "./paths/article_requests.yaml#/~1article_requests~1{article_request_id}"
142   /auth/otp/token_delivery:
143     $ref: paths/auth.yaml#/~1auth~1otp~1token_delivery
144   "/auth/password/validation":
145     $ref: "./paths/auth.yaml#/~1auth~1password~1validation"
146   /auth/two-factor/registration:
147     $ref: paths/auth.yaml#/~1auth~1two-factor~1registration
148   /auth/two-factor/registration/verification:
149     $ref: paths/auth.yaml#/~1auth~1two-factor~1registration~1verification
150   /auth/identity_providers:
151     $ref: paths/auth.yaml#/~1auth~1identity_providers
152   "/auth/identity_providers/{identity_provider_id}":
153     $ref: paths/auth.yaml#/~1auth~1identity_providers~1{identity_provider_id}
154   "/auth/identity_providers/{identity_provider_id}/domains":
155     $ref: paths/auth.yaml#/~1auth~1identity_providers~1{identity_provider_id}~1domains
156   "/auth/identity_providers/{identity_provider_id}/domains/{identity_provider_domain_id}":
157     $ref: paths/auth.yaml#/~1auth~1identity_providers~1{identity_provider_id}~1domains~1{identity_provider_domain_id}
158   /authorised_value_categories:
159     $ref: paths/authorised_value_categories.yaml#/~1authorised_value_categories
160   "/authorised_value_categories/{authorised_value_category_name}/authorised_values":
161     $ref: "./paths/authorised_values.yaml#/~1authorised_value_categories~1{authorised_value_category_name}~1authorised_values"
162   "/authorities":
163     $ref: paths/authorities.yaml#/~1authorities
164   "/authorities/{authority_id}":
165     $ref: paths/authorities.yaml#/~1authorities~1{authority_id}
166   "/biblios":
167     $ref: "./paths/biblios.yaml#/~1biblios"
168   "/biblios/{biblio_id}":
169     $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}"
170   "/biblios/{biblio_id}/checkouts":
171     $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}~1checkouts"
172   "/biblios/{biblio_id}/items":
173     $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}~1items"
174   "/biblios/{biblio_id}/items/{item_id}":
175     $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}~1items~1{item_id}"
176   "/biblios/{biblio_id}/pickup_locations":
177     $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}~1pickup_locations"
178   "/biblios/{biblio_id}/item_groups":
179     $ref: "./paths/biblios_item_groups.yaml#/~1biblios~1{biblio_id}~1item_groups"
180   "/biblios/{biblio_id}/item_groups/{item_group_id}":
181     $ref: "./paths/biblios_item_groups.yaml#/~1biblios~1{biblio_id}~1item_groups~1{item_group_id}"
182   "/biblios/{biblio_id}/item_groups/{item_group_id}/items":
183     $ref: "./paths/biblios_item_groups.yaml#/~1biblios~1{biblio_id}~1item_groups~1{item_group_id}~1items"
184   "/biblios/{biblio_id}/item_groups/{item_group_id}/items/{item_id}":
185     $ref: "./paths/biblios_item_groups.yaml#/~1biblios~1{biblio_id}~1item_groups~1{item_group_id}~1items~1{item_id}"
186   "/cash_registers/{cash_register_id}/cashups":
187     $ref: "./paths/cash_registers.yaml#/~1cash_registers~1{cash_register_id}~1cashups"
188   "/cashups/{cashup_id}":
189     $ref: "./paths/cash_registers.yaml#/~1cashups~1{cashup_id}"
190   /checkouts:
191     $ref: ./paths/checkouts.yaml#/~1checkouts
192   "/checkouts/{checkout_id}":
193     $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}"
194   "/checkouts/{checkout_id}/allows_renewal":
195     $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1allows_renewal"
196   "/checkouts/{checkout_id}/renewals":
197     $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1renewals"
198   "/checkouts/{checkout_id}/renewal":
199     $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1renewal"
200   /circulation-rules/kinds:
201     $ref: ./paths/circulation-rules.yaml#/~1circulation-rules~1kinds
202   /cities:
203     $ref: ./paths/cities.yaml#/~1cities
204   "/cities/{city_id}":
205     $ref: "./paths/cities.yaml#/~1cities~1{city_id}"
206   "/clubs/{club_id}/holds":
207     $ref: "./paths/clubs.yaml#/~1clubs~1{club_id}~1holds"
208   /config/smtp_servers:
209     $ref: ./paths/config_smtp_servers.yaml#/~1config~1smtp_servers
210   "/config/smtp_servers/{smtp_server_id}":
211     $ref: "./paths/config_smtp_servers.yaml#/~1config~1smtp_servers~1{smtp_server_id}"
212   /erm/agreements:
213     $ref: ./paths/erm_agreements.yaml#/~1erm~1agreements
214   "/erm/agreements/{agreement_id}":
215     $ref: "./paths/erm_agreements.yaml#/~1erm~1agreements~1{agreement_id}"
216   "/erm/documents/{document_id}/file/content":
217     $ref: "./paths/erm_documents.yaml#/~1erm~1documents~1{document_id}~1file~1content"
218   "/erm/eholdings/{provider}/titles":
219     $ref: "./paths/erm_eholdings_titles.yaml#/~1erm~1eholdings~1{provider}~1titles"
220   /erm/eholdings/local/titles/import:
221     $ref: ./paths/erm_eholdings_titles.yaml#/~1erm~1eholdings~1local~1titles~1import
222   "/erm/eholdings/{provider}/titles/{title_id}":
223     $ref: "./paths/erm_eholdings_titles.yaml#/~1erm~1eholdings~1{provider}~1titles~1{title_id}"
224   "/erm/eholdings/{provider}/titles/{title_id}/resources":
225     $ref: "./paths/erm_eholdings_titles_resources.yaml#/~1erm~1eholdings~1{provider}~1titles~1{title_id}~1resources"
226   "/erm/eholdings/{provider}/packages":
227     $ref: "./paths/erm_eholdings_packages.yaml#/~1erm~1eholdings~1{provider}~1packages"
228   "/erm/eholdings/{provider}/resources":
229     $ref: "./paths/erm_eholdings_resources.yaml#/~1erm~1eholdings~1{provider}~1resources"
230   "/erm/eholdings/{provider}/resources/{resource_id}":
231     $ref: "./paths/erm_eholdings_resources.yaml#/~1erm~1eholdings~1{provider}~1resources~1{resource_id}"
232   "/erm/eholdings/{provider}/packages/{package_id}":
233     $ref: "./paths/erm_eholdings_packages.yaml#/~1erm~1eholdings~1{provider}~1packages~1{package_id}"
234   "/erm/eholdings/{provider}/packages/{package_id}/resources":
235     $ref: "./paths/erm_eholdings_packages_resources.yaml#/~1erm~1eholdings~1{provider}~1packages~1{package_id}~1resources"
236   /erm/licenses:
237     $ref: ./paths/erm_licenses.yaml#/~1erm~1licenses
238   "/erm/licenses/{license_id}":
239     $ref: "./paths/erm_licenses.yaml#/~1erm~1licenses~1{license_id}"
240   /erm/users:
241     $ref: ./paths/erm_users.yaml#/~1erm~1users
242   /holds:
243     $ref: ./paths/holds.yaml#/~1holds
244   "/holds/{hold_id}":
245     $ref: "./paths/holds.yaml#/~1holds~1{hold_id}"
246   "/holds/{hold_id}/pickup_location":
247     $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1pickup_location"
248   "/holds/{hold_id}/pickup_locations":
249     $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1pickup_locations"
250   "/holds/{hold_id}/priority":
251     $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1priority"
252   "/holds/{hold_id}/suspension":
253     $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1suspension"
254   /ill/backends:
255     $ref: ./paths/ill_backends.yaml#/~1ill~1backends
256   "/ill/backends/{ill_backend_id}":
257     $ref: "./paths/ill_backends.yaml#/~1ill~1backends~1{ill_backend_id}"
258   /ill/requests:
259     $ref: ./paths/ill_requests.yaml#/~1ill~1requests
260   "/import_batches/{import_batch_id}/records/{import_record_id}/matches/chosen":
261     $ref: "./paths/import_batches.yaml#/~1import_batches~1{import_batch_id}~1records~1{import_record_id}~1matches~1chosen"
262   /import_batch_profiles:
263     $ref: ./paths/import_batch_profiles.yaml#/~1import_batch_profiles
264   "/import_batch_profiles/{import_batch_profile_id}":
265     $ref: "./paths/import_batch_profiles.yaml#/~1import_batch_profiles~1{import_batch_profile_id}"
266   /items:
267     $ref: ./paths/items.yaml#/~1items
268   "/items/{item_id}":
269     $ref: "./paths/items.yaml#/~1items~1{item_id}"
270   "/items/{item_id}/bundled_items":
271     $ref: ./paths/items.yaml#/~1items~1{item_id}~1bundled_items
272   "/items/{item_id}/bundled_items/{bundled_item_id}":
273     $ref: ./paths/items.yaml#/~1items~1{item_id}~1bundled_items~1{bundled_item_id}
274   "/items/{item_id}/pickup_locations":
275     $ref: "./paths/items.yaml#/~1items~1{item_id}~1pickup_locations"
276   /jobs:
277     $ref: ./paths/jobs.yaml#/~1jobs
278   "/jobs/{job_id}":
279     $ref: "./paths/jobs.yaml#/~1jobs~1{job_id}"
280   /libraries:
281     $ref: ./paths/libraries.yaml#/~1libraries
282   "/libraries/{library_id}":
283     $ref: "./paths/libraries.yaml#/~1libraries~1{library_id}"
284   "/oauth/login/{provider_code}/{interface}":
285     $ref: ./paths/oauth.yaml#/~1oauth~1login~1{provider_code}~1{interface}
286   /oauth/token:
287     $ref: ./paths/oauth.yaml#/~1oauth~1token
288   /patrons:
289     $ref: ./paths/patrons.yaml#/~1patrons
290   "/patrons/{patron_id}":
291     $ref: "./paths/patrons.yaml#/~1patrons~1{patron_id}"
292   "/patrons/{patron_id}/account":
293     $ref: "./paths/patrons_account.yaml#/~1patrons~1{patron_id}~1account"
294   "/patrons/{patron_id}/account/credits":
295     $ref: "./paths/patrons_account.yaml#/~1patrons~1{patron_id}~1account~1credits"
296   "/patrons/{patron_id}/account/debits":
297     $ref: "./paths/patrons_account.yaml#/~1patrons~1{patron_id}~1account~1debits"
298   "/patrons/{patron_id}/extended_attributes":
299     $ref: "./paths/patrons_extended_attributes.yaml#/~1patrons~1{patron_id}~1extended_attributes"
300   "/patrons/{patron_id}/extended_attributes/{extended_attribute_id}":
301     $ref: "./paths/patrons_extended_attributes.yaml#/~1patrons~1{patron_id}~1extended_attributes~1{extended_attribute_id}"
302   "/patrons/{patron_id}/holds":
303     $ref: "./paths/patrons_holds.yaml#/~1patrons~1{patron_id}~1holds"
304   "/patrons/{patron_id}/password":
305     $ref: "./paths/patrons_password.yaml#/~1patrons~1{patron_id}~1password"
306   "/patrons/{patron_id}/password/expiration_date":
307     $ref: "./paths/patrons_password.yaml#/~1patrons~1{patron_id}~1password~1expiration_date"
308   "/public/biblios/{biblio_id}":
309     $ref: "./paths/biblios.yaml#/~1public~1biblios~1{biblio_id}"
310   "/public/items":
311     $ref: "./paths/items.yaml#/~1public~1items"
312   "/public/biblios/{biblio_id}/items":
313     $ref: "./paths/biblios.yaml#/~1public~1biblios~1{biblio_id}~1items"
314   "/public/biblios/{biblio_id}/ratings":
315     $ref: "./paths/biblios.yaml#/~1public~1biblios~1{biblio_id}~1ratings"
316   /public/libraries:
317     $ref: ./paths/libraries.yaml#/~1public~1libraries
318   "/public/libraries/{library_id}":
319     $ref: "./paths/libraries.yaml#/~1public~1libraries~1{library_id}"
320   "/public/oauth/login/{provider_code}/{interface}":
321     $ref: ./paths/public_oauth.yaml#/~1public~1oauth~1login~1{provider_code}~1{interface}
322   "/public/patrons/{patron_id}/article_requests/{article_request_id}":
323     $ref: "./paths/article_requests.yaml#/~1public~1patrons~1{patron_id}~1article_requests~1{article_request_id}"
324   "/public/patrons/{patron_id}/guarantors/can_see_charges":
325     $ref: "./paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1guarantors~1can_see_charges"
326   "/public/patrons/{patron_id}/guarantors/can_see_checkouts":
327     $ref: "./paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1guarantors~1can_see_checkouts"
328   "/public/patrons/{patron_id}/password":
329     $ref: "./paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1password"
330   "/public/tickets":
331     $ref: "./paths/tickets.yaml#/~1public~1tickets"
332   /quotes:
333     $ref: ./paths/quotes.yaml#/~1quotes
334   "/quotes/{quote_id}":
335     $ref: "./paths/quotes.yaml#/~1quotes~1{quote_id}"
336   /return_claims:
337     $ref: ./paths/return_claims.yaml#/~1return_claims
338   "/return_claims/{claim_id}":
339     $ref: "./paths/return_claims.yaml#/~1return_claims~1{claim_id}"
340   "/return_claims/{claim_id}/notes":
341     $ref: "./paths/return_claims.yaml#/~1return_claims~1{claim_id}~1notes"
342   "/return_claims/{claim_id}/resolve":
343     $ref: "./paths/return_claims.yaml#/~1return_claims~1{claim_id}~1resolve"
344   "/rotas/{rota_id}/stages/{stage_id}/position":
345     $ref: "./paths/rotas.yaml#/~1rotas~1{rota_id}~1stages~1{stage_id}~1position"
346   /suggestions:
347     $ref: ./paths/suggestions.yaml#/~1suggestions
348   "/suggestions/{suggestion_id}":
349     $ref: "./paths/suggestions.yaml#/~1suggestions~1{suggestion_id}"
350   /suggestions/managers:
351     $ref: paths/suggestions.yaml#/~1suggestions~1managers
352   "/tickets":
353     $ref: "./paths/tickets.yaml#/~1tickets"
354   "/tickets/{ticket_id}":
355     $ref: "./paths/tickets.yaml#/~1tickets~1{ticket_id}"
356   "/tickets/{ticket_id}/updates":
357     $ref: "./paths/tickets.yaml#/~1tickets~1{ticket_id}~1updates"
358   /transfer_limits:
359     $ref: ./paths/transfer_limits.yaml#/~1transfer_limits
360   /transfer_limits/batch:
361     $ref: ./paths/transfer_limits.yaml#/~1transfer_limits~1batch
362   "/transfer_limits/{limit_id}":
363     $ref: "./paths/transfer_limits.yaml#/~1transfer_limits~1{limit_id}"
364 parameters:
365   advancededitormacro_id_pp:
366     description: Advanced editor macro internal identifier
367     in: path
368     name: advancededitormacro_id
369     required: true
370     type: integer
371   agreement_id_pp:
372     description: Agreement internal identifier
373     in: path
374     name: agreement_id
375     required: true
376     type: integer
377   agreement_period_id_pp:
378     description: Agreement period internal identifier
379     in: path
380     name: agreement_period_id
381     required: true
382     type: integer
383   authorised_value_id_pp:
384     description: Authorised value internal identifier
385     in: path
386     name: authorised_value_id
387     required: true
388     type: integer
389   authority_id_pp:
390     description: Authority identifier
391     in: path
392     name: authority_id
393     required: true
394     type: integer
395   authority_type_header:
396     description: Authority type code. Use when content type is not application/json
397     name: x-authority-type
398     in: header
399     required: false
400     type: string
401   framework_id_header:
402     description: Framework id. Use when content type is not application/json
403     name: x-framework-id
404     in: header
405     required: false
406     type: string
407   marc_schema_header:
408     description: March schema. One of MARC21 or UNIMARC
409     name: x-record-schema
410     in: header
411     required: false
412     type: string
413     enum:
414       - MARC21
415       - UNIMARC
416   confirm_not_duplicate_header:
417     description: Confirm the posted element is not a duplicate
418     name: x-confirm-not-duplicate
419     in: header
420     required: false
421     type: integer
422   identity_provider_id_pp:
423     description: Identity provider internal identifier
424     in: path
425     name: identity_provider_id
426     required: true
427     type: integer
428   identity_provider_domain_id_pp:
429     description: Identity provider domain internal identifier
430     in: path
431     name: identity_provider_domain_id
432     required: true
433     type: integer
434   biblio_id_pp:
435     description: Record internal identifier
436     in: path
437     name: biblio_id
438     required: true
439     type: integer
440   candidate_match_id_pp:
441     description: Internal import record match identifier
442     in: path
443     name: candidate_match_id
444     required: true
445     type: integer
446   cash_register_id_pp:
447     description: Cash register internal identifier
448     in: path
449     name: cash_register_id
450     required: true
451     type: integer
452   cashup_id_pp:
453     description: Cashup internal identifier
454     in: path
455     name: cashup_id
456     required: true
457     type: integer
458   checkout_id_pp:
459     description: Internal checkout identifier
460     in: path
461     name: checkout_id
462     required: true
463     type: integer
464   city_id_pp:
465     description: City internal identifier
466     in: path
467     name: city_id
468     required: true
469     type: integer
470   club_id_pp:
471     description: Internal club identifier
472     in: path
473     name: club_id
474     required: true
475     type: integer
476   eholdings_title_id_pp:
477     description: Title internal identifier
478     in: path
479     name: title_id
480     required: true
481     type: integer
482   eholdings_package_id_pp:
483     description: Package internal identifier
484     in: path
485     name: package_id
486     required: true
487     type: string
488   eholdings_resource_id_pp:
489     description: Resource internal identifier
490     in: path
491     name: resource_id
492     required: true
493     type: string
494   fund_id_pp:
495     description: Fund id
496     in: path
497     name: fund_id
498     required: true
499     type: integer
500   hold_id_pp:
501     description: Internal hold identifier
502     in: path
503     name: hold_id
504     required: true
505     type: integer
506   import_batch_profile_id_pp:
507     description: Internal profile identifier
508     in: path
509     name: import_batch_profile_id
510     required: true
511     type: integer
512   import_record_id_pp:
513     description: Internal import record identifier
514     in: path
515     name: import_record_id
516     required: true
517     type: integer
518   item_id_pp:
519     description: Internal item identifier
520     in: path
521     name: item_id
522     required: true
523     type: integer
524   job_id_pp:
525     description: Job internal identifier
526     in: path
527     name: job_id
528     required: true
529     type: integer
530   library_id_pp:
531     description: Internal library identifier
532     in: path
533     name: library_id
534     required: true
535     type: string
536   license_id_pp:
537     description: License internal identifier
538     in: path
539     name: license_id
540     required: true
541     type: integer
542   match:
543     description: Matching criteria
544     enum:
545       - contains
546       - exact
547       - starts_with
548       - ends_with
549     in: query
550     name: _match
551     required: false
552     type: string
553   order_by:
554     collectionFormat: csv
555     description: Sorting criteria
556     in: query
557     items:
558       type: string
559     name: _order_by
560     required: false
561     type: array
562   order_id_pp:
563     description: Internal order identifier
564     in: path
565     name: order_id
566     required: true
567     type: integer
568   page:
569     description: "Page number, for paginated object listing"
570     in: query
571     name: _page
572     required: false
573     type: integer
574   patron_id_pp:
575     description: Internal patron identifier
576     in: path
577     name: patron_id
578     required: true
579     type: integer
580   patron_id_qp:
581     description: Internal patron identifier
582     in: query
583     name: patron_id
584     type: integer
585   per_page:
586     description: "Page size, for paginated object listing"
587     in: query
588     name: _per_page
589     required: false
590     type: integer
591   q_body:
592     description: Query filter sent through request"s body
593     in: body
594     name: query
595     required: false
596     schema:
597       type: object
598   q_header:
599     description: Query filter sent as a request header
600     in: header
601     name: x-koha-query
602     required: false
603     type: string
604   q_param:
605     description: Query filter sent as a request parameter
606     in: query
607     name: q
608     required: false
609     type: array
610     items:
611       type: string
612     collectionFormat: multi
613   quote_id_pp:
614     description: Quote internal identifier
615     in: path
616     name: quote_id
617     required: true
618     type: integer
619   request_id_header:
620     description: Request id header
621     in: header
622     name: x-koha-request-id
623     required: false
624     type: integer
625   search_filter_id_pp:
626     name: search_filter_id
627     in: path
628     description: Search filter internal identifier
629     required: true
630     type: integer
631   seen_pp:
632     description: Item was seen flag
633     in: query
634     name: seen
635     required: false
636     type: integer
637   smtp_server_id_pp:
638     description: SMTP server internal identifier
639     in: path
640     name: smtp_server_id
641     required: true
642     type: integer
643   suggestion_id_pp:
644     description: Internal suggestion identifier
645     in: path
646     name: suggestion_id
647     required: true
648     type: integer
649   ticket_id_pp:
650     description: Internal ticket identifier
651     in: path
652     name: ticket_id
653     required: true
654     type: integer
655   transfer_limit_id_pp:
656     description: Internal transfer limit identifier
657     in: path
658     name: limit_id
659     required: true
660     type: string
661   vendor_id_pp:
662     description: Vendor id
663     in: path
664     name: vendor_id
665     required: true
666     type: integer
667 info:
668   title: Koha REST API
669   version: "1"
670   license:
671     name: "GPL v3,"
672     url: http://www.gnu.org/licenses/gpl.txt
673   contact:
674     name: Koha Development Team
675     url: https://koha-community.org/
676   description: |
677     ## Introduction
678
679     This API is documented in **OpenAPI format**.
680
681     ## Authentication
682
683     The API supports the following authentication mechanisms
684
685     * HTTP Basic authentication
686     * OAuth2 (client credentials grant)
687     * Cookie-based
688
689     Both _Basic authentication_ and the _OAuth2_ flow, need to be enabled
690     by system preferences.
691
692     ## Errors
693
694     The API uses standard HTTP status codes to indicate the success or failure
695     of the API call. The body of the response will be JSON in the following format:
696
697     ```
698     {
699       "error": "Current settings prevent the passed due date to be applied",
700       "error_code": "invalid_due_date"
701     }
702     ```
703
704     Note: Some routes might offer additional attributes in their error responses but that"s
705     subject to change and thus not documented.
706
707     ## Filtering responses
708
709     The API allows for some advanced response filtering using a JSON based query syntax. The
710     query can be added to the requests:
711
712     * as a query parameter `q=`
713     * in the request body
714     * in a special header `x-koha-query`
715
716     For simple field equality matches we can use `{ "fieldname": "value" }` where the fieldname
717     matches one of the fields as described in the particular endpoints response object.
718
719     We can refine that with more complex matching clauses by nesting a the clause into the
720     object; `{ "fieldname": { "clause": "value" } }`.
721
722     Available matching clauses include ">", "<", ">=", "<=", "-like", and "-not_like".
723
724     We can filter on multiple fields by adding them to the JSON respresentation. Adding at `HASH`
725     level will result in an "AND" query, whilst combinding them in an `ARRAY` wilth result in an
726     "OR" query: `{ "field1": "value2", "field2": "value2" }` will filter the response to only those
727     results with both field1 containing value2 AND field2 containing value2 for example.
728
729     Additionally, if you are requesting related data be embedded into the response one can query
730     on the related data using dot notation in the field names.
731
732     ### Examples
733
734     The following request would return any patron with firstname "Henry" and lastname "Acevedo";
735
736     `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw "{ "surname": "Acevedo", "firstname": "Henry" }"`
737
738     The following request would return any patron whose lastname begins with "Ace";
739
740     `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw "{ "surname": { "-like": "Ace%" }"`
741
742     The following request would return any patron whose lastname is "Acevedo" OR "Bernardo"
743
744     `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw "{ "surname": [ "Acevedo", "Bernardo" ] }"`
745
746     The following request embeds the related patron extended attributes data and filters on it.
747
748     `curl -u koha:koha =--request GET 'http://127.0.0.1:8081/api/v1/patrons/' --header 'x-koha-embed: extended_attributes' --data-raw '{ "extended_attributes.code": "internet", "extended_attributes.attribute": "1" }'`
749
750     ## Special headers
751
752     ### x-koha-embed
753
754     This optional header allows the api consumer to request additional related data
755     to be returned in the api response.  It also allows for cross referencing in the
756     queries as described above. It accepts a comma delimited list of relation names.
757
758     Relations may on occasion also support dot delimited nesting to allow traversal.
759
760     ### x-koha-library
761
762     This optional header should be passed to give your api request a library
763     context; If it is not included in the request, then the request context
764     will default to using your api comsumer"s assigned home library.
765 tags:
766   - description: "Handle two factor authentication flows\n"
767     name: 2fa
768     x-displayName: Two factor authentication
769   - description: "Manage article requests\n"
770     name: article_requests
771     x-displayName: Article requests
772   - description: "Manage identity providers\n"
773     name: identity_providers
774     x-displayName: Identity providers
775   - description: "Manage baskets for the acquisitions module\n"
776     name: baskets
777     x-displayName: Baskets
778   - description: "Manage Authority records\n"
779     name: authorities
780     x-displayName: Authorities
781   - description: "Manage bibliographic records\n"
782     name: biblios
783     x-displayName: Biblios
784   - description: "Manage cash register cashups\n"
785     name: cashups
786     x-displayName: Cashups
787   - description: "Manage checkouts\n"
788     name: checkouts
789     x-displayName: Checkouts
790   - description: "Manage circulation rules\n"
791     name: circulation_rules
792     x-displayName: Circulation rules
793   - description: "Manage cities\n"
794     name: cities
795     x-displayName: Cities
796   - description: "Manage patron clubs\n"
797     name: clubs
798     x-displayName: Clubs
799   - description: "Manage funds for the acquisitions module\n"
800     name: funds
801     x-displayName: Funds
802   - description: "Manage holds\n"
803     name: holds
804     x-displayName: Holds
805   - description: "Manage ILL module backends\n"
806     name: ill_backends
807     x-displayName: ILL backends
808   - description: "Manage ILL requests\n"
809     name: ill_requests
810     x-displayName: ILL requests
811   - description: "Manage import batches\n"
812     name: import_batches
813     x-display-name: Import batches
814   - description: "Manage item groups\n"
815     name: item_groups
816     x-displayName: Item groups
817   - description: "Manage items\n"
818     name: items
819     x-displayName: Items
820   - description: "Manage jobs\n"
821     name: jobs
822     x-displayName: Jobs
823   - description: "Manage libraries\n"
824     name: libraries
825     x-displayName: Libraries
826   - description: "Manage macros\n"
827     name: macros
828     x-displayName: Macros
829   - description: "Manage acquisition orders\n"
830     name: orders
831     x-displayName: Orders
832   - description: "Handle OAuth flows\n"
833     name: oauth
834     x-displayName: OAuth
835   - description: "Manage patrons\n"
836     name: patrons
837     x-displayName: Patrons
838   - description: "Manage quotes\n"
839     name: quotes
840     x-displayName: Quotes
841   - description: "Manage return claims\n"
842     name: return_claims
843     x-displayName: Return claims
844   - description: "Manage rotas\n"
845     name: rotas
846     x-displayName: Rotas
847   - description: "Manage SMTP servers configurations\n"
848     name: smtp_servers
849     x-displayName: SMTP servers
850   - description: "Manage transfer limits\n"
851     name: transfer
852     x-displayName: Transfer limits
853   - description: "Manage purchase suggestions\n"
854     name: suggestions
855     x-displayName: Purchase suggestions
856   - description: "Manage vendors for the acquisitions module\n"
857     name: vendors
858     x-displayName: Vendors
859   - description: "Manage batch import profiles\n"
860     name: batch_import_profiles
861     x-displayName: Batch import profiles