Bugzilla – Attachment 166173 Details for
Bug 28924
Allow checkout fine limit to be determined by patron category
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 28924: Add new columns to UI and controller
Bug-28924-Add-new-columns-to-UI-and-controller.patch (text/plain), 940.48 KB, created by
David Nind
on 2024-05-06 00:30:05 UTC
(
hide
)
Description:
Bug 28924: Add new columns to UI and controller
Filename:
MIME Type:
Creator:
David Nind
Created:
2024-05-06 00:30:05 UTC
Size:
940.48 KB
patch
obsolete
>From 7026a2dfb965b3c29cd3ced95a06bb73d14172ed Mon Sep 17 00:00:00 2001 >From: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com> >Date: Mon, 22 Jan 2024 12:14:42 +0000 >Subject: [PATCH] Bug 28924: Add new columns to UI and controller > >This patch adds the columns in the table and also updates the controller to allow these fields to be updated in the database from the UI form > >Signed-off-by: David Nind <david@davidnind.com> >--- > admin/categories.pl | 101 +- > api/v1/swagger/swagger_bundle.json | 33562 ++++++++++++++++ > .../prog/en/modules/admin/categories.tt | 30 + > 3 files changed, 33648 insertions(+), 45 deletions(-) > create mode 100644 api/v1/swagger/swagger_bundle.json > >diff --git a/admin/categories.pl b/admin/categories.pl >index b928b0649c..dcb5b3d2a4 100755 >--- a/admin/categories.pl >+++ b/admin/categories.pl >@@ -57,28 +57,31 @@ if ( $op eq 'add_form' ) { > } > } > elsif ( $op eq 'cud-add_validate' ) { >+ my $categorycode = $input->param('categorycode'); >+ my $description = $input->param('description'); >+ my $enrolmentperiod = $input->param('enrolmentperiod'); >+ my $enrolmentperioddate = $input->param('enrolmentperioddate') || undef; >+ my $password_expiry_days = $input->param('password_expiry_days') || undef; >+ my $upperagelimit = $input->param('upperagelimit'); >+ my $dateofbirthrequired = $input->param('dateofbirthrequired'); >+ my $enrolmentfee = $input->param('enrolmentfee'); >+ my $reservefee = $input->param('reservefee'); >+ my $hidelostitems = $input->param('hidelostitems'); >+ my $overduenoticerequired = $input->param('overduenoticerequired'); >+ my $category_type = $input->param('category_type'); >+ my $BlockExpiredPatronOpacActions = $input->param('BlockExpiredPatronOpacActions'); >+ my $checkPrevCheckout = $input->param('checkprevcheckout'); >+ my $can_place_ill_in_opac = $input->param('can_place_ill_in_opac') // 1; >+ my $default_privacy = $input->param('default_privacy'); >+ my $reset_password = $input->param('reset_password'); >+ my $change_password = $input->param('cud-change_password'); >+ my $exclude_from_local_holds_priority = $input->param('exclude_from_local_holds_priority'); >+ my $min_password_length = $input->param('min_password_length'); >+ my $require_strong_password = $input->param('require_strong_password'); >+ my $noissuescharge = $input->param('noissuescharge') || undef; >+ my $noissueschargeguarantees = $input->param('noissueschargeguarantees') || undef; >+ my $noissueschargeguarantorswithguarantees = $input->param('noissueschargeguarantorswithguarantees') || undef; > >- my $categorycode = $input->param('categorycode'); >- my $description = $input->param('description'); >- my $enrolmentperiod = $input->param('enrolmentperiod'); >- my $enrolmentperioddate = $input->param('enrolmentperioddate') || undef; >- my $password_expiry_days = $input->param('password_expiry_days') || undef; >- my $upperagelimit = $input->param('upperagelimit'); >- my $dateofbirthrequired = $input->param('dateofbirthrequired'); >- my $enrolmentfee = $input->param('enrolmentfee'); >- my $reservefee = $input->param('reservefee'); >- my $hidelostitems = $input->param('hidelostitems'); >- my $overduenoticerequired = $input->param('overduenoticerequired'); >- my $category_type = $input->param('category_type'); >- my $BlockExpiredPatronOpacActions = $input->param('BlockExpiredPatronOpacActions'); >- my $checkPrevCheckout = $input->param('checkprevcheckout'); >- my $can_place_ill_in_opac = $input->param('can_place_ill_in_opac') // 1; >- my $default_privacy = $input->param('default_privacy'); >- my $reset_password = $input->param('reset_password'); >- my $change_password = $input->param('cud-change_password'); >- my $exclude_from_local_holds_priority = $input->param('exclude_from_local_holds_priority'); >- my $min_password_length = $input->param('min_password_length'); >- my $require_strong_password = $input->param('require_strong_password'); > my @branches = grep { $_ ne q{} } $input->multi_param('branches'); > my $can_be_guarantee = $input->param('can_be_guarantee'); > >@@ -113,6 +116,9 @@ elsif ( $op eq 'cud-add_validate' ) { > $category->exclude_from_local_holds_priority($exclude_from_local_holds_priority); > $category->min_password_length($min_password_length); > $category->require_strong_password($require_strong_password); >+ $category->noissuescharge($noissuescharge); >+ $category->noissueschargeguarantees($noissueschargeguarantees); >+ $category->noissueschargeguarantorswithguarantees($noissueschargeguarantorswithguarantees); > eval { > $category->store; > $category->replace_library_limits( \@branches ); >@@ -124,30 +130,35 @@ elsif ( $op eq 'cud-add_validate' ) { > } > } > else { >- my $category = Koha::Patron::Category->new({ >- categorycode => $categorycode, >- description => $description, >- enrolmentperiod => $enrolmentperiod, >- enrolmentperioddate => $enrolmentperioddate, >- password_expiry_days => $password_expiry_days, >- upperagelimit => $upperagelimit, >- dateofbirthrequired => $dateofbirthrequired, >- enrolmentfee => $enrolmentfee, >- reservefee => $reservefee, >- hidelostitems => $hidelostitems, >- overduenoticerequired => $overduenoticerequired, >- category_type => $category_type, >- can_be_guarantee => $can_be_guarantee, >- BlockExpiredPatronOpacActions => $BlockExpiredPatronOpacActions, >- checkprevcheckout => $checkPrevCheckout, >- can_place_ill_in_opac => $can_place_ill_in_opac, >- default_privacy => $default_privacy, >- reset_password => $reset_password, >- change_password => $change_password, >- exclude_from_local_holds_priority => $exclude_from_local_holds_priority, >- min_password_length => $min_password_length, >- require_strong_password => $require_strong_password, >- }); >+ my $category = Koha::Patron::Category->new( >+ { >+ categorycode => $categorycode, >+ description => $description, >+ enrolmentperiod => $enrolmentperiod, >+ enrolmentperioddate => $enrolmentperioddate, >+ password_expiry_days => $password_expiry_days, >+ upperagelimit => $upperagelimit, >+ dateofbirthrequired => $dateofbirthrequired, >+ enrolmentfee => $enrolmentfee, >+ reservefee => $reservefee, >+ hidelostitems => $hidelostitems, >+ overduenoticerequired => $overduenoticerequired, >+ category_type => $category_type, >+ can_be_guarantee => $can_be_guarantee, >+ BlockExpiredPatronOpacActions => $BlockExpiredPatronOpacActions, >+ checkprevcheckout => $checkPrevCheckout, >+ can_place_ill_in_opac => $can_place_ill_in_opac, >+ default_privacy => $default_privacy, >+ reset_password => $reset_password, >+ change_password => $change_password, >+ exclude_from_local_holds_priority => $exclude_from_local_holds_priority, >+ min_password_length => $min_password_length, >+ require_strong_password => $require_strong_password, >+ noissuescharge => $noissuescharge, >+ noissueschargeguarantees => $noissueschargeguarantees, >+ noissueschargeguarantorswithguarantees => $noissueschargeguarantorswithguarantees, >+ } >+ ); > eval { > $category->store; > $category->replace_library_limits( \@branches ); >diff --git a/api/v1/swagger/swagger_bundle.json b/api/v1/swagger/swagger_bundle.json >new file mode 100644 >index 0000000000..d3a7d3dd90 >--- /dev/null >+++ b/api/v1/swagger/swagger_bundle.json >@@ -0,0 +1,33562 @@ >+{ >+ "swagger": "2.0", >+ "info": { >+ "title": "Koha REST API", >+ "version": "1", >+ "license": { >+ "name": "GPL v3,", >+ "url": "http://www.gnu.org/licenses/gpl.txt" >+ }, >+ "contact": { >+ "name": "Koha Development Team", >+ "url": "https://koha-community.org/" >+ }, >+ "description": "## Background\n\nThe API supports two sets of endpoints, one targetted at library staff and the other at at library users.\n\nThose endpoints under the `/public` path are aimed at delivering functionality tailored to library users and offer\na more restricted set of functions, overrides and data in thier responses for data privacy and library policy\nreasons. Many of these endpoints do not require authentication for fetching public data, though an authenticated\nsession will expose additional options and allow users to see more data where it is part of their own record.\n\nAll other endpoints are targetted at the staff interface level and allow for additional functionality and a more\nunrestricted view of data. These endpoints, however, have a level of redaction built in for resources that the\napi consumer should not have access to. For example, user data for users who do not belong to the same library\nor library group of your api user will be reduced to just minimum neccesary for a valid response. Object keys will\nbe consistent for all responses, but their values may be removed depending on access.\n\n## Authentication\n\nThe API supports the following authentication mechanisms\n\n* HTTP Basic authentication\n* OAuth2 (client credentials grant)\n* Cookie-based\n\nBoth _Basic authentication_ and the _OAuth2_ flow, need to be enabled\nby system preferences.\n\n## Authorization\n\nThe API uses existing user profiles to restrict access to resources based on user permissions and the library the\nAPI user is assigned to. This may result, at times, in resources being returned in a redacted form with all keys\npresent but sensative values nulled.\n\nWe do not yet support OAuth Scopes or the Authorization Code grant flow.\n\n## Errors\n\nThe API uses standard HTTP status codes to indicate the success or failure\nof the API call. The body of the response will be JSON in the following format:\n\n```\n{\n \"error\": \"Current settings prevent the passed due date to be applied\",\n \"error_code\": \"invalid_due_date\"\n}\n```\n\nNote: Some routes might offer additional attributes in their error responses but that\"s\nsubject to change and thus not documented.\n\n## Filtering responses\n\nThe API allows for some advanced response filtering using a JSON based query syntax. The\nquery can be added to the requests:\n\n* as a query parameter `q=`\n* in the request body\n\nFor simple field equality matches we can use `{ \"fieldname\": \"value\" }` where the fieldname\nmatches one of the fields as described in the particular endpoints response object.\n\nWe can refine that with more complex matching clauses by nesting a the clause into the\nobject; `{ \"fieldname\": { \"clause\": \"value\" } }`.\n\nAvailable matching clauses include `>`, `<`, `>=`, `<=`, `-like`, and `-not_like`.\n\nWe can filter on multiple fields by adding them to the JSON respresentation. Adding at `HASH`\nlevel will result in an \"AND\" query, whilst combinding them in an `ARRAY` will result in an\n\"OR\" query: `{ \"field1\": \"value2\", \"field2\": \"value2\" }` will filter the response to only those\nresults with both field1 containing value2 AND field2 containing value2 for example.\n\nAdditionally, if you are requesting related data be embedded into the response one can query\non the related data using dot notation in the field names.\n\n### Examples\n\nThe following request would return any patron with firstname \"Henry\" and lastname \"Acevedo\";\n\n`curl -u koha:koha --request GET \"http://127.0.0.1:8081/api/v1/patrons/\" --data-raw '{ \"surname\": \"Acevedo\", \"firstname\": \"Henry\" }'`\n\nThe following request would return any patron whose lastname begins with \"Ace\";\n\n`curl -u koha:koha --request GET \"http://127.0.0.1:8081/api/v1/patrons/\" --data-raw '{ \"surname\": { \"-like\": \"Ace%\" }'`\n\nThe following request would return any patron whose lastname is \"Acevedo\" OR \"Bernardo\"\n\n`curl -u koha:koha --request GET \"http://127.0.0.1:8081/api/v1/patrons/\" --data-raw '{ \"surname\": [ \"Acevedo\", \"Bernardo\" ] }'`\n\nThe following request embeds the related patron extended attributes data and filters on it.\n\n`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\" }'`\n\n## Special headers\n\n### x-koha-embed\n\nThis optional header allows the api consumer to request additional related data\nto be returned in the api response. It also allows for cross referencing in the\nqueries as described above. It accepts a comma delimited list of relation names.\n\nRelations may on occasion also support dot delimited nesting to allow traversal.\n\n### x-koha-library\n\nThis optional header should be passed to give your api request a library\ncontext; If it is not included in the request, then the request context\nwill default to using your api comsumer\"s assigned home library.\n" >+ }, >+ "basePath": "/api/v1", >+ "tags": [ >+ { >+ "description": "Manage article requests\n", >+ "name": "article_requests", >+ "x-displayName": "Article requests" >+ }, >+ { >+ "description": "Manage authorised value categories\n", >+ "name": "authorised_value_categories", >+ "x-displayName": "Authorised value categories" >+ }, >+ { >+ "description": "Manage authorised values\n", >+ "name": "authorised_values", >+ "x-displayName": "Authorised values" >+ }, >+ { >+ "description": "Manage batch import profiles\n", >+ "name": "batch_import_profiles", >+ "x-displayName": "Batch import profiles" >+ }, >+ { >+ "description": "Manage baskets for the acquisitions module\n", >+ "name": "baskets", >+ "x-displayName": "Baskets" >+ }, >+ { >+ "description": "Manage Authority records\n", >+ "name": "authorities", >+ "x-displayName": "Authorities" >+ }, >+ { >+ "description": "Manage bibliographic records\n", >+ "name": "biblios", >+ "x-displayName": "Biblios" >+ }, >+ { >+ "description": "Manage bookings\n", >+ "name": "bookings", >+ "x-displayName": "Bookings" >+ }, >+ { >+ "description": "Manage cash registers\n", >+ "name": "cash_registers", >+ "x-displayName": "Cash registers" >+ }, >+ { >+ "description": "Manage cash register cashups\n", >+ "name": "cashups", >+ "x-displayName": "Cashups" >+ }, >+ { >+ "description": "Manage checkouts\n", >+ "name": "checkouts", >+ "x-displayName": "Checkouts" >+ }, >+ { >+ "description": "Manage circulation desks\n", >+ "name": "desks", >+ "x-displayName": "Circulation desks" >+ }, >+ { >+ "description": "Manage circulation rules\n", >+ "name": "circulation_rules", >+ "x-displayName": "Circulation rules" >+ }, >+ { >+ "description": "Manage cities\n", >+ "name": "cities", >+ "x-displayName": "Cities" >+ }, >+ { >+ "description": "Manage patron clubs\n", >+ "name": "clubs", >+ "x-displayName": "Clubs" >+ }, >+ { >+ "description": "Manage EDI files\n", >+ "name": "edi_files", >+ "x-displayName": "EDI files" >+ }, >+ { >+ "description": "Manage ERM agreements\n", >+ "name": "erm_agreements", >+ "x-displayName": "ERM agreements" >+ }, >+ { >+ "description": "Manage ERM configuration\n", >+ "name": "erm_config", >+ "x-displayName": "ERM configuration" >+ }, >+ { >+ "description": "Manage ERM counter files\n", >+ "name": "erm_counter_files", >+ "x-displayName": "ERM counter files" >+ }, >+ { >+ "description": "Manage ERM counter logs\n", >+ "name": "erm_counter_logs", >+ "x-displayName": "ERM counter logs" >+ }, >+ { >+ "description": "Retrieve counter registry data\n", >+ "name": "erm_counter_registry", >+ "x-displayName": "ERM counter registry" >+ }, >+ { >+ "description": "Manage ERM saved reports\n", >+ "name": "erm_default_usage_reports", >+ "x-displayName": "ERM saved reports" >+ }, >+ { >+ "description": "Manage ERM docuemnts\n", >+ "name": "erm_documents", >+ "x-displayName": "ERM documents" >+ }, >+ { >+ "description": "Manage ERM eHoldings packages\n", >+ "name": "erm_eholdings_packages", >+ "x-displayName": "ERM eHoldings packages" >+ }, >+ { >+ "description": "Manage ERM eHoldings resources\n", >+ "name": "erm_eholdings_resources", >+ "x-displayName": "ERM eHoldings resources" >+ }, >+ { >+ "description": "Manage ERM eHoldings titles\n", >+ "name": "erm_eholdings_titles", >+ "x-displayName": "ERM eHoldings titles" >+ }, >+ { >+ "description": "Manage ERM licences\n", >+ "name": "erm_licences", >+ "x-displayName": "ERM licences" >+ }, >+ { >+ "description": "Retrieve SUSHI service data\n", >+ "name": "erm_sushi_service", >+ "x-displayName": "ERM SUSHI services" >+ }, >+ { >+ "description": "Manage ERM usage data providers\n", >+ "name": "erm_usage_data_providers", >+ "x-displayName": "ERM usage data providers" >+ }, >+ { >+ "description": "Manage ERM usage databases\n", >+ "name": "erm_usage_databases", >+ "x-displayName": "ERM usage databases" >+ }, >+ { >+ "description": "Manage ERM usage items\n", >+ "name": "erm_usage_items", >+ "x-displayName": "ERM usage items" >+ }, >+ { >+ "description": "Manage ERM usage platforms\n", >+ "name": "erm_usage_platforms", >+ "x-displayName": "ERM usage platforms" >+ }, >+ { >+ "description": "Manage ERM usage titles\n", >+ "name": "erm_usage_titles", >+ "x-displayName": "ERM usage titles" >+ }, >+ { >+ "description": "Manage ERM usage reports\n", >+ "name": "erm_usage_reports", >+ "x-displayName": "ERM usage reports" >+ }, >+ { >+ "description": "Manage ERM users\n", >+ "name": "erm_users", >+ "x-displayName": "ERM users" >+ }, >+ { >+ "description": "Manage funds for the acquisitions module\n", >+ "name": "funds", >+ "x-displayName": "Funds" >+ }, >+ { >+ "description": "Manage holds\n", >+ "name": "holds", >+ "x-displayName": "Holds" >+ }, >+ { >+ "description": "Manage identity providers\n", >+ "name": "identity_providers", >+ "x-displayName": "Identity providers" >+ }, >+ { >+ "description": "Manage ILL module backends\n", >+ "name": "ill_backends", >+ "x-displayName": "ILL backends" >+ }, >+ { >+ "description": "Manage ILL module batches\n", >+ "name": "ill_batches", >+ "x-displayName": "ILL batches" >+ }, >+ { >+ "description": "Manage ILL module batch statuses\n", >+ "name": "ill_batchstatuses", >+ "x-displayName": "ILL batch statuses" >+ }, >+ { >+ "description": "Manage ILL requests\n", >+ "name": "ill_requests", >+ "x-displayName": "ILL requests" >+ }, >+ { >+ "description": "Manage import batches\n", >+ "name": "import_batches", >+ "x-displayName": "Import batches" >+ }, >+ { >+ "description": "Manage item groups\n", >+ "name": "item_groups", >+ "x-displayName": "Item groups" >+ }, >+ { >+ "description": "Manage record sources\n", >+ "name": "record_sources", >+ "x-displayName": "Record source" >+ }, >+ { >+ "description": "Manage items\n", >+ "name": "items", >+ "x-displayName": "Items" >+ }, >+ { >+ "description": "Manage item types\n", >+ "name": "item_types", >+ "x-displayName": "Item Types" >+ }, >+ { >+ "description": "Manage jobs\n", >+ "name": "jobs", >+ "x-displayName": "Jobs" >+ }, >+ { >+ "description": "Manage libraries\n", >+ "name": "libraries", >+ "x-displayName": "Libraries" >+ }, >+ { >+ "description": "Manage macros\n", >+ "name": "macros", >+ "x-displayName": "Macros" >+ }, >+ { >+ "description": "Manage acquisition orders\n", >+ "name": "orders", >+ "x-displayName": "Orders" >+ }, >+ { >+ "description": "Handle OAuth flows\n", >+ "name": "oauth", >+ "x-displayName": "OAuth" >+ }, >+ { >+ "description": "Manage patron categories\n", >+ "name": "patron_categories", >+ "x-displayName": "Patron categories" >+ }, >+ { >+ "description": "Manage patrons\n", >+ "name": "patrons", >+ "x-displayName": "Patrons" >+ }, >+ { >+ "description": "Manage preservation tasks\n", >+ "name": "preservation", >+ "x-displayName": "Preservation" >+ }, >+ { >+ "description": "Manage purchase suggestions\n", >+ "name": "suggestions", >+ "x-displayName": "Purchase suggestions" >+ }, >+ { >+ "description": "Manage quotes\n", >+ "name": "quotes", >+ "x-displayName": "Quotes" >+ }, >+ { >+ "description": "Manage recalls\n", >+ "name": "recalls", >+ "x-displayName": "Recalls" >+ }, >+ { >+ "description": "Manage return claims\n", >+ "name": "return_claims", >+ "x-displayName": "Return claims" >+ }, >+ { >+ "description": "Manage rotas\n", >+ "name": "rotas", >+ "x-displayName": "Rotas" >+ }, >+ { >+ "description": "Manage search filters", >+ "name": "search_filters", >+ "x-displayName": "Search filters" >+ }, >+ { >+ "description": "Manage SMTP servers configurations\n", >+ "name": "smtp_servers", >+ "x-displayName": "SMTP servers" >+ }, >+ { >+ "description": "Manage tickets\n", >+ "name": "tickets", >+ "x-displayName": "Tickets" >+ }, >+ { >+ "description": "Manage transfer limits\n", >+ "name": "transfer_limits", >+ "x-displayName": "Transfer limits" >+ }, >+ { >+ "description": "Handle two factor authentication flows\n", >+ "name": "2fa", >+ "x-displayName": "Two factor authentication" >+ }, >+ { >+ "description": "Manage vendors for the acquisitions module\n", >+ "name": "vendors", >+ "x-displayName": "Vendors" >+ } >+ ], >+ "paths": { >+ "/acquisitions/baskets/managers": { >+ "get": { >+ "x-mojo-to": "Acquisitions::Baskets#list_managers", >+ "operationId": "listBasketsManagers", >+ "description": "This resource returns a list of patron allowed to be a manager for baskets", >+ "summary": "List possibe managers for baskets", >+ "tags": [ >+ "baskets" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "extended_attributes" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of orders' managers", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/patron" >+ } >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "acquisition": "order_manage" >+ } >+ } >+ } >+ }, >+ "/acquisitions/edifiles": { >+ "get": { >+ "x-mojo-to": "Acquisitions::Vendor::Edifact::Files#list", >+ "operationId": "listEdifactFiles", >+ "tags": [ >+ "edi_files" >+ ], >+ "summary": "List EDIFACT files", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "vendor", >+ "basket" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of EDIFACT files", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/edifact_file" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "EDIFACT file not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "acquisition": "edi_manage" >+ } >+ } >+ } >+ }, >+ "/acquisitions/funds": { >+ "get": { >+ "x-mojo-to": "Acquisitions::Funds#list", >+ "operationId": "listFunds", >+ "tags": [ >+ "funds" >+ ], >+ "summary": "List funds", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "name": "name", >+ "in": "query", >+ "description": "Case insensitive search on fund name", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "fund_owner_id", >+ "in": "query", >+ "description": "Display only the funds that belongs to the given patron ID", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of funds", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/fund" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Fund not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "acquisition": "budget_manage_all" >+ } >+ } >+ } >+ }, >+ "/acquisitions/funds/owners": { >+ "get": { >+ "x-mojo-to": "Acquisitions::Funds#list_owners", >+ "operationId": "listFundsOwners", >+ "description": "This resource returns a list of patron allowed to be owner of funds", >+ "summary": "List possibe owners for funds", >+ "tags": [ >+ "funds" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "extended_attributes" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of funds' owners", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/patron" >+ } >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "acquisition": "budget_modify" >+ } >+ } >+ } >+ }, >+ "/acquisitions/funds/users": { >+ "get": { >+ "x-mojo-to": "Acquisitions::Funds#list_users", >+ "operationId": "listFundsUsers", >+ "description": "This resource returns a list of patron allowed to be owner of funds", >+ "summary": "List possibe users for funds", >+ "tags": [ >+ "funds" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "extended_attributes" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of funds' users", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/patron" >+ } >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "acquisition": "budget_modify" >+ } >+ } >+ } >+ }, >+ "/acquisitions/orders": { >+ "get": { >+ "x-mojo-to": "Acquisitions::Orders#list", >+ "operationId": "listOrders", >+ "tags": [ >+ "orders" >+ ], >+ "summary": "List orders", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "name": "biblio_id", >+ "in": "query", >+ "description": "Identifier for a linked bibliographic record", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "name": "basket_id", >+ "in": "query", >+ "description": "Identifier for a linked acquisition basket", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "name": "fund_id", >+ "in": "query", >+ "description": "Identifier for the fund the order goes against", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "name": "status", >+ "in": "query", >+ "description": "Current status for the order. Can be 'new', 'ordered', 'partial', 'complete' or 'cancelled'", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "only_active", >+ "in": "query", >+ "description": "If only active orders should be listed", >+ "required": false, >+ "type": "boolean" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "basket", >+ "basket.basket_group", >+ "basket.creator", >+ "biblio", >+ "biblio.active_orders+count", >+ "biblio.holds+count", >+ "biblio.items+count", >+ "biblio.suggestions.suggester", >+ "creator", >+ "fund", >+ "fund.budget", >+ "current_item_level_holds+count", >+ "invoice", >+ "items", >+ "items+strings", >+ "subscription" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of orders", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/order" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Order not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "acquisition": [ >+ "order_manage", >+ "order_manage_all", >+ "order_receive" >+ ] >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Acquisitions::Orders#add", >+ "operationId": "addOrder", >+ "tags": [ >+ "orders" >+ ], >+ "summary": "Add order", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object representing an order", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/order" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Order added", >+ "schema": { >+ "$ref": "#/definitions/order" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating the resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "acquisition": "order_manage" >+ } >+ } >+ } >+ }, >+ "/acquisitions/orders/{order_id}": { >+ "get": { >+ "x-mojo-to": "Acquisitions::Orders#get", >+ "operationId": "getOrder", >+ "tags": [ >+ "orders" >+ ], >+ "summary": "Get order", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/order_id_pp" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "basket", >+ "basket.basket_group", >+ "basket.creator", >+ "biblio", >+ "biblio.active_orders+count", >+ "biblio.holds+count", >+ "biblio.items+count", >+ "biblio.suggestions.suggester", >+ "fund", >+ "current_item_level_holds+count", >+ "invoice", >+ "items", >+ "subscription" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "An order", >+ "schema": { >+ "$ref": "#/definitions/order" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Order not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "acquisition": "order_manage" >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "Acquisitions::Orders#update", >+ "operationId": "updateOrder", >+ "tags": [ >+ "orders" >+ ], >+ "summary": "Update order", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/order_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object representing an order", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/order" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "An order", >+ "schema": { >+ "$ref": "#/definitions/order" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Order not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "acquisition": "order_manage" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "Acquisitions::Orders#delete", >+ "operationId": "deleteOrder", >+ "tags": [ >+ "orders" >+ ], >+ "summary": "Delete order", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/order_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Order deleted" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Order not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "acquisition": "order_manage" >+ } >+ } >+ } >+ }, >+ "/acquisitions/vendors": { >+ "get": { >+ "x-mojo-to": "Acquisitions::Vendors#list", >+ "operationId": "listVendors", >+ "tags": [ >+ "vendors" >+ ], >+ "summary": "List vendors", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "name": "name", >+ "in": "query", >+ "description": "Case insensitive search on vendor name", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "accountnumber", >+ "in": "query", >+ "description": "Case insensitive search on vendor's account number", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "aliases" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of vendors", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/vendor" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Vendor not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "acquisition": "vendors_manage" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Acquisitions::Vendors#add", >+ "operationId": "addVendor", >+ "tags": [ >+ "vendors" >+ ], >+ "summary": "Add vendor", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object representing a vendor", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/vendor" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Vendor added", >+ "schema": { >+ "$ref": "#/definitions/vendor" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Vendor not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "acquisition": "vendors_manage" >+ } >+ } >+ } >+ }, >+ "/acquisitions/vendors/{vendor_id}": { >+ "get": { >+ "x-mojo-to": "Acquisitions::Vendors#get", >+ "operationId": "getVendor", >+ "tags": [ >+ "vendors" >+ ], >+ "summary": "Get vendor", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/vendor_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A vendor", >+ "schema": { >+ "$ref": "#/definitions/vendor" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Vendor not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "acquisition": "vendors_manage" >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "Acquisitions::Vendors#update", >+ "operationId": "updateVendor", >+ "tags": [ >+ "vendors" >+ ], >+ "summary": "Update vendor", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/vendor_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object representing a vendor", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/vendor" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A vendor", >+ "schema": { >+ "$ref": "#/definitions/vendor" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Vendor not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "acquisition": "vendors_manage" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "Acquisitions::Vendors#delete", >+ "operationId": "deleteVendor", >+ "tags": [ >+ "vendors" >+ ], >+ "summary": "Delete vendor", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/vendor_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Vendor deleted" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Vendor not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "acquisition": "vendors_manage" >+ } >+ } >+ } >+ }, >+ "/acquisitions/vendors/{vendor_id}/issues": { >+ "get": { >+ "x-mojo-to": "Acquisitions::Vendor::Issues#list", >+ "operationId": "listVendorIssues", >+ "tags": [ >+ "vendors" >+ ], >+ "summary": "List vendor issues", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/vendor_id_pp" >+ }, >+ { >+ "description": "Case insensitive search on issue's id", >+ "in": "query", >+ "name": "issue_id", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "description": "Case insensitive search on vendor's id", >+ "in": "query", >+ "name": "vendor_id", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "name": "type", >+ "in": "query", >+ "description": "Case insensitive search on issue type", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on issue start date", >+ "in": "query", >+ "name": "started_on", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on issue end date", >+ "in": "query", >+ "name": "ended_on", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "notes", >+ "in": "query", >+ "description": "Case insensitive search on issue's notes", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "+strings" >+ ] >+ }, >+ "collectionFormat": "csv" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of issues", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/vendor_issue" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Resource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "acquisition": "issue_manage" >+ } >+ } >+ } >+ }, >+ "/advanced_editor/macros": { >+ "get": { >+ "x-mojo-to": "AdvancedEditorMacro#list", >+ "operationId": "listMacro", >+ "tags": [ >+ "macros" >+ ], >+ "summary": "List advanced editor macros", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "name": "name", >+ "in": "query", >+ "description": "Case insensative search on macro name", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "macro_text", >+ "in": "query", >+ "description": "Case insensative search on macro text", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "patron_id", >+ "in": "query", >+ "description": "Search on internal patron_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "shared", >+ "in": "query", >+ "description": "Search on shared macros", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of macros", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/advancededitormacro" >+ } >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "editcatalogue": "advanced_editor" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "AdvancedEditorMacro#add", >+ "operationId": "addAdvancedEditorMacro", >+ "tags": [ >+ "macros" >+ ], >+ "summary": "Add advanced editor macros", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing informations about the new macro", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/advancededitormacro" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Macro added", >+ "schema": { >+ "$ref": "#/definitions/advancededitormacro" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "editcatalogue": "advanced_editor" >+ } >+ } >+ } >+ }, >+ "/advanced_editor/macros/shared": { >+ "post": { >+ "x-mojo-to": "AdvancedEditorMacro#add_shared", >+ "operationId": "addsharedAdvancedEditorMacro", >+ "tags": [ >+ "macros" >+ ], >+ "summary": "Add shared advanced editor macros", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing informations about the new macro", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/advancededitormacro" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Macro added", >+ "schema": { >+ "$ref": "#/definitions/advancededitormacro" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "editcatalogue": { >+ "advanced_editor": 1, >+ "create_shared_macros": 1 >+ } >+ } >+ } >+ } >+ }, >+ "/bookings": { >+ "get": { >+ "x-mojo-to": "Bookings#list", >+ "operationId": "listBookings", >+ "parameters": [ >+ { >+ "description": "Case insensative search on booking biblio_id", >+ "in": "query", >+ "name": "biblio_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensative search on booking item_id", >+ "in": "query", >+ "name": "item_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensative search on booking patron_id", >+ "in": "query", >+ "name": "patron_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case Insensative search on booking start_date", >+ "in": "query", >+ "name": "start_date", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case Insensative search on booking end_date", >+ "in": "query", >+ "name": "end_date", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "biblio", >+ "item", >+ "patron" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of bookings", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/booking" >+ }, >+ "type": "array" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "summary": "List bookings", >+ "tags": [ >+ "bookings" >+ ], >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": 1 >+ } >+ } >+ }, >+ "post": { >+ "operationId": "addBooking", >+ "parameters": [ >+ { >+ "description": "A JSON object containing informations about the new booking", >+ "in": "body", >+ "name": "body", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/booking" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Booking added", >+ "schema": { >+ "$ref": "#/definitions/booking" >+ } >+ }, >+ "400": { >+ "description": "Client error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "summary": "Add booking", >+ "tags": [ >+ "bookings" >+ ], >+ "x-koha-authorization": { >+ "permissions": { >+ "circulate": "manage_bookings" >+ } >+ }, >+ "x-mojo-to": "Bookings#add" >+ } >+ }, >+ "/bookings/{booking_id}": { >+ "delete": { >+ "operationId": "deleteBooking", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/booking_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Booking deleted" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Booking not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "summary": "Delete booking", >+ "tags": [ >+ "bookings" >+ ], >+ "x-koha-authorization": { >+ "permissions": { >+ "circulate": "manage_bookings" >+ } >+ }, >+ "x-mojo-to": "Bookings#delete" >+ }, >+ "get": { >+ "operationId": "getBooking", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/booking_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A booking", >+ "schema": { >+ "$ref": "#/definitions/booking" >+ } >+ }, >+ "404": { >+ "description": "Booking not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "summary": "Get booking", >+ "tags": [ >+ "bookings" >+ ], >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": 1 >+ } >+ }, >+ "x-mojo-to": "Bookings#get" >+ }, >+ "put": { >+ "operationId": "updateBooking", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/booking_id_pp" >+ }, >+ { >+ "description": "A booking object", >+ "in": "body", >+ "name": "body", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/booking" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A booking", >+ "schema": { >+ "$ref": "#/definitions/booking" >+ } >+ }, >+ "400": { >+ "description": "Client error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Booking not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "summary": "Update booking", >+ "tags": [ >+ "bookings" >+ ], >+ "x-koha-authorization": { >+ "permissions": { >+ "circulate": "manage_bookings" >+ } >+ }, >+ "x-mojo-to": "Bookings#update" >+ } >+ }, >+ "/search_filters": { >+ "get": { >+ "x-mojo-to": "SearchFilter#list", >+ "operationId": "listFilters", >+ "tags": [ >+ "search_filters" >+ ], >+ "summary": "List search filters", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of search filters", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/search_filter" >+ } >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_search_filters" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "SearchFilter#add", >+ "operationId": "addSearchFilter", >+ "tags": [ >+ "search_filters" >+ ], >+ "summary": "Add search filter", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing informations about the new search filter", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/search_filter" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Search filter added", >+ "schema": { >+ "$ref": "#/definitions/search_filter" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating the resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_search_filters" >+ } >+ } >+ } >+ }, >+ "/search_filters/{search_filter_id}": { >+ "get": { >+ "x-mojo-to": "SearchFilter#get", >+ "operationId": "getSearchFilter", >+ "tags": [ >+ "search_filters" >+ ], >+ "summary": "Get search filter", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/search_filter_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A search filter", >+ "schema": { >+ "$ref": "#/definitions/search_filter" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "SearchFilter not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_search_filters" >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "SearchFilter#update", >+ "operationId": "updateSearchFilter", >+ "tags": [ >+ "search_filters" >+ ], >+ "summary": "Update search filter", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/search_filter_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A search filter object", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/search_filter" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "An search_filter", >+ "schema": { >+ "$ref": "#/definitions/search_filter" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Search filter not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_search_filters" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "SearchFilter#delete", >+ "operationId": "deleteSearchFilter", >+ "tags": [ >+ "search_filters" >+ ], >+ "summary": "Delete search filter", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/search_filter_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Searc filter deleted", >+ "schema": { >+ "type": "string" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Search filter not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_search_filters" >+ } >+ } >+ } >+ }, >+ "/advanced_editor/macros/shared/{advancededitormacro_id}": { >+ "get": { >+ "x-mojo-to": "AdvancedEditorMacro#get_shared", >+ "operationId": "getsharedAdvancedEditorMacro", >+ "tags": [ >+ "macros" >+ ], >+ "summary": "Get shared advanced editor macro", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/advancededitormacro_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A macro", >+ "schema": { >+ "$ref": "#/definitions/advancededitormacro" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "AdvancedEditorMacro not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "editcatalogue": "advanced_editor" >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "AdvancedEditorMacro#update_shared", >+ "operationId": "updatesharedAdvancedEditorMacro", >+ "tags": [ >+ "macros" >+ ], >+ "summary": "Update shared advanced editor macro", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/advancededitormacro_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "An advanced editor macro object", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/advancededitormacro" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "An advanced editor macro", >+ "schema": { >+ "$ref": "#/definitions/advancededitormacro" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Macro not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "editcatalogue": { >+ "advanced_editor": 1, >+ "create_shared_macros": 1 >+ } >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "AdvancedEditorMacro#delete_shared", >+ "operationId": "deletesharedAdvancedEditorMacro", >+ "tags": [ >+ "macros" >+ ], >+ "summary": "Delete shared advanced editor macro", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/advancededitormacro_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Advanced editor macro deleted", >+ "schema": { >+ "type": "string" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Macro not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "editcatalogue": { >+ "advanced_editor": 1, >+ "delete_shared_macros": 1 >+ } >+ } >+ } >+ } >+ }, >+ "/advanced_editor/macros/{advancededitormacro_id}": { >+ "get": { >+ "x-mojo-to": "AdvancedEditorMacro#get", >+ "operationId": "getAdvancedEditorMacro", >+ "tags": [ >+ "macros" >+ ], >+ "summary": "Get advanced editor macro", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/advancededitormacro_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A macro", >+ "schema": { >+ "$ref": "#/definitions/advancededitormacro" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "AdvancedEditorMacro not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "editcatalogue": "advanced_editor" >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "AdvancedEditorMacro#update", >+ "operationId": "updateAdvancedEditorMacro", >+ "tags": [ >+ "macros" >+ ], >+ "summary": "Update advanced editor macro", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/advancededitormacro_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "An advanced editor macro object", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/advancededitormacro" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "An advanced editor macro", >+ "schema": { >+ "$ref": "#/definitions/advancededitormacro" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Macro not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "editcatalogue": "advanced_editor" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "AdvancedEditorMacro#delete", >+ "operationId": "deleteAdvancedEditorMacro", >+ "tags": [ >+ "macros" >+ ], >+ "summary": "Delete advanced editor macro", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/advancededitormacro_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Advanced editor macro deleted", >+ "schema": { >+ "type": "string" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Macro not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "editcatalogue": "advanced_editor" >+ } >+ } >+ } >+ }, >+ "/article_requests/{article_request_id}": { >+ "delete": { >+ "x-mojo-to": "ArticleRequests#cancel", >+ "operationId": "cancelArticleRequest", >+ "tags": [ >+ "article_requests" >+ ], >+ "summary": "Cancel article requests", >+ "parameters": [ >+ { >+ "name": "article_request_id", >+ "in": "path", >+ "description": "Article request identifier", >+ "required": true, >+ "type": "integer" >+ }, >+ { >+ "name": "cancellation_reason", >+ "in": "query", >+ "description": "Article request cancellation reason", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "notes", >+ "in": "query", >+ "description": "Article request custom cancellation reason", >+ "required": false, >+ "type": "string" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Article request canceled" >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "circulate": "circulate_remaining_permissions" >+ } >+ } >+ } >+ }, >+ "/auth/otp/token_delivery": { >+ "post": { >+ "x-mojo-to": "TwoFactorAuth#send_otp_token", >+ "operationId": "send_otp_token", >+ "tags": [ >+ "2fa" >+ ], >+ "summary": "Send OTP token for second step authentication", >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "OK", >+ "schema": { >+ "type": "object", >+ "properties": { >+ "access_token": { >+ "type": "string" >+ }, >+ "token_type": { >+ "type": "string" >+ }, >+ "expires_in": { >+ "type": "integer" >+ } >+ }, >+ "additionalProperties": false >+ } >+ }, >+ "400": { >+ "description": "Bad Request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ } >+ }, >+ "/auth/password/validation": { >+ "post": { >+ "x-mojo-to": "Auth::Password#validate", >+ "operationId": "validateUserAndPassword", >+ "tags": [ >+ "patrons" >+ ], >+ "summary": "Check validity of username and password", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing a patron identifier and password information.\n\nThe identifier will be used to match patrons on the database using the\nfollowing order:\n\n* userid\n* cardnumber\n\nOptionally, you can specify the `userid` attribute if you don't want it\nto be checked against the patron cardnumbers.\n", >+ "schema": { >+ "type": "object", >+ "properties": { >+ "identifier": { >+ "description": "A patron identifier (`userid` or `cardnumber`)", >+ "type": "string" >+ }, >+ "password": { >+ "description": "Password (plain text)", >+ "type": "string" >+ }, >+ "userid": { >+ "description": "A patron userid", >+ "type": "string" >+ } >+ }, >+ "required": [ >+ "password" >+ ], >+ "additionalProperties": false >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Validation successful", >+ "schema": { >+ "type": "object", >+ "properties": { >+ "cardnumber": { >+ "type": "string", >+ "description": "cardnumber for the validated patron" >+ }, >+ "patron_id": { >+ "type": "integer", >+ "description": "Internal patron identifier" >+ }, >+ "userid": { >+ "type": "string", >+ "description": "userid for the validated patron" >+ } >+ }, >+ "additionalProperties": false >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "borrowers": "1" >+ } >+ } >+ } >+ }, >+ "/auth/two-factor/registration": { >+ "post": { >+ "x-mojo-to": "TwoFactorAuth#registration", >+ "operationId": "Two factor register", >+ "tags": [ >+ "2fa" >+ ], >+ "summary": "Generate a secret", >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "OK", >+ "schema": { >+ "type": "object", >+ "properties": { >+ "secret32": { >+ "type": "string" >+ }, >+ "qr_code": { >+ "type": "string" >+ }, >+ "issuer": { >+ "type": "string" >+ }, >+ "key_id": { >+ "type": "string" >+ } >+ }, >+ "additionalProperties": false >+ } >+ }, >+ "400": { >+ "description": "Bad Request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ } >+ }, >+ "/auth/two-factor/registration/verification": { >+ "post": { >+ "x-mojo-to": "TwoFactorAuth#verification", >+ "operationId": "Two factor register verification", >+ "tags": [ >+ "2fa" >+ ], >+ "summary": "Verify two-factor registration", >+ "parameters": [ >+ { >+ "name": "secret32", >+ "in": "formData", >+ "description": "the secret", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "name": "pin_code", >+ "in": "formData", >+ "description": "the pin code", >+ "required": true, >+ "type": "string" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "OK" >+ }, >+ "400": { >+ "description": "Bad Request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ } >+ }, >+ "/auth/identity_providers": { >+ "get": { >+ "x-mojo-to": "Auth::Identity::Providers#list", >+ "operationId": "listIdentityProviders", >+ "tags": [ >+ "identity_providers" >+ ], >+ "summary": "List configured identity providers", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "domains" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of identity providers", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/identity_provider" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad Request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_identity_providers" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Auth::Identity::Providers#add", >+ "operationId": "addIdentityProvider", >+ "tags": [ >+ "identity_providers" >+ ], >+ "summary": "Add a new identity provider", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing OAuth provider parameters.\n\nThe `config` object required attributes depends on the chosen `protocol`\n\n## OAuth\n\nRequires:\n\n* key\n* secret\n* authorize_url\n* token_url\n\n## OIDC\n\nRequires:\n\n* key\n* secret\n* well_known_url\n", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/identity_provider" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "The generated identity provider", >+ "schema": { >+ "$ref": "#/definitions/identity_provider" >+ } >+ }, >+ "400": { >+ "description": "Bad Request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_identity_providers" >+ } >+ } >+ } >+ }, >+ "/auth/identity_providers/{identity_provider_id}": { >+ "get": { >+ "x-mojo-to": "Auth::Identity::Providers#get", >+ "operationId": "getIdentityProvider", >+ "tags": [ >+ "identity_providers" >+ ], >+ "summary": "Get identity provider", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/identity_provider_id_pp" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "domains" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "An identity provider", >+ "schema": { >+ "$ref": "#/definitions/identity_provider" >+ } >+ }, >+ "404": { >+ "description": "Object not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_identity_providers" >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "Auth::Identity::Providers#update", >+ "operationId": "updateIdentityProvider", >+ "tags": [ >+ "identity_providers" >+ ], >+ "summary": "Update an identity provider", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/identity_provider_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing OAuth provider parameters.\n\nThe `config` object required attributes depends on the chosen `protocol`\n\n## OAuth\n\nRequires:\n\n* key\n* secret\n* authorize_url\n* token_url\n\n## OIDC\n\nRequires:\n\n* key\n* secret\n* well_known_url\n", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/identity_provider" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Updated identity provider", >+ "schema": { >+ "$ref": "#/definitions/identity_provider" >+ } >+ }, >+ "400": { >+ "description": "Bad Request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Object not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_identity_providers" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "Auth::Identity::Providers#delete", >+ "operationId": "delIdentityProvider", >+ "tags": [ >+ "identity_providers" >+ ], >+ "summary": "Delete identity provider", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/identity_provider_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "identity provider deleted" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "City not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n" >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_identity_providers" >+ } >+ } >+ } >+ }, >+ "/auth/identity_providers/{identity_provider_id}/domains": { >+ "get": { >+ "x-mojo-to": "Auth::Identity::Provider::Domains#list", >+ "operationId": "listIdentityProviderDomains", >+ "tags": [ >+ "identity_providers" >+ ], >+ "summary": "Get identity provider configured domains", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/identity_provider_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "domains" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "An identity provider", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/identity_provider_domain" >+ } >+ } >+ }, >+ "404": { >+ "description": "Object not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_identity_providers" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Auth::Identity::Provider::Domains#add", >+ "operationId": "addIdentityProviderDomain", >+ "tags": [ >+ "identity_providers" >+ ], >+ "summary": "Add an identity provider domain", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/identity_provider_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "An identity provider domain object", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/identity_provider_domain" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Updated identity provider domain", >+ "schema": { >+ "$ref": "#/definitions/identity_provider_domain" >+ } >+ }, >+ "400": { >+ "description": "Bad Request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Object not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_identity_providers" >+ } >+ } >+ } >+ }, >+ "/auth/identity_providers/{identity_provider_id}/domains/{identity_provider_domain_id}": { >+ "get": { >+ "x-mojo-to": "Auth::Identity::Provider::Domains#get", >+ "operationId": "getIdentityProviderDomain", >+ "tags": [ >+ "identity_providers" >+ ], >+ "summary": "Get identity provider domain", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/identity_provider_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/identity_provider_domain_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "An identity provider", >+ "schema": { >+ "$ref": "#/definitions/identity_provider_domain" >+ } >+ }, >+ "404": { >+ "description": "Object not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_identity_providers" >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "Auth::Identity::Provider::Domains#update", >+ "operationId": "updateIdentityProviderDomain", >+ "tags": [ >+ "identity_providers" >+ ], >+ "summary": "Update an identity provider domain", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/identity_provider_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/identity_provider_domain_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "An identity provider domain object", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/identity_provider_domain" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Updated identity provider domain", >+ "schema": { >+ "$ref": "#/definitions/identity_provider_domain" >+ } >+ }, >+ "400": { >+ "description": "Bad Request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Object not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_identity_providers" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "Auth::Identity::Provider::Domains#delete", >+ "operationId": "delIdentityProviderDomain", >+ "tags": [ >+ "identity_providers" >+ ], >+ "summary": "Delete identity provider", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/identity_provider_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/identity_provider_domain_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "identity provider deleted" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "City not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n" >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_identity_providers" >+ } >+ } >+ } >+ }, >+ "/authorised_value_categories": { >+ "get": { >+ "x-mojo-to": "AuthorisedValueCategories#list", >+ "operationId": "listAuthorisedValueCategories", >+ "tags": [ >+ "authorised_value_categories" >+ ], >+ "summary": "List authorised value categories", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "authorised_values" >+ ] >+ }, >+ "collectionFormat": "csv" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of authorised value categories", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/authorised_value_category" >+ }, >+ "type": "array" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Resource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": 1 >+ } >+ } >+ } >+ }, >+ "/authorised_value_categories/{authorised_value_category_name}/authorised_values": { >+ "get": { >+ "x-mojo-to": "AuthorisedValues#list_av_from_category", >+ "operationId": "listAuthorisedValues", >+ "tags": [ >+ "authorised_values" >+ ], >+ "summary": "List authorised values for a given category", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "category name", >+ "in": "path", >+ "name": "authorised_value_category_name", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on authorised value id", >+ "in": "query", >+ "name": "authorised_value_id", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "description": "Case insensitive search on authorised value category name", >+ "in": "query", >+ "name": "category_name", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on value", >+ "in": "query", >+ "name": "value", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on description", >+ "in": "query", >+ "name": "description", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on opac description", >+ "in": "query", >+ "name": "opac_description", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on image url", >+ "in": "query", >+ "name": "image_url", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of authorised values", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/authorised_value" >+ }, >+ "type": "array" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": 1 >+ } >+ } >+ } >+ }, >+ "/authorities": { >+ "get": { >+ "x-mojo-to": "Authorities#list", >+ "operationId": "listAuthorities", >+ "tags": [ >+ "authorities" >+ ], >+ "summary": "List authorities", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "produces": [ >+ "application/json", >+ "application/marcxml+xml", >+ "application/marc-in-json", >+ "application/marc", >+ "text/plain" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of authorities" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Authority not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "406": { >+ "description": "Not acceptable", >+ "schema": { >+ "type": "array", >+ "description": "Accepted content-types", >+ "items": { >+ "type": "string" >+ } >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Authorities#add", >+ "operationId": "addAuthority", >+ "tags": [ >+ "authorities" >+ ], >+ "summary": "Add authority", >+ "description": "Add an authority record to Koha. An optional `x-authority-type`\nmay be passed to specify the cataloguing framework to be used (instead\nof the default).\n\nThe request body is expected to contain a MARC record in the format specified in\nthe `Content-type` header you pass. Possible values for this header and the corresponding\nrecord formats expected are listed below:\n\n* application/marcxml+xml: MARCXML\n* application/marc-in-json: MARC-in-JSON\n* application/marc: Raw USMARC binary data\n", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/authority_type_header" >+ }, >+ { >+ "name": "x-koha-override", >+ "in": "header", >+ "required": false, >+ "description": "Overrides list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "any", >+ "duplicate" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "201": { >+ "description": "An authority" >+ }, >+ "400": { >+ "description": "Bad request.", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "406": { >+ "description": "Not acceptable", >+ "schema": { >+ "type": "array", >+ "description": "Accepted content-types", >+ "items": { >+ "type": "string" >+ } >+ } >+ }, >+ "409": { >+ "description": "Conflict creating the resource. Possible `error_code` attribute values:\n\n* `duplicate`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "editauthorities": "1" >+ } >+ } >+ } >+ }, >+ "/authorities/{authority_id}": { >+ "get": { >+ "x-mojo-to": "Authorities#get", >+ "operationId": "getAuthority", >+ "tags": [ >+ "authorities" >+ ], >+ "summary": "Get authority", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/authority_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json", >+ "application/marcxml+xml", >+ "application/marc-in-json", >+ "application/marc", >+ "text/plain" >+ ], >+ "responses": { >+ "200": { >+ "description": "An authority" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Authority not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "406": { >+ "description": "Not acceptable", >+ "schema": { >+ "type": "array", >+ "description": "Accepted content-types", >+ "items": { >+ "type": "string" >+ } >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "Authorities#delete", >+ "operationId": "deleteAuthority", >+ "tags": [ >+ "authorities" >+ ], >+ "summary": "Delete authority", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/authority_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Authority deleted", >+ "schema": { >+ "type": "string" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Authority not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "editauthorities": "1" >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "Authorities#update", >+ "operationId": "updateAuthority", >+ "tags": [ >+ "authorities" >+ ], >+ "summary": "Update authority", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/authority_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/authority_type_header" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "An authority id" >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Authority not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "406": { >+ "description": "Not acceptable", >+ "schema": { >+ "type": "array", >+ "description": "Accepted content-types", >+ "items": { >+ "type": "string" >+ } >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "editauthorities": "1" >+ } >+ } >+ } >+ }, >+ "/biblios": { >+ "post": { >+ "x-mojo-to": "Biblios#add", >+ "operationId": "addBiblio", >+ "tags": [ >+ "biblios" >+ ], >+ "summary": "Add biblio", >+ "description": "Add a bibliographic record to Koha. An optional `x-framework-id`\nmay be passed to specify the cataloguing framework to be used (instead\nof the default).\n\nThe request body is expected to contain a MARC record in the format specified in\nthe `Content-type` header you pass. Possible values for this header and the corresponding\nrecord formats expected are listed below:\n\n* application/marcxml+xml: MARCXML\n* application/marc-in-json: MARC-in-JSON\n* application/marc: Raw USMARC binary data\n", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/framework_id_header" >+ }, >+ { >+ "$ref": "#/parameters/marc_schema_header" >+ }, >+ { >+ "$ref": "#/parameters/confirm_not_duplicate_header" >+ }, >+ { >+ "$ref": "#/parameters/record_source_id_header" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A biblio" >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "406": { >+ "description": "Not acceptable", >+ "schema": { >+ "type": "array", >+ "description": "Accepted content-types", >+ "items": { >+ "type": "string" >+ } >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "editcatalogue": "edit_catalogue" >+ } >+ } >+ }, >+ "get": { >+ "x-mojo-to": "Biblios#list", >+ "operationId": "listBiblio", >+ "tags": [ >+ "biblios" >+ ], >+ "summary": "List biblios", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "produces": [ >+ "application/json", >+ "application/marcxml+xml", >+ "application/marc-in-json", >+ "application/marc", >+ "text/plain" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of biblios" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Biblio not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "406": { >+ "description": "Not acceptable", >+ "schema": { >+ "type": "array", >+ "description": "Accepted content-types", >+ "items": { >+ "type": "string" >+ } >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ } >+ }, >+ "/biblios/{biblio_id}": { >+ "get": { >+ "x-mojo-to": "Biblios#get", >+ "operationId": "getBiblio", >+ "tags": [ >+ "biblios" >+ ], >+ "summary": "Get biblio", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/biblio_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json", >+ "application/marcxml+xml", >+ "application/marc-in-json", >+ "application/marc", >+ "text/plain" >+ ], >+ "responses": { >+ "200": { >+ "description": "A biblio" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Biblio not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "406": { >+ "description": "Not acceptable", >+ "schema": { >+ "type": "array", >+ "description": "Accepted content-types", >+ "items": { >+ "type": "string" >+ } >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "Biblios#delete", >+ "operationId": "deleteBiblio", >+ "tags": [ >+ "biblios" >+ ], >+ "summary": "Delete biblio", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/biblio_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Biblio deleted", >+ "schema": { >+ "type": "string" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Biblio not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Unable to perform action on biblio", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "editcatalogue": "edit_catalogue" >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "Biblios#update", >+ "operationId": "updateBiblio", >+ "tags": [ >+ "biblios" >+ ], >+ "summary": "Update biblio", >+ "description": "Updates a bibliographic record to Koha. An optional `x-framework-id`\nmay be passed, to specify the cataloguing framework to be used (instead\nof the default).\n\nThe request body is expected to contain a MARC record in the format specified by\nthe `Content-type` header passed. Possible values for this headers and the corresponding\nrecord formats expected are listed below:\n\n* application/marcxml+xml: MARCXML\n* application/marc-in-json: MARC-in-JSON\n* application/marc: Raw USMARC binary data\n", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/biblio_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/framework_id_header" >+ }, >+ { >+ "$ref": "#/parameters/marc_schema_header" >+ }, >+ { >+ "$ref": "#/parameters/confirm_not_duplicate_header" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A biblio" >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Biblio not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "406": { >+ "description": "Not acceptable", >+ "schema": { >+ "type": "array", >+ "description": "Accepted content-types", >+ "items": { >+ "type": "string" >+ } >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "editcatalogue": "edit_catalogue" >+ } >+ } >+ } >+ }, >+ "/biblios/{biblio_id}/bookings": { >+ "get": { >+ "x-mojo-to": "Biblios#get_bookings", >+ "operationId": "getBiblioBookings", >+ "tags": [ >+ "bookings" >+ ], >+ "summary": "Get bookings for a biblio", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/biblio_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "item", >+ "patron" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of the bookings attached to the record", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/booking" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Biblio not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "406": { >+ "description": "Not acceptable", >+ "schema": { >+ "type": "array", >+ "description": "Accepted content-types", >+ "items": { >+ "type": "string" >+ } >+ } >+ }, >+ "500": { >+ "description": "Internal server error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "circulate": "manage_bookings" >+ } >+ } >+ } >+ }, >+ "/biblios/{biblio_id}/checkouts": { >+ "get": { >+ "x-mojo-to": "Biblios#get_checkouts", >+ "operationId": "listBiblioCheckouts", >+ "tags": [ >+ "checkouts" >+ ], >+ "summary": "List checkouts for a biblio", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/biblio_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "issuer", >+ "item", >+ "patron", >+ "library" >+ ] >+ }, >+ "collectionFormat": "csv" >+ }, >+ { >+ "name": "checked_in", >+ "in": "query", >+ "description": "By default, current checkouts are returned, when this is true then checked in checkouts are returned as result.", >+ "type": "boolean" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of checkouts", >+ "schema": { >+ "$ref": "#/definitions/checkouts" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Biblio not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": [ >+ { >+ "circulate": "circulate_remaining_permissions" >+ }, >+ { >+ "circulate": "manage_bookings" >+ } >+ ] >+ } >+ } >+ }, >+ "/biblios/{biblio_id}/items": { >+ "get": { >+ "x-mojo-to": "Biblios#get_items", >+ "operationId": "getBiblioItems", >+ "tags": [ >+ "biblios" >+ ], >+ "summary": "Get items for a biblio", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/biblio_id_pp" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "+strings", >+ "home_library", >+ "holding_library", >+ "biblio.title", >+ "checkout", >+ "checkout.patron", >+ "transfer", >+ "transfer+strings", >+ "first_hold", >+ "first_hold+strings", >+ "first_hold.patron", >+ "first_hold.desk", >+ "recall", >+ "recall+strings", >+ "recall.patron", >+ "item_type", >+ "in_bundle", >+ "bundle_host", >+ "bundle_items_lost+count", >+ "bundle_items_not_lost+count", >+ "course_item.course_reserves.course", >+ "analytics_count", >+ "cover_image_ids", >+ "item_group_item.item_group.description", >+ "serial_item.serial" >+ ] >+ }, >+ "collectionFormat": "csv" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ }, >+ { >+ "name": "bookable", >+ "in": "query", >+ "description": "Limit to items that are bookable", >+ "required": false, >+ "type": "boolean" >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of the items attached to the record", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/item" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Biblio not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "406": { >+ "description": "Not acceptable", >+ "schema": { >+ "type": "array", >+ "description": "Accepted content-types", >+ "items": { >+ "type": "string" >+ } >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Biblios#add_item", >+ "operationId": "addBiblioItem", >+ "tags": [ >+ "biblios" >+ ], >+ "summary": "Add an item for a biblio", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/biblio_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing information about the new item", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/item" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Item added", >+ "schema": { >+ "$ref": "#/definitions/item" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "editcatalogue": "edit_catalogue" >+ } >+ } >+ } >+ }, >+ "/biblios/{biblio_id}/items/{item_id}": { >+ "put": { >+ "x-mojo-to": "Biblios#update_item", >+ "operationId": "updateBiblioItem", >+ "tags": [ >+ "biblios" >+ ], >+ "summary": "Update an item for a biblio", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/biblio_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/item_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing information about the item", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/item" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Item updated", >+ "schema": { >+ "$ref": "#/definitions/item" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "editcatalogue": "edit_catalogue" >+ } >+ } >+ } >+ }, >+ "/biblios/{biblio_id}/pickup_locations": { >+ "get": { >+ "x-mojo-to": "Biblios#pickup_locations", >+ "operationId": "getBiblioPickupLocations", >+ "tags": [ >+ "biblios" >+ ], >+ "summary": "Get valid pickup locations for a biblio", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/biblio_id_pp" >+ }, >+ { >+ "name": "patron_id", >+ "in": "query", >+ "description": "Internal patron identifier", >+ "required": true, >+ "type": "integer" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Biblio pickup locations", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/library" >+ } >+ } >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Biblio not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "reserveforothers": "place_holds" >+ } >+ } >+ } >+ }, >+ "/biblios/{biblio_id}/item_groups": { >+ "get": { >+ "x-mojo-to": "Biblios::ItemGroups#list", >+ "operationId": "listItemGroups", >+ "tags": [ >+ "item_groups" >+ ], >+ "summary": "List item_groups", >+ "parameters": [ >+ { >+ "name": "biblio_id", >+ "in": "path", >+ "description": "Internal identifier for the parent bibliographic record", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "items" >+ ] >+ }, >+ "collectionFormat": "csv" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ } >+ ], >+ "produces": [ >+ "application/yaml" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of item_groups", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/item_group" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "manage_item_groups" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Biblios::ItemGroups#add", >+ "operationId": "addItemGroup", >+ "tags": [ >+ "item_groups" >+ ], >+ "summary": "Add item group", >+ "parameters": [ >+ { >+ "name": "biblio_id", >+ "in": "path", >+ "description": "Internal identifier for the parent bibliographic record", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object representing an item group", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "description": { >+ "type": "string", >+ "description": "ItemGroup description" >+ }, >+ "display_order": { >+ "type": "integer", >+ "description": "Position in waiting queue" >+ } >+ }, >+ "additionalProperties": false >+ } >+ } >+ ], >+ "produces": [ >+ "application/yaml" >+ ], >+ "responses": { >+ "201": { >+ "description": "A successfully created item group", >+ "schema": { >+ "$ref": "#/definitions/item_group" >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Resource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "manage_item_groups" >+ } >+ } >+ } >+ }, >+ "/biblios/{biblio_id}/item_groups/{item_group_id}": { >+ "get": { >+ "x-mojo-to": "Biblios::ItemGroups#get", >+ "operationId": "getItemGroup", >+ "tags": [ >+ "item_groups" >+ ], >+ "summary": "Get item group", >+ "parameters": [ >+ { >+ "name": "biblio_id", >+ "in": "path", >+ "description": "Internal identifier for the parent bibliographic record", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "name": "item_group_id", >+ "in": "path", >+ "description": "Internal identifier for the item_group", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "items" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/yaml" >+ ], >+ "responses": { >+ "200": { >+ "description": "An item group", >+ "schema": { >+ "$ref": "#/definitions/item_group" >+ } >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ItemGroup not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "manage_item_groups" >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "Biblios::ItemGroups#update", >+ "operationId": "updateItemGroup", >+ "tags": [ >+ "item_groups" >+ ], >+ "summary": "Update item group", >+ "parameters": [ >+ { >+ "name": "biblio_id", >+ "in": "path", >+ "description": "Internal identifier for the parent bibliographic record", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "name": "item_group_id", >+ "in": "path", >+ "description": "Internal identifier for the item group", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object with the new values for the item group", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "description": { >+ "type": "string", >+ "description": "ItemGroup description" >+ }, >+ "display_order": { >+ "type": "integer", >+ "description": "Position in waiting queue" >+ } >+ }, >+ "additionalProperties": false >+ } >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "items" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/yaml" >+ ], >+ "responses": { >+ "200": { >+ "description": "The updated item group", >+ "schema": { >+ "$ref": "#/definitions/item_group" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ItemGroup not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "manage_item_groups" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "Biblios::ItemGroups#delete", >+ "operationId": "deleteItemGroup", >+ "tags": [ >+ "item_groups" >+ ], >+ "summary": "Delete item group", >+ "parameters": [ >+ { >+ "name": "biblio_id", >+ "in": "path", >+ "description": "Internal identifier for the parent bibliographic record", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "name": "item_group_id", >+ "in": "path", >+ "description": "Internal identifier for the item group", >+ "required": true, >+ "type": "string" >+ } >+ ], >+ "produces": [ >+ "application/yaml" >+ ], >+ "responses": { >+ "204": { >+ "description": "ItemGroup deleted", >+ "schema": { >+ "type": "string" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ItemGroup not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "manage_item_groups" >+ } >+ } >+ } >+ }, >+ "/biblios/{biblio_id}/item_groups/{item_group_id}/items": { >+ "post": { >+ "x-mojo-to": "Biblios::ItemGroups::Items#add", >+ "operationId": "addItemGroupItem", >+ "tags": [ >+ "item_groups" >+ ], >+ "summary": "Add item to item group", >+ "parameters": [ >+ { >+ "name": "biblio_id", >+ "in": "path", >+ "description": "Internal identifier for the parent bibliographic record", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "name": "item_group_id", >+ "in": "path", >+ "description": "Internal identifier for the item group", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing an item_id", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "item_id": { >+ "type": "integer", >+ "description": "Internal identifier for an item to be linked" >+ } >+ }, >+ "additionalProperties": false >+ } >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "items" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/yaml" >+ ], >+ "responses": { >+ "201": { >+ "description": "Item linked to item group" >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Request conflicts", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "manage_item_groups" >+ } >+ } >+ } >+ }, >+ "/biblios/{biblio_id}/item_groups/{item_group_id}/items/{item_id}": { >+ "delete": { >+ "x-mojo-to": "Biblios::ItemGroups::Items#delete", >+ "operationId": "deleteItemGroupItems", >+ "tags": [ >+ "item_groups" >+ ], >+ "summary": "Delete item from item group", >+ "parameters": [ >+ { >+ "name": "biblio_id", >+ "in": "path", >+ "description": "Internal identifier for the parent bibliographic record", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "name": "item_group_id", >+ "in": "path", >+ "description": "Internal identifier for the item group", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "name": "item_id", >+ "in": "path", >+ "description": "Internal identifier for the item", >+ "required": true, >+ "type": "string" >+ } >+ ], >+ "produces": [ >+ "application/yaml" >+ ], >+ "responses": { >+ "204": { >+ "description": "Item unlinked from item group", >+ "schema": { >+ "type": "string" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Item not linked to item group", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "manage_item_groups" >+ } >+ } >+ } >+ }, >+ "/biblios/{biblio_id}/merge": { >+ "post": { >+ "x-mojo-to": "Biblios#merge", >+ "operationId": "mergeBiblios", >+ "tags": [ >+ "biblios" >+ ], >+ "summary": "Merge Biblios", >+ "parameters": [ >+ { >+ "name": "biblio_id", >+ "in": "path", >+ "description": "Bilblionumber", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "required": true, >+ "description": "JSON Object with params and an optional marc record in MARC-in-JSON format", >+ "schema": { >+ "$ref": "#/definitions/merge_biblios" >+ } >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/marc-in-json" >+ ], >+ "responses": { >+ "200": { >+ "description": "The merge result as a biblio record" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Biblio not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "editcatalogue" >+ } >+ } >+ } >+ }, >+ "/cash_registers/{cash_register_id}/cashups": { >+ "get": { >+ "x-mojo-to": "CashRegisters::Cashups#list", >+ "operationId": "listCashups", >+ "tags": [ >+ "cashups" >+ ], >+ "summary": "List cashups for the cash register", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/cash_register_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "manager" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "Cashups performed on this register", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/cashup" >+ } >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Register not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "cash_management": "cashup" >+ } >+ } >+ } >+ }, >+ "/cashups/{cashup_id}": { >+ "get": { >+ "x-mojo-to": "CashRegisters::Cashups#get", >+ "operationId": "getCashup", >+ "tags": [ >+ "cashups" >+ ], >+ "summary": "Get cashup", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/cashup_id_pp" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "summary" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A cashup", >+ "schema": { >+ "$ref": "#/definitions/cashup" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "cash_management": "cashup" >+ } >+ } >+ } >+ }, >+ "/checkouts": { >+ "get": { >+ "x-mojo-to": "Checkouts#list", >+ "operationId": "listCheckouts", >+ "tags": [ >+ "checkouts" >+ ], >+ "summary": "List checkouts", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_qp" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ }, >+ { >+ "name": "checked_in", >+ "in": "query", >+ "description": "By default, current checkouts are returned, when this is true then checked in checkouts are returned as result.", >+ "type": "boolean" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "issuer", >+ "renewals" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of checkouts", >+ "schema": { >+ "$ref": "#/definitions/checkouts" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": [ >+ { >+ "circulate": "circulate_remaining_permissions" >+ }, >+ { >+ "circulate": "manage_bookings" >+ } >+ ] >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Checkouts#add", >+ "operationId": "addCheckout", >+ "tags": [ >+ "checkouts", >+ "patrons" >+ ], >+ "summary": "Add a new checkout", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing information about the new checkout", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/checkout" >+ } >+ }, >+ { >+ "name": "confirmation", >+ "in": "query", >+ "description": "A JWT confirmation token", >+ "required": false, >+ "type": "string" >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Created checkout", >+ "schema": { >+ "$ref": "#/definitions/checkout" >+ } >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Cannot create checkout", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating checkout", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "412": { >+ "description": "Precondition failed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "circulate": "circulate_remaining_permissions" >+ } >+ } >+ } >+ }, >+ "/checkouts/{checkout_id}": { >+ "get": { >+ "x-mojo-to": "Checkouts#get", >+ "operationId": "getCheckout", >+ "tags": [ >+ "checkouts" >+ ], >+ "summary": "Get checkout", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/checkout_id_pp" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "issuer", >+ "renewals" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Updated borrower's checkout", >+ "schema": { >+ "$ref": "#/definitions/checkout" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Checkout not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "circulate": "circulate_remaining_permissions" >+ } >+ } >+ } >+ }, >+ "/checkouts/{checkout_id}/allows_renewal": { >+ "get": { >+ "x-mojo-to": "Checkouts#allows_renewal", >+ "operationId": "allows_renewalCheckout", >+ "tags": [ >+ "checkouts" >+ ], >+ "summary": "Get renewability for a checkout", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/checkout_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Checkout renewability information", >+ "schema": { >+ "$ref": "#/definitions/allows_renewal" >+ } >+ }, >+ "403": { >+ "description": "Forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Checkout not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "circulate": "circulate_remaining_permissions" >+ } >+ } >+ } >+ }, >+ "/checkouts/{checkout_id}/renewals": { >+ "post": { >+ "x-mojo-to": "Checkouts#renew", >+ "operationId": "renewsCheckout", >+ "tags": [ >+ "checkouts" >+ ], >+ "summary": "Renew a checkout", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/checkout_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/seen_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Updated borrower's checkout", >+ "schema": { >+ "$ref": "#/definitions/checkout" >+ } >+ }, >+ "403": { >+ "description": "Cannot renew checkout", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Checkout not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "circulate": "circulate_remaining_permissions" >+ } >+ } >+ }, >+ "get": { >+ "x-mojo-to": "Checkouts#get_renewals", >+ "operationId": "getRenewals", >+ "tags": [ >+ "checkouts" >+ ], >+ "summary": "List renewals for a checkout", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/checkout_id_pp" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "renewer" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "List of checkouts renewals", >+ "schema": { >+ "$ref": "#/definitions/renewals" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Checkout not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "circulate": "circulate_remaining_permissions" >+ } >+ } >+ } >+ }, >+ "/checkouts/{checkout_id}/renewal": { >+ "post": { >+ "x-mojo-to": "Checkouts#renew", >+ "operationId": "renewCheckout", >+ "tags": [ >+ "checkouts" >+ ], >+ "summary": "Renew a checkout", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/checkout_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/seen_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Updated borrower's checkout", >+ "schema": { >+ "$ref": "#/definitions/checkout" >+ } >+ }, >+ "403": { >+ "description": "Cannot renew checkout", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Checkout not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "circulate": "circulate_remaining_permissions" >+ } >+ } >+ } >+ }, >+ "/checkouts/availability": { >+ "get": { >+ "x-mojo-to": "Checkouts#get_availability", >+ "operationId": "availabilityCheckouts", >+ "tags": [ >+ "checkouts" >+ ], >+ "summary": "Get checkout availability", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_qp" >+ }, >+ { >+ "$ref": "#/parameters/item_id_qp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Availability", >+ "schema": { >+ "$ref": "#/definitions/checkout_availability" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "circulate": "circulate_remaining_permissions" >+ } >+ } >+ } >+ }, >+ "/circulation-rules/kinds": { >+ "get": { >+ "x-mojo-to": "CirculationRules#get_kinds", >+ "operationId": "getCirculationRuleKinds", >+ "tags": [ >+ "circulation_rules" >+ ], >+ "summary": "Get circulation rules kinds", >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A map of rule kind information", >+ "schema": { >+ "type": "object", >+ "additionalProperties": { >+ "$ref": "#/definitions/circ-rule-kind" >+ } >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ } >+ } >+ }, >+ "/cities": { >+ "get": { >+ "x-mojo-to": "Cities#list", >+ "operationId": "listCities", >+ "tags": [ >+ "cities" >+ ], >+ "summary": "List cities", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "name": "name", >+ "in": "query", >+ "description": "Case insensative search on city name", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "state", >+ "in": "query", >+ "description": "Case insensative search on city state", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "country", >+ "in": "query", >+ "description": "Case insensative search on city country", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "postal_code", >+ "in": "query", >+ "description": "Case Insensative search on city postal code", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of cities", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/city" >+ } >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Cities#add", >+ "operationId": "addCity", >+ "tags": [ >+ "cities" >+ ], >+ "summary": "Add city", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing informations about the new hold", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/city" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "City added", >+ "schema": { >+ "$ref": "#/definitions/city" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_cities" >+ } >+ } >+ } >+ }, >+ "/cities/{city_id}": { >+ "get": { >+ "x-mojo-to": "Cities#get", >+ "operationId": "getCity", >+ "tags": [ >+ "cities" >+ ], >+ "summary": "Get city", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/city_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A city", >+ "schema": { >+ "$ref": "#/definitions/city" >+ } >+ }, >+ "404": { >+ "description": "City not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "Cities#update", >+ "operationId": "updateCity", >+ "tags": [ >+ "cities" >+ ], >+ "summary": "Update city", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/city_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A city object", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/city" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A city", >+ "schema": { >+ "$ref": "#/definitions/city" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "City not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_cities" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "Cities#delete", >+ "operationId": "deleteCity", >+ "tags": [ >+ "cities" >+ ], >+ "summary": "Delete city", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/city_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "City deleted" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "City not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_cities" >+ } >+ } >+ } >+ }, >+ "/clubs/{club_id}/holds": { >+ "post": { >+ "x-mojo-to": "Clubs::Holds#add", >+ "operationId": "addClubHold", >+ "tags": [ >+ "clubs" >+ ], >+ "summary": "Add a club hold", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/club_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing informations about the new hold", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "biblio_id": { >+ "description": "Internal biblio identifier", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "item_id": { >+ "description": "Internal item identifier", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "pickup_library_id": { >+ "description": "Internal library identifier for the pickup library", >+ "type": "string" >+ }, >+ "expiration_date": { >+ "description": "Hold end date", >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date" >+ }, >+ "notes": { >+ "description": "Notes related to this hold", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "item_type": { >+ "description": "Limit hold on one itemtype (ignored for item-level holds)", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "default_patron_home": { >+ "description": "For each patron, set pickup location to patron's home library if possible", >+ "type": "integer" >+ } >+ }, >+ "required": [ >+ "pickup_library_id" >+ ], >+ "additionalProperties": false >+ } >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Created club hold", >+ "schema": { >+ "$ref": "#/definitions/club_hold" >+ } >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Hold not allowed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Club not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Hold not allowed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "reserveforothers": "1" >+ } >+ } >+ } >+ }, >+ "/config/smtp_servers": { >+ "get": { >+ "x-mojo-to": "Config::SMTP::Servers#list", >+ "operationId": "listSMTPServers", >+ "tags": [ >+ "smtp_servers" >+ ], >+ "summary": "List SMTP servers", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of SMTP servers", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/smtp_server" >+ } >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_smtp_servers" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Config::SMTP::Servers#add", >+ "operationId": "addSMTPServer", >+ "tags": [ >+ "smtp_servers" >+ ], >+ "summary": "Add SMTP server", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object representing a new SMTP server configuration", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/smtp_server" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "An SMTP server object", >+ "schema": { >+ "$ref": "#/definitions/smtp_server" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_smtp_servers" >+ } >+ } >+ } >+ }, >+ "/config/smtp_servers/{smtp_server_id}": { >+ "get": { >+ "x-mojo-to": "Config::SMTP::Servers#get", >+ "operationId": "getSMTPServer", >+ "tags": [ >+ "smtp_servers" >+ ], >+ "summary": "Get SMTP server", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/smtp_server_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "An SMTP server object", >+ "schema": { >+ "$ref": "#/definitions/smtp_server" >+ } >+ }, >+ "404": { >+ "description": "Object not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict updating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_smtp_servers" >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "Config::SMTP::Servers#update", >+ "operationId": "updateSMTPServer", >+ "tags": [ >+ "smtp_servers" >+ ], >+ "summary": "Update SMTP server", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/smtp_server_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "An SMTP server object", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/smtp_server" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "An SMTP server object", >+ "schema": { >+ "$ref": "#/definitions/smtp_server" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Object not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_smtp_servers" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "Config::SMTP::Servers#delete", >+ "operationId": "deleteSMTPServer", >+ "tags": [ >+ "smtp_servers" >+ ], >+ "summary": "Delete SMTP server", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/smtp_server_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "SMTP server deleted" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Object not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_smtp_servers" >+ } >+ } >+ } >+ }, >+ "/deleted/biblios": { >+ "get": { >+ "x-mojo-to": "DeletedBiblios#list", >+ "operationId": "listDeletedBiblios", >+ "tags": [ >+ "biblios" >+ ], >+ "summary": "List deleted biblios", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "produces": [ >+ "application/json", >+ "application/marcxml+xml", >+ "application/marc-in-json", >+ "application/marc", >+ "text/plain" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of deleted biblios" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Biblio not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "406": { >+ "description": "Not acceptable", >+ "schema": { >+ "type": "array", >+ "description": "Accepted content-types", >+ "items": { >+ "type": "string" >+ } >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ } >+ }, >+ "/deleted/biblios/{biblio_id}": { >+ "get": { >+ "x-mojo-to": "DeletedBiblios#get", >+ "operationId": "getDeletedBiblio", >+ "tags": [ >+ "biblios" >+ ], >+ "summary": "Get deleted biblio", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/biblio_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json", >+ "application/marcxml+xml", >+ "application/marc-in-json", >+ "application/marc", >+ "text/plain" >+ ], >+ "responses": { >+ "200": { >+ "description": "A deleted biblio" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Biblio not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "406": { >+ "description": "Not acceptable", >+ "schema": { >+ "type": "array", >+ "description": "Accepted content-types", >+ "items": { >+ "type": "string" >+ } >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ } >+ }, >+ "/erm/config": { >+ "get": { >+ "x-mojo-to": "ERM#config", >+ "operationId": "getERMconfig", >+ "description": "This resource returns a list of options needed for the ERM Vue app. EXPERIMENTAL - DO NOT RELY on this, it is subject to change!", >+ "summary": "get the ERM config", >+ "tags": [ >+ "erm_config" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "The ERM config", >+ "schema": { >+ "$ref": "#/definitions/erm_config" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/agreements": { >+ "get": { >+ "x-mojo-to": "ERM::Agreements#list", >+ "operationId": "listErmAgreements", >+ "tags": [ >+ "erm_agreements" >+ ], >+ "summary": "List agreements", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Case insensitive search on agreement agreement_id", >+ "in": "query", >+ "name": "agreement_id", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "description": "Case insensitive search on agreement vendor_id", >+ "in": "query", >+ "name": "vendor_id", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "description": "Case insensitive search on agreement name", >+ "in": "query", >+ "name": "name", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on agreement description", >+ "in": "query", >+ "name": "description", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on agreement status", >+ "in": "query", >+ "name": "status", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on agreement closure_reason", >+ "in": "query", >+ "name": "closure_reason", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on agreement is_perpetual", >+ "in": "query", >+ "name": "is_perpetual", >+ "required": false, >+ "type": "boolean" >+ }, >+ { >+ "description": "Case insensitive search on agreement renewal_priority", >+ "in": "query", >+ "name": "renewal_priority", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on agreement license_info", >+ "in": "query", >+ "name": "license_info", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "filter by expired agreements", >+ "in": "query", >+ "name": "max_expiration_date", >+ "type": "string", >+ "format": "date" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "user_roles", >+ "vendor" >+ ] >+ }, >+ "collectionFormat": "csv" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of agreement", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_agreement" >+ }, >+ "type": "array" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "ERM::Agreements#add", >+ "operationId": "addErmAgreements", >+ "tags": [ >+ "erm_agreements" >+ ], >+ "summary": "Add agreement", >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "A JSON object containing information about the new agreement", >+ "in": "body", >+ "name": "body", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/erm_agreement" >+ } >+ } >+ ], >+ "responses": { >+ "201": { >+ "description": "A successfully created agreement", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_agreement" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "413": { >+ "description": "Payload too large", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/agreements/{agreement_id}": { >+ "get": { >+ "x-mojo-to": "ERM::Agreements#get", >+ "operationId": "getErmAgreements", >+ "tags": [ >+ "erm_agreements" >+ ], >+ "summary": "Get agreement", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/agreement_id_pp" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "periods", >+ "user_roles", >+ "user_roles.patron", >+ "agreement_licenses", >+ "agreement_licenses.license", >+ "agreement_relationships", >+ "agreement_relationships.agreement", >+ "agreement_relationships.related_agreement", >+ "agreement_packages", >+ "agreement_packages.package", >+ "documents", >+ "vendor" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "An agreement", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_agreement" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "ERM::Agreements#update", >+ "operationId": "updateErmAgreements", >+ "tags": [ >+ "erm_agreements" >+ ], >+ "summary": "Update agreement", >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/agreement_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing new information about existing agreement", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/erm_agreement" >+ } >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "periods", >+ "user_roles", >+ "agreement_licenses", >+ "agreement_relationships", >+ "documents" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A successfully updated agreement", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_agreement" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in updating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "413": { >+ "description": "Payload too large", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "ERM::Agreements#delete", >+ "operationId": "deleteErmAgreements", >+ "tags": [ >+ "erm_agreements" >+ ], >+ "summary": "Delete agreement", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/agreement_id_pp" >+ } >+ ], >+ "responses": { >+ "204": { >+ "description": "Agreement deleted" >+ }, >+ "400": { >+ "description": "Agreement deletion failed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in deleting resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/documents/{document_id}/file/content": { >+ "get": { >+ "x-mojo-to": "ERM::Documents#get", >+ "operationId": "downloadErmDocument", >+ "tags": [ >+ "erm_documents" >+ ], >+ "summary": "Download erm document", >+ "produces": [ >+ "application/octet-stream" >+ ], >+ "parameters": [ >+ { >+ "description": "Case insensitive search on document_id", >+ "in": "path", >+ "name": "document_id", >+ "required": true, >+ "type": "integer" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "Anagreement", >+ "schema": { >+ "type": "file" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/counter_files": { >+ "get": { >+ "x-mojo-to": "ERM::EUsage::CounterFiles#list", >+ "operationId": "listErmCounterFiles", >+ "tags": [ >+ "erm_counter_files" >+ ], >+ "summary": "List counter_files", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Case insensitive search on counter_file erm_counter_files_id", >+ "in": "query", >+ "name": "erm_counter_files_id", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "description": "Case insensitive search on counter_file usage_data_provider_id", >+ "in": "query", >+ "name": "usage_data_provider_id", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "description": "Case insensitive search on counter_file filename", >+ "in": "query", >+ "name": "filename", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on counter_file type", >+ "in": "query", >+ "name": "type", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on counter_file file_content", >+ "in": "query", >+ "name": "file_content", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on counter_file date_uploaded", >+ "in": "query", >+ "name": "date_uploaded", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "counter_logs" >+ ] >+ }, >+ "collectionFormat": "csv" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of counter_files", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_counter_file" >+ }, >+ "type": "array" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/counter_files/{erm_counter_files_id}": { >+ "delete": { >+ "x-mojo-to": "ERM::EUsage::CounterFiles#delete", >+ "operationId": "deleteERMCounterFiles", >+ "tags": [ >+ "erm_counter_files" >+ ], >+ "summary": "Delete counter_file", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/erm_counter_files_id_pp" >+ } >+ ], >+ "responses": { >+ "204": { >+ "description": "counter_file deleted" >+ }, >+ "400": { >+ "description": "counter_file deletion failed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "conflict in deleting resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "internal server error. possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/counter_files/{erm_counter_files_id}/file/content": { >+ "get": { >+ "x-mojo-to": "ERM::EUsage::CounterFiles#get", >+ "operationId": "downloadCounterFile", >+ "tags": [ >+ "erm_counter_files" >+ ], >+ "summary": "Download Counter file", >+ "produces": [ >+ "application/octet-stream" >+ ], >+ "parameters": [ >+ { >+ "description": "Case insensitive search on erm_counter_files_id", >+ "in": "path", >+ "name": "erm_counter_files_id", >+ "required": true, >+ "type": "integer" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A counter file", >+ "schema": { >+ "type": "file" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/counter_logs": { >+ "get": { >+ "x-mojo-to": "ERM::EUsage::CounterLogs#list", >+ "operationId": "listErmCounterLogs", >+ "tags": [ >+ "erm_counter_logs" >+ ], >+ "summary": "List counter_logs", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Case insensitive search on counter_log usage_data_provider_id", >+ "in": "query", >+ "name": "usage_data_provider_id", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of counter_logs", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_counter_log" >+ }, >+ "type": "array" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/counter_registry": { >+ "get": { >+ "x-mojo-to": "ERM::EUsage::CounterRegistry#list", >+ "operationId": "listCounterRegisteredPlatforms", >+ "tags": [ >+ "erm_counter_registry" >+ ], >+ "summary": "List platforms currently registered with the counter registry", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of counter registered platforms", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_counter_registry" >+ }, >+ "type": "array" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/default_usage_reports": { >+ "get": { >+ "x-mojo-to": "ERM::EUsage::DefaultUsageReports#list", >+ "operationId": "listErmDefaultUsageReports", >+ "tags": [ >+ "erm_default_usage_reports" >+ ], >+ "summary": "List default_usage_reports", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Case insensitive search on erm_default_usage_report_id", >+ "in": "query", >+ "name": "erm_default_usage_report_id", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "description": "Case insensitive search on default_usage_report report_name", >+ "in": "query", >+ "name": "report_name", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "description": "Case insensitive search on default_usage_report report_url_params", >+ "in": "query", >+ "name": "report_url_params", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of default_usage_reports", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_default_usage_report" >+ }, >+ "type": "array" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "ERM::EUsage::DefaultUsageReports#add", >+ "operationId": "addErmDefaultUsageReports", >+ "tags": [ >+ "erm_default_usage_reports" >+ ], >+ "summary": "Add default_usage_report", >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "A JSON object containing information about the new default_usage_report", >+ "in": "body", >+ "name": "body", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/erm_default_usage_report" >+ } >+ } >+ ], >+ "responses": { >+ "201": { >+ "description": "A successfully created default_usage_report", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_default_usage_report" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "413": { >+ "description": "Payload too large", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/default_usage_reports/{erm_default_usage_report_id}": { >+ "delete": { >+ "x-mojo-to": "ERM::EUsage::DefaultUsageReports#delete", >+ "operationId": "deleteERMDefaultUsageReports", >+ "tags": [ >+ "erm_default_usage_reports" >+ ], >+ "summary": "Delete default_usage_report", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/erm_default_usage_report_id_pp" >+ } >+ ], >+ "responses": { >+ "204": { >+ "description": "default_usage_report deleted" >+ }, >+ "400": { >+ "description": "default_usage_report deletion failed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "conflict in deleting resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "internal server error. possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/eholdings/{provider}/titles": { >+ "get": { >+ "x-mojo-to": "ERM::EHoldings::Titles#list", >+ "operationId": "listErmEHoldingsTitles", >+ "tags": [ >+ "erm_eholdings_titles" >+ ], >+ "summary": "List eholdings titles", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Provider name", >+ "in": "path", >+ "name": "provider", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title title_id", >+ "in": "query", >+ "name": "title_id", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "description": "Case insensitive search on title publication_title", >+ "in": "query", >+ "name": "publication_title", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title external_id", >+ "in": "query", >+ "name": "external_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title print_identifier", >+ "in": "query", >+ "name": "print_identifier", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title online_identifier", >+ "in": "query", >+ "name": "online_identifier", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title date_first_issue_online", >+ "in": "query", >+ "name": "date_first_issue_online", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title num_first_vol_online", >+ "in": "query", >+ "name": "num_first_vol_online", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title num_first_issue_online", >+ "in": "query", >+ "name": "num_first_issue_online", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title date_last_issue_online", >+ "in": "query", >+ "name": "date_last_issue_online", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title num_last_vol_online", >+ "in": "query", >+ "name": "num_last_vol_online", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title num_last_issue_online", >+ "in": "query", >+ "name": "num_last_issue_online", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title title_url", >+ "in": "query", >+ "name": "title_url", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title first_author", >+ "in": "query", >+ "name": "first_author", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title embargo_info", >+ "in": "query", >+ "name": "embargo_info", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title coverage_depth", >+ "in": "query", >+ "name": "coverage_depth", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title notes", >+ "in": "query", >+ "name": "notes", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title publisher_name", >+ "in": "query", >+ "name": "publisher_name", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title publication_type", >+ "in": "query", >+ "name": "publication_type", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title date_monograph_published_print", >+ "in": "query", >+ "name": "date_monograph_published_print", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title date_monograph_published_online", >+ "in": "query", >+ "name": "date_monograph_published_online", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title monograph_volume", >+ "in": "query", >+ "name": "monograph_volume", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title monograph_edition", >+ "in": "query", >+ "name": "monograph_edition", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title first_editor", >+ "in": "query", >+ "name": "first_editor", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title parent_publication_title_id", >+ "in": "query", >+ "name": "parent_publication_title_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title preceding_publication_title_id", >+ "in": "query", >+ "name": "preceding_publication_title_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title access_type", >+ "in": "query", >+ "name": "access_type", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "resources.package" >+ ] >+ }, >+ "collectionFormat": "csv" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of eHoldings titles", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_eholdings_title" >+ }, >+ "type": "array" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "ERM::EHoldings::Titles#add", >+ "operationId": "addErmEHoldingsTitles", >+ "tags": [ >+ "erm_eholdings_titles" >+ ], >+ "summary": "Add eholding", >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Provider name", >+ "in": "path", >+ "name": "provider", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "description": "A JSON object containing information about the new title", >+ "in": "body", >+ "name": "body", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/erm_eholdings_title" >+ } >+ } >+ ], >+ "responses": { >+ "201": { >+ "description": "A successfully created title", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_eholdings_title" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/eholdings/local/titles/import": { >+ "post": { >+ "x-mojo-to": "ERM::EHoldings::Titles#import_from_list", >+ "operationId": "importErmEHoldingsTitles", >+ "tags": [ >+ "erm_eholdings_titles" >+ ], >+ "summary": "Import local titles", >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "The list_id of the list to import", >+ "in": "body", >+ "name": "body", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "list_id": { >+ "type": "string" >+ }, >+ "package_id": { >+ "type": "string" >+ } >+ }, >+ "additionalProperties": false >+ } >+ } >+ ], >+ "responses": { >+ "201": { >+ "description": "Successfully enqueued the import job", >+ "schema": { >+ "type": "object", >+ "properties": { >+ "job_id": { >+ "type": "string" >+ } >+ }, >+ "additionalProperties": false >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/eholdings/{provider}/titles/{title_id}": { >+ "get": { >+ "x-mojo-to": "ERM::EHoldings::Titles#get", >+ "operationId": "getErmEHoldingsTitles", >+ "tags": [ >+ "erm_eholdings_titles" >+ ], >+ "summary": "Get titles", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Provider name", >+ "in": "path", >+ "name": "provider", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/eholdings_title_id_pp" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "resources", >+ "resources.package" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "An eHolding title", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_eholdings_title" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "ERM::EHoldings::Titles#update", >+ "operationId": "updateErmEHoldingsTitles", >+ "tags": [ >+ "erm_eholdings_titles" >+ ], >+ "summary": "Update titles", >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Provider name", >+ "in": "path", >+ "name": "provider", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/eholdings_title_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing new information about existing title", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/erm_eholdings_title" >+ } >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "resources", >+ "resources.package" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A successfully updated title", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_eholdings_title" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in updating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "ERM::EHoldings::Titles#delete", >+ "operationId": "deleteErmEHoldingsTitles", >+ "tags": [ >+ "erm_eholdings_titles" >+ ], >+ "summary": "Delete eHolding title", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Provider name", >+ "in": "path", >+ "name": "provider", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/eholdings_title_id_pp" >+ } >+ ], >+ "responses": { >+ "204": { >+ "description": "title deleted" >+ }, >+ "400": { >+ "description": "title deletion failed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in deleting resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/eholdings/{provider}/titles/{title_id}/resources": { >+ "get": { >+ "x-mojo-to": "ERM::EHoldings::Resources#list", >+ "operationId": "listErmEHoldingsTitlesResources", >+ "tags": [ >+ "erm_eholdings_titles" >+ ], >+ "summary": "List eholdings resources", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Provider name", >+ "in": "path", >+ "name": "provider", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on resource_id", >+ "in": "query", >+ "name": "resource_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on started_on", >+ "in": "query", >+ "name": "started_on", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on ended_on", >+ "in": "query", >+ "name": "ended_on", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on proxy", >+ "in": "query", >+ "name": "proxy", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/eholdings_title_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "title.publication_title" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of eHoldings resources", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_eholdings_resource" >+ }, >+ "type": "array" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/eholdings/{provider}/packages": { >+ "get": { >+ "x-mojo-to": "ERM::EHoldings::Packages#list", >+ "operationId": "listErmEHoldingsPackages", >+ "tags": [ >+ "erm_eholdings_packages" >+ ], >+ "summary": "List packages", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Provider name", >+ "in": "path", >+ "name": "provider", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on package package_id", >+ "in": "query", >+ "name": "package_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on package vendor_id", >+ "in": "query", >+ "name": "vendor_id", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "description": "Case insensitive search on package name", >+ "in": "query", >+ "name": "name", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on package external_package_id", >+ "in": "query", >+ "name": "external_package_id", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "description": "Case insensitive search on package type", >+ "in": "query", >+ "name": "package_type", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on package content_type", >+ "in": "query", >+ "name": "content_type", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on package notes", >+ "in": "query", >+ "name": "notes", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on package creation date", >+ "in": "query", >+ "name": "created_on", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "vendor", >+ "vendor.name", >+ "resources+count", >+ "resources" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of package", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_eholdings_package" >+ }, >+ "type": "array" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "ERM::EHoldings::Packages#add", >+ "operationId": "addErmEHoldingsPackages", >+ "tags": [ >+ "erm_eholdings_packages" >+ ], >+ "summary": "Add package", >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Provider name", >+ "in": "path", >+ "name": "provider", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "description": "A JSON object containing information about the new package", >+ "in": "body", >+ "name": "body", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/erm_eholdings_package" >+ } >+ } >+ ], >+ "responses": { >+ "201": { >+ "description": "A successfully created package", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_eholdings_package" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/eholdings/{provider}/resources": { >+ "get": { >+ "x-mojo-to": "ERM::EHoldings::Resources#list", >+ "operationId": "listErmEHoldingsResources", >+ "tags": [ >+ "erm_eholdings_resources" >+ ], >+ "summary": "List eholdings resources", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Provider name", >+ "in": "path", >+ "name": "provider", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on resource_id", >+ "in": "query", >+ "name": "resource_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on package_id", >+ "in": "query", >+ "name": "package_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on title vendor_id", >+ "in": "query", >+ "name": "vendor_id", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "description": "Case insensitive search on started_on", >+ "in": "query", >+ "name": "started_on", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on ended_on", >+ "in": "query", >+ "name": "ended_on", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on proxy", >+ "in": "query", >+ "name": "proxy", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of eHoldings resources", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_eholdings_resource" >+ }, >+ "type": "array" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/eholdings/{provider}/resources/{resource_id}": { >+ "get": { >+ "x-mojo-to": "ERM::EHoldings::Resources#get", >+ "operationId": "getErmEHoldingsResources", >+ "tags": [ >+ "erm_eholdings_resources" >+ ], >+ "summary": "Get resources", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Provider name", >+ "in": "path", >+ "name": "provider", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/eholdings_resource_id_pp" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "title", >+ "package", >+ "vendor" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "An eHolding resource", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_eholdings_resource" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ }, >+ "patch": { >+ "x-mojo-to": "ERM::EHoldings::Resources#edit", >+ "operationId": "editErmEHoldingsResources", >+ "tags": [ >+ "erm_eholdings_resources" >+ ], >+ "summary": "Edit a resource", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Provider name", >+ "in": "path", >+ "name": "provider", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "description": "A JSON object containing the fields to edit", >+ "in": "body", >+ "name": "body", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "is_selected": { >+ "description": "Add or remove this resource from remote holdings", >+ "type": "boolean" >+ } >+ }, >+ "additionalProperties": false >+ } >+ }, >+ { >+ "$ref": "#/parameters/eholdings_resource_id_pp" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "What has been modified", >+ "schema": { >+ "type": "object", >+ "properties": { >+ "is_selected": { >+ "description": "Add or remove this resource from remote holdings", >+ "type": "boolean" >+ } >+ }, >+ "additionalProperties": false >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/eholdings/{provider}/packages/{package_id}": { >+ "get": { >+ "x-mojo-to": "ERM::EHoldings::Packages#get", >+ "operationId": "getErmEHoldingsPackages", >+ "tags": [ >+ "erm_eholdings_packages" >+ ], >+ "summary": "Get eHoldings package", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Provider name", >+ "in": "path", >+ "name": "provider", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/eholdings_package_id_pp" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "package_agreements", >+ "package_agreements.agreement", >+ "resources+count", >+ "vendor" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A package", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_eholdings_package" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "ERM::EHoldings::Packages#update", >+ "operationId": "updateErmEHoldingsPackages", >+ "tags": [ >+ "erm_eholdings_packages" >+ ], >+ "summary": "Update eHoldings package", >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Provider name", >+ "in": "path", >+ "name": "provider", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/eholdings_package_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing new information about existing package", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/erm_eholdings_package" >+ } >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "agreements", >+ "resources" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A successfully updated package", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_eholdings_package" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in updating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "ERM::EHoldings::Packages#delete", >+ "operationId": "deleteErmEHoldingsPackages", >+ "tags": [ >+ "erm_eholdings_packages" >+ ], >+ "summary": "Delete eHoldings package", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Provider name", >+ "in": "path", >+ "name": "provider", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/eholdings_package_id_pp" >+ } >+ ], >+ "responses": { >+ "204": { >+ "description": "package deleted" >+ }, >+ "400": { >+ "description": "package deletion failed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in deleting resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ }, >+ "patch": { >+ "x-mojo-to": "ERM::EHoldings::Packages#edit", >+ "operationId": "editErmEHoldingsPackages", >+ "tags": [ >+ "erm_eholdings_packages" >+ ], >+ "summary": "Edit a package", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Provider name", >+ "in": "path", >+ "name": "provider", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "description": "A JSON object containing the fields to edit", >+ "in": "body", >+ "name": "body", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "is_selected": { >+ "description": "Add or remove this package from remote holdings", >+ "type": "boolean" >+ } >+ }, >+ "additionalProperties": false >+ } >+ }, >+ { >+ "$ref": "#/parameters/eholdings_package_id_pp" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "What has been modified", >+ "schema": { >+ "type": "object", >+ "properties": { >+ "is_selected": { >+ "description": "Add or remove this package from remote holdings", >+ "type": "boolean" >+ } >+ }, >+ "additionalProperties": false >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Package not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/eholdings/{provider}/packages/{package_id}/resources": { >+ "get": { >+ "x-mojo-to": "ERM::EHoldings::Resources#list", >+ "operationId": "listErmEHoldingsPackagesResources", >+ "tags": [ >+ "erm_eholdings_packages" >+ ], >+ "summary": "List eholdings resources", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Provider name", >+ "in": "path", >+ "name": "provider", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on resource_id", >+ "in": "query", >+ "name": "resource_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on started_on", >+ "in": "query", >+ "name": "started_on", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on ended_on", >+ "in": "query", >+ "name": "ended_on", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on proxy", >+ "in": "query", >+ "name": "proxy", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/eholdings_package_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "title" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of eHoldings resources", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_eholdings_resource" >+ }, >+ "type": "array" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/eUsage/monthly_report/{data_type}": { >+ "get": { >+ "x-mojo-to": "ERM::EUsage::CustomReports#monthly_report", >+ "operationId": "getERMUsageMonthlyReport", >+ "tags": [ >+ "erm_usage_reports" >+ ], >+ "summary": "get usage monthly report", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "erm_usage_muses" >+ ] >+ }, >+ "collectionFormat": "csv" >+ }, >+ { >+ "$ref": "#/parameters/data_type_pp" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "custom_report", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_custom_report" >+ } >+ } >+ }, >+ "401": { >+ "description": "authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "internal server error. possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/eUsage/yearly_report/{data_type}": { >+ "get": { >+ "x-mojo-to": "ERM::EUsage::CustomReports#yearly_report", >+ "operationId": "getERMUsageYearlyReport", >+ "tags": [ >+ "erm_usage_reports" >+ ], >+ "summary": "get usage yearly report", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "erm_usage_yuses" >+ ] >+ }, >+ "collectionFormat": "csv" >+ }, >+ { >+ "$ref": "#/parameters/data_type_pp" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "custom_report", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_custom_report" >+ } >+ } >+ }, >+ "401": { >+ "description": "authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "internal server error. possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/eUsage/metric_types_report/{data_type}": { >+ "get": { >+ "x-mojo-to": "ERM::EUsage::CustomReports#metric_types_report", >+ "operationId": "getERMUsageMetricTypesReport", >+ "tags": [ >+ "erm_usage_reports" >+ ], >+ "summary": "get usage metric_types report", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "erm_usage_muses" >+ ] >+ }, >+ "collectionFormat": "csv" >+ }, >+ { >+ "$ref": "#/parameters/data_type_pp" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "custom_report", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_custom_report" >+ } >+ } >+ }, >+ "401": { >+ "description": "authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "internal server error. possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/eUsage/provider_rollup_report/{data_type}": { >+ "get": { >+ "x-mojo-to": "ERM::EUsage::CustomReports#provider_rollup_report", >+ "operationId": "getERMUsageProviderRollupReport", >+ "tags": [ >+ "erm_usage_reports" >+ ], >+ "summary": "get usage provider rollup report", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "erm_usage_titles.erm_usage_muses", >+ "erm_usage_platforms.erm_usage_muses", >+ "erm_usage_databases.erm_usage_muses", >+ "erm_usage_items.erm_usage_muses" >+ ] >+ }, >+ "collectionFormat": "csv" >+ }, >+ { >+ "$ref": "#/parameters/data_type_pp" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "custom_report", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_custom_report" >+ } >+ } >+ }, >+ "401": { >+ "description": "authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "internal server error. possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/licenses": { >+ "get": { >+ "x-mojo-to": "ERM::Licenses#list", >+ "operationId": "listErmLicenses", >+ "tags": [ >+ "erm_licences" >+ ], >+ "summary": "List licenses for agreements", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Case insensitive search on license license_id", >+ "in": "query", >+ "name": "license_id", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "description": "Case insensitive search on agreement vendor_id", >+ "in": "query", >+ "name": "vendor_id", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "description": "Case insensitive search on license name", >+ "in": "query", >+ "name": "name", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on license type", >+ "in": "query", >+ "name": "type", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on license status", >+ "in": "query", >+ "name": "status", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on license start date", >+ "in": "query", >+ "name": "started_on", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on license end date", >+ "in": "query", >+ "name": "ended_on", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "vendor" >+ ] >+ } >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of agreements' licenses", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_license" >+ }, >+ "type": "array" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "ERM::Licenses#add", >+ "operationId": "addERMLicenses", >+ "tags": [ >+ "erm_licences" >+ ], >+ "summary": "Add license", >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "A JSON object containing information about the new agreement's license", >+ "in": "body", >+ "name": "body", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/erm_license" >+ } >+ } >+ ], >+ "responses": { >+ "201": { >+ "description": "A successfully created license", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_license" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "413": { >+ "description": "Payload too large", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/licenses/{license_id}": { >+ "get": { >+ "x-mojo-to": "ERM::Licenses#get", >+ "operationId": "getERMlicense", >+ "tags": [ >+ "erm_licences" >+ ], >+ "summary": "get license", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/license_id_pp" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "user_roles", >+ "user_roles.patron", >+ "vendor", >+ "documents" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "license", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_license" >+ } >+ } >+ }, >+ "401": { >+ "description": "authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "internal server error. possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "ERM::Licenses#update", >+ "operationId": "updateERMlicenses", >+ "tags": [ >+ "erm_licences" >+ ], >+ "summary": "update license", >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/license_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "a json object containing new information about existing license", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/erm_license" >+ } >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "user_roles", >+ "documents" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "a successfully updated license", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_license" >+ } >+ } >+ }, >+ "400": { >+ "description": "bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "conflict in updating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "413": { >+ "description": "Payload too large", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "internal server error. possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "ERM::Licenses#delete", >+ "operationId": "deleteERMlicenses", >+ "tags": [ >+ "erm_licences" >+ ], >+ "summary": "Delete license", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/license_id_pp" >+ } >+ ], >+ "responses": { >+ "204": { >+ "description": "license deleted" >+ }, >+ "400": { >+ "description": "license deletion failed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "conflict in deleting resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "internal server error. possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/sushi_service": { >+ "get": { >+ "x-mojo-to": "ERM::EUsage::SushiServices#get", >+ "operationId": "getSushiService", >+ "tags": [ >+ "erm_sushi_service" >+ ], >+ "summary": "Get the details for a sushi service from the counter registry", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A sushi service", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_sushi_service" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/usage_data_providers": { >+ "get": { >+ "x-mojo-to": "ERM::EUsage::UsageDataProviders#list", >+ "operationId": "listErmUsageDataProviders", >+ "tags": [ >+ "erm_usage_data_providers" >+ ], >+ "summary": "List usage_data_providers", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Case insensitive search on usage_data_provider usage_data_provider_id", >+ "in": "query", >+ "name": "usage_data_provider_id", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "description": "Case insensitive search on usage_data_provider name", >+ "in": "query", >+ "name": "name", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_data_provider description", >+ "in": "query", >+ "name": "description", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_data_provider active", >+ "in": "query", >+ "name": "active", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "description": "Case insensitive search on usage_data_provider method", >+ "in": "query", >+ "name": "method", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_data_provider aggregator", >+ "in": "query", >+ "name": "aggregator", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_data_provider service_type", >+ "in": "query", >+ "name": "service_type", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_data_provider service_url", >+ "in": "query", >+ "name": "service_url", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_data_provider report_release", >+ "in": "query", >+ "name": "report_release", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_data_provider customer_id", >+ "in": "query", >+ "name": "customer_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_data_provider requestor_id", >+ "in": "query", >+ "name": "requestor_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_data_provider api_key", >+ "in": "query", >+ "name": "api_key", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_data_provider requestor_name", >+ "in": "query", >+ "name": "requestor_name", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_data_provider requestor_email", >+ "in": "query", >+ "name": "requestor_email", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_data_provider report_types", >+ "in": "query", >+ "name": "report_types", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "counter_files" >+ ] >+ }, >+ "collectionFormat": "csv" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of usage_data_providers", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_usage_data_provider" >+ }, >+ "type": "array" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "ERM::EUsage::UsageDataProviders#add", >+ "operationId": "addErmUsageDataProviders", >+ "tags": [ >+ "erm_usage_data_providers" >+ ], >+ "summary": "Add usage_data_provider", >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "A JSON object containing information about the new usage_data_provider", >+ "in": "body", >+ "name": "body", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/erm_usage_data_provider" >+ } >+ } >+ ], >+ "responses": { >+ "201": { >+ "description": "A successfully created usage_data_provider", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_usage_data_provider" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "413": { >+ "description": "Payload too large", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/usage_data_providers/{erm_usage_data_provider_id}": { >+ "get": { >+ "x-mojo-to": "ERM::EUsage::UsageDataProviders#get", >+ "operationId": "getERMUsageDataProvider", >+ "tags": [ >+ "erm_usage_data_providers" >+ ], >+ "summary": "get usage_data_provider", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/erm_usage_data_provider_id_pp" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "counter_files", >+ "erm_usage_titles.erm_usage_muses" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "usage_data_provider", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_usage_data_provider" >+ } >+ } >+ }, >+ "401": { >+ "description": "authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "internal server error. possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "ERM::EUsage::UsageDataProviders#update", >+ "operationId": "updateERMUsageDataProviders", >+ "tags": [ >+ "erm_usage_data_providers" >+ ], >+ "summary": "update usage_data_provider", >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/erm_usage_data_provider_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "a json object containing new information about existing usage_data_provider", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/erm_usage_data_provider" >+ } >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string" >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "a successfully updated usage_data_provider", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_usage_data_provider" >+ } >+ } >+ }, >+ "400": { >+ "description": "bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "conflict in updating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "413": { >+ "description": "Payload too large", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "internal server error. possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "ERM::EUsage::UsageDataProviders#delete", >+ "operationId": "deleteERMUsageDataProviders", >+ "tags": [ >+ "erm_usage_data_providers" >+ ], >+ "summary": "Delete usage_data_provider", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/erm_usage_data_provider_id_pp" >+ } >+ ], >+ "responses": { >+ "204": { >+ "description": "usage_data_provider deleted" >+ }, >+ "400": { >+ "description": "usage_data_provider deletion failed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "conflict in deleting resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "internal server error. possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/usage_data_providers/{erm_usage_data_provider_id}/process_SUSHI_response": { >+ "post": { >+ "x-mojo-to": "ERM::EUsage::UsageDataProviders#process_SUSHI_response", >+ "operationId": "processSUSHICounterUsageDataProviderHarvester", >+ "tags": [ >+ "erm_usage_data_providers" >+ ], >+ "summary": "Process SUSHI COUNTER for this data provider's harvester", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/erm_usage_data_provider_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object with the begin and end dates", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "begin_date": { >+ "type": "string", >+ "description": "begin date of the harvest", >+ "format": "date" >+ }, >+ "end_date": { >+ "type": "string", >+ "description": "end date of the harvest", >+ "format": "date" >+ } >+ }, >+ "additionalProperties": false >+ } >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "Successful SUSHI COUNTER processing", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_usage_data_provider" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/usage_data_providers/{erm_usage_data_provider_id}/process_COUNTER_file": { >+ "post": { >+ "x-mojo-to": "ERM::EUsage::UsageDataProviders#process_COUNTER_file", >+ "operationId": "processCOUNTERFileUsageDataProviderHarvester", >+ "tags": [ >+ "erm_usage_data_providers" >+ ], >+ "summary": "Process COUNTER file upload for this data provider's harvester", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/erm_usage_data_provider_id_pp" >+ }, >+ { >+ "description": "A JSON object containing information about the new counter_file", >+ "in": "body", >+ "name": "body", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/erm_counter_file" >+ } >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "Successful COUNTER file processing", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_usage_data_provider" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "413": { >+ "description": "Payload too large", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/usage_data_providers/{erm_usage_data_provider_id}/test_connection": { >+ "get": { >+ "x-mojo-to": "ERM::EUsage::UsageDataProviders#test_connection", >+ "operationId": "testUsageDataProviderHarvester", >+ "tags": [ >+ "erm_usage_data_providers" >+ ], >+ "summary": "Test this data provider's harvester", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/erm_usage_data_provider_id_pp" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "Successful connection test", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_usage_data_provider" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/usage_databases": { >+ "get": { >+ "x-mojo-to": "ERM::EUsage::UsageDatabases#list", >+ "operationId": "listErmUsageDatabases", >+ "tags": [ >+ "erm_usage_databases" >+ ], >+ "summary": "List usage_databases", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Case insensitive search on usage_database database_id", >+ "in": "query", >+ "name": "database_id", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "description": "Case insensitive search on usage_database database", >+ "in": "query", >+ "name": "database", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_database usage_data_provider_id", >+ "in": "query", >+ "name": "usage_data_provider_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_database platform", >+ "in": "query", >+ "name": "platform", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_database publisher", >+ "in": "query", >+ "name": "publisher", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_title publisher_id", >+ "in": "query", >+ "name": "publisher_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "erm_usage_muses", >+ "erm_usage_yuses" >+ ] >+ }, >+ "collectionFormat": "csv" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of usage_databases", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_usage_database" >+ }, >+ "type": "array" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/usage_items": { >+ "get": { >+ "x-mojo-to": "ERM::EUsage::UsageItems#list", >+ "operationId": "listErmUsageItems", >+ "tags": [ >+ "erm_usage_items" >+ ], >+ "summary": "List usage_items", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Case insensitive search on usage_item item_id", >+ "in": "query", >+ "name": "item_id", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "description": "Case insensitive search on usage_item item", >+ "in": "query", >+ "name": "item", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_item usage_data_provider_id", >+ "in": "query", >+ "name": "usage_data_provider_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_item platform", >+ "in": "query", >+ "name": "platform", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_item publisher", >+ "in": "query", >+ "name": "publisher", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "erm_usage_muses", >+ "erm_usage_yuses" >+ ] >+ }, >+ "collectionFormat": "csv" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of usage_items", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_usage_item" >+ }, >+ "type": "array" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/usage_platforms": { >+ "get": { >+ "x-mojo-to": "ERM::EUsage::UsagePlatforms#list", >+ "operationId": "listErmUsagePlatforms", >+ "tags": [ >+ "erm_usage_platforms" >+ ], >+ "summary": "List usage_platforms", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Case insensitive search on usage_platform platform_id", >+ "in": "query", >+ "name": "platform_id", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "description": "Case insensitive search on usage_platform platform", >+ "in": "query", >+ "name": "platform", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_platform usage_data_provider_id", >+ "in": "query", >+ "name": "usage_data_provider_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "erm_usage_muses", >+ "erm_usage_yuses" >+ ] >+ }, >+ "collectionFormat": "csv" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of usage_platforms", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_usage_platform" >+ }, >+ "type": "array" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/usage_titles": { >+ "get": { >+ "x-mojo-to": "ERM::EUsage::UsageTitles#list", >+ "operationId": "listErmUsageTitles", >+ "tags": [ >+ "erm_usage_titles" >+ ], >+ "summary": "List usage_titles", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Case insensitive search on usage_title title_id", >+ "in": "query", >+ "name": "title_id", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "description": "Case insensitive search on usage_title title", >+ "in": "query", >+ "name": "title", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_title usage_data_provider_id", >+ "in": "query", >+ "name": "usage_data_provider_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_title title_doi", >+ "in": "query", >+ "name": "title_doi", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_title print_issn", >+ "in": "query", >+ "name": "print_issn", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_title online_issn", >+ "in": "query", >+ "name": "online_issn", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_title title_uri", >+ "in": "query", >+ "name": "title_uri", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_title publisher", >+ "in": "query", >+ "name": "publisher", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_title publisher_id", >+ "in": "query", >+ "name": "publisher_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_title yop", >+ "in": "query", >+ "name": "yop", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on usage_title isbn", >+ "in": "query", >+ "name": "isbn", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "erm_usage_muses", >+ "erm_usage_yuses" >+ ] >+ }, >+ "collectionFormat": "csv" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of usage_titles", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/erm_usage_title" >+ }, >+ "type": "array" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/erm/users": { >+ "get": { >+ "x-mojo-to": "ERM#list_users", >+ "operationId": "listERMUsers", >+ "description": "This resource returns a list of patron allowed to be users of the ERM module", >+ "summary": "List possibe users for ERM", >+ "tags": [ >+ "erm_users" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "extended_attributes" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of ERM' users", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/patron" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "erm": 1 >+ } >+ } >+ } >+ }, >+ "/holds": { >+ "get": { >+ "x-mojo-to": "Holds#list", >+ "operationId": "listHolds", >+ "tags": [ >+ "holds" >+ ], >+ "summary": "List holds", >+ "parameters": [ >+ { >+ "name": "hold_id", >+ "in": "query", >+ "description": "Internal hold identifier", >+ "type": "integer" >+ }, >+ { >+ "name": "patron_id", >+ "in": "query", >+ "description": "Internal patron identifier", >+ "type": "integer" >+ }, >+ { >+ "name": "hold_date", >+ "in": "query", >+ "description": "Hold", >+ "type": "string", >+ "format": "date" >+ }, >+ { >+ "name": "biblio_id", >+ "in": "query", >+ "description": "Internal biblio identifier", >+ "type": "integer" >+ }, >+ { >+ "name": "item_group_id", >+ "in": "query", >+ "description": "Internal item group identifier", >+ "type": "integer" >+ }, >+ { >+ "name": "pickup_library_id", >+ "in": "query", >+ "description": "Internal library identifier for the pickup library", >+ "type": "string" >+ }, >+ { >+ "name": "cancellation_date", >+ "in": "query", >+ "description": "The date the hold was cancelled", >+ "type": "string", >+ "format": "date" >+ }, >+ { >+ "name": "notes", >+ "in": "query", >+ "description": "Notes related to this hold", >+ "type": "string" >+ }, >+ { >+ "name": "priority", >+ "in": "query", >+ "description": "Where in the queue the patron sits", >+ "type": "integer" >+ }, >+ { >+ "name": "status", >+ "in": "query", >+ "description": "Found status", >+ "type": "string" >+ }, >+ { >+ "name": "timestamp", >+ "in": "query", >+ "description": "Time of latest update", >+ "type": "string" >+ }, >+ { >+ "name": "item_id", >+ "in": "query", >+ "description": "Internal item identifier", >+ "type": "integer" >+ }, >+ { >+ "name": "waiting_date", >+ "in": "query", >+ "description": "Date the item was marked as waiting for the patron", >+ "type": "string" >+ }, >+ { >+ "name": "expiration_date", >+ "in": "query", >+ "description": "Date the hold expires", >+ "type": "string" >+ }, >+ { >+ "name": "lowest_priority", >+ "in": "query", >+ "description": "Lowest priority", >+ "type": "boolean" >+ }, >+ { >+ "name": "suspended", >+ "in": "query", >+ "description": "Suspended", >+ "type": "boolean" >+ }, >+ { >+ "name": "suspended_until", >+ "in": "query", >+ "description": "Suspended until", >+ "type": "string" >+ }, >+ { >+ "name": "non_priority", >+ "in": "query", >+ "description": "Non priority hold", >+ "type": "boolean" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ }, >+ { >+ "name": "old", >+ "in": "query", >+ "description": "By default, current holds are returned, when this is true then old holds are returned as result.", >+ "type": "boolean" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "cancellation_requested", >+ "biblio", >+ "pickup_library" >+ ], >+ "collectionFormat": "csv" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of holds", >+ "schema": { >+ "$ref": "#/definitions/holds" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Hold not allowed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Borrower not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "reserveforothers": "place_holds" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Holds#add", >+ "operationId": "addHold", >+ "tags": [ >+ "holds" >+ ], >+ "summary": "Place hold", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing informations about the new hold", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "patron_id": { >+ "description": "Internal patron identifier", >+ "type": "integer" >+ }, >+ "biblio_id": { >+ "description": "Internal biblio identifier", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "item_group_id": { >+ "description": "Internal item group identifier", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "hold_date": { >+ "description": "The date the hold was placed", >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date" >+ }, >+ "item_id": { >+ "description": "Internal item identifier", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "pickup_library_id": { >+ "description": "Internal library identifier for the pickup library", >+ "type": "string" >+ }, >+ "expiration_date": { >+ "description": "Hold end date", >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date" >+ }, >+ "notes": { >+ "description": "Notes related to this hold", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "item_type": { >+ "description": "Limit hold on one itemtype (ignored for item-level holds)", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "non_priority": { >+ "description": "Set this hold as non priority", >+ "type": [ >+ "boolean", >+ "null" >+ ] >+ } >+ }, >+ "required": [ >+ "patron_id", >+ "pickup_library_id" >+ ], >+ "additionalProperties": false >+ } >+ }, >+ { >+ "name": "x-koha-override", >+ "in": "header", >+ "required": false, >+ "description": "Overrides list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "any" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Created hold", >+ "schema": { >+ "$ref": "#/definitions/hold" >+ } >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Hold not allowed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Borrower not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "reserveforothers": "1" >+ } >+ } >+ } >+ }, >+ "/holds/{hold_id}": { >+ "patch": { >+ "x-mojo-to": "Holds#edit", >+ "operationId": "editHold", >+ "tags": [ >+ "holds" >+ ], >+ "summary": "Update hold", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/hold_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing fields to modify", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "priority": { >+ "description": "Position in waiting queue", >+ "type": "integer", >+ "minimum": 1 >+ }, >+ "pickup_library_id": { >+ "description": "Internal library identifier for the pickup library", >+ "type": "string" >+ }, >+ "suspended_until": { >+ "description": "Date until which the hold has been suspended", >+ "type": "string", >+ "format": "date-time" >+ } >+ }, >+ "additionalProperties": false >+ } >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Updated hold", >+ "schema": { >+ "$ref": "#/definitions/hold" >+ } >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Hold not allowed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Hold not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "reserveforothers": "1" >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "Holds#edit", >+ "operationId": "overwriteHold", >+ "tags": [ >+ "holds" >+ ], >+ "summary": "Update hold", >+ "description": "This route is being deprecated and will be removed in future releases. Please migrate your project to use PATCH /holds/{hold_id} instead.", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/hold_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing fields to modify", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "priority": { >+ "description": "Position in waiting queue", >+ "type": "integer", >+ "minimum": 1 >+ }, >+ "pickup_library_id": { >+ "description": "Internal library identifier for the pickup library", >+ "type": "string" >+ }, >+ "suspended_until": { >+ "description": "Date until which the hold has been suspended", >+ "type": "string", >+ "format": "date-time" >+ } >+ }, >+ "additionalProperties": false >+ } >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Updated hold", >+ "schema": { >+ "$ref": "#/definitions/hold" >+ } >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Hold not allowed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Hold not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "reserveforothers": "1" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "Holds#delete", >+ "operationId": "deleteHold", >+ "tags": [ >+ "holds" >+ ], >+ "summary": "Cancel hold", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/hold_id_pp" >+ }, >+ { >+ "name": "x-koha-override", >+ "in": "header", >+ "required": false, >+ "description": "Overrides list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "cancellation-request-flow" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "202": { >+ "description": "Hold request recorded" >+ }, >+ "204": { >+ "description": "Hold deleted" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Hold not allowed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Hold not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "reserveforothers": "place_holds" >+ } >+ } >+ } >+ }, >+ "/holds/{hold_id}/pickup_location": { >+ "put": { >+ "x-mojo-to": "Holds#update_pickup_location", >+ "operationId": "updateHoldPickupLocation", >+ "tags": [ >+ "holds" >+ ], >+ "summary": "Update pickup location for the hold", >+ "description": "Set a new pickup location for the hold", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/hold_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "Pickup location", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "pickup_library_id": { >+ "type": "string", >+ "description": "Internal identifier for the pickup library" >+ } >+ }, >+ "additionalProperties": false >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "The new pickup location value for the hold", >+ "schema": { >+ "type": "object", >+ "properties": { >+ "pickup_library_id": { >+ "type": "string", >+ "description": "Internal identifier for the pickup library" >+ } >+ }, >+ "additionalProperties": false >+ } >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Hold not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Unable to perform action on hold. Possible `error_code` attribute values:\n\n* `hold_waiting`\n* `hold_in_transit`\n* `hold_in_processing`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n" >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "reserveforothers": "place_holds" >+ } >+ } >+ } >+ }, >+ "/holds/{hold_id}/pickup_locations": { >+ "get": { >+ "x-mojo-to": "Holds#pickup_locations", >+ "operationId": "getHoldPickupLocations", >+ "tags": [ >+ "holds" >+ ], >+ "summary": "Get valid pickup locations for hold", >+ "parameters": [ >+ { >+ "name": "x-koha-override", >+ "in": "header", >+ "required": false, >+ "description": "Overrides list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "any" >+ ] >+ }, >+ "collectionFormat": "csv" >+ }, >+ { >+ "$ref": "#/parameters/hold_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Hold pickup location", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/library" >+ } >+ } >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Hold pickup location list not allowed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Hold not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "reserveforothers": "place_holds" >+ } >+ } >+ } >+ }, >+ "/holds/{hold_id}/priority": { >+ "put": { >+ "x-mojo-to": "Holds#update_priority", >+ "operationId": "updateHoldPriority", >+ "tags": [ >+ "holds" >+ ], >+ "summary": "Update priority for the hold", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/hold_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "An integer representing the new priority to be set for the hold", >+ "required": true, >+ "schema": { >+ "type": "integer" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "The new priority value for the hold", >+ "schema": { >+ "type": "integer" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Biblio not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Unable to perform action on biblio", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "reserveforothers": "modify_holds_priority" >+ } >+ } >+ } >+ }, >+ "/holds/{hold_id}/suspension": { >+ "post": { >+ "x-mojo-to": "Holds#suspend", >+ "operationId": "suspendHold", >+ "tags": [ >+ "holds" >+ ], >+ "summary": "Suspend the hold", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/hold_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing fields to modify", >+ "required": false, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "end_date": { >+ "description": "Date the hold suspension expires", >+ "type": "string", >+ "format": "date" >+ } >+ }, >+ "additionalProperties": false >+ } >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Hold suspended" >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Hold not allowed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Hold not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "reserveforothers": "place_holds" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "Holds#resume", >+ "operationId": "resumeHold", >+ "tags": [ >+ "holds" >+ ], >+ "summary": "Resume hold", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/hold_id_pp" >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Hold resumed" >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Hold not allowed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Hold not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "reserveforothers": "place_holds" >+ } >+ } >+ } >+ }, >+ "/ill/backends": { >+ "get": { >+ "x-mojo-to": "ILL::Backends#list", >+ "operationId": "listIllBackends", >+ "tags": [ >+ "ill_backends" >+ ], >+ "summary": "List ILL backends", >+ "parameters": [ >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "statuses+strings" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of ILL backends", >+ "schema": { >+ "$ref": "#/definitions/ill_backends" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ILL backends not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "ill": "1" >+ } >+ } >+ } >+ }, >+ "/ill/backends/{ill_backend_id}": { >+ "get": { >+ "x-mojo-to": "ILL::Backends#get", >+ "operationId": "getIllBackends", >+ "tags": [ >+ "ill_backends" >+ ], >+ "summary": "Get ILL backend", >+ "parameters": [ >+ { >+ "name": "ill_backend_id", >+ "in": "path", >+ "description": "ILL backend id/name", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "statuses+strings" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "An ILL backends", >+ "schema": { >+ "$ref": "#/definitions/ill_backend" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ILL backends not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "ill": "1" >+ } >+ } >+ } >+ }, >+ "/ill/requests": { >+ "get": { >+ "x-mojo-to": "ILL::Requests#list", >+ "operationId": "listIllrequests", >+ "tags": [ >+ "ill_requests" >+ ], >+ "summary": "List ILL requests", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "+strings", >+ "biblio", >+ "comments", >+ "comments+count", >+ "extended_attributes", >+ "ill_batch", >+ "library", >+ "id_prefix", >+ "patron" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of ILL requests", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/ill_request" >+ } >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "ill": "1" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "ILL::Requests#add", >+ "operationId": "addIllrequest", >+ "tags": [ >+ "ill_requests" >+ ], >+ "summary": "Add ILL request", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing informations about the new request", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/ill_request" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Request added", >+ "schema": { >+ "$ref": "#/definitions/ill_request" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "ill": "1" >+ } >+ } >+ } >+ }, >+ "/ill/batches": { >+ "get": { >+ "x-mojo-to": "ILL::Batches#list", >+ "operationId": "listIllbatches", >+ "tags": [ >+ "ill_batches" >+ ], >+ "summary": "List ILL batches", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "+strings", >+ "requests", >+ "requests+count", >+ "patron", >+ "library" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of ILL batches", >+ "schema": { >+ "$ref": "#/definitions/ill_batches" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ILL batches not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "ill": "1" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "ILL::Batches#add", >+ "operationId": "addIllbatch", >+ "tags": [ >+ "ill_batches" >+ ], >+ "summary": "Add ILL batch", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing informations about the new batch", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/ill_batch" >+ } >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "+strings", >+ "requests", >+ "requests+count", >+ "patron", >+ "library" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Batch added", >+ "schema": { >+ "$ref": "#/definitions/ill_batch" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron with given cardnumber not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "ill": "1" >+ } >+ } >+ } >+ }, >+ "/ill/batches/{ill_batch_id}": { >+ "get": { >+ "x-mojo-to": "ILL::Batches#get", >+ "operationId": "getIllbatches", >+ "tags": [ >+ "ill_batches" >+ ], >+ "summary": "Get ILL batch", >+ "parameters": [ >+ { >+ "name": "ill_batch_id", >+ "in": "path", >+ "description": "ILL batch id/name/contents", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "+strings", >+ "requests", >+ "requests+count", >+ "patron", >+ "library" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "An ILL batch", >+ "schema": { >+ "$ref": "#/definitions/ill_batch" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ILL batch not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "ill": "1" >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "ILL::Batches#update", >+ "operationId": "updateIllBatch", >+ "tags": [ >+ "ill_batches" >+ ], >+ "summary": "Update batch", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/ill_batch_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing information on the batch", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/ill_batch" >+ } >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "An ILL batch", >+ "schema": { >+ "$ref": "#/definitions/ill_batch" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ILL batch not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "ill": "1" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "ILL::Batches#delete", >+ "operationId": "deleteBatch", >+ "tags": [ >+ "ill_batches" >+ ], >+ "summary": "Delete ILL batch", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/ill_batch_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "ILL batch deleted", >+ "schema": { >+ "type": "string" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ILL batch not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "ill": "1" >+ } >+ } >+ } >+ }, >+ "/ill/batchstatuses": { >+ "get": { >+ "x-mojo-to": "ILL::Batch::Statuses#list", >+ "operationId": "listIllbatchstatuses", >+ "tags": [ >+ "ill_batchstatuses" >+ ], >+ "summary": "List ILL batch statuses", >+ "parameters": [], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of ILL batch statuses", >+ "schema": { >+ "$ref": "#/definitions/ill_batchstatuses" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ILL batch statuses not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "ill": "1" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "ILL::Batch::Statuses#add", >+ "operationId": "addIllbatchstatus", >+ "tags": [ >+ "ill_batchstatuses" >+ ], >+ "summary": "Add ILL batch status", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing informations about the new batch status", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/ill_batchstatus" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Batch status added", >+ "schema": { >+ "$ref": "#/definitions/ill_batchstatus" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "ill": "1" >+ } >+ } >+ } >+ }, >+ "/ill/batchstatuses/{ill_batchstatus_code}": { >+ "get": { >+ "x-mojo-to": "ILL::Batch::Statuses#get", >+ "operationId": "getIllbatchstatuses", >+ "tags": [ >+ "ill_batchstatuses" >+ ], >+ "summary": "Get ILL batch status", >+ "parameters": [ >+ { >+ "name": "ill_batchstatus_code", >+ "in": "path", >+ "description": "ILL batch status", >+ "required": true, >+ "type": "string" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "An ILL batch status", >+ "schema": { >+ "$ref": "#/definitions/ill_batchstatus" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ILL batch status not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "ill": "1" >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "ILL::Batch::Statuses#update", >+ "operationId": "updateIllBatchstatus", >+ "tags": [ >+ "ill_batchstatuses" >+ ], >+ "summary": "Update batch status", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/ill_batchstatus_code_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing information on the batch status", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/ill_batchstatus" >+ } >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "An ILL batch status", >+ "schema": { >+ "$ref": "#/definitions/ill_batchstatus" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ILL batch status not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "ill": "1" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "ILL::Batch::Statuses#delete", >+ "operationId": "deleteBatchstatus", >+ "tags": [ >+ "ill_batchstatuses" >+ ], >+ "summary": "Delete ILL batch status", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/ill_batchstatus_code_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "ILL batch status deleted", >+ "schema": { >+ "type": "string" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "ILL batch status not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "ill": "1" >+ } >+ } >+ } >+ }, >+ "/import_batches/{import_batch_id}/records/{import_record_id}/matches/chosen": { >+ "put": { >+ "x-mojo-to": "ImportRecordMatches#set_chosen", >+ "operationId": "setChosen", >+ "summary": "Set the chosen match for an import record ID", >+ "tags": [ >+ "import_batches" >+ ], >+ "parameters": [ >+ { >+ "name": "import_batch_id", >+ "in": "path", >+ "required": true, >+ "description": "An import_batch ID", >+ "type": "integer" >+ }, >+ { >+ "name": "import_record_id", >+ "in": "path", >+ "required": true, >+ "description": "An import_record ID", >+ "type": "integer" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing fields to modify", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "candidate_match_id": { >+ "description": "Candidate match to choose", >+ "type": "integer" >+ } >+ }, >+ "additionalProperties": false >+ } >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Match updated" >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Match management not allowed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Import record match not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "tools": "manage_staged_marc" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "ImportRecordMatches#unset_chosen", >+ "operationId": "unsetChosen", >+ "summary": "Unset the chosen match for an import record ID", >+ "tags": [ >+ "import_batches" >+ ], >+ "parameters": [ >+ { >+ "name": "import_batch_id", >+ "in": "path", >+ "required": true, >+ "description": "An import_batch ID", >+ "type": "integer" >+ }, >+ { >+ "name": "import_record_id", >+ "in": "path", >+ "required": true, >+ "description": "An import_record ID", >+ "type": "integer" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Matches unchosen" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Match management not allowed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Import record matches not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "tools": "manage_staged_marc" >+ } >+ } >+ } >+ }, >+ "/import_batch_profiles": { >+ "get": { >+ "x-mojo-to": "ImportBatchProfiles#list", >+ "operationId": "listImportBatchProfiles", >+ "tags": [ >+ "batch_import_profiles" >+ ], >+ "summary": "List batch import profiles", >+ "parameters": [ >+ { >+ "name": "name", >+ "in": "query", >+ "description": "Search on profile's name", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of import batch profiles", >+ "schema": { >+ "$ref": "#/definitions/import_batch_profiles" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "tools": "stage_marc_import" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "ImportBatchProfiles#add", >+ "operationId": "addImportBatchProfiles", >+ "tags": [ >+ "batch_import_profiles" >+ ], >+ "summary": "Add batch import profile", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing a import batch profile", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "name": { >+ "description": "name of this profile", >+ "type": "string" >+ }, >+ "matcher_id": { >+ "description": "the id of the match rule used (matchpoints.matcher_id)", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "template_id": { >+ "description": "the id of the marc modification template", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "overlay_action": { >+ "description": "how to handle duplicate records", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "nomatch_action": { >+ "description": "how to handle records where no match is found", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "item_action": { >+ "description": "what to do with item records", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "parse_items": { >+ "description": "should items be parsed", >+ "type": [ >+ "boolean", >+ "null" >+ ] >+ }, >+ "record_type": { >+ "description": "type of record in the batch", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "encoding": { >+ "description": "file encoding", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "format": { >+ "description": "marc format", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "comments": { >+ "description": "any comments added when the file was uploaded", >+ "type": [ >+ "string", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false >+ } >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Created Profile", >+ "schema": { >+ "$ref": "#/definitions/import_batch_profile" >+ } >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Hold not allowed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Borrower not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "tools": "stage_marc_import" >+ } >+ } >+ } >+ }, >+ "/import_batch_profiles/{import_batch_profile_id}": { >+ "put": { >+ "x-mojo-to": "ImportBatchProfiles#edit", >+ "operationId": "editImportBatchProfiles", >+ "tags": [ >+ "batch_import_profiles" >+ ], >+ "summary": "Update batch import profile", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/import_batch_profile_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing a import batch profile", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "name": { >+ "description": "name of this profile", >+ "type": "string" >+ }, >+ "matcher_id": { >+ "description": "the id of the match rule used (matchpoints.matcher_id)", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "template_id": { >+ "description": "the id of the marc modification template", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "overlay_action": { >+ "description": "how to handle duplicate records", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "nomatch_action": { >+ "description": "how to handle records where no match is found", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "item_action": { >+ "description": "what to do with item records", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "parse_items": { >+ "description": "should items be parsed", >+ "type": [ >+ "boolean", >+ "null" >+ ] >+ }, >+ "record_type": { >+ "description": "type of record in the batch", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "encoding": { >+ "description": "file encoding", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "format": { >+ "description": "marc format", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "comments": { >+ "description": "any comments added when the file was uploaded", >+ "type": [ >+ "string", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false >+ } >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Updated profile", >+ "schema": { >+ "$ref": "#/definitions/import_batch_profile" >+ } >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Hold not allowed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Borrower not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "tools": "stage_marc_import" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "ImportBatchProfiles#delete", >+ "operationId": "deleteImportBatchProfiles", >+ "tags": [ >+ "batch_import_profiles" >+ ], >+ "summary": "Delete batch import profile", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/import_batch_profile_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Profile deleted" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Hold not allowed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Hold not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "tools": "stage_marc_import" >+ } >+ } >+ } >+ }, >+ "/item_types": { >+ "get": { >+ "x-mojo-to": "ItemTypes#list", >+ "operationId": "listItemTypes", >+ "tags": [ >+ "item_types" >+ ], >+ "summary": "List item types", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "translated_descriptions" >+ ] >+ }, >+ "collectionFormat": "csv" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of item types", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/item_type" >+ }, >+ "type": "array" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Resource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": 1 >+ } >+ } >+ } >+ }, >+ "/items": { >+ "get": { >+ "x-mojo-to": "Items#list", >+ "operationId": "listItems", >+ "tags": [ >+ "items" >+ ], >+ "summary": "List items", >+ "parameters": [ >+ { >+ "name": "external_id", >+ "in": "query", >+ "description": "Search on the item's barcode", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "+strings", >+ "biblio" >+ ] >+ }, >+ "collectionFormat": "csv" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of item", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/item" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ } >+ }, >+ "/items/{item_id}": { >+ "get": { >+ "x-mojo-to": "Items#get", >+ "operationId": "getItem", >+ "tags": [ >+ "items" >+ ], >+ "summary": "Get item", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/item_id_pp" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "+strings" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "An item", >+ "schema": { >+ "$ref": "#/definitions/item" >+ } >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Item not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "Items#delete", >+ "operationId": "deleteItem", >+ "tags": [ >+ "items" >+ ], >+ "summary": "Delete item", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/item_id_pp" >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Deleted item" >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Item not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict. Possible `error_code` attribute values:\n\n * book_on_loan: The item is checked out\n * book_reserved: Waiting or in-transit hold for the item\n * last_item_for_hold: The item is the last one on a record on which a biblio-level hold is placed\n * linked_analytics: The item has linked analytic records\n * not_same_branch: The item is blocked by independent branches\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "editcatalogue": "edit_catalogue" >+ } >+ } >+ } >+ }, >+ "/items/{item_id}/bookings": { >+ "get": { >+ "x-mojo-to": "Items#bookings", >+ "operationId": "getItemBookings", >+ "summary": "Get existing bookings for an item", >+ "tags": [ >+ "items" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/item_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Item bookings", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/booking" >+ } >+ } >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Item not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "circulation": 1 >+ } >+ } >+ } >+ }, >+ "/items/{item_id}/bundled_items": { >+ "post": { >+ "x-mojo-to": "Items#add_to_bundle", >+ "operationId": "addToBundle", >+ "tags": [ >+ "items" >+ ], >+ "summary": "Add item to bundle", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/item_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing information about the new bundle link", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/bundle_link" >+ } >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "A successfully created bundle link", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/item" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Resource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": 1 >+ } >+ } >+ }, >+ "get": { >+ "x-mojo-to": "Items#bundled_items", >+ "operationId": "bundledItems", >+ "tags": [ >+ "items" >+ ], >+ "summary": "List bundled items", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/item_id_pp" >+ }, >+ { >+ "name": "external_id", >+ "in": "query", >+ "description": "Search on the item's barcode", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "biblio", >+ "checkout", >+ "return_claims", >+ "return_claim", >+ "return_claim.patron" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of item", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/item" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ } >+ }, >+ "/items/{item_id}/bundled_items/{bundled_item_id}": { >+ "delete": { >+ "x-mojo-to": "Items#remove_from_bundle", >+ "operationId": "removeFromBundle", >+ "tags": [ >+ "items" >+ ], >+ "summary": "Remove item from bundle", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/item_id_pp" >+ }, >+ { >+ "name": "bundled_item_id", >+ "in": "path", >+ "description": "Internal identifier for the bundled item", >+ "required": true, >+ "type": "string" >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Bundle link deleted" >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Resource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": 1 >+ } >+ } >+ } >+ }, >+ "/items/{item_id}/pickup_locations": { >+ "get": { >+ "x-mojo-to": "Items#pickup_locations", >+ "operationId": "getItemPickupLocations", >+ "summary": "Get valid pickup locations for an item", >+ "tags": [ >+ "items" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/item_id_pp" >+ }, >+ { >+ "name": "patron_id", >+ "in": "query", >+ "description": "Internal patron identifier", >+ "required": true, >+ "type": "integer" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Item pickup locations", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/library" >+ } >+ } >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Biblio not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "reserveforothers": "place_holds" >+ } >+ } >+ } >+ }, >+ "/jobs": { >+ "get": { >+ "x-mojo-to": "BackgroundJobs#list", >+ "operationId": "listJobs", >+ "tags": [ >+ "jobs" >+ ], >+ "summary": "List jobs", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "name": "only_current", >+ "in": "query", >+ "required": false, >+ "type": "boolean", >+ "description": "Only include current jobs" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of jobs", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/job" >+ } >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ } >+ }, >+ "/jobs/{job_id}": { >+ "get": { >+ "x-mojo-to": "BackgroundJobs#get", >+ "operationId": "getJob", >+ "tags": [ >+ "jobs" >+ ], >+ "summary": "Get a job", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/job_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A job", >+ "schema": { >+ "$ref": "#/definitions/job" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Job not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ } >+ }, >+ "/libraries": { >+ "get": { >+ "x-mojo-to": "Libraries#list", >+ "operationId": "listLibraries", >+ "tags": [ >+ "libraries" >+ ], >+ "summary": "List libraries", >+ "parameters": [ >+ { >+ "name": "name", >+ "in": "query", >+ "description": "Case insensitive 'starts-with' search on name", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "address1", >+ "in": "query", >+ "description": "Case insensitive 'starts-with' search on address1", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "address2", >+ "in": "query", >+ "description": "Case insensitive 'starts-with' search on address2", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "address3", >+ "in": "query", >+ "description": "Case insensitive 'starts-with' search on address3", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "postal_code", >+ "in": "query", >+ "description": "Case insensitive 'starts-with' search on postal code", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "city", >+ "in": "query", >+ "description": "Case insensitive 'starts-with' search on city", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "state", >+ "in": "query", >+ "description": "Case insensitive 'starts-with' search on state", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "country", >+ "in": "query", >+ "description": "Case insensitive 'starts_with' search on country", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "phone", >+ "in": "query", >+ "description": "Case insensitive 'starts_with' search on phone number", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "fax", >+ "in": "query", >+ "description": "Case insensitive 'starts_with' search on fax number", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "email", >+ "in": "query", >+ "description": "Case insensitive 'starts_with' search on email address", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "reply_to_email", >+ "in": "query", >+ "description": "Case insensitive 'starts_with' search on Reply-To email address", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "return_path_email", >+ "in": "query", >+ "description": "Case insensitive 'starts_with' search on Return-Path email address", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "url", >+ "in": "query", >+ "description": "Case insensitive 'starts_with' search on website URL", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "ip", >+ "in": "query", >+ "description": "Case insensitive 'starts_with' search on IP address", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "notes", >+ "in": "query", >+ "description": "Case insensitive 'starts_with' search on notes", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "cash_registers", >+ "desks", >+ "smtp_server", >+ "library_hours" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of libraries", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/library" >+ } >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Libraries#add", >+ "operationId": "addLibrary", >+ "tags": [ >+ "libraries" >+ ], >+ "summary": "Add library", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing informations about the new library", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/library" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Library added", >+ "schema": { >+ "$ref": "#/definitions/library" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_libraries" >+ } >+ } >+ } >+ }, >+ "/libraries/{library_id}": { >+ "get": { >+ "x-mojo-to": "Libraries#get", >+ "operationId": "getLibrary", >+ "tags": [ >+ "libraries" >+ ], >+ "summary": "Get library", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/library_id_pp" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "cash_registers", >+ "desks", >+ "smtp_server", >+ "library_hours" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A library", >+ "schema": { >+ "$ref": "#/definitions/library" >+ } >+ }, >+ "404": { >+ "description": "Library not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "Libraries#update", >+ "operationId": "updateLibrary", >+ "tags": [ >+ "libraries" >+ ], >+ "summary": "Update library", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/library_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing information on the library", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/library" >+ } >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A library", >+ "schema": { >+ "$ref": "#/definitions/library" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Library not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_libraries" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "Libraries#delete", >+ "operationId": "deleteLibrary", >+ "tags": [ >+ "libraries" >+ ], >+ "summary": "Delete library", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/library_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Library deleted", >+ "schema": { >+ "type": "string" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Library not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_libraries" >+ } >+ } >+ } >+ }, >+ "/libraries/{library_id}/cash_registers": { >+ "get": { >+ "x-mojo-to": "Libraries#list_cash_registers", >+ "operationId": "listLibraryCashRegisters", >+ "tags": [ >+ "cash_registers" >+ ], >+ "summary": "List the library's cash registers", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of desks for the library", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/cash_register" >+ } >+ } >+ }, >+ "404": { >+ "description": "Resource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": 1 >+ } >+ } >+ } >+ }, >+ "/libraries/{library_id}/desks": { >+ "get": { >+ "x-mojo-to": "Libraries#list_desks", >+ "operationId": "listLibraryDesks", >+ "tags": [ >+ "desks" >+ ], >+ "summary": "List the library's desks", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of desks for the library", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/desk" >+ } >+ } >+ }, >+ "404": { >+ "description": "Resource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": 1 >+ } >+ } >+ } >+ }, >+ "/oauth/login/{provider_code}/{interface}": { >+ "get": { >+ "x-mojo-to": "OAuth::Client#login", >+ "operationId": "loginOAuthClient", >+ "tags": [ >+ "oauth" >+ ], >+ "summary": "Login to OAuth provider", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "name": "provider_code", >+ "in": "path", >+ "description": "Code for OAuth provider", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "name": "interface", >+ "in": "path", >+ "description": "Name of the interface this login is for", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "name": "code", >+ "in": "query", >+ "description": "Code returned from OAuth server for Authorization Code grant", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "state", >+ "in": "query", >+ "description": "An opaque value used by the client to maintain state between the request and callback. This is the callback part.", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "scope", >+ "in": "query", >+ "description": "Scope returned by OAuth server", >+ "type": "string" >+ }, >+ { >+ "name": "prompt", >+ "in": "query", >+ "description": "Prompt returned by OAuth server", >+ "type": "string" >+ }, >+ { >+ "name": "authuser", >+ "in": "query", >+ "description": "Auth user returned by OAuth server", >+ "type": "string" >+ }, >+ { >+ "name": "error", >+ "in": "query", >+ "description": "OAuth error code", >+ "type": "string" >+ }, >+ { >+ "name": "error_description", >+ "in": "query", >+ "description": "OAuth error description", >+ "type": "string" >+ }, >+ { >+ "name": "error_uri", >+ "in": "query", >+ "description": "Web page with user friendly description of the error", >+ "type": "string" >+ }, >+ { >+ "name": "session_state", >+ "in": "query", >+ "description": "Session state returned by OAuth server", >+ "type": "string" >+ } >+ ], >+ "responses": { >+ "302": { >+ "description": "User authorized", >+ "schema": { >+ "type": "string" >+ } >+ }, >+ "400": { >+ "description": "Bad Request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ } >+ } >+ }, >+ "/oauth/token": { >+ "post": { >+ "x-mojo-to": "OAuth#token", >+ "operationId": "tokenOAuth", >+ "tags": [ >+ "oauth" >+ ], >+ "summary": "Get access token", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "name": "grant_type", >+ "in": "formData", >+ "description": "grant type (client_credentials)", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "name": "client_id", >+ "in": "formData", >+ "description": "client id", >+ "type": "string" >+ }, >+ { >+ "name": "client_secret", >+ "in": "formData", >+ "description": "client secret", >+ "type": "string" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "OK", >+ "schema": { >+ "type": "object", >+ "properties": { >+ "access_token": { >+ "type": "string" >+ }, >+ "token_type": { >+ "type": "string" >+ }, >+ "expires_in": { >+ "type": "integer" >+ } >+ }, >+ "additionalProperties": false >+ } >+ }, >+ "400": { >+ "description": "Bad Request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ } >+ } >+ }, >+ "/patrons": { >+ "get": { >+ "x-mojo-to": "Patrons#list", >+ "operationId": "listPatrons", >+ "tags": [ >+ "patrons" >+ ], >+ "summary": "List patrons", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "name": "patron_id", >+ "in": "query", >+ "description": "Search on patron_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "cardnumber", >+ "in": "query", >+ "description": "Case insensitive search on cardnumber", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "surname", >+ "in": "query", >+ "description": "Case insensitive search on surname", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "firstname", >+ "in": "query", >+ "description": "Case insensitive search on firstname", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "title", >+ "in": "query", >+ "description": "Case insensitive search on title", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "other_name", >+ "in": "query", >+ "description": "Case insensitive search on othernames", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "initials", >+ "in": "query", >+ "description": "Case insensitive search on initials", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "street_number", >+ "in": "query", >+ "description": "Case insensitive search on streetnumber", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "street_type", >+ "in": "query", >+ "description": "Case insensitive search on streettype", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "address", >+ "in": "query", >+ "description": "Case insensitive search on address", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "address2", >+ "in": "query", >+ "description": "Case insensitive search on address2", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "city", >+ "in": "query", >+ "description": "Case insensitive search on city", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "state", >+ "in": "query", >+ "description": "Case insensitive search on state", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "postal_code", >+ "in": "query", >+ "description": "Case insensitive search on zipcode", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "country", >+ "in": "query", >+ "description": "Case insensitive search on country", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "email", >+ "in": "query", >+ "description": "Case insensitive search on email", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "phone", >+ "in": "query", >+ "description": "Case insensitive search on phone", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "mobile", >+ "in": "query", >+ "description": "Case insensitive search on mobile", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "fax", >+ "in": "query", >+ "description": "Case insensitive search on fax", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "secondary_email", >+ "in": "query", >+ "description": "Case insensitive search on secondary_email", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "secondary_phone", >+ "in": "query", >+ "description": "Case insensitive search on secondary_phone", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "altaddress_street_number", >+ "in": "query", >+ "description": "Case insensitive search on altaddress_street_number", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "altaddress_street_type", >+ "in": "query", >+ "description": "Case insensitive search on altaddress_street_type", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "altaddress_address", >+ "in": "query", >+ "description": "Case insensitive search on altaddress_address", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "altaddress_address2", >+ "in": "query", >+ "description": "Case insensitive search on altaddress_address2", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "altaddress_city", >+ "in": "query", >+ "description": "Case insensitive search on altaddress_city", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "altaddress_state", >+ "in": "query", >+ "description": "Case insensitive search on altaddress_state", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "altaddress_postal_code", >+ "in": "query", >+ "description": "Case insensitive search on altaddress_postal_code", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "altaddress_country", >+ "in": "query", >+ "description": "Case insensitive search on altaddress_country", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "altaddress_email", >+ "in": "query", >+ "description": "Case insensitive search on altaddress_email", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "altaddress_phone", >+ "in": "query", >+ "description": "Case insensitive search on altaddress_phone", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "date_of_birth", >+ "in": "query", >+ "description": "Case insensitive search on date_of_birth", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "library_id", >+ "in": "query", >+ "description": "Case insensitive search on library_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "category_id", >+ "in": "query", >+ "description": "Case insensitive search on category_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "date_enrolled", >+ "in": "query", >+ "description": "Case insensitive search on date_enrolled", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "expiry_date", >+ "in": "query", >+ "description": "Case insensitive search on expiry_date", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "incorrect_address", >+ "in": "query", >+ "description": "Search on incorrect_address", >+ "required": false, >+ "type": "boolean" >+ }, >+ { >+ "name": "patron_card_lost", >+ "in": "query", >+ "description": "Search on patron_card_lost", >+ "required": false, >+ "type": "boolean" >+ }, >+ { >+ "name": "restricted", >+ "in": "query", >+ "description": "Filter search by restricted", >+ "required": false, >+ "type": "boolean" >+ }, >+ { >+ "name": "staff_notes", >+ "in": "query", >+ "description": "Case insensitive search on staff_notes", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "relationship_type", >+ "in": "query", >+ "description": "Case insensitive search on relationship_type", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "gender", >+ "in": "query", >+ "description": "Case insensitive search on gender", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "userid", >+ "in": "query", >+ "description": "Case insensitive search on userid", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "opac_notes", >+ "in": "query", >+ "description": "Case insensitive search on opac_notes", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "altaddress_notes", >+ "in": "query", >+ "description": "Case insensitive search on altaddress_notes", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "statistics_1", >+ "in": "query", >+ "description": "Case insensitive search on statistics_1", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "statistics_2", >+ "in": "query", >+ "description": "Case insensitive search on statistics_2", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "autorenew_checkouts", >+ "in": "query", >+ "description": "Search on autorenew_checkouts", >+ "required": false, >+ "type": "boolean" >+ }, >+ { >+ "name": "altcontact_firstname", >+ "in": "query", >+ "description": "Case insensitive search on altcontact_firstname", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "altcontact_surname", >+ "in": "query", >+ "description": "Case insensitive search on altcontact_surname", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "altcontact_address", >+ "in": "query", >+ "description": "Case insensitive search on altcontact_address", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "altcontact_address2", >+ "in": "query", >+ "description": "Case insensitive search on altcontact_address2", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "altcontact_city", >+ "in": "query", >+ "description": "Case insensitive search on altcontact_city", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "altcontact_state", >+ "in": "query", >+ "description": "Case insensitive search on altcontact_state", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "altcontact_postal_code", >+ "in": "query", >+ "description": "Case insensitive search on altcontact_postal_code", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "altcontact_country", >+ "in": "query", >+ "description": "Case insensitive search on altcontact_country", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "altcontact_phone", >+ "in": "query", >+ "description": "Case insensitive search on altcontact_phone", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "sms_number", >+ "in": "query", >+ "description": "Case insensitive search on sms_number", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "sms_provider_id", >+ "in": "query", >+ "description": "Case insensitive search on sms_provider_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "privacy", >+ "in": "query", >+ "description": "Search on privacy", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "privacy_guarantor_checkouts", >+ "in": "query", >+ "description": "Search on privacy_guarantor_checkouts", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "check_previous_checkout", >+ "in": "query", >+ "description": "Case insensitive search on check_previous_checkout", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "updated_on", >+ "in": "query", >+ "description": "Search on updated_on", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "last_seen", >+ "in": "query", >+ "description": "Case insensitive search on last_seen", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "lang", >+ "in": "query", >+ "description": "Case insensitive search on lang", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "login_attempts", >+ "in": "query", >+ "description": "Search on login_attempts", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "protected", >+ "in": "query", >+ "description": "Search on protected status", >+ "required": false, >+ "type": "boolean" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "extended_attributes", >+ "checkouts+count", >+ "overdues+count", >+ "account_balance", >+ "library" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of patrons", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/patron" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": [ >+ { >+ "borrowers": "list_borrowers" >+ }, >+ { >+ "borrowers": "edit_borrowers" >+ }, >+ { >+ "circulate": "manage_bookings" >+ }, >+ { >+ "tools": "label_creator" >+ }, >+ { >+ "serials": "routing" >+ }, >+ { >+ "acquisition": "order_manage" >+ } >+ ] >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Patrons#add", >+ "operationId": "addPatron", >+ "tags": [ >+ "patrons" >+ ], >+ "summary": "Add patron", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing information about the new patron", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/patron" >+ } >+ }, >+ { >+ "name": "x-koha-override", >+ "in": "header", >+ "required": false, >+ "description": "Overrides list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "welcome_yes", >+ "welcome_no" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "A successfully created patron", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/patron" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad parameter. Possible `error_code` attribute values:\n\n * `invalid_attribute_type`\n * `attribute_not_unique`\n * `non_repeatable_attribute`\n * `missing_mandatory_attribute`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Resource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "borrowers": "edit_borrowers" >+ } >+ } >+ } >+ }, >+ "/patrons/{patron_id}": { >+ "get": { >+ "x-mojo-to": "Patrons#get", >+ "operationId": "getPatron", >+ "tags": [ >+ "patrons" >+ ], >+ "summary": "Get patron", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "+strings", >+ "extended_attributes" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A patron", >+ "schema": { >+ "$ref": "#/definitions/patron" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": [ >+ { >+ "borrowers": "list_borrowers" >+ }, >+ { >+ "borrowers": "edit_borrowers" >+ } >+ ] >+ } >+ }, >+ "put": { >+ "x-mojo-to": "Patrons#update", >+ "operationId": "updatePatron", >+ "tags": [ >+ "patrons" >+ ], >+ "summary": "Update patron", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing new information about existing patron", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/patron" >+ } >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "extended_attributes" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A successfully updated patron", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/patron" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad parameter. Possible `error_code` attribute values:\n\n * `invalid_attribute_type`\n * `attribute_not_unique`\n * `non_repeatable_attribute`\n * `missing_mandatory_attribute`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Resource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in updating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "borrowers": "1" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "Patrons#delete", >+ "operationId": "deletePatron", >+ "tags": [ >+ "patrons" >+ ], >+ "summary": "Delete patron", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Patron deleted" >+ }, >+ "400": { >+ "description": "Patron deletion failed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict. Possible `error_code` attribute values:\n\n * `has_checkouts`: The patron has pending checkouts\n * `has_debt`: The patron has pending debts\n * `has_guarantees`: The patron has guarantees\n * `is_anonymous_patron`: The system-wide anonymous patron cannot be deleted\n * `is_protected`: Protected patrons cannot be deleted\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "borrowers": "delete_borrowers" >+ } >+ } >+ } >+ }, >+ "/patrons/{patron_id}/account": { >+ "get": { >+ "x-mojo-to": "Patrons::Account#get", >+ "operationId": "getPatronAccount", >+ "tags": [ >+ "patrons" >+ ], >+ "summary": "Get account information for a patron", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Patron's account balance", >+ "schema": { >+ "$ref": "#/definitions/patron_balance" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "borrowers": "edit_borrowers", >+ "updatecharges": "remaining_permissions" >+ } >+ } >+ } >+ }, >+ "/patrons/{patron_id}/account/credits": { >+ "get": { >+ "x-mojo-to": "Patrons::Account#list_credits", >+ "operationId": "listPatronCredits", >+ "tags": [ >+ "patrons" >+ ], >+ "summary": "List patron credits", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of credits", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/credit" >+ } >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "borrowers": "edit_borrowers", >+ "updatecharges": "remaining_permissions" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Patrons::Account#add_credit", >+ "operationId": "addPatronCredit", >+ "tags": [ >+ "patrons" >+ ], >+ "summary": "Add credit to a patron's account", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing credit information", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/patron_account_credit" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Credit added", >+ "schema": { >+ "$ref": "#/definitions/account_line" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "updatecharges": "remaining_permissions" >+ } >+ } >+ } >+ }, >+ "/patrons/{patron_id}/account/debits": { >+ "get": { >+ "x-mojo-to": "Patrons::Account#list_debits", >+ "operationId": "listPatronDebits", >+ "tags": [ >+ "patrons" >+ ], >+ "summary": "List patron debits", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of debits", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/debit" >+ } >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "borrowers": "edit_borrowers", >+ "updatecharges": "remaining_permissions" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Patrons::Account#add_debit", >+ "operationId": "addPatronDebit", >+ "tags": [ >+ "patrons" >+ ], >+ "summary": "Add debit to a patron's account", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing debit information", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/debit" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Debit added", >+ "schema": { >+ "$ref": "#/definitions/debit" >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "updatecharges": "remaining_permissions" >+ } >+ } >+ } >+ }, >+ "/patrons/{patron_id}/extended_attributes": { >+ "get": { >+ "x-mojo-to": "Patrons::Attributes#list_patron_attributes", >+ "operationId": "getPatronAttributes", >+ "tags": [ >+ "patrons" >+ ], >+ "summary": "List extended attributes for a patron", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "The patron extended attributes", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/patron_extended_attribute" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "borrowers": "edit_borrowers" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Patrons::Attributes#add", >+ "operationId": "addPatronAttribute", >+ "tags": [ >+ "patrons" >+ ], >+ "summary": "Add extended attribute for a patron", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON representation of the patron extended attribute", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/patron_extended_attribute" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "A successfully created patron extended attribute", >+ "schema": { >+ "$ref": "#/definitions/patron_extended_attribute" >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "borrowers": "edit_borrowers" >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "Patrons::Attributes#overwrite", >+ "operationId": "overwritePatronAttributes", >+ "tags": [ >+ "patrons" >+ ], >+ "summary": "Overwrite extended attributes for a patron", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON representation of the patron extended attribute", >+ "required": true, >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/patron_extended_attribute" >+ } >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "The successfully created patron extended attributes", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/patron_extended_attribute" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "borrowers": "edit_borrowers" >+ } >+ } >+ } >+ }, >+ "/patrons/{patron_id}/extended_attributes/{extended_attribute_id}": { >+ "patch": { >+ "x-mojo-to": "Patrons::Attributes#update", >+ "operationId": "updatePatronAttribute", >+ "tags": [ >+ "patrons" >+ ], >+ "summary": "Update extended attribute", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ }, >+ { >+ "name": "extended_attribute_id", >+ "in": "path", >+ "description": "Internal patron extended attribute identifier", >+ "type": "integer", >+ "required": true >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "An object containing the updated values for the patron extended attribute", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "value": { >+ "description": "Extended attribute value", >+ "type": "string" >+ } >+ }, >+ "additionalProperties": false >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A successfully updated patron extended attribute", >+ "schema": { >+ "$ref": "#/definitions/patron_extended_attribute" >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Object not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in updating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "borrowers": "edit_borrowers" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "Patrons::Attributes#delete", >+ "operationId": "deletePatronAttribute", >+ "tags": [ >+ "patrons" >+ ], >+ "summary": "Delete extended attribute", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ }, >+ { >+ "name": "extended_attribute_id", >+ "in": "path", >+ "description": "Internal patron extended attribute identifier", >+ "type": "integer", >+ "required": true >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Extended patron attribute deleted" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "borrowers": "edit_borrowers" >+ } >+ } >+ } >+ }, >+ "/patrons/{patron_id}/holds": { >+ "get": { >+ "x-mojo-to": "Patrons::Holds#list", >+ "operationId": "getPatronHolds", >+ "tags": [ >+ "holds" >+ ], >+ "summary": "List holds for a patron", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ }, >+ { >+ "name": "old", >+ "in": "query", >+ "description": "By default, current holds are returned, when this is true then old holds are returned as result.", >+ "type": "boolean" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "cancellation_requested", >+ "biblio", >+ "item", >+ "pickup_library", >+ "pickup_library.branchname" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "The patron holds", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/hold" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "borrowers": "edit_borrowers" >+ } >+ } >+ } >+ }, >+ "/patrons/{patron_id}/checkouts": { >+ "get": { >+ "x-mojo-to": "Patrons::Checkouts#list", >+ "operationId": "getPatronCheckouts", >+ "tags": [ >+ "checkouts" >+ ], >+ "summary": "List checkouts for a patron", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "cancellation_requested" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "The patron checkouts", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/checkout" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": [ >+ { >+ "circulate": "circulate_remaining_permissions" >+ }, >+ { >+ "circulate": "manage_bookings" >+ } >+ ] >+ } >+ } >+ }, >+ "/patrons/{patron_id}/password": { >+ "post": { >+ "x-mojo-to": "Patrons::Password#set", >+ "operationId": "setPatronPassword", >+ "tags": [ >+ "patrons" >+ ], >+ "summary": "Set password for a patron", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing password information", >+ "schema": { >+ "type": "object", >+ "properties": { >+ "password": { >+ "description": "New password (plain text)", >+ "type": "string" >+ }, >+ "password_2": { >+ "description": "Repeated new password (plain text)", >+ "type": "string" >+ } >+ }, >+ "required": [ >+ "password", >+ "password_2" >+ ], >+ "additionalProperties": false >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Password changed" >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "borrowers": "1" >+ } >+ } >+ } >+ }, >+ "/patrons/{patron_id}/password/expiration_date": { >+ "put": { >+ "x-mojo-to": "Patrons::Password::Expiration#set", >+ "operationId": "setPatronPasswordExpiration", >+ "tags": [ >+ "patrons" >+ ], >+ "summary": "Set password expiration for a patron", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing password expiration date", >+ "schema": { >+ "type": "object", >+ "properties": { >+ "expiration_date": { >+ "description": "Date to expire password", >+ "type": "string", >+ "format": "date" >+ } >+ }, >+ "required": [ >+ "expiration_date" >+ ], >+ "additionalProperties": false >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Password expiration changed" >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "superlibrarian": "1" >+ } >+ } >+ } >+ }, >+ "/patrons/{patron_id}/recalls": { >+ "get": { >+ "x-mojo-to": "Patrons::Recalls#list", >+ "operationId": "getPatronRecalls", >+ "tags": [ >+ "recalls" >+ ], >+ "summary": "List recalls for a patron", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "The patron's recalls", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/recall" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "recalls": "manage_recalls" >+ } >+ } >+ } >+ }, >+ "/patron_categories": { >+ "get": { >+ "x-mojo-to": "Patrons::Categories#list", >+ "operationId": "listPatronCategories", >+ "tags": [ >+ "patron_categories" >+ ], >+ "summary": "List patron categories", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of patron categories", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/patron_category" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_patron_categories" >+ } >+ } >+ } >+ }, >+ "/preservation/config": { >+ "get": { >+ "x-mojo-to": "Preservation#config", >+ "operationId": "getPreservationconfig", >+ "description": "This resource returns a list of options needed for the Preservation Vue app. EXPERIMENTAL - DO NOT RELY on this, it is subject to change!", >+ "summary": "get the Preservation config", >+ "tags": [ >+ "preservation" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "The Preservation module config", >+ "schema": { >+ "$ref": "#/definitions/preservation_config" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "preservation": 1 >+ } >+ } >+ } >+ }, >+ "/preservation/trains": { >+ "get": { >+ "x-mojo-to": "Preservation::Trains#list", >+ "operationId": "listPreservationTrains", >+ "tags": [ >+ "preservation" >+ ], >+ "summary": "List trains", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Case insensitive search on train id", >+ "in": "query", >+ "name": "train_id", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "description": "Case insensitive search on train name", >+ "in": "query", >+ "name": "name", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on train description", >+ "in": "query", >+ "name": "description", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on not for loan value", >+ "in": "query", >+ "name": "not_for_loan", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on train creation date", >+ "in": "query", >+ "name": "created_on", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on train closing date", >+ "in": "query", >+ "name": "closed_on", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on train sent date", >+ "in": "query", >+ "name": "sent_on", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "description": "Case insensitive search on train receiving date", >+ "in": "query", >+ "name": "received_on", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of trains", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/preservation_train" >+ }, >+ "type": "array" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "preservation": 1 >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Preservation::Trains#add", >+ "operationId": "addPreservationTrains", >+ "tags": [ >+ "preservation" >+ ], >+ "summary": "Add train", >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "A JSON object containing information about the new train", >+ "in": "body", >+ "name": "body", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/preservation_train" >+ } >+ } >+ ], >+ "responses": { >+ "201": { >+ "description": "A successfully created train", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/preservation_train" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "413": { >+ "description": "Payload too large", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "preservation": 1 >+ } >+ } >+ } >+ }, >+ "/preservation/trains/{train_id}": { >+ "get": { >+ "x-mojo-to": "Preservation::Trains#get", >+ "operationId": "getPreservationTrains", >+ "tags": [ >+ "preservation" >+ ], >+ "summary": "Get train", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/preservation_train_id_pp" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "items", >+ "items.attributes", >+ "items.attributes+strings", >+ "items.attributes.processing_attribute", >+ "items.processing", >+ "default_processing", >+ "default_processing.attributes" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A train", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/preservation_train" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "preservation": 1 >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "Preservation::Trains#update", >+ "operationId": "updatePreservationTrains", >+ "tags": [ >+ "preservation" >+ ], >+ "summary": "Update train", >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/preservation_train_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing new information about existing train", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/preservation_train" >+ } >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A successfully updated train", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/preservation_train" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in updating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "413": { >+ "description": "Payload too large", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "preservation": 1 >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "Preservation::Trains#delete", >+ "operationId": "deletePreservationTrains", >+ "tags": [ >+ "preservation" >+ ], >+ "summary": "Delete train", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/preservation_train_id_pp" >+ } >+ ], >+ "responses": { >+ "204": { >+ "description": "Train deleted" >+ }, >+ "400": { >+ "description": "Train deletion failed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in deleting resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "preservation": 1 >+ } >+ } >+ } >+ }, >+ "/preservation/trains/{train_id}/items": { >+ "post": { >+ "x-mojo-to": "Preservation::Trains#add_item", >+ "operationId": "addItemToTrain", >+ "tags": [ >+ "preservation" >+ ], >+ "summary": "Add item to train", >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/preservation_train_id_pp" >+ }, >+ { >+ "description": "An item", >+ "in": "body", >+ "name": "body", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/preservation_train_item" >+ } >+ } >+ ], >+ "responses": { >+ "201": { >+ "description": "A successfully added item", >+ "schema": { >+ "$ref": "#/definitions/preservation_train_item" >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "413": { >+ "description": "Payload too large", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "preservation": 1 >+ } >+ } >+ } >+ }, >+ "/preservation/trains/{train_id}/items/batch": { >+ "post": { >+ "x-mojo-to": "Preservation::Trains#add_items", >+ "operationId": "addItemsToTrain", >+ "tags": [ >+ "preservation" >+ ], >+ "summary": "Add items to train", >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/preservation_train_id_pp" >+ }, >+ { >+ "description": "A list of items", >+ "in": "body", >+ "name": "body", >+ "required": true, >+ "schema": { >+ "type": "array", >+ "items": { >+ "type": "object" >+ } >+ } >+ } >+ ], >+ "responses": { >+ "201": { >+ "description": "A successfully added list of items", >+ "schema": { >+ "type": "array", >+ "items": { >+ "type": "object" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "413": { >+ "description": "Payload too large", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "preservation": 1 >+ } >+ } >+ } >+ }, >+ "/preservation/trains/{train_id}/items/{train_item_id}": { >+ "put": { >+ "x-mojo-to": "Preservation::Trains#update_item", >+ "operationId": "updateItemFromTrain", >+ "tags": [ >+ "preservation" >+ ], >+ "summary": "Update item from train", >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/preservation_train_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/preservation_train_item_id_pp" >+ }, >+ { >+ "description": "An item", >+ "in": "body", >+ "name": "body", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/preservation_train_item" >+ } >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "attributes" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A successfully updated item", >+ "schema": { >+ "$ref": "#/definitions/preservation_train_item" >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in updating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "413": { >+ "description": "Payload too large", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "preservation": 1 >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "Preservation::Trains#remove_item", >+ "operationId": "removeItemFromTrain", >+ "tags": [ >+ "preservation" >+ ], >+ "summary": "Remove item from train", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/preservation_train_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/preservation_train_item_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Item removed" >+ }, >+ "400": { >+ "description": "Item removal failed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Item not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "preservation": 1 >+ } >+ } >+ }, >+ "get": { >+ "x-mojo-to": "Preservation::Trains#get_item", >+ "operationId": "getItemFromPreservationTrains", >+ "tags": [ >+ "preservation" >+ ], >+ "summary": "Get item from train", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/preservation_train_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/preservation_train_item_id_pp" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "attributes", >+ "catalogue_item", >+ "catalogue_item.biblio" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "An item in train", >+ "schema": { >+ "$ref": "#/definitions/preservation_train_item" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "preservation": 1 >+ } >+ } >+ } >+ }, >+ "/preservation/trains/{train_id}/items/{train_item_id}/copy": { >+ "post": { >+ "x-mojo-to": "Preservation::Trains#copy_item", >+ "operationId": "copyItemToAnotherTrain", >+ "tags": [ >+ "preservation" >+ ], >+ "summary": "Copy an item to an other train", >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/preservation_train_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/preservation_train_item_id_pp" >+ }, >+ { >+ "description": "The train_id of the new train", >+ "in": "body", >+ "name": "body", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "train_id": { >+ "description": "Train id", >+ "type": "integer" >+ } >+ }, >+ "additionalProperties": false >+ } >+ } >+ ], >+ "responses": { >+ "201": { >+ "description": "A successfully copied item", >+ "schema": { >+ "$ref": "#/definitions/preservation_train_item" >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "413": { >+ "description": "Payload too large", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "preservation": 1 >+ } >+ } >+ } >+ }, >+ "/preservation/processings": { >+ "get": { >+ "x-mojo-to": "Preservation::Processings#list", >+ "operationId": "listPreservationProcessings", >+ "tags": [ >+ "preservation" >+ ], >+ "summary": "List processings", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "Case insensitive search on processing id", >+ "in": "query", >+ "name": "processing_id", >+ "required": false, >+ "type": "integer" >+ }, >+ { >+ "description": "Case insensitive search on processing name", >+ "in": "query", >+ "name": "name", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of processings", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/preservation_processing" >+ }, >+ "type": "array" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "preservation": 1 >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Preservation::Processings#add", >+ "operationId": "addPreservationProcessings", >+ "tags": [ >+ "preservation" >+ ], >+ "summary": "Add processing", >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "A JSON object containing information about the new processing", >+ "in": "body", >+ "name": "body", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/preservation_processing" >+ } >+ } >+ ], >+ "responses": { >+ "201": { >+ "description": "A successfully created processing", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/preservation_processing" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "413": { >+ "description": "Payload too large", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "preservation": 1 >+ } >+ } >+ } >+ }, >+ "/preservation/processings/{processing_id}": { >+ "get": { >+ "x-mojo-to": "Preservation::Processings#get", >+ "operationId": "getPreservationProcessings", >+ "tags": [ >+ "preservation" >+ ], >+ "summary": "Get processing", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/preservation_processing_id_pp" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "attributes" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A processing", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/preservation_processing" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "preservation": 1 >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "Preservation::Processings#update", >+ "operationId": "updatePreservationProcessings", >+ "tags": [ >+ "preservation" >+ ], >+ "summary": "Update processing", >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/preservation_processing_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing new information about existing processing", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/preservation_processing" >+ } >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A successfully updated processing", >+ "schema": { >+ "items": { >+ "$ref": "#/definitions/preservation_processing" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in updating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "413": { >+ "description": "Payload too large", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "preservation": 1 >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "Preservation::Processings#delete", >+ "operationId": "deletePreservationProcessings", >+ "tags": [ >+ "preservation" >+ ], >+ "summary": "Delete processing", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/preservation_processing_id_pp" >+ } >+ ], >+ "responses": { >+ "204": { >+ "description": "processing deleted" >+ }, >+ "400": { >+ "description": "processing deletion failed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in deleting resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n* `internal_server_error`", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "preservation": 1 >+ } >+ } >+ } >+ }, >+ "/preservation/waiting-list/items": { >+ "get": { >+ "x-mojo-to": "Preservation::WaitingList#list", >+ "operationId": "listItemsFromWaitingList", >+ "tags": [ >+ "preservation" >+ ], >+ "summary": "List items from waiting list", >+ "parameters": [ >+ { >+ "name": "external_id", >+ "in": "query", >+ "description": "Search on the item's barcode", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "biblio" >+ ] >+ }, >+ "collectionFormat": "csv" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of item", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/item" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "preservation": 1 >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Preservation::WaitingList#add_items", >+ "operationId": "addItemsToWaitingList", >+ "tags": [ >+ "preservation" >+ ], >+ "summary": "Add items to waiting list", >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "description": "A list of itemnumbers or barcodes", >+ "in": "body", >+ "name": "body", >+ "required": true, >+ "schema": { >+ "type": "array", >+ "items": { >+ "type": "object" >+ } >+ } >+ } >+ ], >+ "responses": { >+ "201": { >+ "description": "A successfully added list of items", >+ "schema": { >+ "type": "array", >+ "items": { >+ "type": "object" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad parameter", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ressource not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "413": { >+ "description": "Payload too large", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "preservation": 1 >+ } >+ } >+ } >+ }, >+ "/preservation/waiting-list/items/{item_id}": { >+ "delete": { >+ "x-mojo-to": "Preservation::WaitingList#remove_item", >+ "operationId": "removeItemFromWaitingList", >+ "tags": [ >+ "preservation" >+ ], >+ "summary": "Remove item from waiting list", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/item_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Item removed" >+ }, >+ "400": { >+ "description": "Item removal failed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Item not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "preservation": 1 >+ } >+ } >+ } >+ }, >+ "/public/biblios/{biblio_id}": { >+ "get": { >+ "x-mojo-to": "Biblios#get_public", >+ "operationId": "getBiblioPublic", >+ "tags": [ >+ "biblios" >+ ], >+ "summary": "Get biblio (public)", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/biblio_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/marcxml+xml", >+ "application/marc-in-json", >+ "application/marc", >+ "text/plain" >+ ], >+ "responses": { >+ "200": { >+ "description": "A biblio" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Biblio not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "406": { >+ "description": "Not acceptable", >+ "schema": { >+ "type": "array", >+ "description": "Accepted content-types", >+ "items": { >+ "type": "string" >+ } >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ } >+ } >+ }, >+ "/public/checkouts/availability": { >+ "get": { >+ "x-mojo-to": "Checkouts#get_availability", >+ "operationId": "availabilityCheckoutsPublic", >+ "tags": [ >+ "checkouts" >+ ], >+ "summary": "Get checkout availability", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_qp" >+ }, >+ { >+ "$ref": "#/parameters/item_id_qp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Availability", >+ "schema": { >+ "type": "object", >+ "properties": { >+ "blockers": { >+ "type": "object" >+ }, >+ "confirms": { >+ "type": "object" >+ }, >+ "warnings": { >+ "type": "object" >+ }, >+ "confirmation_token": { >+ "type": "string" >+ } >+ }, >+ "additionalProperties": false >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "allow-owner": true >+ } >+ } >+ }, >+ "/public/items": { >+ "get": { >+ "x-mojo-to": "Items#list_public", >+ "operationId": "listItemsPublic", >+ "tags": [ >+ "items" >+ ], >+ "summary": "List items publically visible", >+ "parameters": [ >+ { >+ "name": "external_id", >+ "in": "query", >+ "description": "Search on the item's barcode", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "+strings", >+ "biblio" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of item", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/item" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ } >+ } >+ }, >+ "/public/biblios/{biblio_id}/items": { >+ "get": { >+ "x-mojo-to": "Biblios#get_items_public", >+ "operationId": "getBiblioItemsPublic", >+ "tags": [ >+ "biblios", >+ "items" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/biblio_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "+strings" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of the items attached to the record", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/item" >+ } >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Biblio not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "406": { >+ "description": "Not acceptable", >+ "schema": { >+ "type": "array", >+ "description": "Accepted content-types", >+ "items": { >+ "type": "string" >+ } >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ } >+ } >+ }, >+ "/public/biblios/{biblio_id}/ratings": { >+ "post": { >+ "x-mojo-to": "Biblios#set_rating", >+ "operationId": "setBiblioRating", >+ "tags": [ >+ "biblios" >+ ], >+ "summary": "set biblio rating (public)", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/biblio_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing rating information", >+ "schema": { >+ "type": "object", >+ "properties": { >+ "rating": { >+ "description": "the rating", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ } >+ }, >+ "required": [ >+ "rating" >+ ], >+ "additionalProperties": false >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Rating set", >+ "schema": { >+ "type": "object", >+ "properties": { >+ "rating": { >+ "description": "user's rating", >+ "type": [ >+ "number", >+ "null" >+ ] >+ }, >+ "average": { >+ "description": "average rating", >+ "type": "number" >+ }, >+ "count": { >+ "description": "number of ratings", >+ "type": "integer" >+ } >+ }, >+ "additionalProperties": false >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Biblio not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ } >+ } >+ }, >+ "/public/libraries": { >+ "get": { >+ "x-mojo-to": "Libraries#list", >+ "operationId": "listLibrariesPublic", >+ "tags": [ >+ "libraries" >+ ], >+ "summary": "List libraries", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of libraries", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/library" >+ } >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ } >+ } >+ }, >+ "/public/libraries/{library_id}": { >+ "get": { >+ "x-mojo-to": "Libraries#get", >+ "operationId": "getLibraryPublic", >+ "tags": [ >+ "libraries" >+ ], >+ "summary": "Get library (public)", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/library_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A library" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Library not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "406": { >+ "description": "Not acceptable", >+ "schema": { >+ "type": "array", >+ "description": "Accepted content-types", >+ "items": { >+ "type": "string" >+ } >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ } >+ } >+ }, >+ "/public/oauth/login/{provider_code}/{interface}": { >+ "get": { >+ "x-mojo-to": "OAuth::Client#login", >+ "operationId": "loginOAuthClientPublic", >+ "tags": [ >+ "oauth" >+ ], >+ "summary": "Login to OAuth provider", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "name": "provider_code", >+ "in": "path", >+ "description": "Code for OAuth provider", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "name": "interface", >+ "in": "path", >+ "description": "Name of the interface this login is for", >+ "required": true, >+ "type": "string" >+ }, >+ { >+ "name": "code", >+ "in": "query", >+ "description": "Code returned from OAuth server for Authorization Code grant", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "state", >+ "in": "query", >+ "description": "An opaque value used by the client to maintain state between the request and callback. This is the callback part.", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "scope", >+ "in": "query", >+ "description": "Scope returned by OAuth server", >+ "type": "string" >+ }, >+ { >+ "name": "prompt", >+ "in": "query", >+ "description": "Prompt returned by OAuth server", >+ "type": "string" >+ }, >+ { >+ "name": "authuser", >+ "in": "query", >+ "description": "Auth user returned by OAuth server", >+ "type": "string" >+ }, >+ { >+ "name": "error", >+ "in": "query", >+ "description": "OAuth error code", >+ "type": "string" >+ }, >+ { >+ "name": "error_description", >+ "in": "query", >+ "description": "OAuth error description", >+ "type": "string" >+ }, >+ { >+ "name": "error_uri", >+ "in": "query", >+ "description": "Web page with user friendly description of the error", >+ "type": "string" >+ }, >+ { >+ "name": "session_state", >+ "in": "query", >+ "description": "Session state returned by OAuth server", >+ "type": "string" >+ } >+ ], >+ "responses": { >+ "302": { >+ "description": "User authorized", >+ "schema": { >+ "type": "string" >+ } >+ }, >+ "400": { >+ "description": "Bad Request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ } >+ } >+ }, >+ "/public/patrons/{patron_id}/article_requests/{article_request_id}": { >+ "delete": { >+ "x-mojo-to": "ArticleRequests#patron_cancel", >+ "operationId": "publicCancelPatronArticleRequest", >+ "tags": [ >+ "article_requests" >+ ], >+ "summary": "Cancel patron's article requests", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ }, >+ { >+ "name": "article_request_id", >+ "in": "path", >+ "description": "Article request identifier", >+ "required": true, >+ "type": "integer" >+ }, >+ { >+ "name": "cancellation_reason", >+ "in": "query", >+ "description": "Article request cancellation reason", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "notes", >+ "in": "query", >+ "description": "Article request custom cancellation reason", >+ "required": false, >+ "type": "string" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Patron's article request canceled" >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "allow-owner": true >+ } >+ } >+ }, >+ "/public/patrons/{patron_id}/checkouts": { >+ "post": { >+ "x-mojo-to": "Checkouts#add", >+ "operationId": "addCheckoutPublic", >+ "tags": [ >+ "checkouts", >+ "patrons" >+ ], >+ "summary": "Add a new checkout (public)", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing information about the new checkout", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/checkout" >+ } >+ }, >+ { >+ "name": "confirmation", >+ "in": "query", >+ "description": "A JWT confirmation token", >+ "required": false, >+ "type": "string" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Created checkout", >+ "schema": { >+ "$ref": "#/definitions/checkout" >+ } >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Cannot create checkout", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "405": { >+ "description": "Method not allowed. Possible `error_code` attribute values:\n\n* `FEATURE_DISABLED`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating checkout. Possible `error_code` attribute values:\n\n* `ITEM_NOT_FOUND`\n* `PATRON_NOT_FOUND`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "412": { >+ "description": "Precondition failed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "allow-owner": true >+ } >+ } >+ }, >+ "/public/patrons/{patron_id}/guarantors/can_see_charges": { >+ "put": { >+ "x-mojo-to": "Patrons#guarantors_can_see_charges", >+ "operationId": "setPatronGuarantorsCanSeeCharges", >+ "tags": [ >+ "patrons" >+ ], >+ "summary": "Set if guarantors can see charges (public)", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A boolean representing if guarantors should be able to see the patron's charges", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "allowed": { >+ "type": "boolean" >+ } >+ }, >+ "additionalProperties": false >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Charges view policy for guarantors changed" >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "allow-owner": true >+ } >+ } >+ }, >+ "/public/patrons/{patron_id}/guarantors/can_see_checkouts": { >+ "put": { >+ "x-mojo-to": "Patrons#guarantors_can_see_checkouts", >+ "operationId": "setPatronGuarantorsCanSeeCheckouts", >+ "tags": [ >+ "patrons" >+ ], >+ "summary": "Set if guarantors can see checkouts", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A boolean representing if guarantors should be able to see the patron's checkouts", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "allowed": { >+ "type": "boolean" >+ } >+ }, >+ "additionalProperties": false >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Check-out view policy for guarantors changed" >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "allow-owner": true >+ } >+ } >+ }, >+ "/public/patrons/{patron_id}/holds/{hold_id}": { >+ "delete": { >+ "x-mojo-to": "Patrons::Holds#delete_public", >+ "operationId": "cancelPatronHoldPublic", >+ "tags": [ >+ "patrons" >+ ], >+ "summary": "Cancel a patron's hold (public)", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/hold_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "202": { >+ "description": "Hold cancellation request accepted" >+ }, >+ "204": { >+ "description": "Hold cancelled" >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Hold not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "allow-owner": true >+ } >+ } >+ }, >+ "/public/patrons/{patron_id}/password": { >+ "post": { >+ "x-mojo-to": "Patrons::Password#set_public", >+ "operationId": "setPatronPasswordPublic", >+ "tags": [ >+ "patrons" >+ ], >+ "summary": "Set password for a patron (public)", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/patron_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing password information", >+ "schema": { >+ "type": "object", >+ "properties": { >+ "password": { >+ "description": "New password (plain text)", >+ "type": "string" >+ }, >+ "password_repeated": { >+ "description": "Repeated new password (plain text)", >+ "type": "string" >+ }, >+ "old_password": { >+ "description": "Patron's original password", >+ "type": "string" >+ } >+ }, >+ "required": [ >+ "password", >+ "password_repeated", >+ "old_password" >+ ], >+ "additionalProperties": false >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Password changed" >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Patron not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "allow-owner": true >+ } >+ } >+ }, >+ "/public/tickets": { >+ "post": { >+ "x-mojo-to": "Tickets#add", >+ "operationId": "addTicketPublic", >+ "tags": [ >+ "tickets" >+ ], >+ "summary": "Add ticket", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing informations about the new ticket", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/ticket" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Ticket added", >+ "schema": { >+ "$ref": "#/definitions/ticket" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ } >+ } >+ }, >+ "/quotes": { >+ "get": { >+ "x-mojo-to": "Quotes#list", >+ "operationId": "listQuotes", >+ "tags": [ >+ "quotes" >+ ], >+ "summary": "List quotes", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "name": "quote_id", >+ "in": "query", >+ "description": "Case insensitive search on quote id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "source", >+ "in": "query", >+ "description": "Case insensitive search on source", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "text", >+ "in": "query", >+ "description": "Case insensitive search on text", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "displayed_on", >+ "in": "query", >+ "description": "Case Insensative search on last displayed date", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of quotes", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/quote" >+ } >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Quotes#add", >+ "operationId": "addQuote", >+ "tags": [ >+ "quotes" >+ ], >+ "summary": "Add quote", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing informations about the new quote", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/quote" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Quote added", >+ "schema": { >+ "$ref": "#/definitions/quote" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "tools": "edit_quotes" >+ } >+ } >+ } >+ }, >+ "/quotes/{quote_id}": { >+ "get": { >+ "x-mojo-to": "Quotes#get", >+ "operationId": "getQuote", >+ "tags": [ >+ "quotes" >+ ], >+ "summary": "Get quote", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/quote_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A Quote", >+ "schema": { >+ "$ref": "#/definitions/quote" >+ } >+ }, >+ "404": { >+ "description": "Quote not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "Quotes#update", >+ "operationId": "updateQuote", >+ "tags": [ >+ "quotes" >+ ], >+ "summary": "Update quote", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/quote_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "a quote object", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/quote" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A quote", >+ "schema": { >+ "$ref": "#/definitions/quote" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Quote not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "tools": "edit_quotes" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "Quotes#delete", >+ "operationId": "deleteQuote", >+ "tags": [ >+ "quotes" >+ ], >+ "summary": "Delete quote", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/quote_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Quote deleted" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Quote not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "tools": "edit_quotes" >+ } >+ } >+ } >+ }, >+ "/record_sources": { >+ "get": { >+ "x-mojo-to": "RecordSources#list", >+ "operationId": "listRecordSources", >+ "summary": "List record sources", >+ "tags": [ >+ "record_sources" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of record sources", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/record_source" >+ } >+ } >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Not allowed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_record_sources" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "RecordSources#add", >+ "operationId": "addRecordSources", >+ "summary": "Add a record source", >+ "tags": [ >+ "record_sources" >+ ], >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing informations about the new record source", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/record_source" >+ } >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "A record source", >+ "schema": { >+ "$ref": "#/definitions/record_source" >+ } >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Not allowed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_record_sources" >+ } >+ } >+ } >+ }, >+ "/record_sources/{record_source_id}": { >+ "get": { >+ "x-mojo-to": "RecordSources#get", >+ "operationId": "getRecordSources", >+ "summary": "Get a record source", >+ "tags": [ >+ "record_sources" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/record_source_id_pp" >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A record source", >+ "schema": { >+ "$ref": "#/definitions/record_source" >+ } >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Not allowed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_record_sources" >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "RecordSources#update", >+ "operationId": "updateRecordSources", >+ "summary": "Update a record source", >+ "tags": [ >+ "record_sources" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/record_source_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing informations about the new record source", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/record_source" >+ } >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A record source", >+ "schema": { >+ "$ref": "#/definitions/record_source" >+ } >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Not allowed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_record_sources" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "RecordSources#delete", >+ "operationId": "deleteRecordSources", >+ "summary": "Delete a record source", >+ "tags": [ >+ "record_sources" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/record_source_id_pp" >+ } >+ ], >+ "consumes": [ >+ "application/json" >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Deleted" >+ }, >+ "400": { >+ "description": "Missing or wrong parameters", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Not allowed", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_record_sources" >+ } >+ } >+ } >+ }, >+ "/return_claims": { >+ "post": { >+ "x-mojo-to": "ReturnClaims#claim_returned", >+ "operationId": "claimReturned", >+ "summary": "Add a return claim", >+ "tags": [ >+ "return_claims" >+ ], >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing fields to modify", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "item_id": { >+ "description": "Internal item id to claim as returned", >+ "type": "integer" >+ }, >+ "notes": { >+ "description": "Notes about this return claim", >+ "type": "string" >+ }, >+ "created_by": { >+ "description": "User id for the librarian submitting this claim", >+ "type": "string" >+ }, >+ "charge_lost_fee": { >+ "description": "Charge a lost fee if true and Koha is set to allow a choice. Ignored otherwise.", >+ "type": "boolean" >+ } >+ }, >+ "additionalProperties": false >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Created claim", >+ "schema": { >+ "$ref": "#/definitions/return_claim" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Checkout not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict creating the resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "circulate": "circulate_remaining_permissions" >+ } >+ } >+ } >+ }, >+ "/return_claims/{claim_id}": { >+ "delete": { >+ "x-mojo-to": "ReturnClaims#delete_claim", >+ "operationId": "deletedClaim", >+ "summary": "Delete claim", >+ "tags": [ >+ "return_claims" >+ ], >+ "parameters": [ >+ { >+ "name": "claim_id", >+ "in": "path", >+ "required": true, >+ "description": "Unique identifier for the claim to be deleted", >+ "type": "integer" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Claim deleted", >+ "schema": { >+ "$ref": "#/definitions/return_claim" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Claim not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "circulate": "circulate_remaining_permissions" >+ } >+ } >+ } >+ }, >+ "/return_claims/{claim_id}/notes": { >+ "put": { >+ "x-mojo-to": "ReturnClaims#update_notes", >+ "operationId": "updateClaimNotes", >+ "summary": "Update notes", >+ "tags": [ >+ "return_claims" >+ ], >+ "parameters": [ >+ { >+ "name": "claim_id", >+ "in": "path", >+ "required": true, >+ "description": "Unique identifier for the claim whose notes are to be updated", >+ "type": "integer" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing fields to modify", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "notes": { >+ "description": "Notes about this return claim", >+ "type": "string" >+ }, >+ "updated_by": { >+ "description": "Interal identifier for the librarian updating the claim notes", >+ "type": "string" >+ } >+ }, >+ "additionalProperties": false >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Claim notes updated", >+ "schema": { >+ "$ref": "#/definitions/return_claim" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Claim not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "circulate": "circulate_remaining_permissions" >+ } >+ } >+ } >+ }, >+ "/return_claims/{claim_id}/resolve": { >+ "put": { >+ "x-mojo-to": "ReturnClaims#resolve_claim", >+ "operationId": "updateClaimResolve", >+ "summary": "Resolve claim", >+ "tags": [ >+ "return_claims" >+ ], >+ "parameters": [ >+ { >+ "name": "claim_id", >+ "in": "path", >+ "required": true, >+ "description": "Unique identifier for the claim to be resolved", >+ "type": "integer" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing fields to modify", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "resolution": { >+ "description": "The RETURN_CLAIM_RESOLUTION code to be used to resolve the calim", >+ "type": "string" >+ }, >+ "resolved_by": { >+ "description": "User id for the librarian resolving the claim", >+ "type": "string" >+ }, >+ "new_lost_status": { >+ "description": "New lost status to set to the item", >+ "type": "string" >+ } >+ }, >+ "additionalProperties": false >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "Claim resolved", >+ "schema": { >+ "$ref": "#/definitions/return_claim" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Claim not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "circulate": "circulate_remaining_permissions" >+ } >+ } >+ } >+ }, >+ "/rotas/{rota_id}/stages/{stage_id}/position": { >+ "put": { >+ "x-mojo-to": "Stage#move", >+ "operationId": "moveStage", >+ "summary": "Update stage", >+ "tags": [ >+ "rotas" >+ ], >+ "parameters": [ >+ { >+ "name": "rota_id", >+ "in": "path", >+ "required": true, >+ "description": "A rotas ID", >+ "type": "integer" >+ }, >+ { >+ "name": "stage_id", >+ "in": "path", >+ "required": true, >+ "description": "A stages ID", >+ "type": "integer" >+ }, >+ { >+ "name": "position", >+ "in": "body", >+ "required": true, >+ "description": "A stages position in the rota", >+ "schema": { >+ "type": "integer" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "OK" >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Position not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "stockrotation": "1" >+ } >+ } >+ } >+ }, >+ "/suggestions": { >+ "get": { >+ "x-mojo-to": "Suggestions#list", >+ "operationId": "listSuggestions", >+ "description": "This resource returns a list of purchase suggestions", >+ "summary": "List purchase suggestions", >+ "tags": [ >+ "suggestions" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of suggestions", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/suggestion" >+ } >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "suggestions": "suggestions_manage" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Suggestions#add", >+ "operationId": "addSuggestions", >+ "description": "This resource accepts a new purchase suggestion and creates it", >+ "summary": "Add a purchase suggestion", >+ "tags": [ >+ "suggestions" >+ ], >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing informations about the new suggestion", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/suggestion" >+ } >+ }, >+ { >+ "name": "x-koha-override", >+ "in": "header", >+ "required": false, >+ "description": "Overrides list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "any", >+ "max_total", >+ "max_pending" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Suggestion added", >+ "schema": { >+ "$ref": "#/definitions/suggestion" >+ } >+ }, >+ "400": { >+ "description": "Bad request. Possible `error_code` attribute values:\n\n* `max_total_reached`\n* `max_pending_reached`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "suggestions": "suggestions_manage" >+ } >+ } >+ } >+ }, >+ "/suggestions/{suggestion_id}": { >+ "get": { >+ "x-mojo-to": "Suggestions#get", >+ "operationId": "getSuggestion", >+ "description": "This resource gives access to a specific purchase suggestion", >+ "summary": "Get purchase suggestion", >+ "tags": [ >+ "suggestions" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/suggestion_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A suggestion", >+ "schema": { >+ "$ref": "#/definitions/suggestion" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Suggestion not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "suggestions": "suggestions_manage" >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "Suggestions#update", >+ "operationId": "updateSuggestion", >+ "description": "This resource allows updating an existing purchase suggestion", >+ "summary": "Update purchase suggestion", >+ "tags": [ >+ "suggestions" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/suggestion_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing informations about the new hold", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/suggestion" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A suggestion", >+ "schema": { >+ "$ref": "#/definitions/suggestion" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Suggestion not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "suggestions": "suggestions_manage" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "Suggestions#delete", >+ "operationId": "deleteSuggestion", >+ "description": "This resource deletes an existing purchase suggestion", >+ "summary": "Delete purchase suggestion", >+ "tags": [ >+ "suggestions" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/suggestion_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Suggestion deleted", >+ "schema": { >+ "type": "string" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Suggestion not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "suggestions": "suggestions_manage" >+ } >+ } >+ } >+ }, >+ "/suggestions/managers": { >+ "get": { >+ "x-mojo-to": "Suggestions#list_managers", >+ "operationId": "listSuggestionsManagers", >+ "description": "This resource returns a list of patron allowed to be a manager for suggestions", >+ "summary": "List possibe managers for suggestions", >+ "tags": [ >+ "suggestions" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "extended_attributes" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of suggestions' managers", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/patron" >+ } >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "suggestions": "suggestions_manage" >+ } >+ } >+ } >+ }, >+ "/tickets": { >+ "get": { >+ "x-mojo-to": "Tickets#list", >+ "operationId": "listTickets", >+ "tags": [ >+ "tickets" >+ ], >+ "summary": "List tickets", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "reporter", >+ "resolver", >+ "biblio", >+ "updates+count", >+ "+strings" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of tickets", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/ticket" >+ } >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Tickets#add", >+ "operationId": "addTicket", >+ "tags": [ >+ "tickets" >+ ], >+ "summary": "Add ticket", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing informations about the new ticket", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/ticket" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Ticket added", >+ "schema": { >+ "$ref": "#/definitions/ticket" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ } >+ }, >+ "/tickets/{ticket_id}": { >+ "get": { >+ "x-mojo-to": "Tickets#get", >+ "operationId": "getTicket", >+ "tags": [ >+ "tickets" >+ ], >+ "summary": "Get ticket", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/ticket_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A ticket", >+ "schema": { >+ "$ref": "#/definitions/ticket" >+ } >+ }, >+ "404": { >+ "description": "Ticket not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-to": "Tickets#update", >+ "operationId": "updateTicket", >+ "tags": [ >+ "tickets" >+ ], >+ "summary": "Update ticket", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/ticket_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A ticket object", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/ticket" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A ticket", >+ "schema": { >+ "$ref": "#/definitions/ticket" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ticket not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "editcatalogue": "edit_catalogue" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "Tickets#delete", >+ "operationId": "deleteTicket", >+ "tags": [ >+ "tickets" >+ ], >+ "summary": "Delete ticket", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/ticket_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Ticket deleted" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ticket not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "editcatalogue": "edit_catalogue" >+ } >+ } >+ } >+ }, >+ "/tickets/{ticket_id}/updates": { >+ "get": { >+ "x-mojo-to": "Tickets#list_updates", >+ "operationId": "listTicketUpdates", >+ "tags": [ >+ "tickets" >+ ], >+ "summary": "List ticket updates", >+ "produces": [ >+ "application/json" >+ ], >+ "parameters": [ >+ { >+ "$ref": "#/parameters/ticket_id_pp" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ }, >+ { >+ "name": "x-koha-embed", >+ "in": "header", >+ "required": false, >+ "description": "Embed list sent as a request header", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "user", >+ "+strings" >+ ] >+ }, >+ "collectionFormat": "csv" >+ } >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of ticket updates", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/ticket_update" >+ } >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ticket not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "catalogue": "1" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "Tickets#add_update", >+ "operationId": "addTicketUpdate", >+ "tags": [ >+ "tickets" >+ ], >+ "summary": "Add an update to the ticket", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/ticket_id_pp" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A ticket update object", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/ticket_update" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Ticket added", >+ "schema": { >+ "$ref": "#/definitions/ticket_update" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Ticket not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "editcatalogue": "edit_catalogue" >+ } >+ } >+ } >+ }, >+ "/transfer_limits": { >+ "get": { >+ "x-mojo-to": "TransferLimits#list", >+ "operationId": "listTransferLimits", >+ "description": "This resource returns a list of existing transfer limits.", >+ "summary": "List transfer limits", >+ "tags": [ >+ "transfer_limits" >+ ], >+ "parameters": [ >+ { >+ "name": "to_library_id", >+ "in": "query", >+ "description": "Search on to_library_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "from_library_id", >+ "in": "query", >+ "description": "Search on from_library_id", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "item_type", >+ "in": "query", >+ "description": "Search on item_type", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "name": "collection_code", >+ "in": "query", >+ "description": "Search on collection_code", >+ "required": false, >+ "type": "string" >+ }, >+ { >+ "$ref": "#/parameters/match" >+ }, >+ { >+ "$ref": "#/parameters/order_by" >+ }, >+ { >+ "$ref": "#/parameters/page" >+ }, >+ { >+ "$ref": "#/parameters/per_page" >+ }, >+ { >+ "$ref": "#/parameters/q_param" >+ }, >+ { >+ "$ref": "#/parameters/q_body" >+ }, >+ { >+ "$ref": "#/parameters/request_id_header" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of transfer limits", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/transfer_limit" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_transfers" >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-to": "TransferLimits#add", >+ "operationId": "addTransferLimit", >+ "description": "This resource accepts a new transfer limit and creates it if it does not already exist.", >+ "tags": [ >+ "transfer_limits" >+ ], >+ "summary": "Add a transfer limit", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing information about a new transfer limit", >+ "required": true, >+ "schema": { >+ "$ref": "#/definitions/transfer_limit" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "Transfer limit added", >+ "schema": { >+ "$ref": "#/definitions/transfer_limit" >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_transfers" >+ } >+ } >+ } >+ }, >+ "/transfer_limits/batch": { >+ "post": { >+ "x-mojo-to": "TransferLimits#batch_add", >+ "operationId": "batchAddTransferLimits", >+ "description": "\nThis resource batch creates new transfer limits based on the given data.\nTransfer limits can be defined based on `collection_code` or `item_type`. The endpoint only accepts one at a time, and which one is used will depend on the value of the `BranchTransferLimitsType` system preference.\nFor example, if the paramters `to_library_id: 'BranchA'` and `item_type: 'BOOK'` are passed in new transfer limits for `BOOK`s will be created, with one transfer limit each for all the branches defined in Koha. Given 4 branches, 3 limits would be created:\n* to_library_id: 'BranchA', from_library_id: 'BranchB', item_type: 'BOOK' * to_library_id: 'BranchA', from_library_id: 'BranchC', item_type: 'BOOK' * to_library_id: 'BranchA', from_library_id: 'BranchD', item_type: 'BOOK'\n\nThe body of the query would look like\n``` {\n 'to_library_id': 'BranchA',\n 'item_type': 'BOOK'\n\n} ```\nAs another example, imagine we have an itemtype that is never supposed to be transferred to another library. If we call that itemtype `LOCAL_ONLY` we would need to just pass `item_type: 'LOCAL_ONLY'`, which would create transfer limits for all libraries, meaning those items would never be allowed to transfer to another library. The body of the query would look like\n``` {\n 'item_type': 'LOCAL_ONLY'\n} ```\n", >+ "tags": [ >+ "transfer_limits" >+ ], >+ "summary": "Batch add transfer limits", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing information about new transfer limits.", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "to_library_id": { >+ "type": "string", >+ "description": "Internal library id for which library the item is going to" >+ }, >+ "from_library_id": { >+ "type": "string", >+ "description": "Internal library id for which library the item is coming from" >+ }, >+ "item_type": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Itemtype defining the type for this limi" >+ }, >+ "collection_code": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Authorized value for the collection code associated with this limit" >+ } >+ }, >+ "additionalProperties": false >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "201": { >+ "description": "A list of transfer limits", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/transfer_limit" >+ } >+ } >+ }, >+ "400": { >+ "description": "Bad request", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "409": { >+ "description": "Conflict in creating resource", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_transfers" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-to": "TransferLimits#batch_delete", >+ "operationId": "batchDeleteTransferLimits", >+ "description": "This endpoint works just like [the POST version](#op-post-transfer_limits-batch), except it deletes transfer in batch rather than creating them.", >+ "tags": [ >+ "transfer_limits" >+ ], >+ "summary": "Batch delete transfer limits", >+ "parameters": [ >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing information about new transfer limits.", >+ "required": true, >+ "schema": { >+ "type": "object", >+ "properties": { >+ "to_library_id": { >+ "type": "string", >+ "description": "Internal library id for which library the item is going to" >+ }, >+ "from_library_id": { >+ "type": "string", >+ "description": "Internal library id for which library the item is coming from" >+ }, >+ "item_type": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Itemtype defining the type for this limi" >+ }, >+ "collection_code": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Authorized value for the collection code associated with this limit" >+ } >+ }, >+ "additionalProperties": false >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Transfer limits deleted" >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Library not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_transfers" >+ } >+ } >+ } >+ }, >+ "/transfer_limits/{limit_id}": { >+ "delete": { >+ "x-mojo-to": "TransferLimits#delete", >+ "operationId": "deleteTransferLimit", >+ "description": "This resource deletes a transfer limit for the given limit id", >+ "tags": [ >+ "transfer_limits" >+ ], >+ "summary": "Delete transfer limit", >+ "parameters": [ >+ { >+ "$ref": "#/parameters/transfer_limit_id_pp" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "204": { >+ "description": "Transfer limit deleted", >+ "schema": { >+ "type": "string" >+ } >+ }, >+ "401": { >+ "description": "Authentication required", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "404": { >+ "description": "Library not found", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "500": { >+ "description": "Internal server error. Possible `error_code` attribute values:\n\n* `internal_server_error`\n", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ }, >+ "503": { >+ "description": "Under maintenance", >+ "schema": { >+ "$ref": "#/definitions/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "manage_transfers" >+ } >+ } >+ } >+ } >+ }, >+ "definitions": { >+ "account_line": { >+ "type": "object", >+ "properties": { >+ "account_line_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "readOnly": true, >+ "description": "Internal account line identifier" >+ }, >+ "amount": { >+ "type": "number", >+ "description": "Account line amount" >+ }, >+ "amount_outstanding": { >+ "type": "number", >+ "readOnly": true, >+ "description": "Outstanding amount" >+ }, >+ "cash_register_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Internal identifier for the cash register used for the payment (if any)" >+ }, >+ "checkout_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Internal identifier for the checkout the account line is related to" >+ }, >+ "credit_number": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "readOnly": true, >+ "description": "Internally generated identifier for credits" >+ }, >+ "credit_type": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Account line credit type" >+ }, >+ "date": { >+ "type": "string", >+ "format": "date-time", >+ "readOnly": true, >+ "description": "Date the account line was created" >+ }, >+ "debit_type": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Account line debit type" >+ }, >+ "description": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "readOnly": true, >+ "description": "Account line description" >+ }, >+ "interface": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "readOnly": true, >+ "description": "Interface in which the account line was generated (values can be: api, cron, commandline, intranet, opac and sip)" >+ }, >+ "internal_note": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Internal note" >+ }, >+ "item_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Internal identifier for the item the account line is related to" >+ }, >+ "library_id": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Internal identifier for the library in which the transaction took place" >+ }, >+ "patron_id": { >+ "type": "integer", >+ "readOnly": true, >+ "description": "Internal identifier for the patron the account line belongs to" >+ }, >+ "payment_type": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Payment type" >+ }, >+ "payout_type": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Payout type" >+ }, >+ "status": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "readOnly": true, >+ "description": "The credit/debit status" >+ }, >+ "timestamp": { >+ "type": "string", >+ "format": "date-time", >+ "readOnly": true, >+ "description": "Timestamp for the latest line update" >+ }, >+ "user_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Internal patron identifier for the staff member that introduced the account line" >+ } >+ }, >+ "required": [ >+ "amount" >+ ], >+ "additionalProperties": false >+ }, >+ "advancededitormacro": { >+ "type": "object", >+ "properties": { >+ "macro_id": { >+ "type": "integer", >+ "description": "Internal advanced editor macro identifier", >+ "readOnly": true >+ }, >+ "name": { >+ "description": "macro name", >+ "type": "string" >+ }, >+ "macro_text": { >+ "description": "macro text", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "patron_id": { >+ "description": "borrower number", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "shared": { >+ "description": "is macro shared", >+ "type": [ >+ "boolean", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "name", >+ "macro_text", >+ "patron_id", >+ "shared" >+ ] >+ }, >+ "allows_renewal": { >+ "type": "object", >+ "properties": { >+ "allows_renewal": { >+ "type": "boolean", >+ "description": "Renewability status; true = renewable, false = not renewable" >+ }, >+ "max_renewals": { >+ "type": "integer", >+ "description": "Maximum number of possible renewals" >+ }, >+ "current_renewals": { >+ "type": "integer", >+ "description": "Current used renewals" >+ }, >+ "unseen_renewals": { >+ "type": "integer", >+ "description": "Number of consecutive times the item was renewed without being seen" >+ }, >+ "error": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Description on false allows_renewal." >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "authorised_value": { >+ "type": "object", >+ "properties": { >+ "authorised_value_id": { >+ "type": "integer", >+ "description": "internally assigned authorised value identifier", >+ "readOnly": true >+ }, >+ "category_name": { >+ "description": "the category of this authorised value", >+ "type": "string" >+ }, >+ "value": { >+ "description": "The code for this authorised value", >+ "type": "string" >+ }, >+ "description": { >+ "description": "The staff interface description for this authorised value", >+ "type": "string" >+ }, >+ "opac_description": { >+ "description": "The public interface description of this authorised value, if set\"", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "image_url": { >+ "description": "The url of the image associated with this authorised value, if any", >+ "type": [ >+ "string", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "category_name", >+ "value", >+ "description" >+ ] >+ }, >+ "authorised_value_category": { >+ "type": "object", >+ "properties": { >+ "category_name": { >+ "type": "string", >+ "description": "Unique category name primary key", >+ "readOnly": true >+ }, >+ "is_system": { >+ "description": "Is this category system or not", >+ "type": "boolean", >+ "readOnly": true >+ }, >+ "authorised_values": { >+ "type": "array", >+ "description": "This category's authorised values", >+ "items": { >+ "$ref": "#/definitions/authorised_value" >+ } >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "category_name" >+ ] >+ }, >+ "identity_provider": { >+ "type": "object", >+ "properties": { >+ "identity_provider_id": { >+ "type": "integer", >+ "description": "Internally assigned identity provider identifier", >+ "readOnly": true >+ }, >+ "code": { >+ "description": "Identity provider code", >+ "type": "string" >+ }, >+ "description": { >+ "description": "User-oriented description for the provider", >+ "type": "string" >+ }, >+ "protocol": { >+ "description": "Authentication protocol", >+ "type": "string", >+ "enum": [ >+ "OAuth", >+ "OIDC", >+ "CAS (not implemented)", >+ "LDAP (not implemented)" >+ ] >+ }, >+ "mapping": { >+ "description": "Attribute mapping", >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "matchpoint": { >+ "description": "Patron attribute that will be used to match", >+ "type": "string", >+ "enum": [ >+ "email", >+ "userid", >+ "cardnumber" >+ ] >+ }, >+ "config": { >+ "description": "Configuration", >+ "type": "object" >+ }, >+ "icon_url": { >+ "description": "Icon url", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "domains": { >+ "description": "Configured domains for the identity provider", >+ "type": [ >+ "array", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "config", >+ "code", >+ "protocol" >+ ] >+ }, >+ "identity_provider_domain": { >+ "type": "object", >+ "properties": { >+ "identity_provider_domain_id": { >+ "type": "integer", >+ "description": "Internally assigned identity provider domain identifier", >+ "readOnly": true >+ }, >+ "identity_provider_id": { >+ "type": "integer", >+ "description": "Internally assigned identity provider identifier" >+ }, >+ "domain": { >+ "description": "Matching domain ('*' used as wildcard)", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "auto_register": { >+ "description": "If patrons will be generated on login if required", >+ "type": "boolean" >+ }, >+ "update_on_auth": { >+ "description": "If patron data is updated on login", >+ "type": "boolean" >+ }, >+ "default_library_id": { >+ "description": "Internal identifier for the default library to be assigned to the new patrons", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "default_category_id": { >+ "description": "Internal identifier for the default patron's category", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "allow_opac": { >+ "description": "If this domain can be used for OPAC login", >+ "type": "boolean" >+ }, >+ "allow_staff": { >+ "description": "If this domain can be used for staff login", >+ "type": "boolean" >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "identity_provider_domain_id", >+ "domain", >+ "auto_register", >+ "update_on_auth", >+ "default_library_id", >+ "default_category_id", >+ "allow_opac", >+ "allow_staff" >+ ] >+ }, >+ "basket": { >+ "type": "object", >+ "properties": { >+ "basket_id": { >+ "type": "integer", >+ "description": "Internal identifier for the basket" >+ }, >+ "name": { >+ "type": "string", >+ "description": "Basket name" >+ }, >+ "internal_note": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Internal note" >+ }, >+ "vendor_note": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Vendor note" >+ }, >+ "contract_id": { >+ "type": "integer", >+ "description": "Internal identifier of the linked contract" >+ }, >+ "creation_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "The date the basket was created" >+ }, >+ "close_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "The date the basket was closed" >+ }, >+ "vendor_id": { >+ "type": "integer", >+ "description": "Internal identifier for the vendor" >+ }, >+ "authorised_by": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Internal patron identifier of the basket creator" >+ }, >+ "basket_group_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "links this basket to its group (aqbasketgroups.id)" >+ }, >+ "delivery_library": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "basket delivery place" >+ }, >+ "billing_library": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "basket billing place" >+ }, >+ "library_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Library the basket belongs to" >+ }, >+ "standing": { >+ "type": "boolean", >+ "description": "If the orders in this basket are standing" >+ }, >+ "create_items": { >+ "type": "string", >+ "enum": [ >+ "ordering", >+ "receiving", >+ "cataloguing" >+ ], >+ "description": "When items should be created for orders in this basket (Options: 'ordering', 'receiving', 'cataloguing'. Null means system wide config)" >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "booking": { >+ "additionalProperties": false, >+ "properties": { >+ "biblio_id": { >+ "description": "Internal identifier for the parent bibliographic record", >+ "type": "integer" >+ }, >+ "biblio": { >+ "description": "Embedable biblio representation", >+ "type": "object" >+ }, >+ "booking_id": { >+ "description": "Internal booking identifier", >+ "type": "integer" >+ }, >+ "end_date": { >+ "description": "Start date and time of this booking", >+ "format": "date-time", >+ "type": "string" >+ }, >+ "item_id": { >+ "description": "Internal item identifier", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "item": { >+ "description": "Embedable item representation", >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "patron_id": { >+ "description": "Internal patron identifier", >+ "type": "integer" >+ }, >+ "patron": { >+ "description": "Embedable patron representation", >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "start_date": { >+ "description": "Start date and time of this booking", >+ "format": "date-time", >+ "type": "string" >+ } >+ }, >+ "required": [ >+ "biblio_id", >+ "item_id", >+ "patron_id", >+ "start_date", >+ "end_date" >+ ], >+ "type": "object" >+ }, >+ "bundle_link": { >+ "type": "object", >+ "properties": { >+ "item_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Internal item identifier" >+ }, >+ "external_id": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Item barcode" >+ }, >+ "force_checkin": { >+ "type": [ >+ "boolean", >+ "null" >+ ] >+ }, >+ "ignore_holds": { >+ "type": [ >+ "boolean", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "cash_register": { >+ "type": "object", >+ "properties": { >+ "cash_register_id": { >+ "type": "integer", >+ "description": "Internal cash register identifier" >+ }, >+ "name": { >+ "type": "string", >+ "description": "The cash register display name" >+ }, >+ "library_id": { >+ "type": "string", >+ "description": "Internally assigned library identifier", >+ "maxLength": 10, >+ "minLength": 1 >+ }, >+ "description": { >+ "type": "string", >+ "description": "A description" >+ }, >+ "starting_float": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "The starting float this account register should be assigned" >+ }, >+ "archived": { >+ "type": "boolean", >+ "description": "If this till is archived" >+ }, >+ "library_default": { >+ "type": "boolean", >+ "description": "If this till is the library default" >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "cash_register_id", >+ "name", >+ "library_id" >+ ] >+ }, >+ "cashup": { >+ "type": "object", >+ "properties": { >+ "cashup_id": { >+ "type": "integer", >+ "description": "Internal cashup identifier" >+ }, >+ "cash_register_id": { >+ "type": "integer", >+ "description": "Internal identifier for the register the cashup belongs to" >+ }, >+ "manager_id": { >+ "type": "integer", >+ "description": "Internal identifier for the manager the cashup was performed by" >+ }, >+ "manager": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "The object representing the manager the cashup was performed by" >+ }, >+ "amount": { >+ "type": "number", >+ "description": "Account line amount" >+ }, >+ "timestamp": { >+ "type": "string", >+ "format": "date-time", >+ "description": "Timestamp for the latest line update" >+ }, >+ "summary": { >+ "type": "object", >+ "description": "A summary of the cashup action" >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "checkout": { >+ "type": "object", >+ "properties": { >+ "checkout_id": { >+ "type": "integer", >+ "description": "internally assigned checkout identifier" >+ }, >+ "patron_id": { >+ "type": "integer", >+ "description": "Internal patron identifier" >+ }, >+ "item_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "internal identifier of checked out item" >+ }, >+ "due_date": { >+ "type": "string", >+ "format": "date-time", >+ "description": "Due date" >+ }, >+ "library_id": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "code of the library the item was checked out" >+ }, >+ "issuer_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "internally assigned for the user that processed the checkout" >+ }, >+ "checkin_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date-time", >+ "description": "Date the item was returned" >+ }, >+ "last_renewed_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date-time", >+ "description": "Date the item was last renewed" >+ }, >+ "renewals_count": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Number of renewals" >+ }, >+ "unseen_renewals": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Number of consecutive unseen renewals" >+ }, >+ "auto_renew": { >+ "type": "boolean", >+ "description": "Auto renewal" >+ }, >+ "auto_renew_error": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Auto renewal error" >+ }, >+ "timestamp": { >+ "type": "string", >+ "description": "Last update time" >+ }, >+ "checkout_date": { >+ "type": "string", >+ "format": "date-time", >+ "description": "Date the item was issued" >+ }, >+ "onsite_checkout": { >+ "type": "boolean", >+ "description": "On site checkout" >+ }, >+ "note": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Issue note text" >+ }, >+ "note_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "Datetime of the issue note" >+ }, >+ "note_seen": { >+ "type": [ >+ "boolean", >+ "null" >+ ], >+ "description": "has the note been seen already" >+ }, >+ "issuer": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "The object representing the checkout issuer" >+ }, >+ "item": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "The object representing the checked out item" >+ }, >+ "library": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "The object representing the checkout library" >+ }, >+ "patron": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "The object representing the checkout patron" >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "checkouts": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/checkout" >+ }, >+ "additionalProperties": false >+ }, >+ "checkout_availability": { >+ "type": "object", >+ "properties": { >+ "blockers": { >+ "type": "object", >+ "description": "blocking issues" >+ }, >+ "confirms": { >+ "type": "object", >+ "description": "issues requireing confirmation" >+ }, >+ "warnings": { >+ "type": "object", >+ "description": "informational issues" >+ }, >+ "confirmation_token": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "token for confirmation" >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "circ-rule-kind": { >+ "type": "object", >+ "properties": { >+ "scope": { >+ "description": "levels that this rule kind can be set for", >+ "type": "array", >+ "items": { >+ "type": "string", >+ "enum": [ >+ "branchcode", >+ "categorycode", >+ "itemtype" >+ ] >+ } >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "scope" >+ ] >+ }, >+ "city": { >+ "type": "object", >+ "properties": { >+ "city_id": { >+ "type": "integer", >+ "description": "internally assigned city identifier", >+ "readOnly": true >+ }, >+ "name": { >+ "description": "city name", >+ "type": "string" >+ }, >+ "state": { >+ "description": "city state", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "postal_code": { >+ "description": "city postal code", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "country": { >+ "description": "city country", >+ "type": [ >+ "string", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "name", >+ "state", >+ "postal_code", >+ "country" >+ ] >+ }, >+ "credit": { >+ "type": "object", >+ "properties": { >+ "account_line_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "readOnly": true, >+ "description": "Internal account line identifier" >+ }, >+ "amount": { >+ "type": "number", >+ "description": "Credit amount" >+ }, >+ "amount_outstanding": { >+ "type": "number", >+ "readOnly": true, >+ "description": "Outstanding amount" >+ }, >+ "cash_register_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Internal identifier for the cash register used for the payment (if any)" >+ }, >+ "credit_number": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "readOnly": true, >+ "description": "Internally generated identifier for credits" >+ }, >+ "date": { >+ "type": "string", >+ "format": "date-time", >+ "readOnly": true, >+ "description": "Date the account line was created" >+ }, >+ "description": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "readOnly": true, >+ "description": "Account line description" >+ }, >+ "interface": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "readOnly": true, >+ "description": "Interface in which the account line was generated (values can be: api, cron, commandline, intranet, opac and sip)" >+ }, >+ "internal_note": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Internal note" >+ }, >+ "library_id": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Internal identifier for the library in which the transaction took place" >+ }, >+ "patron_id": { >+ "type": "integer", >+ "readOnly": true, >+ "description": "Internal identifier for the patron the account line belongs to" >+ }, >+ "payment_type": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Payment type" >+ }, >+ "status": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "readOnly": true, >+ "description": "The credit status" >+ }, >+ "timestamp": { >+ "type": "string", >+ "format": "date-time", >+ "readOnly": true, >+ "description": "Timestamp for the latest line update" >+ }, >+ "type": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Account credit type" >+ }, >+ "user_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Internal patron identifier for the staff member that introduced the account line" >+ } >+ }, >+ "required": [ >+ "amount" >+ ], >+ "additionalProperties": false >+ }, >+ "debit": { >+ "type": "object", >+ "properties": { >+ "account_line_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "readOnly": true, >+ "description": "Internal account line identifier" >+ }, >+ "amount": { >+ "type": "number", >+ "minimum": 0, >+ "description": "Debit amount" >+ }, >+ "amount_outstanding": { >+ "type": "number", >+ "description": "Outstanding amount" >+ }, >+ "cash_register_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Internal identifier for the cash register used for the payout (if any)" >+ }, >+ "checkout_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Internal identifier for the checkout the account line is related to" >+ }, >+ "date": { >+ "type": "string", >+ "format": "date-time", >+ "description": "Date the account line was created" >+ }, >+ "description": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Account line description" >+ }, >+ "interface": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Interface in which the account line was generated (values can be: api, cron, commandline, intranet, opac and sip)" >+ }, >+ "internal_note": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Internal note" >+ }, >+ "item_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Internal identifier for the item the account line is related to" >+ }, >+ "library_id": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Internal identifier for the library in which the transaction took place" >+ }, >+ "patron_id": { >+ "type": "integer", >+ "description": "Internal identifier for the patron the account line belongs to" >+ }, >+ "payout_type": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Payout type" >+ }, >+ "status": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "The debit status" >+ }, >+ "timestamp": { >+ "type": "string", >+ "format": "date-time", >+ "description": "Timestamp for the latest line update" >+ }, >+ "type": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Account debit type" >+ }, >+ "user_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Internal patron identifier for the staff member that introduced the account line" >+ } >+ }, >+ "required": [ >+ "amount" >+ ], >+ "additionalProperties": false >+ }, >+ "desk": { >+ "type": "object", >+ "properties": { >+ "desk_id": { >+ "type": "integer", >+ "description": "Internal desk identifier" >+ }, >+ "name": { >+ "type": "string", >+ "description": "The desk display name" >+ }, >+ "library_id": { >+ "type": "string", >+ "description": "Internally assigned library identifier", >+ "maxLength": 10, >+ "minLength": 1 >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "desk_id", >+ "name", >+ "library_id" >+ ] >+ }, >+ "edifact_file": { >+ "type": "object", >+ "properties": { >+ "id": { >+ "type": "integer", >+ "description": "internally assigned EDIFACT file identifier", >+ "readOnly": true >+ }, >+ "type": { >+ "type": [ >+ "string" >+ ], >+ "description": "EDIFACT file type" >+ }, >+ "transfer_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "EDIFACT file transfer date" >+ }, >+ "vendor_id": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Koha vendor ID" >+ }, >+ "vendor": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "Koha vendor" >+ }, >+ "edi_acct": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "EDIFACT account" >+ }, >+ "status": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "EDIFACT file status" >+ }, >+ "basket_id": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Koha basket ID" >+ }, >+ "basket": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "Koha basket" >+ }, >+ "raw_msg": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "EDIFACT message" >+ }, >+ "filename": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "EDIFACT file name" >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "erm_config": { >+ "type": "object", >+ "properties": { >+ "settings": { >+ "type": "object", >+ "description": "List of sysprefs used for the ERM module" >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "erm_agreement": { >+ "type": "object", >+ "properties": { >+ "agreement_id": { >+ "type": "integer", >+ "description": "internally assigned agreement identifier", >+ "readOnly": true >+ }, >+ "vendor_id": { >+ "description": "foreign key to aqbooksellers", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "name": { >+ "description": "name of the agreement", >+ "type": "string" >+ }, >+ "description": { >+ "description": "description of the agreement", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "status": { >+ "description": "current status of the agreement", >+ "type": "string" >+ }, >+ "closure_reason": { >+ "description": "reason of the closure", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "is_perpetual": { >+ "description": "is the agreement perpetual", >+ "type": "boolean" >+ }, >+ "renewal_priority": { >+ "description": "priority of the renewal", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "license_info": { >+ "description": "info about the license", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "periods": { >+ "type": "array", >+ "description": "periods defined for this agreement", >+ "items": { >+ "$ref": "#/definitions/erm_agreement_period" >+ } >+ }, >+ "user_roles": { >+ "type": "array", >+ "description": "role for users", >+ "items": { >+ "$ref": "#/definitions/erm_user_role" >+ } >+ }, >+ "agreement_relationships": { >+ "type": "array", >+ "description": "agreement relationships", >+ "items": { >+ "$ref": "#/definitions/erm_agreement_relationship" >+ } >+ }, >+ "agreement_licenses": { >+ "type": "array", >+ "description": "agreement licenses", >+ "items": { >+ "$ref": "#/definitions/erm_agreement_license" >+ } >+ }, >+ "documents": { >+ "type": "array", >+ "description": "documents", >+ "items": { >+ "$ref": "#/definitions/erm_document" >+ } >+ }, >+ "vendor": { >+ "description": "Information about the vendor", >+ "type": [ >+ "object", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "agreement_id", >+ "name", >+ "status", >+ "is_perpetual" >+ ] >+ }, >+ "erm_counter_file": { >+ "type": "object", >+ "properties": { >+ "erm_counter_files_id": { >+ "type": "integer", >+ "description": "internally assigned counter_files identifier", >+ "readOnly": true >+ }, >+ "usage_data_provider_id": { >+ "description": "usage_data_provider_id of the counter_files", >+ "type": "integer" >+ }, >+ "type": { >+ "description": "type of the counter_files", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "filename": { >+ "description": "filename", >+ "type": "string" >+ }, >+ "file_content": { >+ "description": "file_content", >+ "type": "string" >+ }, >+ "date_uploaded": { >+ "type": "string", >+ "format": "date-time", >+ "description": "Timestamp for the date of upload" >+ }, >+ "counter_logs": { >+ "type": "array", >+ "description": "counter logs", >+ "items": { >+ "$ref": "#/definitions/erm_counter_log" >+ } >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "usage_data_provider_id", >+ "filename", >+ "file_content" >+ ] >+ }, >+ "erm_counter_registry": { >+ "type": "object", >+ "properties": { >+ "id": { >+ "description": "internally assigned identifier", >+ "type": "string" >+ }, >+ "name": { >+ "description": "name of the platform", >+ "type": "string" >+ }, >+ "abbrev": { >+ "description": "abbrev of the platform", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "content_provider_name": { >+ "description": "current content_provider_name of the platform", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "host_types": { >+ "description": "host_types for the platform", >+ "type": "array", >+ "items": { >+ "type": "object" >+ } >+ }, >+ "address": { >+ "description": "current address of the platform", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "address_country": { >+ "description": "current address country of the platform", >+ "type": [ >+ "object", >+ "string" >+ ] >+ }, >+ "website": { >+ "description": "current website of the platform", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "contact": { >+ "description": "current contact of the platform", >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "reports": { >+ "description": "reports for the platform", >+ "type": "array", >+ "items": { >+ "type": "object" >+ } >+ }, >+ "sushi_services": { >+ "description": "sushi_services for the platform", >+ "type": "array", >+ "items": { >+ "type": "object" >+ } >+ }, >+ "audited": { >+ "description": "has the record been audited?", >+ "type": "boolean" >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "erm_counter_log": { >+ "type": "object", >+ "properties": { >+ "erm_counter_log_id": { >+ "type": "integer", >+ "description": "internally assigned counter_log identifier", >+ "readOnly": true >+ }, >+ "counter_files_id": { >+ "description": "counter_files_id of the counter_log", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "borrowernumber": { >+ "description": "borrowernumber of the counter_log", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "importdate": { >+ "type": "string", >+ "format": "date-time", >+ "description": "Timestamp for the date of upload" >+ }, >+ "filename": { >+ "description": "filename of the counter_file", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "logdetails": { >+ "description": "logdetails of the counter_log", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "usage_data_provider_id": { >+ "description": "logdetails of the counter_log", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "filename", >+ "borrowernumber", >+ "counter_files_id" >+ ] >+ }, >+ "erm_custom_report": { >+ "type": "object", >+ "properties": { >+ "title_id": { >+ "type": "integer", >+ "description": "internally assigned title identifier", >+ "readOnly": true >+ }, >+ "title": { >+ "description": "title of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "usage_data_provider_id": { >+ "description": "usage_data_provider the title is harvested by", >+ "type": "integer" >+ }, >+ "title_doi": { >+ "description": "doi number of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "print_issn": { >+ "description": "print_issn number of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "online_issn": { >+ "description": "online_issn number of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "title_uri": { >+ "description": "title_uri number of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "provider_name": { >+ "description": "provider_name of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "metric_type": { >+ "description": "metric_type of the title data", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "publisher": { >+ "description": "publisher of the title data", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "publisher_id": { >+ "description": "publisher_id of the title data", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "erm_usage_muses": { >+ "type": "array", >+ "description": "usage mus", >+ "items": { >+ "$ref": "#/definitions/erm_usage_mus" >+ } >+ }, >+ "erm_usage_yuses": { >+ "type": "array", >+ "description": "usage yus", >+ "items": { >+ "$ref": "#/definitions/erm_usage_yus" >+ } >+ } >+ } >+ }, >+ "erm_default_usage_report": { >+ "type": "object", >+ "properties": { >+ "erm_default_usage_report_id": { >+ "type": "integer", >+ "description": "internally assigned default_usage_report identifier", >+ "readOnly": true >+ }, >+ "report_name": { >+ "description": "report_name", >+ "type": "string" >+ }, >+ "report_url_params": { >+ "description": "report_url_params", >+ "type": "string" >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "report_name", >+ "report_url_params" >+ ] >+ }, >+ "erm_eholdings_title": { >+ "type": "object", >+ "properties": { >+ "title_id": { >+ "type": "integer", >+ "description": "internally assigned identifier", >+ "readOnly": true >+ }, >+ "biblio_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "internally assigned identifier for the linked biblio", >+ "readOnly": true >+ }, >+ "publication_title": { >+ "description": "publication_title of the title", >+ "type": "string" >+ }, >+ "external_id": { >+ "description": "External id of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "print_identifier": { >+ "description": "print_identifier of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "online_identifier": { >+ "description": "online_identifier of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "date_first_issue_online": { >+ "description": "date_first_issue_online of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "num_first_vol_online": { >+ "description": "num_first_vol_online of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "num_first_issue_online": { >+ "description": "num_first_issue_online of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "date_last_issue_online": { >+ "description": "date_last_issue_online of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "num_last_vol_online": { >+ "description": "num_last_vol_online of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "num_last_issue_online": { >+ "description": "num_last_issue_online of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "title_url": { >+ "description": "title_url of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "first_author": { >+ "description": "first_author of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "embargo_info": { >+ "description": "embargo_info of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "coverage_depth": { >+ "description": "coverage_depth of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "notes": { >+ "description": "notes of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "publisher_name": { >+ "description": "publisher_name of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "publication_type": { >+ "description": "publication_type of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "date_monograph_published_print": { >+ "description": "date_monograph_published_print of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "date_monograph_published_online": { >+ "description": "date_monograph_published_online of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "monograph_volume": { >+ "description": "monograph_volume of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "monograph_edition": { >+ "description": "monograph_edition of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "first_editor": { >+ "description": "first_editor of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "parent_publication_title_id": { >+ "description": "parent_publication_title_id of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "preceding_publication_title_id": { >+ "description": "preceding_publication_title_id of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "access_type": { >+ "description": "access_type of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "is_selected": { >+ "description": "if the title is selected in the KB", >+ "type": [ >+ "boolean", >+ "null" >+ ] >+ }, >+ "resources": { >+ "type": "array", >+ "description": "Resource containing this title", >+ "items": { >+ "$ref": "#/definitions/erm_eholdings_resource" >+ } >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "publication_title" >+ ] >+ }, >+ "erm_eholdings_package": { >+ "type": "object", >+ "properties": { >+ "package_id": { >+ "type": "string", >+ "description": "internally assigned package identifier", >+ "readOnly": true >+ }, >+ "vendor_id": { >+ "description": "foreign key to aqbooksellers", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "name": { >+ "description": "name of the package", >+ "type": "string" >+ }, >+ "provider": { >+ "description": "external id of the package", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "external_id": { >+ "description": "external id of the package", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "koha_internal_id": { >+ "description": "internal id of the package", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "package_type": { >+ "description": "type of the package", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "content_type": { >+ "description": "content type of the package", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "notes": { >+ "description": "notes about the package", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "created_on": { >+ "description": "date of creation", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "package_agreements": { >+ "type": "array", >+ "description": "agreements", >+ "items": { >+ "$ref": "#/definitions/erm_eholdings_package_agreement" >+ } >+ }, >+ "resources": { >+ "type": "array", >+ "description": "resources", >+ "items": { >+ "$ref": "#/definitions/erm_eholdings_resource" >+ } >+ }, >+ "vendor": { >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "is_selected": { >+ "type": [ >+ "boolean", >+ "null" >+ ] >+ }, >+ "resources_count": { >+ "type": [ >+ "integer", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "name" >+ ] >+ }, >+ "erm_eholdings_resource": { >+ "type": "object", >+ "properties": { >+ "resource_id": { >+ "type": "string", >+ "description": "internally assigned identifier", >+ "readOnly": true >+ }, >+ "title_id": { >+ "description": "foreign key to the title", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "package_id": { >+ "description": "foreign key to the package", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "vendor_id": { >+ "description": "foreign key to aqbooksellers", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "started_on": { >+ "description": "Start date", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "ended_on": { >+ "description": "End date", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "proxy": { >+ "description": "Proxy to access this resource", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "is_selected": { >+ "type": [ >+ "boolean", >+ "null" >+ ] >+ }, >+ "title": { >+ "description": "Information about the title", >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "package": { >+ "description": "Information about the package", >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "vendor": { >+ "description": "Information about the vendor", >+ "type": [ >+ "object", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "package_id" >+ ] >+ }, >+ "erm_license": { >+ "type": "object", >+ "properties": { >+ "license_id": { >+ "type": "integer", >+ "description": "internally assigned license identifier", >+ "readOnly": true >+ }, >+ "vendor_id": { >+ "description": "foreign key to aqbooksellers", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "name": { >+ "description": "name of the license", >+ "type": "string" >+ }, >+ "description": { >+ "description": "description of the license", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "type": { >+ "description": "description of the license", >+ "type": "string" >+ }, >+ "status": { >+ "description": "status of the license", >+ "type": "string" >+ }, >+ "started_on": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "Start of the license" >+ }, >+ "ended_on": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "End of the license" >+ }, >+ "user_roles": { >+ "type": "array", >+ "description": "role for users", >+ "items": { >+ "$ref": "#/definitions/erm_user_role" >+ } >+ }, >+ "documents": { >+ "type": "array", >+ "description": "documents", >+ "items": { >+ "$ref": "#/definitions/erm_document" >+ } >+ }, >+ "vendor": { >+ "description": "Information about the vendor", >+ "type": [ >+ "object", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "license_id", >+ "name", >+ "status", >+ "type" >+ ] >+ }, >+ "erm_sushi_service": { >+ "type": "object", >+ "properties": { >+ "id": { >+ "description": "internally assigned identifier", >+ "type": "string" >+ }, >+ "data_host": { >+ "description": "data_host of the sushi service", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "counter_release": { >+ "description": "counter_release of the sushi service", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "contact": { >+ "description": "contact for the sushi service", >+ "type": "array", >+ "items": { >+ "type": "object" >+ } >+ }, >+ "url": { >+ "description": "url of the sushi service", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "customer_id_info": { >+ "description": "customer_id_info of the sushi service", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "requestor_id_required": { >+ "description": "is requestor_id required", >+ "type": [ >+ "boolean", >+ "null" >+ ] >+ }, >+ "requestor_id_info": { >+ "description": "requestor_id_info of the sushi service", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "api_key_required": { >+ "description": "is api_key required", >+ "type": [ >+ "boolean", >+ "null" >+ ] >+ }, >+ "api_key_info": { >+ "description": "api_key_info of the sushi service", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "platform_specific_info": { >+ "description": "platform_specific_info of the sushi service", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "platform_attr_required": { >+ "description": "is platform_attr required", >+ "type": [ >+ "boolean", >+ "null" >+ ] >+ }, >+ "credentials_auto_expire": { >+ "description": "do the credentials expire", >+ "type": [ >+ "boolean", >+ "null" >+ ] >+ }, >+ "credentials_auto_expire_info": { >+ "description": "credentials_auto_expire_info of the sushi service", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "request_volume_limits_applied": { >+ "description": "are limits applied", >+ "type": [ >+ "boolean", >+ "null" >+ ] >+ }, >+ "request_volume_limits_info": { >+ "description": "request_volume_limits_info of the sushi service", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "ip_address_authorization": { >+ "description": "is ip address auth required", >+ "type": [ >+ "boolean", >+ "null" >+ ] >+ }, >+ "ip_address_authorization_info": { >+ "description": "ip_address_authorization_info of the sushi service", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "customizations_in_place": { >+ "description": "are any customizations in place", >+ "type": [ >+ "boolean", >+ "null" >+ ] >+ }, >+ "customizations_info": { >+ "description": "customizations_info of the sushi service", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "notification_count": { >+ "description": "notification count", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "notifications_url": { >+ "description": "notifications_url of the sushi service", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "migrations": { >+ "description": "migrations for the sushi service", >+ "type": "array", >+ "items": { >+ "type": "object" >+ } >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "erm_usage_data_provider": { >+ "type": "object", >+ "properties": { >+ "erm_usage_data_provider_id": { >+ "type": "integer", >+ "description": "internally assigned data provider identifier", >+ "readOnly": true >+ }, >+ "name": { >+ "description": "name of the data provider", >+ "type": "string" >+ }, >+ "description": { >+ "description": "description of the data provider", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "active": { >+ "description": "status of the harvester", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "method": { >+ "description": "method of the harvester", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "aggregator": { >+ "description": "aggregator of the harvester", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "service_type": { >+ "description": "service_type of the harvester", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "service_url": { >+ "description": "service_url of the harvester", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "report_release": { >+ "description": "report_release of the harvester", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "customer_id": { >+ "description": "customer_id of the harvester", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "requestor_id": { >+ "description": "requestor_id of the harvester", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "api_key": { >+ "description": "api_key of the harvester", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "requestor_name": { >+ "description": "requestor_name of the harvester", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "requestor_email": { >+ "description": "requestor_email of the harvester", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "report_types": { >+ "description": "report types of the harvester", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "metric_type": { >+ "description": "metric type of the harvester when reporting", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "counter_files": { >+ "type": "array", >+ "description": "counter files", >+ "items": { >+ "$ref": "#/definitions/erm_counter_file" >+ } >+ }, >+ "erm_usage_titles": { >+ "type": "array", >+ "description": "usage titles", >+ "items": { >+ "$ref": "#/definitions/erm_usage_title" >+ } >+ }, >+ "erm_usage_items": { >+ "type": "array", >+ "description": "usage items", >+ "items": { >+ "$ref": "#/definitions/erm_usage_item" >+ } >+ }, >+ "erm_usage_platforms": { >+ "type": "array", >+ "description": "usage platforms", >+ "items": { >+ "$ref": "#/definitions/erm_usage_platform" >+ } >+ }, >+ "erm_usage_databases": { >+ "type": "array", >+ "description": "usage databases", >+ "items": { >+ "$ref": "#/definitions/erm_usage_database" >+ } >+ }, >+ "earliest_title": { >+ "description": "time period of data harvested", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "latest_title": { >+ "description": "time period of data harvested", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "earliest_platform": { >+ "description": "time period of data harvested", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "latest_platform": { >+ "description": "time period of data harvested", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "earliest_item": { >+ "description": "time period of data harvested", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "latest_item": { >+ "description": "time period of data harvested", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "earliest_database": { >+ "description": "time period of data harvested", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "latest_database": { >+ "description": "time period of data harvested", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "last_run": { >+ "description": "last time the harvester was run", >+ "type": [ >+ "string", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "name", >+ "customer_id", >+ "requestor_id", >+ "service_url", >+ "report_release" >+ ] >+ }, >+ "erm_usage_database": { >+ "type": "object", >+ "properties": { >+ "database_id": { >+ "type": "integer", >+ "description": "internally assigned database identifier", >+ "readOnly": true >+ }, >+ "database": { >+ "description": "name of the database", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "usage_data_provider_id": { >+ "description": "usage_data_provider the database is harvested by", >+ "type": "integer" >+ }, >+ "platform": { >+ "description": "name of the platform", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "publisher": { >+ "description": "publisher of the database data", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "publisher_id": { >+ "description": "publisher_id of the database data", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "erm_usage_muses": { >+ "type": "array", >+ "description": "usage mus", >+ "items": { >+ "$ref": "#/definitions/erm_usage_mus" >+ } >+ }, >+ "erm_usage_yuses": { >+ "type": "array", >+ "description": "usage yus", >+ "items": { >+ "$ref": "#/definitions/erm_usage_yus" >+ } >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "database", >+ "usage_data_provider_id" >+ ] >+ }, >+ "erm_usage_item": { >+ "type": "object", >+ "properties": { >+ "item_id": { >+ "type": "integer", >+ "description": "internally assigned item identifier", >+ "readOnly": true >+ }, >+ "item": { >+ "description": "item of the item", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "usage_data_provider_id": { >+ "description": "usage_data_provider the item is harvested by", >+ "type": "integer" >+ }, >+ "platform": { >+ "description": "name of the platform", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "publisher": { >+ "description": "publisher of the item data", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "erm_usage_muses": { >+ "type": "array", >+ "description": "usage mus", >+ "items": { >+ "$ref": "#/definitions/erm_usage_mus" >+ } >+ }, >+ "erm_usage_yuses": { >+ "type": "array", >+ "description": "usage yus", >+ "items": { >+ "$ref": "#/definitions/erm_usage_yus" >+ } >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "item", >+ "usage_data_provider_id" >+ ] >+ }, >+ "erm_usage_mus": { >+ "type": "object", >+ "properties": { >+ "monthly_usage_summary_id": { >+ "type": "integer", >+ "description": "internally assigned monthly usage summary identifier", >+ "readOnly": true >+ }, >+ "title_id": { >+ "description": "title_id of the monthly usage summary", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "platform_id": { >+ "description": "platform_id of the monthly usage summary", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "database_id": { >+ "description": "database_id of the monthly usage summary", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "item_id": { >+ "description": "item_id of the monthly usage summary", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "usage_data_provider_id": { >+ "description": "usage_data_provider_id of the monthly usage summary", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "year": { >+ "description": "year of the monthly usage summary", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "month": { >+ "description": "month of the monthly usage summary", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "usage_count": { >+ "description": "total count of the monthly usage summary", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "metric_type": { >+ "description": "metric type of the monthly usage summary", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "access_type": { >+ "description": "access type of the monthly usage summary", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "yop": { >+ "description": "year of publication of the monthly usage summary", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "report_type": { >+ "description": "report type of the monthly usage summary", >+ "type": [ >+ "string", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "title_id", >+ "usage_data_provider_id" >+ ] >+ }, >+ "erm_usage_platform": { >+ "type": "object", >+ "properties": { >+ "platform_id": { >+ "type": "integer", >+ "description": "internally assigned platform identifier", >+ "readOnly": true >+ }, >+ "platform": { >+ "description": "title of the platform", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "usage_data_provider_id": { >+ "description": "usage_data_provider the platform is harvested by", >+ "type": "integer" >+ }, >+ "erm_usage_muses": { >+ "type": "array", >+ "description": "usage mus", >+ "items": { >+ "$ref": "#/definitions/erm_usage_mus" >+ } >+ }, >+ "erm_usage_yuses": { >+ "type": "array", >+ "description": "usage yus", >+ "items": { >+ "$ref": "#/definitions/erm_usage_yus" >+ } >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "platform", >+ "usage_data_provider_id" >+ ] >+ }, >+ "erm_usage_title": { >+ "type": "object", >+ "properties": { >+ "title_id": { >+ "type": "integer", >+ "description": "internally assigned title identifier", >+ "readOnly": true >+ }, >+ "title": { >+ "description": "title of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "usage_data_provider_id": { >+ "description": "usage_data_provider the title is harvested by", >+ "type": "integer" >+ }, >+ "title_doi": { >+ "description": "doi number of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "proprietary_id": { >+ "description": "proprietary_id of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "platform": { >+ "description": "platform of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "print_issn": { >+ "description": "print_issn number of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "online_issn": { >+ "description": "online_issn number of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "title_uri": { >+ "description": "title_uri number of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "provider_name": { >+ "description": "provider_name of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "metric_type": { >+ "description": "metric_type of the title data", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "publisher": { >+ "description": "publisher of the title data", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "publisher_id": { >+ "description": "publisher_id of the title data", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "isbn": { >+ "description": "isbn of the title", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "erm_usage_muses": { >+ "type": "array", >+ "description": "usage mus", >+ "items": { >+ "$ref": "#/definitions/erm_usage_mus" >+ } >+ }, >+ "erm_usage_yuses": { >+ "type": "array", >+ "description": "usage yus", >+ "items": { >+ "$ref": "#/definitions/erm_usage_yus" >+ } >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "title", >+ "usage_data_provider_id" >+ ] >+ }, >+ "erm_usage_yus": { >+ "type": "object", >+ "properties": { >+ "yearly_usage_summary_id": { >+ "type": "integer", >+ "description": "internally assigned yearly usage summary identifier", >+ "readOnly": true >+ }, >+ "title_id": { >+ "description": "title_id of the yearly usage summary", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "platform_id": { >+ "description": "platform_id of the yearly usage summary", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "database_id": { >+ "description": "database_id of the yearly usage summary", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "item_id": { >+ "description": "item_id of the yearly usage summary", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "usage_data_provider_id": { >+ "description": "usage_data_provider_id of the yearly usage summary", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "year": { >+ "description": "year of the yearly usage summary", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "totalcount": { >+ "description": "total count of the yearly usage summary", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "metric_type": { >+ "description": "metric type of the yearly usage summary", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "access_type": { >+ "description": "access type of the yearly usage summary", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "yop": { >+ "description": "year of publication of the yearly usage summary", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "report_type": { >+ "description": "report type of the yearly usage summary", >+ "type": [ >+ "string", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "title_id", >+ "usage_data_provider_id" >+ ] >+ }, >+ "error": { >+ "type": "object", >+ "properties": { >+ "error": { >+ "description": "Error message", >+ "type": "string" >+ }, >+ "error_code": { >+ "description": "Error code", >+ "type": "string" >+ } >+ }, >+ "additionalProperties": true >+ }, >+ "fund": { >+ "type": "object", >+ "properties": { >+ "fund_id": { >+ "type": "integer", >+ "description": "internally assigned fund identifier", >+ "readOnly": true >+ }, >+ "code": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Code assigned to the fund by the user" >+ }, >+ "name": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Name assigned to the fund by the user" >+ }, >+ "library_id": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Internal identifier for the library that this fund belongs to" >+ }, >+ "total_amount": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Total amount for this fund" >+ }, >+ "warn_at_percentage": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Warning at percentage" >+ }, >+ "warn_at_amount": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Warning at amount" >+ }, >+ "notes": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Notes related to this fund" >+ }, >+ "budget_id": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Internal identifier for the budget" >+ }, >+ "timestamp": { >+ "type": [ >+ "string" >+ ], >+ "format": "date-time", >+ "description": "Timestamp" >+ }, >+ "fund_owner_id": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Internal identifier for the fund owner" >+ }, >+ "fund_access": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Level of permission for this fund (1: owner, 2: owner, users and library, 3: owner and users)" >+ }, >+ "parent_fund_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Internal identifier for parent fund" >+ }, >+ "statistic1_auth_value_category": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Statistical category for this fund" >+ }, >+ "statistic2_auth_value_category": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Second statistical category for this fund" >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "name" >+ ] >+ }, >+ "hold": { >+ "type": "object", >+ "properties": { >+ "hold_id": { >+ "type": "integer", >+ "description": "Internal hold identifier" >+ }, >+ "patron_id": { >+ "type": "integer", >+ "description": "Internal patron identifier" >+ }, >+ "hold_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "The date the hold was placed" >+ }, >+ "biblio_id": { >+ "type": "integer", >+ "description": "Internal biblio identifier" >+ }, >+ "item_group_id": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Internal item group identifier" >+ }, >+ "pickup_library_id": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Internal library identifier for the pickup library" >+ }, >+ "desk_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "The id of the desk" >+ }, >+ "cancellation_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "The date the hold was cancelled" >+ }, >+ "cancellation_reason": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "The reason the hold was cancelled" >+ }, >+ "notes": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Notes related to this hold" >+ }, >+ "priority": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Where in the queue the patron sits" >+ }, >+ "status": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "A one letter code defining what the status of the hold is after it has been confirmed" >+ }, >+ "timestamp": { >+ "type": "string", >+ "format": "date-time", >+ "description": "Timestamp for the latest hold update" >+ }, >+ "item_id": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Internal item identifier" >+ }, >+ "waiting_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "The date the item was marked as waiting for the patron at the library" >+ }, >+ "expiration_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "The date the hold expires" >+ }, >+ "lowest_priority": { >+ "type": "boolean", >+ "description": "Controls if the hold is given the lowest priority on the queue" >+ }, >+ "suspended": { >+ "type": "boolean", >+ "description": "Controls if the hold is suspended" >+ }, >+ "suspended_until": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date-time", >+ "description": "Date until which the hold has been suspended" >+ }, >+ "non_priority": { >+ "description": "Set this hold as non priority", >+ "type": "boolean" >+ }, >+ "item_type": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "If record level hold, the optional itemtype of the item the patron is requesting" >+ }, >+ "item_level": { >+ "type": "boolean", >+ "description": "If the hold is placed at item level" >+ }, >+ "cancellation_requested": { >+ "type": [ >+ "boolean", >+ "null" >+ ], >+ "description": "Cancellation requests count for the hold (x-koha-embed)" >+ }, >+ "biblio": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "Bibliographic record" >+ }, >+ "item": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "The item" >+ }, >+ "pickup_library": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "Pickup library" >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "holds": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/hold" >+ }, >+ "additionalProperties": false >+ }, >+ "ill_backend": { >+ "type": "object", >+ "properties": { >+ "ill_backend_id": { >+ "type": "string", >+ "description": "Internal ILL backend identifier" >+ }, >+ "capabilities": { >+ "type": "object", >+ "description": "List of capabilities" >+ }, >+ "statuses": { >+ "type": "array", >+ "description": "existing statuses", >+ "items": { >+ "$ref": "#/definitions/ill_status" >+ } >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "ill_backends": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/ill_backend" >+ }, >+ "additionalProperties": false >+ }, >+ "ill_status": { >+ "type": "object", >+ "properties": { >+ "str": { >+ "type": "string", >+ "description": "Internal ILL status display string" >+ }, >+ "code": { >+ "type": "string", >+ "description": "Internal ILL status code or av code" >+ }, >+ "type": { >+ "type": "string", >+ "description": "This is 'ill_status' or 'av' depending on if coming from backend or authorised values i.e. alias" >+ }, >+ "backend": { >+ "type": "string", >+ "description": "The backend in which this status is used" >+ }, >+ "category": { >+ "type": "string", >+ "description": "The AV category in which the status aliases exists in" >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "ill_request": { >+ "type": "object", >+ "properties": { >+ "ill_request_id": { >+ "type": "integer", >+ "description": "Internal ILL request identifier" >+ }, >+ "biblio_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Internal bibliographic record identifier" >+ }, >+ "ill_batch_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Batch id this requests belongs to" >+ }, >+ "patron_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Internal patron id" >+ }, >+ "due_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date-time", >+ "description": "Date and time the request item should be due when checked out" >+ }, >+ "library_id": { >+ "type": "string", >+ "description": "Internal library identifier" >+ }, >+ "requested_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "Date the request was placed by the patron" >+ }, >+ "replied_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "FIXME" >+ }, >+ "timestamp": { >+ "type": "string", >+ "format": "date-time", >+ "description": "Date and time of last object update" >+ }, >+ "completed_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "Date the request was marked as completed" >+ }, >+ "access_url": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "A URL for accessing the item" >+ }, >+ "status": { >+ "type": "string", >+ "description": "The status the request is at.\n\nNote: This is defined by each backend. Please refer to the specific backend's\ndocumentation or code to understand the possible values.\n" >+ }, >+ "medium": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Description of the ILL item medium" >+ }, >+ "cost": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Default request cost" >+ }, >+ "paid_price": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Effective request cost" >+ }, >+ "opac_notes": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Note that is visible to the patron" >+ }, >+ "staff_notes": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Interal staff note about the request" >+ }, >+ "ill_backend_id": { >+ "type": "string", >+ "description": "The ILL backend identifier string" >+ }, >+ "ill_backend_request_id": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Backend-specific request id" >+ }, >+ "status_av": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "The authorised value category the field is linked to" >+ }, >+ "biblio": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "The linked biblio object (x-koha-embed)" >+ }, >+ "comments": { >+ "type": [ >+ "array", >+ "null" >+ ], >+ "description": "The linked comment objects (x-koha-embed)" >+ }, >+ "comments_count": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "The linked comment objects count (x-koha-embed)" >+ }, >+ "extended_attributes": { >+ "type": [ >+ "array", >+ "null" >+ ], >+ "description": "The linked extended ill request attributes (x-koha-embed)" >+ }, >+ "ill_batch": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "The linked ill batch object (x-koha-embed)" >+ }, >+ "library": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "The linked library object (x-koha-embed)" >+ }, >+ "id_prefix": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "The id_prefix of the request (x-koha-embed)" >+ }, >+ "patron": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "The linked patron object (x-koha-embed)" >+ }, >+ "_strings": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "Expanded coded fiels (x-koha-embed)" >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "ill_batch": { >+ "type": "object", >+ "properties": { >+ "ill_batch_id": { >+ "type": "integer", >+ "description": "Internal ILL batch identifier" >+ }, >+ "name": { >+ "type": "string", >+ "description": "Name of the ILL batch" >+ }, >+ "backend": { >+ "type": "string", >+ "description": "Backend name" >+ }, >+ "cardnumber": { >+ "type": "string", >+ "description": "Library assigned user identifier of the ILL batch" >+ }, >+ "patron_id": { >+ "type": "string", >+ "description": "Internal identifier the patron of the ILL batch" >+ }, >+ "library_id": { >+ "type": "string", >+ "description": "Internal identifier for the ILL batch's library" >+ }, >+ "status_code": { >+ "type": "string", >+ "description": "Code of the status of the ILL batch" >+ }, >+ "patron": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "The patron associated with the batch" >+ }, >+ "library": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "The library associated with the batch" >+ }, >+ "requests": { >+ "type": [ >+ "array", >+ "null" >+ ], >+ "description": "The requests in this batch (x-koha-embed)" >+ }, >+ "requests_count": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "The number of requests in this batch (x-koha-embed)" >+ }, >+ "status": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "The status associated with the batch (x-koha-embed)" >+ }, >+ "_strings": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "Expanded coded fields (x-koha-embed)" >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "name", >+ "backend", >+ "library_id", >+ "status_code" >+ ] >+ }, >+ "ill_batches": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/ill_batch" >+ }, >+ "additionalProperties": false >+ }, >+ "ill_batchstatus": { >+ "type": "object", >+ "properties": { >+ "id": { >+ "type": "string", >+ "description": "Internal ILL batch status identifier" >+ }, >+ "name": { >+ "type": "string", >+ "description": "Status name" >+ }, >+ "code": { >+ "type": "string", >+ "description": "Unique, immutable status code" >+ }, >+ "is_system": { >+ "type": "boolean", >+ "description": "Is this status required for system operation" >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "name", >+ "code", >+ "is_system" >+ ] >+ }, >+ "ill_batchstatuses": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/ill_batchstatus" >+ }, >+ "additionalProperties": false >+ }, >+ "import_batch_profile": { >+ "type": "object", >+ "properties": { >+ "profile_id": { >+ "type": "integer", >+ "description": "Internal profile identifier" >+ }, >+ "name": { >+ "description": "name of this profile", >+ "type": "string" >+ }, >+ "matcher_id": { >+ "description": "the id of the match rule used (matchpoints.matcher_id)", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "template_id": { >+ "description": "the id of the marc modification template", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "overlay_action": { >+ "description": "how to handle duplicate records", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "nomatch_action": { >+ "description": "how to handle records where no match is found", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "item_action": { >+ "description": "what to do with item records", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "parse_items": { >+ "description": "should items be parsed", >+ "type": [ >+ "boolean", >+ "null" >+ ] >+ }, >+ "record_type": { >+ "description": "type of record in the batch", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "encoding": { >+ "description": "file encoding", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "format": { >+ "description": "marc format", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "comments": { >+ "description": "any comments added when the file was uploaded", >+ "type": [ >+ "string", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "import_batch_profiles": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/import_batch_profile" >+ }, >+ "additionalProperties": false >+ }, >+ "import_record_match": { >+ "type": "object", >+ "properties": { >+ "import_record_id": { >+ "type": "integer", >+ "description": "Internal import record identifier" >+ }, >+ "candidate_match_id": { >+ "type": "integer", >+ "description": "Internal import record match candidate identifier" >+ }, >+ "chosen": { >+ "type": "boolean", >+ "description": "Whether match has been chosen for overlay" >+ }, >+ "score": { >+ "type": "integer", >+ "description": "Ranking value for this match calculated by the matching rules" >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "record_source": { >+ "type": "object", >+ "properties": { >+ "record_source_id": { >+ "type": "integer", >+ "description": "Internally assigned record source identifier", >+ "readOnly": true >+ }, >+ "name": { >+ "description": "Record source name", >+ "type": "string" >+ }, >+ "can_be_edited": { >+ "description": "If records from this source can be edited", >+ "type": "boolean" >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "name" >+ ] >+ }, >+ "invoice": { >+ "type": "object", >+ "properties": { >+ "invoice_id": { >+ "type": "integer", >+ "description": "Internal identifier for the incoide. Generated on POST" >+ }, >+ "invoice_number": { >+ "type": "string", >+ "description": "Invoice number assigned by the vendor" >+ }, >+ "vendor_id": { >+ "type": "integer", >+ "description": "Internal identifier for the vendor" >+ }, >+ "shipping_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "Date of shipping" >+ }, >+ "invoice_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "Date of billing" >+ }, >+ "closed": { >+ "type": "boolean", >+ "description": "If the invoice is closed" >+ }, >+ "close_date": { >+ "type": "string", >+ "format": "date", >+ "description": "Invoice close date (only when the invoice is closed)" >+ }, >+ "shipping_cost": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Shipping cost" >+ }, >+ "shipping_cost_budget_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Shipping cost linking to budget" >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "item": { >+ "type": "object", >+ "properties": { >+ "item_id": { >+ "type": "integer", >+ "description": "Internal item identifier" >+ }, >+ "biblio_id": { >+ "type": "integer", >+ "description": "Internal identifier for the parent bibliographic record" >+ }, >+ "external_id": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "The item's barcode" >+ }, >+ "acquisition_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "The date the item was acquired" >+ }, >+ "acquisition_source": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Information about the acquisition source (it is not really a vendor id)" >+ }, >+ "bookable": { >+ "type": "boolean", >+ "description": "Allow bookings on this item." >+ }, >+ "home_library_id": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Internal library id for the library the item belongs to" >+ }, >+ "purchase_price": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Purchase price" >+ }, >+ "replacement_price": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Cost the library charges to replace the item (e.g. if lost)" >+ }, >+ "replacement_price_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "The date the replacement price is effective from" >+ }, >+ "last_checkout_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "The date the item was last checked out" >+ }, >+ "last_seen_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date-time", >+ "description": "The date the item barcode was last scanned" >+ }, >+ "not_for_loan_status": { >+ "type": "integer", >+ "description": "Authorized value defining why this item is not for loan" >+ }, >+ "effective_not_for_loan_status": { >+ "type": "integer", >+ "description": "Authorized value defining why this item is not for not_for_loan_status" >+ }, >+ "damaged_status": { >+ "type": "integer", >+ "description": "Authorized value defining this item as damaged" >+ }, >+ "damaged_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "The date and time an item was last marked as damaged, NULL if not damaged" >+ }, >+ "lost_status": { >+ "type": "integer", >+ "description": "Authorized value defining this item as lost" >+ }, >+ "lost_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date-time", >+ "description": "The date and time an item was last marked as lost, NULL if not lost" >+ }, >+ "withdrawn": { >+ "type": "integer", >+ "description": "Authorized value defining this item as withdrawn" >+ }, >+ "withdrawn_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date-time", >+ "description": "The date and time an item was last marked as withdrawn, NULL if not withdrawn" >+ }, >+ "callnumber": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Call number for this item" >+ }, >+ "coded_location_qualifier": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Coded location qualifier" >+ }, >+ "checkouts_count": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Number of times this item has been checked out/issued" >+ }, >+ "renewals_count": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Number of times this item has been renewed" >+ }, >+ "localuse": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Number of times this item has been recorded for localuse" >+ }, >+ "holds_count": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Number of times this item has been placed on hold/reserved" >+ }, >+ "restricted_status": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Authorized value defining use restrictions for this item" >+ }, >+ "public_notes": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Public notes on this item" >+ }, >+ "internal_notes": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Non-public notes on this item" >+ }, >+ "holding_library_id": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Library that is currently in possession item" >+ }, >+ "timestamp": { >+ "type": "string", >+ "format": "date-time", >+ "description": "Date and time this item was last altered" >+ }, >+ "location": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Authorized value for the shelving location for this item" >+ }, >+ "permanent_location": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Linked to the CART and PROC temporary locations feature, stores the permanent shelving location" >+ }, >+ "checked_out_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "Defines if item is checked out (NULL for not checked out, and checkout date for checked out)" >+ }, >+ "call_number_source": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Classification source used on this item" >+ }, >+ "call_number_sort": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "?" >+ }, >+ "collection_code": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Authorized value for the collection code associated with this item" >+ }, >+ "materials_notes": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Materials specified" >+ }, >+ "uri": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "URL for the item" >+ }, >+ "item_type_id": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Itemtype defining the type for this item" >+ }, >+ "effective_item_type_id": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Effective itemtype defining the type for this item_id" >+ }, >+ "extended_subfields": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Additional 952 subfields in XML format" >+ }, >+ "serial_issue_number": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "serial enumeration/chronology for the item" >+ }, >+ "copy_number": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Copy number" >+ }, >+ "inventory_number": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Inventory number" >+ }, >+ "new_status": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "'new' value, whatever free-text information." >+ }, >+ "exclude_from_local_holds_priority": { >+ "type": "boolean", >+ "description": "Exclude this item from local holds priority." >+ }, >+ "return_claims": { >+ "type": "array", >+ "description": "An array of all return claims associated with this item" >+ }, >+ "return_claim": { >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "home_library": { >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "holding_library": { >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "cover_image_ids": { >+ "type": [ >+ "array", >+ "null" >+ ] >+ }, >+ "item_group_item": { >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "serial_item": { >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "biblio": { >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "checkout": { >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "transfer": { >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "first_hold": { >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "recall": { >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "item_type": { >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "in_bundle": { >+ "type": [ >+ "boolean", >+ "null" >+ ] >+ }, >+ "bundle_host": { >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "bundle_items_lost_count": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Number of lost items in the bundle" >+ }, >+ "bundle_items_not_lost_count": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Number of items not lost in the bundle" >+ }, >+ "course_item": { >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "analytics_count": { >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "_strings": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "A return claims object if one exists that's unresolved" >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "item_group": { >+ "type": "object", >+ "properties": { >+ "item_group_id": { >+ "type": "integer", >+ "readOnly": true, >+ "description": "Internal identifier for the item group" >+ }, >+ "biblio_id": { >+ "type": "integer", >+ "readOnly": true, >+ "description": "Internal identifier for the parent bibliographic record" >+ }, >+ "description": { >+ "type": "string", >+ "description": "Item group description" >+ }, >+ "display_order": { >+ "type": "integer", >+ "description": "Item group description" >+ }, >+ "creation_date": { >+ "type": "string", >+ "format": "date-time", >+ "readOnly": true, >+ "description": "Date and time the item group was created" >+ }, >+ "modification_date": { >+ "type": "string", >+ "format": "date-time", >+ "readOnly": true, >+ "description": "Date and time the item group was last modified" >+ }, >+ "items": { >+ "type": [ >+ "array", >+ "null" >+ ], >+ "readOnly": true, >+ "description": "A list of items that belong to the volume (x-koha-embed)" >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "item_group_id", >+ "biblio_id" >+ ] >+ }, >+ "item_type": { >+ "type": "object", >+ "properties": { >+ "item_type_id": { >+ "type": "string", >+ "description": "Unique key, a code associated with the item type", >+ "readOnly": true >+ }, >+ "parent_type": { >+ "description": "Unique key, a code associated with the parent item type", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "description": { >+ "description": "A plain text explanation of the item type", >+ "type": "string" >+ }, >+ "rentalcharge": { >+ "description": "The amount charged when this item is checked out/issued", >+ "type": [ >+ "number", >+ "null" >+ ] >+ }, >+ "daily_rental_charge": { >+ "description": "The amount charged for each day between checkout date and due date", >+ "type": [ >+ "number", >+ "null" >+ ] >+ }, >+ "daily_rental_charge_calendar": { >+ "description": "Controls if the daily rental fee is calculated directly or using finesCalendar", >+ "type": "boolean" >+ }, >+ "hourly_rental_charge": { >+ "description": "The amount charged for each hour between checkout date and due date", >+ "type": [ >+ "number", >+ "null" >+ ] >+ }, >+ "hourly_rental_charge_calendar": { >+ "description": "Controls if the hourly rental fee is calculated directly or using finesCalendar", >+ "type": "boolean" >+ }, >+ "default_replacement_cost": { >+ "description": "Default replacement cost", >+ "type": [ >+ "number", >+ "null" >+ ] >+ }, >+ "process_fee": { >+ "description": "Default text be recorded in the column note when the processing fee is applied", >+ "type": [ >+ "number", >+ "null" >+ ] >+ }, >+ "not_for_loan_status": { >+ "description": "If items of this type are not for loan", >+ "type": "boolean" >+ }, >+ "image_url": { >+ "description": "URL for the item type icon", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "summary": { >+ "description": "Information from the summary field, may include HTML", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "checkin_message": { >+ "description": "Message that is displayed when an item with the given item type is checked in", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "checkin_message_type": { >+ "description": "Type (CSS class) for the checkin_message, can be 'alert' or 'message'", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "sip_media_type": { >+ "description": "SIP2 protocol media type for this item type", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "hide_in_opac": { >+ "description": "Hide the item type from the search options in OPAC", >+ "type": "boolean" >+ }, >+ "searchcategory": { >+ "description": "Group this item type with others with the same value on OPAC search options", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "automatic_checkin": { >+ "description": "Controls if automatic checkin is enabled for items of this type", >+ "type": "boolean" >+ }, >+ "translated_descriptions": { >+ "description": "Translations of description plain text (x-koha-embed)", >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/item_type_translated_description" >+ } >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "item_type_id" >+ ] >+ }, >+ "job": { >+ "type": "object", >+ "properties": { >+ "job_id": { >+ "type": "integer", >+ "description": "internally assigned job identifier", >+ "readOnly": true >+ }, >+ "status": { >+ "description": "job status", >+ "type": "string" >+ }, >+ "progress": { >+ "description": "job progress", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "size": { >+ "description": "job size", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "patron_id": { >+ "description": "job enqueuer", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "type": { >+ "description": "job type", >+ "type": "string" >+ }, >+ "queue": { >+ "description": "job queue", >+ "type": "string" >+ }, >+ "data": { >+ "description": "job data", >+ "type": "object" >+ }, >+ "context": { >+ "description": "job context", >+ "type": "object" >+ }, >+ "enqueued_date": { >+ "description": "job enqueue date", >+ "type": "string", >+ "format": "date-time" >+ }, >+ "started_date": { >+ "description": "job start date", >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date-time" >+ }, >+ "ended_date": { >+ "description": "job end date", >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date-time" >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "library": { >+ "type": "object", >+ "properties": { >+ "library_id": { >+ "type": "string", >+ "description": "internally assigned library identifier", >+ "maxLength": 10, >+ "minLength": 1 >+ }, >+ "name": { >+ "type": "string", >+ "description": "Printable name of library" >+ }, >+ "address1": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the first address line of the library" >+ }, >+ "address2": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the second address line of the library" >+ }, >+ "address3": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the third address line of the library" >+ }, >+ "postal_code": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the postal code of the library" >+ }, >+ "city": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the city or province of the library" >+ }, >+ "state": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the reqional state of the library" >+ }, >+ "country": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the county of the library" >+ }, >+ "phone": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the primary phone of the library" >+ }, >+ "fax": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the fax number of the library" >+ }, >+ "email": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the primary email address of the library" >+ }, >+ "illemail": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the ILL staff email address of the library" >+ }, >+ "reply_to_email": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the email to be used as a Reply-To" >+ }, >+ "return_path_email": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the email to be used as Return-Path" >+ }, >+ "url": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the URL for your library or branch's website" >+ }, >+ "ip": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the IP address for your library or branch" >+ }, >+ "notes": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "notes related to your library or branch" >+ }, >+ "geolocation": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "geolocation of your library" >+ }, >+ "marc_org_code": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "MARC Organization Code, see http://www.loc.gov/marc/organizations/orgshome.html, when empty defaults to syspref MARCOrgCode" >+ }, >+ "pickup_location": { >+ "type": "boolean", >+ "description": "If the library can act as a pickup location" >+ }, >+ "public": { >+ "type": "boolean", >+ "description": "If the library is visible to the public" >+ }, >+ "smtp_server": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "The library effective SMTP server" >+ }, >+ "needs_override": { >+ "type": "boolean", >+ "description": "If the library needs an override to act as pickup location for a hold" >+ }, >+ "library_hours": { >+ "type": [ >+ "array", >+ "null" >+ ], >+ "description": "The open and close times for a library on any given day" >+ }, >+ "cash_registers": { >+ "type": [ >+ "array", >+ "null" >+ ], >+ "description": "The library's defined cash registers (x-koha-embed)" >+ }, >+ "desks": { >+ "type": [ >+ "array", >+ "null" >+ ], >+ "description": "The library's defined desks (x-koha-embed)" >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "library_id", >+ "name" >+ ] >+ }, >+ "merge_biblios": { >+ "type": "object", >+ "properties": { >+ "biblio_id_to_merge": { >+ "type": "integer", >+ "description": "Biblionumber from which to merge" >+ }, >+ "rules": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Internally identifier of a merge algoritm. Now two identifier are supported, 'override' and 'override_ext'. 'override' is to use when you the bibliographic data of biblio_id as resulting bibliographic data. The null value is equivalent of 'override'. 'override_ext' is to use only with a value in datarecord field. In fact is mandatory to use if you insert a record inside datarecord field." >+ }, >+ "framework_to_use": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Framework code, you can use it only with a value in datarecord field. With null value it uses the framework code of record to be merged into." >+ }, >+ "datarecord": { >+ "description": "Bibliographic record used as result of the merge. It uses the format MARC-in-JSON", >+ "type": [ >+ "object", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "biblio_id_to_merge" >+ ] >+ }, >+ "order": { >+ "type": "object", >+ "properties": { >+ "order_id": { >+ "type": "integer", >+ "description": "Internally assigned order identifier" >+ }, >+ "biblio_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Identifier for the linked bibliographic record" >+ }, >+ "deleted_biblio_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Identifier for the linked deleted bibliographic record" >+ }, >+ "created_by": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Interal patron identifier of the order line creator" >+ }, >+ "entry_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "Date the bib was added to the basket" >+ }, >+ "quantity": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Ordered quantity" >+ }, >+ "currency": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Currency used for the purchase" >+ }, >+ "list_price": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Vendor price for the line item" >+ }, >+ "replacement_price": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Replacement cost for this item" >+ }, >+ "date_received": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "Date the order was received" >+ }, >+ "invoice_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Id of the order invoice" >+ }, >+ "shipping_cost": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Shipping cost" >+ }, >+ "unit_price": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "The actual cost entered when receiving this line item" >+ }, >+ "unit_price_tax_excluded": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Unit price excluding tax (on receiving)" >+ }, >+ "unit_price_tax_included": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Unit price including tax (on receiving)" >+ }, >+ "quantity_received": { >+ "type": "integer", >+ "description": "Quantity received so far" >+ }, >+ "cancellation_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "Date the line item was deleted" >+ }, >+ "cancellation_reason": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Reason of cancellation" >+ }, >+ "internal_note": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Notes related to this order line, made for staff" >+ }, >+ "vendor_note": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Notes related to this order line, made for vendor" >+ }, >+ "basket_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Basket this order is linked to" >+ }, >+ "timestamp": { >+ "type": "string", >+ "format": "date-time", >+ "description": "Date and time this order line was last modified" >+ }, >+ "rrp": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Retail cost for this item" >+ }, >+ "rrp_tax_excluded": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Replacement cost for this item (tax excluded)" >+ }, >+ "rrp_tax_included": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Replacement cost for this item (tax included)" >+ }, >+ "ecost": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Effective cost" >+ }, >+ "ecost_tax_excluded": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Effective cost (tax excluded)" >+ }, >+ "ecost_tax_included": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Effective cost (tax included)" >+ }, >+ "tax_rate_on_ordering": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Tax rate on ordering (%)" >+ }, >+ "tax_rate_on_receiving": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Tax rate on receiving (%)" >+ }, >+ "tax_value_on_ordering": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Tax value on ordering" >+ }, >+ "tax_value_on_receiving": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Tax value on receiving" >+ }, >+ "discount_rate": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Discount rate" >+ }, >+ "fund_id": { >+ "type": "integer", >+ "description": "Internal identifier for the fund this order goes against" >+ }, >+ "statistics_1": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Statistical field" >+ }, >+ "statistics_2": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Statistical field (2)" >+ }, >+ "statistics_1_authcat": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Statistical category for this order" >+ }, >+ "statistics_2_authcat": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Statistical category for this order (2)" >+ }, >+ "uncertain_price": { >+ "type": "boolean", >+ "description": "If this price was uncertain" >+ }, >+ "claims_count": { >+ "type": "integer", >+ "description": "Generated claim letters count" >+ }, >+ "last_claim_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "Last date a claim letter was generated" >+ }, >+ "subscription_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Subscription ID linking the order to a subscription" >+ }, >+ "parent_order_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Order ID of parent order line if exists" >+ }, >+ "status": { >+ "type": "string", >+ "enum": [ >+ "new", >+ "ordered", >+ "partial", >+ "complete", >+ "cancelled" >+ ], >+ "description": "The current order status" >+ }, >+ "basket": { >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "biblio": { >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "current_item_level_holds_count": { >+ "type": "integer", >+ "description": "Current holds count for associated items" >+ }, >+ "estimated_delivery_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "Estimated delivery date" >+ }, >+ "invoice_unit_price": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "The actual cost in the foreign currency used in the invoice" >+ }, >+ "invoice_currency": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Currency of the actual cost used when receiving" >+ }, >+ "fund": { >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "invoice": { >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "items": { >+ "type": "array" >+ }, >+ "subscription": { >+ "type": [ >+ "object", >+ "null" >+ ] >+ }, >+ "creator": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "Patron that created the order" >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "patron": { >+ "type": "object", >+ "properties": { >+ "patron_id": { >+ "type": "integer", >+ "description": "Internal patron identifier" >+ }, >+ "cardnumber": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "library assigned user identifier" >+ }, >+ "surname": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "patron's last name" >+ }, >+ "firstname": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "patron's first name" >+ }, >+ "middle_name": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "patron's middle name" >+ }, >+ "title": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "patron's title" >+ }, >+ "other_name": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "any other names associated with the patron" >+ }, >+ "initials": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "initials of the patron" >+ }, >+ "pronouns": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "pronouns of the patron" >+ }, >+ "street_number": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "street number of patron's primary address" >+ }, >+ "street_type": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "street type of patron's primary address" >+ }, >+ "address": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "first address line of patron's primary address" >+ }, >+ "address2": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "second address line of patron's primary address" >+ }, >+ "city": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "city or town of patron's primary address" >+ }, >+ "state": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "state or province of patron's primary address" >+ }, >+ "postal_code": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "zip or postal code of patron's primary address" >+ }, >+ "country": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "country of patron's primary address" >+ }, >+ "email": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "primary email address for patron's primary address" >+ }, >+ "phone": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "primary phone number for patron's primary address" >+ }, >+ "mobile": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the other phone number for patron's primary address" >+ }, >+ "fax": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "fax number for patron's primary address" >+ }, >+ "secondary_email": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "secondary email address for patron's primary address" >+ }, >+ "secondary_phone": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "secondary phone number for patron's primary address" >+ }, >+ "altaddress_street_number": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "street number of patron's alternate address" >+ }, >+ "altaddress_street_type": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "street type of patron's alternate address" >+ }, >+ "altaddress_address": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "first address line of patron's alternate address" >+ }, >+ "altaddress_address2": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "second address line of patron's alternate address" >+ }, >+ "altaddress_city": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "city or town of patron's alternate address" >+ }, >+ "altaddress_state": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "state or province of patron's alternate address" >+ }, >+ "altaddress_postal_code": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "zip or postal code of patron's alternate address" >+ }, >+ "altaddress_country": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "country of patron's alternate address" >+ }, >+ "altaddress_email": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "email address for patron's alternate address" >+ }, >+ "altaddress_phone": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "phone number for patron's alternate address" >+ }, >+ "date_of_birth": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "patron's date of birth" >+ }, >+ "library_id": { >+ "type": "string", >+ "description": "Internal identifier for the patron's home library" >+ }, >+ "category_id": { >+ "type": "string", >+ "description": "Internal identifier for the patron's category" >+ }, >+ "date_enrolled": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "date the patron was added to Koha" >+ }, >+ "expiry_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "date the patron's card is set to expire" >+ }, >+ "date_renewed": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "date the patron's card was last renewed" >+ }, >+ "incorrect_address": { >+ "type": [ >+ "boolean", >+ "null" >+ ], >+ "description": "set to 1 if library marked this patron as having an unconfirmed address" >+ }, >+ "patron_card_lost": { >+ "type": [ >+ "boolean", >+ "null" >+ ], >+ "description": "set to 1 if library marked this patron as having lost his card" >+ }, >+ "restricted": { >+ "type": "boolean", >+ "readOnly": true, >+ "description": "If any restriction applies to the patron" >+ }, >+ "staff_notes": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "a note on the patron's account" >+ }, >+ "relationship_type": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "used for children to include the relationship to their guarantor" >+ }, >+ "gender": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "patron's gender" >+ }, >+ "userid": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "patron's login" >+ }, >+ "opac_notes": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "a note on the patron's account visible in OPAC and staff interface" >+ }, >+ "altaddress_notes": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "a note related to patron's alternate address" >+ }, >+ "statistics_1": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "a field that can be used for any information unique to the library" >+ }, >+ "statistics_2": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "a field that can be used for any information unique to the library" >+ }, >+ "autorenew_checkouts": { >+ "type": "boolean", >+ "description": "indicate whether auto-renewal is allowed for patron" >+ }, >+ "altcontact_firstname": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "first name of alternate contact for the patron" >+ }, >+ "altcontact_surname": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "surname or last name of the alternate contact for the patron" >+ }, >+ "altcontact_address": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the first address line for the alternate contact for the patron" >+ }, >+ "altcontact_address2": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the second address line for the alternate contact for the patron" >+ }, >+ "altcontact_city": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the city for the alternate contact for the patron" >+ }, >+ "altcontact_state": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the state for the alternate contact for the patron" >+ }, >+ "altcontact_postal_code": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the zipcode for the alternate contact for the patron" >+ }, >+ "altcontact_country": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the country for the alternate contact for the patron" >+ }, >+ "altcontact_phone": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the phone number for the alternate contact for the patron" >+ }, >+ "sms_number": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "the mobile phone number where the patron would like to receive notices (if SMS turned on)" >+ }, >+ "sms_provider_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "the provider of the mobile phone number defined in smsalertnumber" >+ }, >+ "privacy": { >+ "type": "integer", >+ "description": "patron's privacy settings related to their checkout history" >+ }, >+ "privacy_guarantor_checkouts": { >+ "type": "integer", >+ "description": "controls if relatives can see this patron's checkouts" >+ }, >+ "privacy_guarantor_fines": { >+ "type": "boolean", >+ "description": "controls if relatives can see this patron's fines" >+ }, >+ "check_previous_checkout": { >+ "type": "string", >+ "description": "produce a warning for this patron if this item has previously been checked out to this patron if 'yes', not if 'no', defer to category setting if 'inherit'" >+ }, >+ "updated_on": { >+ "type": "string", >+ "format": "date-time", >+ "description": "time of last change could be useful for synchronization with external systems (among others)" >+ }, >+ "last_seen": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date-time", >+ "description": "last time a patron has been seen (connected at the OPAC or staff interface)" >+ }, >+ "lang": { >+ "type": "string", >+ "description": "lang to use to send notices to this patron" >+ }, >+ "login_attempts": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "number of failed login attemps" >+ }, >+ "overdrive_auth_token": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "persist OverDrive auth token" >+ }, >+ "anonymized": { >+ "type": "boolean", >+ "readOnly": true, >+ "description": "If the patron has been anonymized" >+ }, >+ "extended_attributes": { >+ "type": "array", >+ "description": "patron's extended attributes", >+ "items": { >+ "$ref": "#/definitions/patron_extended_attribute" >+ } >+ }, >+ "checkouts_count": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Number of checkouts" >+ }, >+ "overdues_count": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Number of overdued checkouts" >+ }, >+ "account_balance": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Balance of the patron's account" >+ }, >+ "library": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "Library of the patron" >+ }, >+ "protected": { >+ "type": [ >+ "boolean" >+ ], >+ "description": "Protected status of the patron" >+ }, >+ "_strings": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "A list of stringified coded values" >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "surname", >+ "library_id", >+ "category_id" >+ ] >+ }, >+ "patron_account_credit": { >+ "type": "object", >+ "properties": { >+ "credit_type": { >+ "type": "string", >+ "description": "Type of credit ('CREDIT', 'FORGIVEN', 'LOST_FOUND', 'PAYMENT', 'WRITEOFF', 'PROCESSING_FOUND' )" >+ }, >+ "amount": { >+ "type": "number", >+ "minimum": 0, >+ "description": "Credit amount" >+ }, >+ "library_id": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Internal identifier for the library in which the transaction took place" >+ }, >+ "account_lines_ids": { >+ "type": "array", >+ "items": { >+ "type": "integer" >+ }, >+ "description": "List of account line ids the credit goes against (optional)" >+ }, >+ "payment_type": { >+ "type": "string", >+ "description": "Payment type (only applies when credit_type=payment)" >+ }, >+ "date": { >+ "type": "string", >+ "format": "date", >+ "description": "Date the credit was recorded (optional)" >+ }, >+ "description": { >+ "type": "string", >+ "description": "Description" >+ }, >+ "note": { >+ "type": "string", >+ "description": "Internal note" >+ } >+ }, >+ "required": [ >+ "amount" >+ ], >+ "additionalProperties": false >+ }, >+ "patron_balance": { >+ "type": "object", >+ "properties": { >+ "balance": { >+ "type": "number", >+ "description": "Signed decimal number" >+ }, >+ "outstanding_credits": { >+ "properties": { >+ "total": { >+ "type": "number" >+ }, >+ "lines": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/account_line" >+ } >+ } >+ } >+ }, >+ "outstanding_debits": { >+ "type": "object", >+ "properties": { >+ "total": { >+ "type": "number" >+ }, >+ "lines": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/account_line" >+ } >+ } >+ } >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "balance" >+ ] >+ }, >+ "patron_category": { >+ "type": "object", >+ "properties": { >+ "patron_category_id": { >+ "type": "string", >+ "description": "Internal patron category identifier" >+ }, >+ "name": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Name of the patron category" >+ }, >+ "enrolment_period": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Number of months the patron is enrolled for" >+ }, >+ "enrolment_period_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "Date the patron is enrolled until" >+ }, >+ "password_expiry_days": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Number of days after which the patron must reset their password" >+ }, >+ "upper_age_limit": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Age limit for the patron" >+ }, >+ "lower_age_limit": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "The minimum age required for the patron category" >+ }, >+ "enrolment_fee": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Enrollment fee for the patron" >+ }, >+ "overdue_notice_required": { >+ "type": [ >+ "boolean", >+ "null" >+ ], >+ "description": "Are overdue notices sent to this patron category (1 for yes, 0 for no)" >+ }, >+ "reserve_fee": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Cost to place holds" >+ }, >+ "hide_lost_items": { >+ "type": "boolean", >+ "description": "Are lost items shown to this category (1 for yes, 0 for no)" >+ }, >+ "category_type": { >+ "type": "string", >+ "description": "Type of Koha patron (Adult, Child, Professional, Organizational, Statistical, Staff)" >+ }, >+ "block_expired_patron_opac_actions": { >+ "type": "number", >+ "description": "Whether or not a patron of this category can renew books or place holds once their card has expired. 0 means they can, 1 means they cannot, -1 means use syspref BlockExpiredPatronOpacActions" >+ }, >+ "default_privacy": { >+ "type": "string", >+ "enum": [ >+ "default", >+ "never", >+ "forever" >+ ], >+ "description": "Default privacy setting for this patron category" >+ }, >+ "check_prev_checkout": { >+ "type": "string", >+ "description": "Produce a warning for this patron category if this item has previously been checked out to this patron if ''yes'', not if ''no'', defer to syspref setting if ''inherit''.'" >+ }, >+ "can_place_ill_in_opac": { >+ "type": "boolean", >+ "description": "Can this patron category place interlibrary loan requests" >+ }, >+ "can_be_guarantee": { >+ "type": "boolean", >+ "description": "If patrons of this category can be guarantees" >+ }, >+ "reset_password": { >+ "type": [ >+ "boolean", >+ "null" >+ ], >+ "description": "If patrons of this category can do the password reset flow" >+ }, >+ "change_password": { >+ "type": [ >+ "boolean", >+ "null" >+ ], >+ "description": "If patrons of this category can change their passwords in the OPAC" >+ }, >+ "min_password_length": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Set minimum password length for patrons in this category" >+ }, >+ "require_strong_password": { >+ "type": [ >+ "boolean", >+ "null" >+ ], >+ "description": "Set required password strength for patrons in this category" >+ }, >+ "exclude_from_local_holds_priority": { >+ "type": [ >+ "boolean", >+ "null" >+ ], >+ "description": "Exclude patrons of this category from local holds priority" >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "patron_category_id" >+ ] >+ }, >+ "patron_extended_attribute": { >+ "type": "object", >+ "properties": { >+ "extended_attribute_id": { >+ "description": "Internal ID for the extended attribute", >+ "type": "integer" >+ }, >+ "type": { >+ "description": "Extended attribute type", >+ "type": "string" >+ }, >+ "value": { >+ "description": "Extended attribute value", >+ "type": [ >+ "string", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "type", >+ "value" >+ ] >+ }, >+ "preservation_config": { >+ "type": "object", >+ "properties": { >+ "settings": { >+ "type": "object", >+ "description": "List of sysprefs used for the Preservation module" >+ }, >+ "permissions": { >+ "type": "object", >+ "description": "List of permissions of the logged in user used for the Preservation module" >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "preservation_train": { >+ "type": "object", >+ "properties": { >+ "train_id": { >+ "type": "integer", >+ "description": "internally assigned train identifier", >+ "readOnly": true >+ }, >+ "name": { >+ "description": "name of the train", >+ "type": "string" >+ }, >+ "description": { >+ "description": "description of the train", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "default_processing_id": { >+ "description": "foreign key to preservation_processings", >+ "type": [ >+ "integer", >+ "null" >+ ] >+ }, >+ "not_for_loan": { >+ "description": "NOT_LOAN authorised value to apply to item added to this train", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "created_on": { >+ "description": "creation date", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "closed_on": { >+ "description": "closing date", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "sent_on": { >+ "description": "sending date", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "received_on": { >+ "description": "receiving date", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "default_processing": { >+ "description": "the default processing", >+ "type": [ >+ "object", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "train_id", >+ "name" >+ ] >+ }, >+ "preservation_train_item": { >+ "type": "object", >+ "properties": { >+ "train_item_id": { >+ "type": "integer", >+ "description": "internally assigned train item identifier", >+ "readOnly": true >+ }, >+ "train_id": { >+ "type": "integer", >+ "description": "internally train identifier" >+ }, >+ "item_id": { >+ "type": "integer", >+ "description": "internally item identifier" >+ }, >+ "user_train_item_id": { >+ "type": "integer", >+ "description": "internally user train item identifier" >+ }, >+ "processing_id": { >+ "description": "internally processing identifier", >+ "type": "integer" >+ }, >+ "added_on": { >+ "description": "add date", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "attributes": { >+ "description": "attribute list", >+ "type": [ >+ "array", >+ "null" >+ ] >+ }, >+ "catalogue_item": { >+ "description": "catalogue item", >+ "type": [ >+ "object", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "preservation_processing": { >+ "type": "object", >+ "properties": { >+ "processing_id": { >+ "type": "integer", >+ "description": "internally assigned agreement identifier", >+ "readOnly": true >+ }, >+ "name": { >+ "description": "name of the processing", >+ "type": "string" >+ }, >+ "letter_code": { >+ "description": "Letter code of the letter to use for printing slips", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "attributes": { >+ "description": "attributes of the processing", >+ "items": { >+ "$ref": "#/definitions/preservation_processing_attribute" >+ } >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "processing_id", >+ "name" >+ ] >+ }, >+ "quote": { >+ "type": "object", >+ "properties": { >+ "quote_id": { >+ "type": "integer", >+ "description": "internally assigned quote identifier" >+ }, >+ "source": { >+ "description": "source of the quote", >+ "type": "string" >+ }, >+ "text": { >+ "description": "text", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "displayed_on": { >+ "description": "Last display date", >+ "type": [ >+ "string", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "source", >+ "text" >+ ] >+ }, >+ "recall": { >+ "type": "object", >+ "properties": { >+ "recall_id": { >+ "type": "integer", >+ "description": "Internal recall identifier" >+ }, >+ "patron_id": { >+ "type": "integer", >+ "description": "Internal patron identifier" >+ }, >+ "created_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date-time", >+ "description": "The date the recall was requested" >+ }, >+ "biblio_id": { >+ "type": "integer", >+ "description": "Internal biblio identifier" >+ }, >+ "pickup_library_id": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Internal library identifier for the pickup library" >+ }, >+ "completed_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date-time", >+ "description": "The date the recall was fulfilled" >+ }, >+ "notes": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Notes related to this recall" >+ }, >+ "priority": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Where in the queue the patron sits (not yet implemented)" >+ }, >+ "status": { >+ "type": "string", >+ "description": "Status of the recall", >+ "enum": [ >+ "requested", >+ "overdue", >+ "waiting", >+ "in_transit", >+ "cancelled", >+ "expired", >+ "fulfilled" >+ ] >+ }, >+ "timestamp": { >+ "type": "string", >+ "format": "date-time", >+ "description": "Timestamp for the latest recall update" >+ }, >+ "item_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Internal item identifier" >+ }, >+ "waiting_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date-time", >+ "description": "The date the item was marked as waiting for the patron at the library" >+ }, >+ "expiration_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date-time", >+ "description": "The date the recall expires" >+ }, >+ "completed": { >+ "type": "boolean", >+ "description": "Controls if the recall is fulfilled" >+ }, >+ "item_level": { >+ "type": "boolean", >+ "description": "If the recall is requested at item level" >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "recalls": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/recall" >+ }, >+ "additionalProperties": false >+ }, >+ "renewal": { >+ "type": "object", >+ "properties": { >+ "renewal_id": { >+ "type": "integer", >+ "description": "internally assigned renewal identifier" >+ }, >+ "checkout_id": { >+ "type": "integer", >+ "description": "internally assigned checkout identifier" >+ }, >+ "interface": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Interface from which the renewal took place (values can be: api, cron, commandline, intranet, opac and sip)" >+ }, >+ "renewer_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "internally assigned for the user that processed the renewal" >+ }, >+ "renewal_date": { >+ "type": "string", >+ "format": "date-time", >+ "description": "Date the renewal took place" >+ }, >+ "seen": { >+ "type": [ >+ "boolean" >+ ], >+ "description": "Seen/Unseen renewal" >+ }, >+ "timestamp": { >+ "type": "string", >+ "description": "Last update time" >+ }, >+ "renewal_type": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "enum": [ >+ "Automatic", >+ "Manual" >+ ] >+ }, >+ "renewer": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "The object representing the renewal issuer" >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "renewals": { >+ "type": "array", >+ "items": { >+ "$ref": "#/definitions/renewal" >+ }, >+ "additionalProperties": false >+ }, >+ "return_claim": { >+ "type": "object", >+ "properties": { >+ "claim_id": { >+ "type": [ >+ "integer" >+ ], >+ "description": "internally assigned return claim identifier" >+ }, >+ "item_id": { >+ "type": [ >+ "integer" >+ ], >+ "description": "internal identifier of the claimed item" >+ }, >+ "issue_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "internal identifier of the claimed checkout if still checked out" >+ }, >+ "old_issue_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "internal identifier of the claimed checkout if not longer checked out" >+ }, >+ "patron_id": { >+ "type": "integer", >+ "description": "Internal patron identifier" >+ }, >+ "notes": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "notes about this claim" >+ }, >+ "created_on": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date-time", >+ "description": "date of claim creation" >+ }, >+ "created_by": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "patron id of librarian who made the claim" >+ }, >+ "updated_on": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date-time", >+ "description": "date the claim was last updated" >+ }, >+ "updated_by": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "patron id of librarian who last updated the claim" >+ }, >+ "resolution": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "code of resolution type for this claim" >+ }, >+ "resolved_on": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date-time", >+ "description": "date the claim was resolved" >+ }, >+ "resolved_by": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "patron id of librarian who resolved this claim" >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "search_filter": { >+ "type": "object", >+ "properties": { >+ "search_filter_id": { >+ "type": "integer", >+ "description": "internally assigned search filter identifier", >+ "readOnly": true >+ }, >+ "name": { >+ "description": "filter name", >+ "type": "string" >+ }, >+ "query": { >+ "description": "filter query part", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "limits": { >+ "description": "filter limits part", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "opac": { >+ "description": "visible on opac", >+ "type": [ >+ "boolean", >+ "null" >+ ] >+ }, >+ "staff_client": { >+ "description": "visible in staff client", >+ "type": [ >+ "boolean", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "name" >+ ] >+ }, >+ "smtp_server": { >+ "type": "object", >+ "properties": { >+ "smtp_server_id": { >+ "type": "integer", >+ "description": "Internal SMTP server identifier", >+ "readOnly": true >+ }, >+ "name": { >+ "type": "string", >+ "description": "Name of the SMTP server" >+ }, >+ "host": { >+ "type": "string", >+ "description": "SMTP host name" >+ }, >+ "port": { >+ "type": "integer", >+ "description": "TCP port number" >+ }, >+ "timeout": { >+ "type": "integer", >+ "description": "Maximum time in seconds to wait for server" >+ }, >+ "ssl_mode": { >+ "type": "string", >+ "enum": [ >+ "disabled", >+ "ssl", >+ "starttls" >+ ], >+ "description": "If SSL/TLS will be used" >+ }, >+ "user_name": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "The user name to use for authentication (optional)" >+ }, >+ "password": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "The password to use for authentication (optional)" >+ }, >+ "debug": { >+ "type": "boolean", >+ "description": "If the SMTP connection is set to debug mode" >+ }, >+ "is_default": { >+ "type": "boolean", >+ "description": "Is this the default SMTP server" >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "name" >+ ] >+ }, >+ "suggestion": { >+ "type": "object", >+ "properties": { >+ "suggestion_id": { >+ "type": "integer", >+ "readOnly": true, >+ "description": "unique identifier assigned automatically by Koha" >+ }, >+ "suggested_by": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "patron_id for the person making the suggestion, foreign key linking to the borrowers table" >+ }, >+ "suggestion_date": { >+ "type": "string", >+ "format": "date", >+ "description": "the suggestion was submitted" >+ }, >+ "managed_by": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "patron_id for the librarian managing the suggestion, foreign key linking to the borrowers table" >+ }, >+ "managed_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "date the suggestion was updated" >+ }, >+ "accepted_by": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "patron_id for the librarian who accepted the suggestion, foreign key linking to the borrowers table" >+ }, >+ "accepted_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "date the suggestion was marked as accepted" >+ }, >+ "rejected_by": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "patron_id for the librarian who rejected the suggestion, foreign key linking to the borrowers table" >+ }, >+ "rejected_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "date the suggestion was marked as rejected" >+ }, >+ "last_status_change_by": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "patron the suggestion was last modified by" >+ }, >+ "last_status_change_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "date the suggestion was last modified" >+ }, >+ "status": { >+ "type": "string", >+ "description": "Suggestion status. Possible values are:\n\n* `ASKED`\n* `CHECKED`\n* `ACCEPTED`\n* `REJECTED`\n* `ORDERED`\n* `AVAILABLE`\n* Values from the `SUGGEST_STATUS` av category\n" >+ }, >+ "note": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "note entered on the suggestion" >+ }, >+ "staff_note": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "non-public note entered on the suggestion" >+ }, >+ "author": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "author of the suggested item" >+ }, >+ "title": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "title of the suggested item" >+ }, >+ "copyright_date": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "copyright date of the suggested item" >+ }, >+ "publisher_code": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "publisher of the suggested item" >+ }, >+ "timestamp": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date-time", >+ "description": "timestamp of date created" >+ }, >+ "volume_desc": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "volume description" >+ }, >+ "publication_year": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "year of publication" >+ }, >+ "publication_place": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "publication place of the suggested item" >+ }, >+ "isbn": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "isbn of the suggested item" >+ }, >+ "biblio_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "foreign key linking the suggestion to the biblio table after the suggestion has been ordered" >+ }, >+ "reason": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "reason for accepting or rejecting the suggestion" >+ }, >+ "patron_reason": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "reason for making the suggestion" >+ }, >+ "budget_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "foreign key linking the suggested budget to the aqbudgets table" >+ }, >+ "library_id": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "foreign key linking the suggested branch to the branches table" >+ }, >+ "collection_title": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "collection name for the suggested item" >+ }, >+ "item_type": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "suggested item type" >+ }, >+ "quantity": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "suggested quantity to be purchased" >+ }, >+ "currency": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "suggested currency for the suggested price" >+ }, >+ "item_price": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "suggested price" >+ }, >+ "total_price": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "suggested total cost (price*quantity updated for currency)" >+ }, >+ "archived": { >+ "type": [ >+ "boolean", >+ "null" >+ ], >+ "description": "archived (processed) suggestion" >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "ticket": { >+ "type": "object", >+ "properties": { >+ "ticket_id": { >+ "type": "integer", >+ "description": "Internal ticket identifier", >+ "readOnly": true >+ }, >+ "source": { >+ "type": "string", >+ "enum": [ >+ "catalog" >+ ] >+ }, >+ "reported_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date-time", >+ "description": "Date the ticket was reported", >+ "readOnly": true >+ }, >+ "biblio": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "The object representing the biblio the ticket is related to", >+ "readOnly": true >+ }, >+ "biblio_id": { >+ "type": "integer", >+ "description": "Internal identifier for the biblio the ticket is related to" >+ }, >+ "title": { >+ "type": "string", >+ "description": "Ticket title" >+ }, >+ "body": { >+ "type": "string", >+ "description": "Ticket details" >+ }, >+ "status": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Current status of the ticket", >+ "readOnly": true >+ }, >+ "reporter": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "The object representing the patron who reported the ticket", >+ "readOnly": true >+ }, >+ "reporter_id": { >+ "type": "integer", >+ "description": "Internal identifier for the patron who reported the ticket" >+ }, >+ "resolver": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "The object representing the user who resolved the ticket", >+ "readOnly": true >+ }, >+ "resolver_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Internal identifier for the user who resolved the ticket" >+ }, >+ "resolved_date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date-time", >+ "description": "Date the ticket was resolved_date" >+ }, >+ "updates_count": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Number of updates" >+ }, >+ "_strings": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "A list of stringified coded values" >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "source", >+ "title", >+ "body" >+ ] >+ }, >+ "ticket_update": { >+ "type": "object", >+ "properties": { >+ "update_id": { >+ "type": "integer", >+ "description": "Internal ticket update identifier", >+ "readOnly": true >+ }, >+ "ticket_id": { >+ "type": "integer", >+ "description": "Internal ticket identifier", >+ "readOnly": true >+ }, >+ "user": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "The object representing the patron who added the update", >+ "readOnly": true >+ }, >+ "user_id": { >+ "type": "integer", >+ "description": "Internal identifier for the patron who added the update" >+ }, >+ "date": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date-time", >+ "description": "Date the ticket update was reported", >+ "readOnly": true >+ }, >+ "message": { >+ "type": "string", >+ "description": "Ticket update details" >+ }, >+ "public": { >+ "type": "boolean", >+ "description": "Is this update intended to be sent to the patron" >+ }, >+ "status": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Status of the ticket after this update" >+ } >+ }, >+ "additionalProperties": true, >+ "required": [ >+ "message", >+ "public" >+ ] >+ }, >+ "transfer_limit": { >+ "type": "object", >+ "properties": { >+ "limit_id": { >+ "type": "integer", >+ "description": "Internal transfer limit identifier" >+ }, >+ "to_library_id": { >+ "type": "string", >+ "description": "Internal library id for which library the item is going to" >+ }, >+ "from_library_id": { >+ "type": "string", >+ "description": "Internal library id for which library the item is coming from" >+ }, >+ "item_type": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Itemtype defining the type for this limi" >+ }, >+ "collection_code": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Authorized value for the collection code associated with this limit" >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "to_library_id", >+ "from_library_id" >+ ] >+ }, >+ "vendor": { >+ "type": "object", >+ "properties": { >+ "id": { >+ "type": "integer", >+ "description": "internally assigned vendor identifier", >+ "readOnly": true >+ }, >+ "name": { >+ "type": [ >+ "string" >+ ], >+ "description": "Vendor name" >+ }, >+ "address1": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Vendor physical address (line 1)" >+ }, >+ "address2": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Vendor physical address (line 2)" >+ }, >+ "address3": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Vendor physical address (line 3)" >+ }, >+ "address4": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Vendor physical address (line 4)" >+ }, >+ "phone": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Vendor phone number" >+ }, >+ "fax": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Vendor fax number" >+ }, >+ "accountnumber": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Vendor account number" >+ }, >+ "type": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Type of vendor" >+ }, >+ "notes": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Vendor notes" >+ }, >+ "postal": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Vendor postal address" >+ }, >+ "url": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Vendor web address" >+ }, >+ "active": { >+ "type": [ >+ "boolean", >+ "null" >+ ], >+ "description": "Is this vendor active" >+ }, >+ "list_currency": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "List prices currency" >+ }, >+ "invoice_currency": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Invoice prices currency" >+ }, >+ "gst": { >+ "type": [ >+ "boolean", >+ "null" >+ ], >+ "description": "Is the library taxed when buying from this vendor" >+ }, >+ "list_includes_gst": { >+ "type": [ >+ "boolean", >+ "null" >+ ], >+ "description": "List prices include taxes" >+ }, >+ "invoice_includes_gst": { >+ "type": [ >+ "boolean", >+ "null" >+ ], >+ "description": "Invoice prices include taxes" >+ }, >+ "tax_rate": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Default tax rate for items ordered from this vendor" >+ }, >+ "discount": { >+ "type": [ >+ "number", >+ "null" >+ ], >+ "description": "Default discount rate for items ordered from this vendor" >+ }, >+ "deliverytime": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Expected delivery time (in days)" >+ }, >+ "external_id": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "External id" >+ }, >+ "aliases": { >+ "type": "array", >+ "description": "List of aliases", >+ "items": { >+ "$ref": "#/definitions/vendor_alias" >+ } >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "name" >+ ] >+ }, >+ "vendor_issue": { >+ "type": "object", >+ "properties": { >+ "issue_id": { >+ "type": "integer", >+ "description": "internally assigned vendor identifier", >+ "readOnly": true >+ }, >+ "vendor_id": { >+ "description": "ID of the vendor", >+ "type": "integer" >+ }, >+ "type": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Type of the issue" >+ }, >+ "started_on": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "Start date" >+ }, >+ "ended_on": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "End date" >+ }, >+ "notes": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Notes" >+ }, >+ "_strings": { >+ "type": [ >+ "object", >+ "null" >+ ], >+ "description": "A list of stringified coded values" >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "vendor_alias": { >+ "type": "object", >+ "properties": { >+ "alias_id": { >+ "description": "Internal ID for the extended attribute", >+ "type": "integer" >+ }, >+ "vendor_id": { >+ "description": "ID of the vendor", >+ "type": "integer" >+ }, >+ "alias": { >+ "description": "The alias", >+ "type": "string" >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "alias" >+ ] >+ }, >+ "club_hold": { >+ "type": "object", >+ "properties": { >+ "club_hold_id": { >+ "type": "integer", >+ "description": "Internal club hold identifier" >+ }, >+ "club_id": { >+ "type": "integer", >+ "description": "Internal club identifier" >+ }, >+ "biblio_id": { >+ "type": "integer", >+ "description": "Internal biblio identifier" >+ }, >+ "item_id": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Internal item identifier" >+ }, >+ "date_created": { >+ "type": "string", >+ "format": "date-time", >+ "description": "Date and time the hold was created" >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "erm_agreement_period": { >+ "type": "object", >+ "properties": { >+ "agreement_period_id": { >+ "type": "integer", >+ "description": "internally assigned identifier", >+ "readOnly": true >+ }, >+ "agreement_id": { >+ "type": "integer", >+ "description": "Internal agreement identifier" >+ }, >+ "started_on": { >+ "type": "string", >+ "format": "date", >+ "description": "Start of the agreement period" >+ }, >+ "ended_on": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "End of the agreemnent period" >+ }, >+ "cancellation_deadline": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "format": "date", >+ "description": "Deadline for the cancellation" >+ }, >+ "notes": { >+ "type": [ >+ "string", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "started_on" >+ ] >+ }, >+ "erm_user_role": { >+ "type": "object", >+ "properties": { >+ "user_role_id": { >+ "type": "integer", >+ "description": "Internal user_role identifier" >+ }, >+ "agreement_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Internal agreement identifier" >+ }, >+ "license_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Internal license identifier" >+ }, >+ "user_id": { >+ "type": "integer", >+ "description": "Internal patron identifier" >+ }, >+ "role": { >+ "description": "role of the user", >+ "type": [ >+ "string" >+ ] >+ }, >+ "patron": { >+ "type": [ >+ "object", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "user_id", >+ "role" >+ ] >+ }, >+ "erm_agreement_relationship": { >+ "type": "object", >+ "properties": { >+ "agreement_id": { >+ "type": "integer", >+ "description": "Internal agreement identifier" >+ }, >+ "related_agreement_id": { >+ "type": "integer", >+ "description": "Internal related agreement identifier" >+ }, >+ "relationship": { >+ "description": "relationship between the agreements", >+ "type": "string", >+ "enum": [ >+ "supersedes", >+ "is-superseded-by", >+ "provides_post-cancellation_access_for", >+ "has-post-cancellation-access-in", >+ "tracks_demand-driven_acquisitions_for", >+ "has-demand-driven-acquisitions-in", >+ "has_backfile_in", >+ "has_frontfile_in", >+ "related_to" >+ ] >+ }, >+ "notes": { >+ "type": [ >+ "string", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "related_agreement_id", >+ "relationship" >+ ] >+ }, >+ "erm_agreement_license": { >+ "type": "object", >+ "properties": { >+ "agreement_license_id": { >+ "type": "integer", >+ "description": "Internal agreement license identifier" >+ }, >+ "agreement_id": { >+ "type": "integer", >+ "description": "Internal agreement identifier" >+ }, >+ "license_id": { >+ "type": "integer", >+ "description": "Internal license identifier" >+ }, >+ "status": { >+ "type": "string" >+ }, >+ "physical_location": { >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "notes": { >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "uri": { >+ "type": [ >+ "string", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "license_id", >+ "status" >+ ] >+ }, >+ "erm_document": { >+ "type": "object", >+ "properties": { >+ "document_id": { >+ "type": "integer", >+ "description": "internally assigned identifier" >+ }, >+ "agreement_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Internal agreement identifier" >+ }, >+ "license_id": { >+ "type": [ >+ "integer", >+ "null" >+ ], >+ "description": "Internal license identifier" >+ }, >+ "file_name": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Name of the file" >+ }, >+ "file_type": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "readOnly": true, >+ "description": "Type of the file" >+ }, >+ "file_description": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Description of the file" >+ }, >+ "file_content": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Content of the file" >+ }, >+ "uploaded_on": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "readOnly": true, >+ "format": "date-time", >+ "description": "Datetime of the upload" >+ }, >+ "physical_location": { >+ "type": [ >+ "string", >+ "null" >+ ], >+ "description": "Physical location of the document" >+ }, >+ "uri": { >+ "description": "URI of the document", >+ "type": [ >+ "string", >+ "null" >+ ] >+ }, >+ "notes": { >+ "type": [ >+ "string", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false >+ }, >+ "erm_eholdings_package_agreement": { >+ "type": "object", >+ "properties": { >+ "package_id": { >+ "type": "integer", >+ "description": "foreign key to package", >+ "readOnly": true >+ }, >+ "agreement_id": { >+ "description": "foreign key to agreement", >+ "type": "integer" >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "agreement_id" >+ ] >+ }, >+ "item_type_translated_description": { >+ "type": "object", >+ "properties": { >+ "lang": { >+ "description": "Language identifier", >+ "type": "string" >+ }, >+ "translation": { >+ "description": "Translated plain text", >+ "type": "string" >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "lang", >+ "translation" >+ ] >+ }, >+ "preservation_processing_attribute": { >+ "type": "object", >+ "properties": { >+ "processing_attribute_id": { >+ "type": "integer", >+ "description": "Internal processing attribute identifier" >+ }, >+ "processing_id": { >+ "type": "integer", >+ "description": "Internal processing identifier" >+ }, >+ "name": { >+ "type": "string" >+ }, >+ "type": { >+ "type": [ >+ "string" >+ ] >+ }, >+ "option_source": { >+ "type": [ >+ "string", >+ "null" >+ ] >+ } >+ }, >+ "additionalProperties": false, >+ "required": [ >+ "name", >+ "type" >+ ] >+ } >+ }, >+ "parameters": { >+ "advancededitormacro_id_pp": { >+ "description": "Advanced editor macro internal identifier", >+ "in": "path", >+ "name": "advancededitormacro_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "agreement_id_pp": { >+ "description": "Agreement internal identifier", >+ "in": "path", >+ "name": "agreement_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "agreement_period_id_pp": { >+ "description": "Agreement period internal identifier", >+ "in": "path", >+ "name": "agreement_period_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "authorised_value_id_pp": { >+ "description": "Authorised value internal identifier", >+ "in": "path", >+ "name": "authorised_value_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "authority_id_pp": { >+ "description": "Authority identifier", >+ "in": "path", >+ "name": "authority_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "authority_type_header": { >+ "description": "Authority type code. Use when content type is not application/json", >+ "name": "x-authority-type", >+ "in": "header", >+ "required": false, >+ "type": "string" >+ }, >+ "booking_id_pp": { >+ "description": "Booking identifier", >+ "in": "path", >+ "name": "booking_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "framework_id_header": { >+ "description": "Framework id. Use when content type is not application/json", >+ "name": "x-framework-id", >+ "in": "header", >+ "required": false, >+ "type": "string" >+ }, >+ "marc_schema_header": { >+ "description": "March schema. One of MARC21 or UNIMARC", >+ "name": "x-record-schema", >+ "in": "header", >+ "required": false, >+ "type": "string", >+ "enum": [ >+ "MARC21", >+ "UNIMARC" >+ ] >+ }, >+ "confirm_not_duplicate_header": { >+ "description": "Confirm the posted element is not a duplicate", >+ "name": "x-confirm-not-duplicate", >+ "in": "header", >+ "required": false, >+ "type": "integer" >+ }, >+ "identity_provider_id_pp": { >+ "description": "Identity provider internal identifier", >+ "in": "path", >+ "name": "identity_provider_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "identity_provider_domain_id_pp": { >+ "description": "Identity provider domain internal identifier", >+ "in": "path", >+ "name": "identity_provider_domain_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "biblio_id_pp": { >+ "description": "Record internal identifier", >+ "in": "path", >+ "name": "biblio_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "candidate_match_id_pp": { >+ "description": "Internal import record match identifier", >+ "in": "path", >+ "name": "candidate_match_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "cash_register_id_pp": { >+ "description": "Cash register internal identifier", >+ "in": "path", >+ "name": "cash_register_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "cashup_id_pp": { >+ "description": "Cashup internal identifier", >+ "in": "path", >+ "name": "cashup_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "checkout_id_pp": { >+ "description": "Internal checkout identifier", >+ "in": "path", >+ "name": "checkout_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "city_id_pp": { >+ "description": "City internal identifier", >+ "in": "path", >+ "name": "city_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "club_id_pp": { >+ "description": "Internal club identifier", >+ "in": "path", >+ "name": "club_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "eholdings_title_id_pp": { >+ "description": "Title internal identifier", >+ "in": "path", >+ "name": "title_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "eholdings_package_id_pp": { >+ "description": "Package internal identifier", >+ "in": "path", >+ "name": "package_id", >+ "required": true, >+ "type": "string" >+ }, >+ "eholdings_resource_id_pp": { >+ "description": "Resource internal identifier", >+ "in": "path", >+ "name": "resource_id", >+ "required": true, >+ "type": "string" >+ }, >+ "erm_counter_files_id_pp": { >+ "description": "ERM counter_files internal identifier", >+ "in": "path", >+ "name": "erm_counter_files_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "erm_counter_log_id_pp": { >+ "description": "ERM counter_log internal identifier", >+ "in": "path", >+ "name": "erm_counter_log_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "erm_default_usage_report_id_pp": { >+ "description": "ERM default_usage_report internal identifier", >+ "in": "path", >+ "name": "erm_default_usage_report_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "erm_usage_data_provider_id_pp": { >+ "description": "ERM usage_data_provider internal identifier", >+ "in": "path", >+ "name": "erm_usage_data_provider_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "data_type_pp": { >+ "description": "ERM custom report data type", >+ "in": "path", >+ "name": "data_type", >+ "required": true, >+ "type": "string" >+ }, >+ "fund_id_pp": { >+ "description": "Fund id", >+ "in": "path", >+ "name": "fund_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "hold_id_pp": { >+ "description": "Internal hold identifier", >+ "in": "path", >+ "name": "hold_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "ill_batch_id_pp": { >+ "description": "Internal ILL batch identifier", >+ "in": "path", >+ "name": "ill_batch_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "ill_batchstatus_code_pp": { >+ "description": "Internal ILL batch status identifier", >+ "in": "path", >+ "name": "ill_batchstatus_code", >+ "required": true, >+ "type": "string" >+ }, >+ "import_batch_profile_id_pp": { >+ "description": "Internal profile identifier", >+ "in": "path", >+ "name": "import_batch_profile_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "import_record_id_pp": { >+ "description": "Internal import record identifier", >+ "in": "path", >+ "name": "import_record_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "record_source_id_pp": { >+ "description": "Internal record source identifier", >+ "in": "path", >+ "name": "record_source_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "item_id_pp": { >+ "description": "Internal item identifier", >+ "in": "path", >+ "name": "item_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "item_id_qp": { >+ "description": "Internal item identifier", >+ "in": "query", >+ "name": "item_id", >+ "type": "integer" >+ }, >+ "job_id_pp": { >+ "description": "Job internal identifier", >+ "in": "path", >+ "name": "job_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "library_id_pp": { >+ "description": "Internal library identifier", >+ "in": "path", >+ "name": "library_id", >+ "required": true, >+ "type": "string" >+ }, >+ "license_id_pp": { >+ "description": "License internal identifier", >+ "in": "path", >+ "name": "license_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "match": { >+ "description": "Matching criteria", >+ "enum": [ >+ "contains", >+ "exact", >+ "starts_with", >+ "ends_with" >+ ], >+ "in": "query", >+ "name": "_match", >+ "required": false, >+ "type": "string" >+ }, >+ "order_by": { >+ "collectionFormat": "csv", >+ "description": "Sorting criteria", >+ "in": "query", >+ "items": { >+ "type": "string" >+ }, >+ "name": "_order_by", >+ "required": false, >+ "type": "array" >+ }, >+ "order_id_pp": { >+ "description": "Internal order identifier", >+ "in": "path", >+ "name": "order_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "page": { >+ "description": "Page number, for paginated object listing", >+ "in": "query", >+ "name": "_page", >+ "required": false, >+ "type": "integer" >+ }, >+ "patron_id_pp": { >+ "description": "Internal patron identifier", >+ "in": "path", >+ "name": "patron_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "patron_id_qp": { >+ "description": "Internal patron identifier", >+ "in": "query", >+ "name": "patron_id", >+ "type": "integer" >+ }, >+ "per_page": { >+ "description": "Page size, for paginated object listing", >+ "in": "query", >+ "name": "_per_page", >+ "required": false, >+ "type": "integer" >+ }, >+ "preservation_processing_id_pp": { >+ "description": "processing internal identifier", >+ "in": "path", >+ "name": "processing_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "preservation_train_id_pp": { >+ "description": "train internal identifier", >+ "in": "path", >+ "name": "train_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "preservation_train_item_id_pp": { >+ "description": "train item internal identifier", >+ "in": "path", >+ "name": "train_item_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "q_body": { >+ "description": "Query filter sent through request\"s body", >+ "in": "body", >+ "name": "query", >+ "required": false, >+ "schema": { >+ "type": "object" >+ } >+ }, >+ "q_param": { >+ "description": "Query filter sent as a request parameter", >+ "in": "query", >+ "name": "q", >+ "required": false, >+ "type": "array", >+ "items": { >+ "type": "string" >+ }, >+ "collectionFormat": "multi" >+ }, >+ "quote_id_pp": { >+ "description": "Quote internal identifier", >+ "in": "path", >+ "name": "quote_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "record_source_id_header": { >+ "description": "Internal record source identifier.", >+ "name": "x-record-source-id", >+ "in": "header", >+ "required": false, >+ "type": "string" >+ }, >+ "request_id_header": { >+ "description": "Request id header", >+ "in": "header", >+ "name": "x-koha-request-id", >+ "required": false, >+ "type": "integer" >+ }, >+ "search_filter_id_pp": { >+ "name": "search_filter_id", >+ "in": "path", >+ "description": "Search filter internal identifier", >+ "required": true, >+ "type": "integer" >+ }, >+ "seen_pp": { >+ "description": "Item was seen flag", >+ "in": "query", >+ "name": "seen", >+ "required": false, >+ "type": "integer" >+ }, >+ "smtp_server_id_pp": { >+ "description": "SMTP server internal identifier", >+ "in": "path", >+ "name": "smtp_server_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "suggestion_id_pp": { >+ "description": "Internal suggestion identifier", >+ "in": "path", >+ "name": "suggestion_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "ticket_id_pp": { >+ "description": "Internal ticket identifier", >+ "in": "path", >+ "name": "ticket_id", >+ "required": true, >+ "type": "integer" >+ }, >+ "transfer_limit_id_pp": { >+ "description": "Internal transfer limit identifier", >+ "in": "path", >+ "name": "limit_id", >+ "required": true, >+ "type": "string" >+ }, >+ "vendor_id_pp": { >+ "description": "Vendor id", >+ "in": "path", >+ "name": "vendor_id", >+ "required": true, >+ "type": "integer" >+ } >+ } >+} >\ No newline at end of file >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categories.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categories.tt >index 2144484642..f90cff8172 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categories.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categories.tt >@@ -438,6 +438,18 @@ > </select> > <div class="hint">If <i>Yes</i>, holds placed by patrons of this category will not be given priority</div> > </li> >+ <li> >+ <label for="noissuescharge">No issues charge: </label> >+ <input type="text" name="noissuescharge" id="noissuescharge" value="[% category.noissuescharge | html %]" size="3" maxlength="3" /> >+ </li> >+ <li> >+ <label for="noissueschargeguarantees">No issues charge guarantees: </label> >+ <input type="text" name="noissueschargeguarantees" id="noissueschargeguarantees" value="[% category.noissueschargeguarantees | html %]" size="3" maxlength="3" /> >+ </li> >+ <li> >+ <label for="noissueschargeguarantorswithguarantees">No issues charge guarantors with guarantees: </label> >+ <input type="text" name="noissueschargeguarantorswithguarantees" id="noissueschargeguarantorswithguarantees" value="[% category.noissueschargeguarantorswithguarantees | html %]" size="3" maxlength="3" /> >+ </li> > </ol> > </fieldset> > >@@ -583,6 +595,9 @@ > <th scope="col">Can be guarantee</th> > <th scope="col">Default privacy</th> > <th scope="col">Exclude from local holds priority</th> >+ <th scope="col">No issues charge</th> >+ <th scope="col">No issues charge guarantees</th> >+ <th scope="col">No issues charge guarantors with guarantees</th> > <th scope="col">Actions</th> > </tr> > </thead> >@@ -720,6 +735,21 @@ > <span>No</span> > [% END %] > </td> >+ [% IF (category.noissuescharge) %] >+ <td>[% category.noissuescharge | html %]</td> >+ [% ELSE %] >+ <td>0.00</td> >+ [% END %] >+ [% IF (category.noissueschargeguarantees) %] >+ <td>[% category.noissueschargeguarantees | html %]</td> >+ [% ELSE %] >+ <td>0.00</td> >+ [% END %] >+ [% IF (category.noissueschargeguarantorswithguarantees) %] >+ <td>[% category.noissueschargeguarantorswithguarantees | html %]</td> >+ [% ELSE %] >+ <td>0.00</td> >+ [% END %] > <td class="actions"> > <a class="btn btn-default btn-xs" href="/cgi-bin/koha/admin/categories.pl?op=add_form&categorycode=[% category.categorycode |uri %]"><i class="fa-solid fa-pencil" aria-hidden="true"></i> Edit</a> > <a class="btn btn-default btn-xs" href="/cgi-bin/koha/admin/categories.pl?op=delete_confirm&categorycode=[% category.categorycode |uri %]"><i class="fa fa-trash-can"></i> Delete</a> >-- >2.39.2
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 28924
:
165870
|
165871
|
165872
|
165873
|
165874
|
165875
|
165876
|
166042
|
166043
|
166044
|
166045
|
166046
|
166047
|
166048
|
166171
|
166172
|
166173
|
166174
|
166175
|
166176
|
166177
|
167719
|
167720
|
167721
|
167722
|
167723
|
167724
|
167725
|
167726
|
167727
|
167728
|
167729
|
167730
|
167731
|
167732
|
167733
|
167734
|
167735
|
167736
|
167737
|
167738
|
167739
|
167740
|
168728
|
168729
|
168730
|
168731
|
168732
|
168733
|
168734
|
168735
|
168736
|
168737
|
168738
|
168984
|
168985
|
168986
|
168987
|
168988
|
168989
|
168990
|
168991
|
168992
|
168993
|
168994
|
168995
|
169177
|
169428