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