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