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