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