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