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