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