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