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