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