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