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