/request-storage
Collection of request items.
Retrieve a list of request items.
Create a new request item.
get /request-storage/requests
Retrieve a list of request items.
Query Parameters
- totalRecords: (string - default: auto - pattern: exact|estimated|none|auto)
How to calculate the totalRecords property. "exact" for the correct number, "estimated" for an estimation, "auto" to automatically select "exact" or "estimated", "none" for suppressing the totalRecords property. For details see https://github.com/folio-org/raml-module-builder#estimated-totalrecords
Example:
none
- offset: (integer - default: 0 - minimum: 0 - maximum: 2147483647)
Skip over a number of elements by specifying an offset value for the query
Example:
0
- limit: (integer - default: 10 - minimum: 0 - maximum: 2147483647)
Limit the number of elements returned in the response. Using limit=0 will return totalRecords with the exact value. For details about totalRecords see https://github.com/folio-org/raml-module-builder#estimated-totalrecords
Example:
10
- query: (string)
A query expressed as a CQL string (see dev.folio.org/reference/glossary#cql) using valid searchable fields. The first example below shows the general form of a full CQL query, but those fields might not be relevant in this context.
by using CQL
Example:
(username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode requesterId="cf23adf0-61ba-4887-bf82-956c4aae2260"
HTTP status code 200
Returns a list of request items
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Collection of requests",
"type": "object",
"properties": {
"requests": {
"description": "List of request items",
"id": "requests",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "A request by a patron for a specific item",
"properties": {
"id": {
"description": "UUID of the request",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"requestLevel": {
"description": "Level of the request - Item or Title",
"type": "string",
"enum": [
"Item",
"Title"
]
},
"requestType": {
"description": "Whether the item should be held upon return, recalled or paged for",
"type": "string",
"enum": [
"Hold",
"Recall",
"Page"
]
},
"ecsRequestPhase": {
"description": "Stage in ECS request process, absence of this field means this is a single-tenant request",
"type": "string",
"enum": [
"Primary",
"Secondary",
"Intermediate"
]
},
"requestDate": {
"description": "Date the request was made",
"type": "string",
"format": "date-time"
},
"patronComments": {
"description": "Comments made by the patron",
"type": "string"
},
"requesterId": {
"description": "ID of the requesting patron (user)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"instanceId": {
"description": "ID of the instance being requested",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"holdingsRecordId": {
"description": "ID of the holdings record being requested",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"itemId": {
"description": "ID of the item being requested",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"status": {
"description": "Status of the request",
"type": "string",
"enum": [
"Open - Not yet filled",
"Open - Awaiting pickup",
"Open - In transit",
"Open - Awaiting delivery",
"Closed - Filled",
"Closed - Cancelled",
"Closed - Unfilled",
"Closed - Pickup expired"
]
},
"cancellationReasonId": {
"description": "The id of the relevant request reason",
"type": "string"
},
"cancelledByUserId": {
"description": "The id of the user that cancelled the request",
"type": "string"
},
"cancellationAdditionalInformation": {
"description": "Potential relevant information regarding a cancellation",
"type": "string"
},
"cancelledDate": {
"description": "Date the request was cancelled",
"type": "string",
"format": "date-time"
},
"position": {
"description": "Position of the request in the unified request queue",
"type": "integer"
},
"instance": {
"description": "Copy of some instance metadata (used for searching and sorting)",
"type": "object",
"properties": {
"title": {
"description": "title of the item",
"type": "string"
},
"identifiers": {
"type": "array",
"description": "An extensible set of name-value pairs of identifiers associated with the resource",
"minItems": 0,
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Resource identifier value"
},
"identifierTypeId": {
"type": "string",
"description": "UUID of resource identifier type (e.g. ISBN, ISSN, LCCN, CODEN, Locally defined identifiers)",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"additionalProperties": false,
"required": [
"value",
"identifierTypeId"
]
}
}
}
},
"item": {
"description": "Copy of some item metadata (used for searching and sorting)",
"type": "object",
"properties": {
"barcode": {
"description": "barcode of the item",
"type": "string"
},
"itemEffectiveLocationId": {
"description": "Item's effective location",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"itemEffectiveLocationName": {
"description": "Item's effective location name",
"type": "string"
},
"retrievalServicePointId": {
"description": "Item's location primary service point",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"retrievalServicePointName": {
"description": "Item's location primary service point name",
"type": "string"
}
},
"additionalProperties": false
},
"requester": {
"description": "Copy of some requesting patron metadata (used for searching and sorting)",
"type": "object",
"properties": {
"firstName": {
"description": "first name of the requesting patron",
"type": "string"
},
"lastName": {
"description": "last name of the requesting patron",
"type": "string"
},
"middleName": {
"description": "middle name of the requesting patron",
"type": "string"
},
"barcode": {
"description": "barcode of the requesting patron",
"type": "string"
},
"patronGroup": {
"description": "DEPRECATED, to be removed in subsequent major version",
"type": "string"
}
},
"additionalProperties": false
},
"proxy": {
"description": "Copy of some proxy patron metadata (used for searching and sorting)",
"type": "object",
"properties": {
"firstName": {
"description": "first name of the proxy patron",
"type": "string"
},
"lastName": {
"description": "last name of the proxy patron",
"type": "string"
},
"middleName": {
"description": "middle name of the proxy patron",
"type": "string"
},
"barcode": {
"description": "barcode of the proxy patron",
"type": "string"
},
"patronGroup": {
"description": "DEPRECATED, to be removed in subsequent major version",
"type": "string"
}
},
"additionalProperties": false
},
"fulfillmentPreference": {
"description": "How should the request be fulfilled (whether the item should be kept on the hold shelf for collection or delivered to the requester)",
"type": "string",
"enum": [
"Hold Shelf",
"Delivery"
]
},
"deliveryAddressTypeId": {
"description": "Deliver to the address of this type, for the requesting patron",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"requestExpirationDate": {
"description": "Date when the request expires",
"type": "string",
"format": "date-time"
},
"holdShelfExpirationDate": {
"description": "Date when an item returned to the hold shelf expires",
"type": "string",
"format": "date-time"
},
"pickupServicePointId": {
"description": "The ID of the Service Point where this request can be picked up",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"metadata": {
"description": "Metadata about creation and changes to requests, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "metadata.schema",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
},
"tags": {
"type": "object",
"description": "Tags",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "tags.schema",
"title": "tags",
"properties": {
"tagList": {
"description": "List of tags",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"printDetails": {
"type": "object",
"description": "PrintDetails",
"properties": {
"printCount": {
"type": "integer",
"description": "Number of times print slip generated."
},
"requesterId": {
"type": "string",
"description": "UUID of print slip requester."
},
"isPrinted": {
"type": "boolean",
"description": "Whether print slip was printed in past."
},
"printEventDate": {
"type": "string",
"format": "date-time",
"description": "Date and time when print slip was generated last time."
}
},
"additionalProperties": false
},
"awaitingPickupRequestClosedDate": {
"description": "A date when the request with awaiting pickup status was closed",
"type": "string",
"format": "date-time",
"readonly": true
},
"searchIndex": {
"description": "Request fields used for search",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"callNumberComponents": {
"type": "object",
"description": "Effective call number components",
"properties": {
"callNumber": {
"type": "string",
"description": "Effective Call Number is an identifier assigned to an item or its holding and associated with the item."
},
"prefix": {
"type": "string",
"description": "Effective Call Number Prefix is the prefix of the identifier assigned to an item or its holding and associated with the item."
},
"suffix": {
"type": "string",
"description": "Effective Call Number Suffix is the suffix of the identifier assigned to an item or its holding and associated with the item."
}
},
"additionalProperties": false
},
"shelvingOrder": {
"type": "string",
"description": "A system generated normalization of the call number that allows for call number sorting in reports and search results"
},
"pickupServicePointName": {
"description": "The name of the request pickup service point",
"type": "string"
}
},
"additionalProperties": false
},
"itemLocationCode": {
"description": "Allow specifying item location when creating title-level requests",
"type": "string"
},
"isDcbReRequestCancellation": {
"description": "Indicates if the request was cancelled during a DCB transaction update. This determines whether the Kafka event will be handled and if an email notification will be sent",
"type": "boolean"
}
},
"additionalProperties": false,
"required": [
"instanceId",
"requesterId",
"requestType",
"requestLevel",
"requestDate",
"fulfillmentPreference",
"status"
]
}
},
"totalRecords": {
"type": "integer"
}
},
"required": [
"requests",
"totalRecords"
]
}
Example:
{
"requests": [
{
"id": "89105c06-dbdb-4aa0-9695-d4d19c733270",
"requestType": "Recall",
"requestDate": "2017-07-29T22:25:37Z",
"requesterId": "21932a85-bd00-446b-9565-46e0c1a5490b",
"itemId": "195efae1-588f-47bd-a181-13a2eb437701",
"fulfillmentPreference": "Hold Shelf"
},
{
"id": "f5cec279-0da6-4b44-a3df-f49b0903f325",
"requestType": "Hold",
"requestDate": "2017-08-05T11:43:23Z",
"requesterId": "61d939e4-f2ae-4c53-95d2-224a802fa2a6",
"itemId": "3e5d5433-a271-499c-94f4-5f3e4652e537",
"fulfillmentPreference": "Delivery",
"position": 1,
"requestExpirationDate": "2017-08-31T22:25:37Z",
"holdShelfExpirationDate": "2017-09-01T22:25:37Z",
"item": {
"title": "Interesting Times",
"barcode": "269394016504"
},
"requester": {
"lastName": "Jones",
"firstName": "Julia",
"middleName": "Dominique",
"barcode": "673059465870"
}
}
],
"totalRecords": 2
}
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
unable to list requests -- malformed parameter 'query', syntax error at column 6
HTTP status code 401
Not authorized to perform requested action
Body
Media type: text/plain
Type: any
Example:
unable to list requests -- unauthorized
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
HTTP status code 501
Not implemented yet
post /request-storage/requests
Create a new request item.
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "A request by a patron for a specific item",
"type": "object",
"properties": {
"id": {
"description": "UUID of the request",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"requestLevel": {
"description": "Level of the request - Item or Title",
"type": "string",
"enum": [
"Item",
"Title"
]
},
"requestType": {
"description": "Whether the item should be held upon return, recalled or paged for",
"type": "string",
"enum": [
"Hold",
"Recall",
"Page"
]
},
"ecsRequestPhase": {
"description": "Stage in ECS request process, absence of this field means this is a single-tenant request",
"type": "string",
"enum": [
"Primary",
"Secondary",
"Intermediate"
]
},
"requestDate": {
"description": "Date the request was made",
"type": "string",
"format": "date-time"
},
"patronComments": {
"description": "Comments made by the patron",
"type": "string"
},
"requesterId": {
"description": "ID of the requesting patron (user)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"instanceId": {
"description": "ID of the instance being requested",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"holdingsRecordId": {
"description": "ID of the holdings record being requested",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"itemId": {
"description": "ID of the item being requested",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"status": {
"description": "Status of the request",
"type": "string",
"enum": [
"Open - Not yet filled",
"Open - Awaiting pickup",
"Open - In transit",
"Open - Awaiting delivery",
"Closed - Filled",
"Closed - Cancelled",
"Closed - Unfilled",
"Closed - Pickup expired"
]
},
"cancellationReasonId": {
"description": "The id of the relevant request reason",
"type": "string"
},
"cancelledByUserId": {
"description": "The id of the user that cancelled the request",
"type": "string"
},
"cancellationAdditionalInformation": {
"description": "Potential relevant information regarding a cancellation",
"type": "string"
},
"cancelledDate": {
"description": "Date the request was cancelled",
"type": "string",
"format": "date-time"
},
"position": {
"description": "Position of the request in the unified request queue",
"type": "integer"
},
"instance": {
"description": "Copy of some instance metadata (used for searching and sorting)",
"type": "object",
"properties": {
"title": {
"description": "title of the item",
"type": "string"
},
"identifiers": {
"type": "array",
"description": "An extensible set of name-value pairs of identifiers associated with the resource",
"minItems": 0,
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Resource identifier value"
},
"identifierTypeId": {
"type": "string",
"description": "UUID of resource identifier type (e.g. ISBN, ISSN, LCCN, CODEN, Locally defined identifiers)",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"additionalProperties": false,
"required": [
"value",
"identifierTypeId"
]
}
}
}
},
"item": {
"description": "Copy of some item metadata (used for searching and sorting)",
"type": "object",
"properties": {
"barcode": {
"description": "barcode of the item",
"type": "string"
},
"itemEffectiveLocationId": {
"description": "Item's effective location",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"itemEffectiveLocationName": {
"description": "Item's effective location name",
"type": "string"
},
"retrievalServicePointId": {
"description": "Item's location primary service point",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"retrievalServicePointName": {
"description": "Item's location primary service point name",
"type": "string"
}
},
"additionalProperties": false
},
"requester": {
"description": "Copy of some requesting patron metadata (used for searching and sorting)",
"type": "object",
"properties": {
"firstName": {
"description": "first name of the requesting patron",
"type": "string"
},
"lastName": {
"description": "last name of the requesting patron",
"type": "string"
},
"middleName": {
"description": "middle name of the requesting patron",
"type": "string"
},
"barcode": {
"description": "barcode of the requesting patron",
"type": "string"
},
"patronGroup": {
"description": "DEPRECATED, to be removed in subsequent major version",
"type": "string"
}
},
"additionalProperties": false
},
"proxy": {
"description": "Copy of some proxy patron metadata (used for searching and sorting)",
"type": "object",
"properties": {
"firstName": {
"description": "first name of the proxy patron",
"type": "string"
},
"lastName": {
"description": "last name of the proxy patron",
"type": "string"
},
"middleName": {
"description": "middle name of the proxy patron",
"type": "string"
},
"barcode": {
"description": "barcode of the proxy patron",
"type": "string"
},
"patronGroup": {
"description": "DEPRECATED, to be removed in subsequent major version",
"type": "string"
}
},
"additionalProperties": false
},
"fulfillmentPreference": {
"description": "How should the request be fulfilled (whether the item should be kept on the hold shelf for collection or delivered to the requester)",
"type": "string",
"enum": [
"Hold Shelf",
"Delivery"
]
},
"deliveryAddressTypeId": {
"description": "Deliver to the address of this type, for the requesting patron",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"requestExpirationDate": {
"description": "Date when the request expires",
"type": "string",
"format": "date-time"
},
"holdShelfExpirationDate": {
"description": "Date when an item returned to the hold shelf expires",
"type": "string",
"format": "date-time"
},
"pickupServicePointId": {
"description": "The ID of the Service Point where this request can be picked up",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"metadata": {
"description": "Metadata about creation and changes to requests, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "metadata.schema",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
},
"tags": {
"type": "object",
"description": "Tags",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "tags.schema",
"title": "tags",
"properties": {
"tagList": {
"description": "List of tags",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"printDetails": {
"type": "object",
"description": "PrintDetails",
"properties": {
"printCount": {
"type": "integer",
"description": "Number of times print slip generated."
},
"requesterId": {
"type": "string",
"description": "UUID of print slip requester."
},
"isPrinted": {
"type": "boolean",
"description": "Whether print slip was printed in past."
},
"printEventDate": {
"type": "string",
"format": "date-time",
"description": "Date and time when print slip was generated last time."
}
},
"additionalProperties": false
},
"awaitingPickupRequestClosedDate": {
"description": "A date when the request with awaiting pickup status was closed",
"type": "string",
"format": "date-time",
"readonly": true
},
"searchIndex": {
"description": "Request fields used for search",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"callNumberComponents": {
"type": "object",
"description": "Effective call number components",
"properties": {
"callNumber": {
"type": "string",
"description": "Effective Call Number is an identifier assigned to an item or its holding and associated with the item."
},
"prefix": {
"type": "string",
"description": "Effective Call Number Prefix is the prefix of the identifier assigned to an item or its holding and associated with the item."
},
"suffix": {
"type": "string",
"description": "Effective Call Number Suffix is the suffix of the identifier assigned to an item or its holding and associated with the item."
}
},
"additionalProperties": false
},
"shelvingOrder": {
"type": "string",
"description": "A system generated normalization of the call number that allows for call number sorting in reports and search results"
},
"pickupServicePointName": {
"description": "The name of the request pickup service point",
"type": "string"
}
},
"additionalProperties": false
},
"itemLocationCode": {
"description": "Allow specifying item location when creating title-level requests",
"type": "string"
},
"isDcbReRequestCancellation": {
"description": "Indicates if the request was cancelled during a DCB transaction update. This determines whether the Kafka event will be handled and if an email notification will be sent",
"type": "boolean"
}
},
"additionalProperties": false,
"required": [
"instanceId",
"requesterId",
"requestType",
"requestLevel",
"requestDate",
"fulfillmentPreference",
"status"
]
}
Example:
{
"id": "89105c06-dbdb-4aa0-9695-d4d19c733270",
"requestLevel": "Item",
"requestType": "Hold",
"status": "Open - Not yet filled",
"requestDate": "2023-03-23T11:04:25.000+00:00",
"requestExpirationDate": "2023-06-23T11:04:25.000+00:00",
"requesterId": "21932a85-bd00-446b-9565-46e0c1a5490b",
"requester": {
"barcode": "1234",
"lastName": "Lastname",
"firstName": "Firstname"
},
"instanceId": "86c722c3-2f5e-42e1-bd0e-7ffbbd3b4972",
"instance": {
"title": "Children of Time",
"identifiers": [
{
"value": "0123456789",
"identifierTypeId": "8261054f-9876-422d-bd51-4ed9f33c7654"
},
{
"value": "98765432123456",
"identifierTypeId": "8261054f-9876-422d-bd51-4ed9f33c7654"
}
]
},
"holdingsRecordId": "e63273e7-48f5-4c43-ab4e-1751ecacaa21",
"itemId": "195efae1-588f-47bd-a181-13a2eb437701",
"item": {
"barcode": "760932543816",
"itemEffectiveLocationId" : "758258bc-ecc1-41b8-abca-f7b610822ffd",
"itemEffectiveLocationName" : "XYZ Location",
"retrievalServicePointId" : "c4c90014-c8c9-4ade-8f24-b5e313319f4b",
"retrievalServicePointName" : "Circ Desk Test"
},
"position": 1,
"fulfillmentPreference": "Hold Shelf",
"pickupServicePointId": "3a40852d-49fd-4df2-a1f9-6e2641a6e91f",
"tags": {
"tagList": [
"new",
"important"
]
},
"searchIndex": {
"shelvingOrder": "F 416 H37 A2 59001",
"callNumberComponents": {
"callNumber": "F16.H37 A2 9001"
},
"pickupServicePointName": "Circ Desk 1"
}
}
HTTP status code 201
Returns a newly created item, with server-controlled fields like 'id' populated
Headers
- Location: required(string)
URI to the created request item
Body
Media type: application/json
Type: any
Example:
{
"id": "89105c06-dbdb-4aa0-9695-d4d19c733270",
"requestLevel": "Item",
"requestType": "Hold",
"status": "Open - Not yet filled",
"requestDate": "2023-03-23T11:04:25.000+00:00",
"requestExpirationDate": "2023-06-23T11:04:25.000+00:00",
"requesterId": "21932a85-bd00-446b-9565-46e0c1a5490b",
"requester": {
"barcode": "1234",
"lastName": "Lastname",
"firstName": "Firstname"
},
"instanceId": "86c722c3-2f5e-42e1-bd0e-7ffbbd3b4972",
"instance": {
"title": "Children of Time",
"identifiers": [
{
"value": "0123456789",
"identifierTypeId": "8261054f-9876-422d-bd51-4ed9f33c7654"
},
{
"value": "98765432123456",
"identifierTypeId": "8261054f-9876-422d-bd51-4ed9f33c7654"
}
]
},
"holdingsRecordId": "e63273e7-48f5-4c43-ab4e-1751ecacaa21",
"itemId": "195efae1-588f-47bd-a181-13a2eb437701",
"item": {
"barcode": "760932543816",
"itemEffectiveLocationId" : "758258bc-ecc1-41b8-abca-f7b610822ffd",
"itemEffectiveLocationName" : "XYZ Location",
"retrievalServicePointId" : "c4c90014-c8c9-4ade-8f24-b5e313319f4b",
"retrievalServicePointName" : "Circ Desk Test"
},
"position": 1,
"fulfillmentPreference": "Hold Shelf",
"pickupServicePointId": "3a40852d-49fd-4df2-a1f9-6e2641a6e91f",
"tags": {
"tagList": [
"new",
"important"
]
},
"searchIndex": {
"shelvingOrder": "F 416 H37 A2 59001",
"callNumberComponents": {
"callNumber": "F16.H37 A2 9001"
},
"pickupServicePointName": "Circ Desk 1"
}
}
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
"unable to add request -- malformed JSON at 13:3"
HTTP status code 401
Not authorized to perform requested action
Body
Media type: text/plain
Type: any
Example:
unable to create requests -- unauthorized
HTTP status code 422
Validation errors
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "errors.schema",
"description": "A set of errors",
"type": "object",
"properties": {
"errors": {
"description": "List of errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
HTTP status code 501
Not implemented yet
Entity representing a request
Retrieve request item with given {requestId}
Update request item with given {requestId}
Delete request item with given {requestId}
get /request-storage/requests/{requestId}
Retrieve request item with given {requestId}
URI Parameters
- requestId: required(string)
HTTP status code 200
Returns item with a given ID
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "A request by a patron for a specific item",
"type": "object",
"properties": {
"id": {
"description": "UUID of the request",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"requestLevel": {
"description": "Level of the request - Item or Title",
"type": "string",
"enum": [
"Item",
"Title"
]
},
"requestType": {
"description": "Whether the item should be held upon return, recalled or paged for",
"type": "string",
"enum": [
"Hold",
"Recall",
"Page"
]
},
"ecsRequestPhase": {
"description": "Stage in ECS request process, absence of this field means this is a single-tenant request",
"type": "string",
"enum": [
"Primary",
"Secondary",
"Intermediate"
]
},
"requestDate": {
"description": "Date the request was made",
"type": "string",
"format": "date-time"
},
"patronComments": {
"description": "Comments made by the patron",
"type": "string"
},
"requesterId": {
"description": "ID of the requesting patron (user)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"instanceId": {
"description": "ID of the instance being requested",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"holdingsRecordId": {
"description": "ID of the holdings record being requested",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"itemId": {
"description": "ID of the item being requested",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"status": {
"description": "Status of the request",
"type": "string",
"enum": [
"Open - Not yet filled",
"Open - Awaiting pickup",
"Open - In transit",
"Open - Awaiting delivery",
"Closed - Filled",
"Closed - Cancelled",
"Closed - Unfilled",
"Closed - Pickup expired"
]
},
"cancellationReasonId": {
"description": "The id of the relevant request reason",
"type": "string"
},
"cancelledByUserId": {
"description": "The id of the user that cancelled the request",
"type": "string"
},
"cancellationAdditionalInformation": {
"description": "Potential relevant information regarding a cancellation",
"type": "string"
},
"cancelledDate": {
"description": "Date the request was cancelled",
"type": "string",
"format": "date-time"
},
"position": {
"description": "Position of the request in the unified request queue",
"type": "integer"
},
"instance": {
"description": "Copy of some instance metadata (used for searching and sorting)",
"type": "object",
"properties": {
"title": {
"description": "title of the item",
"type": "string"
},
"identifiers": {
"type": "array",
"description": "An extensible set of name-value pairs of identifiers associated with the resource",
"minItems": 0,
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Resource identifier value"
},
"identifierTypeId": {
"type": "string",
"description": "UUID of resource identifier type (e.g. ISBN, ISSN, LCCN, CODEN, Locally defined identifiers)",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"additionalProperties": false,
"required": [
"value",
"identifierTypeId"
]
}
}
}
},
"item": {
"description": "Copy of some item metadata (used for searching and sorting)",
"type": "object",
"properties": {
"barcode": {
"description": "barcode of the item",
"type": "string"
},
"itemEffectiveLocationId": {
"description": "Item's effective location",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"itemEffectiveLocationName": {
"description": "Item's effective location name",
"type": "string"
},
"retrievalServicePointId": {
"description": "Item's location primary service point",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"retrievalServicePointName": {
"description": "Item's location primary service point name",
"type": "string"
}
},
"additionalProperties": false
},
"requester": {
"description": "Copy of some requesting patron metadata (used for searching and sorting)",
"type": "object",
"properties": {
"firstName": {
"description": "first name of the requesting patron",
"type": "string"
},
"lastName": {
"description": "last name of the requesting patron",
"type": "string"
},
"middleName": {
"description": "middle name of the requesting patron",
"type": "string"
},
"barcode": {
"description": "barcode of the requesting patron",
"type": "string"
},
"patronGroup": {
"description": "DEPRECATED, to be removed in subsequent major version",
"type": "string"
}
},
"additionalProperties": false
},
"proxy": {
"description": "Copy of some proxy patron metadata (used for searching and sorting)",
"type": "object",
"properties": {
"firstName": {
"description": "first name of the proxy patron",
"type": "string"
},
"lastName": {
"description": "last name of the proxy patron",
"type": "string"
},
"middleName": {
"description": "middle name of the proxy patron",
"type": "string"
},
"barcode": {
"description": "barcode of the proxy patron",
"type": "string"
},
"patronGroup": {
"description": "DEPRECATED, to be removed in subsequent major version",
"type": "string"
}
},
"additionalProperties": false
},
"fulfillmentPreference": {
"description": "How should the request be fulfilled (whether the item should be kept on the hold shelf for collection or delivered to the requester)",
"type": "string",
"enum": [
"Hold Shelf",
"Delivery"
]
},
"deliveryAddressTypeId": {
"description": "Deliver to the address of this type, for the requesting patron",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"requestExpirationDate": {
"description": "Date when the request expires",
"type": "string",
"format": "date-time"
},
"holdShelfExpirationDate": {
"description": "Date when an item returned to the hold shelf expires",
"type": "string",
"format": "date-time"
},
"pickupServicePointId": {
"description": "The ID of the Service Point where this request can be picked up",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"metadata": {
"description": "Metadata about creation and changes to requests, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "metadata.schema",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
},
"tags": {
"type": "object",
"description": "Tags",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "tags.schema",
"title": "tags",
"properties": {
"tagList": {
"description": "List of tags",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"printDetails": {
"type": "object",
"description": "PrintDetails",
"properties": {
"printCount": {
"type": "integer",
"description": "Number of times print slip generated."
},
"requesterId": {
"type": "string",
"description": "UUID of print slip requester."
},
"isPrinted": {
"type": "boolean",
"description": "Whether print slip was printed in past."
},
"printEventDate": {
"type": "string",
"format": "date-time",
"description": "Date and time when print slip was generated last time."
}
},
"additionalProperties": false
},
"awaitingPickupRequestClosedDate": {
"description": "A date when the request with awaiting pickup status was closed",
"type": "string",
"format": "date-time",
"readonly": true
},
"searchIndex": {
"description": "Request fields used for search",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"callNumberComponents": {
"type": "object",
"description": "Effective call number components",
"properties": {
"callNumber": {
"type": "string",
"description": "Effective Call Number is an identifier assigned to an item or its holding and associated with the item."
},
"prefix": {
"type": "string",
"description": "Effective Call Number Prefix is the prefix of the identifier assigned to an item or its holding and associated with the item."
},
"suffix": {
"type": "string",
"description": "Effective Call Number Suffix is the suffix of the identifier assigned to an item or its holding and associated with the item."
}
},
"additionalProperties": false
},
"shelvingOrder": {
"type": "string",
"description": "A system generated normalization of the call number that allows for call number sorting in reports and search results"
},
"pickupServicePointName": {
"description": "The name of the request pickup service point",
"type": "string"
}
},
"additionalProperties": false
},
"itemLocationCode": {
"description": "Allow specifying item location when creating title-level requests",
"type": "string"
},
"isDcbReRequestCancellation": {
"description": "Indicates if the request was cancelled during a DCB transaction update. This determines whether the Kafka event will be handled and if an email notification will be sent",
"type": "boolean"
}
},
"additionalProperties": false,
"required": [
"instanceId",
"requesterId",
"requestType",
"requestLevel",
"requestDate",
"fulfillmentPreference",
"status"
]
}
Example:
{
"id": "89105c06-dbdb-4aa0-9695-d4d19c733270",
"requestLevel": "Item",
"requestType": "Hold",
"status": "Open - Not yet filled",
"requestDate": "2023-03-23T11:04:25.000+00:00",
"requestExpirationDate": "2023-06-23T11:04:25.000+00:00",
"requesterId": "21932a85-bd00-446b-9565-46e0c1a5490b",
"requester": {
"barcode": "1234",
"lastName": "Lastname",
"firstName": "Firstname"
},
"instanceId": "86c722c3-2f5e-42e1-bd0e-7ffbbd3b4972",
"instance": {
"title": "Children of Time",
"identifiers": [
{
"value": "0123456789",
"identifierTypeId": "8261054f-9876-422d-bd51-4ed9f33c7654"
},
{
"value": "98765432123456",
"identifierTypeId": "8261054f-9876-422d-bd51-4ed9f33c7654"
}
]
},
"holdingsRecordId": "e63273e7-48f5-4c43-ab4e-1751ecacaa21",
"itemId": "195efae1-588f-47bd-a181-13a2eb437701",
"item": {
"barcode": "760932543816",
"itemEffectiveLocationId" : "758258bc-ecc1-41b8-abca-f7b610822ffd",
"itemEffectiveLocationName" : "XYZ Location",
"retrievalServicePointId" : "c4c90014-c8c9-4ade-8f24-b5e313319f4b",
"retrievalServicePointName" : "Circ Desk Test"
},
"position": 1,
"fulfillmentPreference": "Hold Shelf",
"pickupServicePointId": "3a40852d-49fd-4df2-a1f9-6e2641a6e91f",
"tags": {
"tagList": [
"new",
"important"
]
},
"searchIndex": {
"shelvingOrder": "F 416 H37 A2 59001",
"callNumberComponents": {
"callNumber": "F16.H37 A2 9001"
},
"pickupServicePointName": "Circ Desk 1"
}
}
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"request not found"
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
HTTP status code 501
Not implemented yet
put /request-storage/requests/{requestId}
Update request item with given {requestId}
URI Parameters
- requestId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "A request by a patron for a specific item",
"type": "object",
"properties": {
"id": {
"description": "UUID of the request",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"requestLevel": {
"description": "Level of the request - Item or Title",
"type": "string",
"enum": [
"Item",
"Title"
]
},
"requestType": {
"description": "Whether the item should be held upon return, recalled or paged for",
"type": "string",
"enum": [
"Hold",
"Recall",
"Page"
]
},
"ecsRequestPhase": {
"description": "Stage in ECS request process, absence of this field means this is a single-tenant request",
"type": "string",
"enum": [
"Primary",
"Secondary",
"Intermediate"
]
},
"requestDate": {
"description": "Date the request was made",
"type": "string",
"format": "date-time"
},
"patronComments": {
"description": "Comments made by the patron",
"type": "string"
},
"requesterId": {
"description": "ID of the requesting patron (user)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"proxyUserId": {
"description": "ID of the user representing a proxy for the patron",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"instanceId": {
"description": "ID of the instance being requested",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"holdingsRecordId": {
"description": "ID of the holdings record being requested",
"type": "string",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
},
"itemId": {
"description": "ID of the item being requested",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"status": {
"description": "Status of the request",
"type": "string",
"enum": [
"Open - Not yet filled",
"Open - Awaiting pickup",
"Open - In transit",
"Open - Awaiting delivery",
"Closed - Filled",
"Closed - Cancelled",
"Closed - Unfilled",
"Closed - Pickup expired"
]
},
"cancellationReasonId": {
"description": "The id of the relevant request reason",
"type": "string"
},
"cancelledByUserId": {
"description": "The id of the user that cancelled the request",
"type": "string"
},
"cancellationAdditionalInformation": {
"description": "Potential relevant information regarding a cancellation",
"type": "string"
},
"cancelledDate": {
"description": "Date the request was cancelled",
"type": "string",
"format": "date-time"
},
"position": {
"description": "Position of the request in the unified request queue",
"type": "integer"
},
"instance": {
"description": "Copy of some instance metadata (used for searching and sorting)",
"type": "object",
"properties": {
"title": {
"description": "title of the item",
"type": "string"
},
"identifiers": {
"type": "array",
"description": "An extensible set of name-value pairs of identifiers associated with the resource",
"minItems": 0,
"items": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Resource identifier value"
},
"identifierTypeId": {
"type": "string",
"description": "UUID of resource identifier type (e.g. ISBN, ISSN, LCCN, CODEN, Locally defined identifiers)",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "uuid.schema",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[1-5][a-fA-F0-9]{3}-[89abAB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}$"
}
},
"additionalProperties": false,
"required": [
"value",
"identifierTypeId"
]
}
}
}
},
"item": {
"description": "Copy of some item metadata (used for searching and sorting)",
"type": "object",
"properties": {
"barcode": {
"description": "barcode of the item",
"type": "string"
},
"itemEffectiveLocationId": {
"description": "Item's effective location",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"itemEffectiveLocationName": {
"description": "Item's effective location name",
"type": "string"
},
"retrievalServicePointId": {
"description": "Item's location primary service point",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"retrievalServicePointName": {
"description": "Item's location primary service point name",
"type": "string"
}
},
"additionalProperties": false
},
"requester": {
"description": "Copy of some requesting patron metadata (used for searching and sorting)",
"type": "object",
"properties": {
"firstName": {
"description": "first name of the requesting patron",
"type": "string"
},
"lastName": {
"description": "last name of the requesting patron",
"type": "string"
},
"middleName": {
"description": "middle name of the requesting patron",
"type": "string"
},
"barcode": {
"description": "barcode of the requesting patron",
"type": "string"
},
"patronGroup": {
"description": "DEPRECATED, to be removed in subsequent major version",
"type": "string"
}
},
"additionalProperties": false
},
"proxy": {
"description": "Copy of some proxy patron metadata (used for searching and sorting)",
"type": "object",
"properties": {
"firstName": {
"description": "first name of the proxy patron",
"type": "string"
},
"lastName": {
"description": "last name of the proxy patron",
"type": "string"
},
"middleName": {
"description": "middle name of the proxy patron",
"type": "string"
},
"barcode": {
"description": "barcode of the proxy patron",
"type": "string"
},
"patronGroup": {
"description": "DEPRECATED, to be removed in subsequent major version",
"type": "string"
}
},
"additionalProperties": false
},
"fulfillmentPreference": {
"description": "How should the request be fulfilled (whether the item should be kept on the hold shelf for collection or delivered to the requester)",
"type": "string",
"enum": [
"Hold Shelf",
"Delivery"
]
},
"deliveryAddressTypeId": {
"description": "Deliver to the address of this type, for the requesting patron",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"requestExpirationDate": {
"description": "Date when the request expires",
"type": "string",
"format": "date-time"
},
"holdShelfExpirationDate": {
"description": "Date when an item returned to the hold shelf expires",
"type": "string",
"format": "date-time"
},
"pickupServicePointId": {
"description": "The ID of the Service Point where this request can be picked up",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"metadata": {
"description": "Metadata about creation and changes to requests, provided by the server (client should not provide)",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "metadata.schema",
"title": "Metadata Schema",
"properties": {
"createdDate": {
"description": "Date and time when the record was created",
"type": "string",
"format": "date-time"
},
"createdByUserId": {
"description": "ID of the user who created the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"createdByUsername": {
"description": "Username of the user who created the record (when available)",
"type": "string"
},
"updatedDate": {
"description": "Date and time when the record was last updated",
"type": "string",
"format": "date-time"
},
"updatedByUserId": {
"description": "ID of the user who last updated the record (when available)",
"type": "string",
"pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$"
},
"updatedByUsername": {
"description": "Username of the user who last updated the record (when available)",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"createdDate"
]
},
"tags": {
"type": "object",
"description": "Tags",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "tags.schema",
"title": "tags",
"properties": {
"tagList": {
"description": "List of tags",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"printDetails": {
"type": "object",
"description": "PrintDetails",
"properties": {
"printCount": {
"type": "integer",
"description": "Number of times print slip generated."
},
"requesterId": {
"type": "string",
"description": "UUID of print slip requester."
},
"isPrinted": {
"type": "boolean",
"description": "Whether print slip was printed in past."
},
"printEventDate": {
"type": "string",
"format": "date-time",
"description": "Date and time when print slip was generated last time."
}
},
"additionalProperties": false
},
"awaitingPickupRequestClosedDate": {
"description": "A date when the request with awaiting pickup status was closed",
"type": "string",
"format": "date-time",
"readonly": true
},
"searchIndex": {
"description": "Request fields used for search",
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"properties": {
"callNumberComponents": {
"type": "object",
"description": "Effective call number components",
"properties": {
"callNumber": {
"type": "string",
"description": "Effective Call Number is an identifier assigned to an item or its holding and associated with the item."
},
"prefix": {
"type": "string",
"description": "Effective Call Number Prefix is the prefix of the identifier assigned to an item or its holding and associated with the item."
},
"suffix": {
"type": "string",
"description": "Effective Call Number Suffix is the suffix of the identifier assigned to an item or its holding and associated with the item."
}
},
"additionalProperties": false
},
"shelvingOrder": {
"type": "string",
"description": "A system generated normalization of the call number that allows for call number sorting in reports and search results"
},
"pickupServicePointName": {
"description": "The name of the request pickup service point",
"type": "string"
}
},
"additionalProperties": false
},
"itemLocationCode": {
"description": "Allow specifying item location when creating title-level requests",
"type": "string"
},
"isDcbReRequestCancellation": {
"description": "Indicates if the request was cancelled during a DCB transaction update. This determines whether the Kafka event will be handled and if an email notification will be sent",
"type": "boolean"
}
},
"additionalProperties": false,
"required": [
"instanceId",
"requesterId",
"requestType",
"requestLevel",
"requestDate",
"fulfillmentPreference",
"status"
]
}
Example:
{
"id": "89105c06-dbdb-4aa0-9695-d4d19c733270",
"requestLevel": "Item",
"requestType": "Hold",
"status": "Open - Not yet filled",
"requestDate": "2023-03-23T11:04:25.000+00:00",
"requestExpirationDate": "2023-06-23T11:04:25.000+00:00",
"requesterId": "21932a85-bd00-446b-9565-46e0c1a5490b",
"requester": {
"barcode": "1234",
"lastName": "Lastname",
"firstName": "Firstname"
},
"instanceId": "86c722c3-2f5e-42e1-bd0e-7ffbbd3b4972",
"instance": {
"title": "Children of Time",
"identifiers": [
{
"value": "0123456789",
"identifierTypeId": "8261054f-9876-422d-bd51-4ed9f33c7654"
},
{
"value": "98765432123456",
"identifierTypeId": "8261054f-9876-422d-bd51-4ed9f33c7654"
}
]
},
"holdingsRecordId": "e63273e7-48f5-4c43-ab4e-1751ecacaa21",
"itemId": "195efae1-588f-47bd-a181-13a2eb437701",
"item": {
"barcode": "760932543816",
"itemEffectiveLocationId" : "758258bc-ecc1-41b8-abca-f7b610822ffd",
"itemEffectiveLocationName" : "XYZ Location",
"retrievalServicePointId" : "c4c90014-c8c9-4ade-8f24-b5e313319f4b",
"retrievalServicePointName" : "Circ Desk Test"
},
"position": 1,
"fulfillmentPreference": "Hold Shelf",
"pickupServicePointId": "3a40852d-49fd-4df2-a1f9-6e2641a6e91f",
"tags": {
"tagList": [
"new",
"important"
]
},
"searchIndex": {
"shelvingOrder": "F 416 H37 A2 59001",
"callNumberComponents": {
"callNumber": "F16.H37 A2 9001"
},
"pickupServicePointName": "Circ Desk 1"
}
}
HTTP status code 204
Item successfully updated
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
"unable to update request -- malformed JSON at 13:4"
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"request not found"
HTTP status code 409
Optimistic locking version conflict
Body
Media type: text/plain
Type: any
Example:
version conflict
HTTP status code 422
Validation errors
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "errors.schema",
"description": "A set of errors",
"type": "object",
"properties": {
"errors": {
"description": "List of errors",
"id": "errors",
"type": "array",
"items": {
"type": "object",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "error.schema",
"description": "An error",
"properties": {
"message": {
"type": "string",
"description": "Error message text"
},
"type": {
"type": "string",
"description": "Error message type"
},
"code": {
"type": "string",
"description": "Error message code"
},
"parameters": {
"description": "Error message parameters",
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "parameters.schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
},
"required": [
"message"
]
}
},
"total_records": {
"description": "Total number of errors",
"type": "integer"
}
}
}
Example:
{
"errors": [
{
"message": "may not be null",
"type": "1",
"code": "-1",
"parameters": [
{
"key": "moduleTo",
"value": "null"
}
]
}
]
}
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
internal server error, contact administrator
HTTP status code 501
Not implemented yet
delete /request-storage/requests/{requestId}
Delete request item with given {requestId}
URI Parameters
- requestId: required(string)
HTTP status code 204
Item deleted successfully
HTTP status code 400
Bad request, e.g. malformed request body or query parameter. Details of the error (e.g. name of the parameter or line/character number with malformed data) provided in the response.
Body
Media type: text/plain
Type: any
Example:
"unable to delete request -- constraint violation"
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"request not found"
HTTP status code 500
Internal server error, e.g. due to misconfiguration
Body
Media type: text/plain
Type: any
Example:
Internal server error, contact administrator
HTTP status code 501
Not implemented yet