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