/item-storage
Collection of item items.
Retrieve a list of item items.
Create a new item item.
get /item-storage/items
Retrieve a list of item 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.
using CQL (indexes for item and material type)
Example:
(username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode title="*uproot*"
HTTP status code 200
Returns a list of item items
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "A collection of item records",
"type": "object",
"properties": {
"items": {
"description": "List of item records",
"id": "items",
"type": "array",
"items": {
"type": "object",
"$ref": "item.json"
}
},
"totalRecords": {
"description": "Estimated or exact total number of records",
"type": "integer"
},
"resultInfo": {
"$ref": "../raml-util/schemas/resultInfo.schema",
"readonly": true
}
},
"required": [
"items",
"totalRecords"
]
}
Example:
{
"items": [
{
"id": "f2901bcc-6290-417a-843b-a6d97ee9a418",
"holdingsRecordId": "65cb2bf0-d4c2-4886-8ad0-b76f1ba75d61",
"barcode": "456743454532",
"status": {
"name": "Available"
},
"materialTypeId": "240886da-17d9-435f-985e-21111e586fc8",
"permanentLoanTypeId": "2e48e713-17f3-4c13-a9f8-23845bb210a4"
},
{
"id": "0b96a642-5e7f-452d-9cae-9cee66c9a892",
"holdingsRecordId": "65cb2bf0-d4c2-4886-8ad0-b76f1ba75d61",
"barcode": "645398607547",
"status": {
"name": "Available"
},
"materialTypeId": "1a54b431-2e4f-452d-9cae-9cee66c9a892",
"permanentLoanTypeId": "2b94c631-fca9-4892-a730-03ee529ffe27",
"temporaryLoanTypeId": "e8b311a6-3b21-43f2-a269-dd9310cb2d0e",
"temporaryLocationId": "0df935eb-f3f4-4741-9ac6-33c500174b96"
}
],
"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 items -- 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 items -- 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
post /item-storage/items
Create a new item item.
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "An item record",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique ID of the item record"
},
"_version": {
"type": "integer",
"description": "Record version for optimistic locking"
},
"hrid": {
"type": "string",
"description": "The human readable ID, also called eye readable ID. A system-assigned sequential alternate ID"
},
"holdingsRecordId": {
"type": "string",
"description": "ID of the holdings record the item is a member of."
},
"order": {
"type": "integer",
"description": "Order of the item in the holdings record."
},
"formerIds": {
"type": "array",
"description": "Previous identifiers assigned to the item",
"items": {
"type": "string"
},
"uniqueItems": true
},
"discoverySuppress": {
"type": "boolean",
"description": "Records the fact that the record should not be displayed in a discovery system"
},
"displaySummary": {
"description": "Display summary about the item",
"type": "string"
},
"accessionNumber": {
"type": "string",
"description": "Also called inventar number"
},
"barcode": {
"type": "string",
"description": "Unique inventory control number for physical resources, used largely for circulation purposes"
},
"effectiveShelvingOrder": {
"type": "string",
"description": "A system generated normalization of the call number that allows for call number sorting in reports and search results",
"readonly": true
},
"additionalCallNumbers": {
"description": "Additional Call Numbers to track the history of identifiers assigned to an item.",
"type": "array",
"items": {
"type": "object",
"$ref": "../common/callNumberComponents.json",
"uniqueItems": true
}
},
"itemLevelCallNumber": {
"type": "string",
"description": "Call Number is an identifier assigned to an item, usually printed on a label attached to the item. The call number is used to determine the items physical position in a shelving sequence, e.g. K1 .M44. The Item level call number, is the call number on item level."
},
"itemLevelCallNumberPrefix": {
"type": "string",
"description": "Prefix of the call number on the item level."
},
"itemLevelCallNumberSuffix": {
"type": "string",
"description": "Suffix of the call number on the item level."
},
"itemLevelCallNumberTypeId": {
"type": "string",
"description": "Identifies the source of the call number, e.g., LCC, Dewey, NLM, etc.",
"$ref": "../uuid.json"
},
"effectiveCallNumberComponents": {
"type": "object",
"description": "Elements of a full call number generated from the item or holding",
"readonly": true,
"properties": {
"callNumber": {
"type": "string",
"description": "Effective Call Number is an identifier assigned to an item or its holding and associated with the item.",
"readonly": true
},
"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.",
"readonly": true
},
"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.",
"readonly": true
},
"typeId": {
"type": "string",
"description": "Effective Call Number Type Id is the call number type id of the item, if available, otherwise that of the holding.",
"$ref": "../uuid.json",
"readonly": true
}
},
"additionalProperties": false
},
"volume": {
"type": "string",
"description": "Volume is intended for monographs when a multipart monograph (e.g. a biography of George Bernard Shaw in three volumes)."
},
"enumeration": {
"type": "string",
"description": "Enumeration is the descriptive information for the numbering scheme of a serial."
},
"chronology": {
"type": "string",
"description": "Chronology is the descriptive information for the dating scheme of a serial."
},
"yearCaption": {
"type": "array",
"description": "In multipart monographs, a caption is a character(s) used to label a level of chronology, e.g., year 1985.",
"items": {
"type": "string"
},
"uniqueItems": true
},
"itemIdentifier": {
"type": "string",
"description": "Item identifier number, e.g. imported from the union catalogue (read only)."
},
"copyNumber": {
"type": "string",
"description": "Copy number is the piece identifier. The copy number reflects if the library has a copy of a single-volume monograph; one copy of a multi-volume, (e.g. Copy 1, or C.7.)"
},
"numberOfPieces": {
"type": "string",
"description": "Number of pieces. Used when an item is checked out or returned to verify that all parts are present (e.g. 7 CDs in a set)."
},
"descriptionOfPieces": {
"description": "Description of item pieces.",
"type": "string"
},
"numberOfMissingPieces": {
"type": "string",
"description": "Number of missing pieces."
},
"missingPieces": {
"type": "string",
"description": "Description of the missing pieces. "
},
"missingPiecesDate": {
"type": "string",
"description": "Date when the piece(s) went missing."
},
"itemDamagedStatusId": {
"description": "Item dame status id identifier.",
"type": "string"
},
"itemDamagedStatusDate": {
"description": "Date and time when the item was damaged.",
"type": "string"
},
"administrativeNotes":{
"type": "array",
"description": "Administrative notes",
"minItems": 0,
"items": {
"type": "string"
}
},
"notes": {
"type": "array",
"description": "Notes about action, copy, binding etc.",
"items": {
"type": "object",
"$ref": "itemNote.json"
}
},
"circulationNotes": {
"type": "array",
"description": "Notes to be displayed in circulation processes",
"items": {
"type": "object",
"$ref": "circulationNote.json"
}
},
"status": {
"type": "object",
"description": "The status of the item",
"$ref": "itemStatus.json"
},
"materialTypeId": {
"type": "string",
"description": "Material type, term. Define what type of thing the item is."
},
"materialType": {
"description": "Item's material type",
"type": "object",
"$ref": "materialtype.json",
"javaType": "org.folio.rest.jaxrs.model.materialTypeVirtual",
"readonly": true,
"folio:isVirtual": true,
"folio:linkBase": "material-types",
"folio:linkFromField": "materialTypeId",
"folio:linkToField": "id",
"folio:includedElement": "mtypes.0"
},
"permanentLoanTypeId": {
"type": "string",
"description": "The permanent loan type, is the default loan type for a given item. Loan types are tenant-defined."
},
"temporaryLoanTypeId": {
"type": "string",
"description": "Temporary loan type, is the temporary loan type for a given item."
},
"permanentLocationId": {
"type": "string",
"description": "Permanent item location is the default location, shelving location, or holding which is a physical place where items are stored, or an Online location."
},
"permanentLocation": {
"description": "The permanent shelving location in which an item resides",
"type": "object",
"$ref": "location.json",
"readonly": true,
"folio:isVirtual": true,
"folio:linkBase": "locations",
"folio:linkFromField": "permanentLocationId",
"folio:linkToField": "id",
"folio:includedElement": "locations.0"
},
"temporaryLocationId": {
"type": "string",
"description": "Temporary item location is the temporarily location, shelving location, or holding which is a physical place where items are stored, or an Online location."
},
"temporaryLocation": {
"description": "Temporary location, shelving location, or holding which is a physical place where items are stored, or an Online location",
"type": "object",
"$ref": "location.json",
"readonly": true,
"folio:isVirtual": true,
"folio:linkBase": "locations",
"folio:linkFromField": "temporaryLocationId",
"folio:linkToField": "id",
"folio:includedElement": "locations.0"
},
"effectiveLocationId": {
"type": "string",
"description": "Read only current home location for the item.",
"$ref": "../uuid.json",
"readonly": true
},
"electronicAccess": {
"type": "array",
"description": "References for accessing the item by URL.",
"items": {
"type": "object",
"$ref": "../common/electronicAccessItem.json"
}
},
"inTransitDestinationServicePointId": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "string",
"$ref" : "../uuid.json"
},
"statisticalCodeIds": {
"type": "array",
"description": "List of statistical code IDs",
"items": {
"type": "string",
"$ref" : "../uuid.json"
},
"uniqueItems": true
},
"purchaseOrderLineIdentifier": {
"type": "string",
"description": "ID referencing a remote purchase order object related to this item"
},
"tags": {
"description": "arbitrary tags associated with this item",
"id": "tags",
"type": "object",
"$ref": "../raml-util/schemas/tags.schema"
},
"metadata": {
"type": "object",
"$ref": "../raml-util/schemas/metadata.schema",
"readonly": true
},
"holdingsRecord2": {
"type": "object",
"description": "Fake property for mod-graphql to determine record relationships.",
"$ref": "holdingsrecord.json",
"readonly": true,
"folio:isVirtual": true,
"folio:linkBase": "holdings-storage/holdings",
"folio:linkFromField": "holdingsRecordId",
"folio:linkToField": "id",
"folio:includedElement": "holdingsRecords.0"
},
"lastCheckIn": {
"type": "object",
"description": "Information about when an item was last scanned in the Inventory app.",
"$ref": "itemLastCheckIn.json"
}
},
"additionalProperties": false,
"required": [
"materialTypeId",
"permanentLoanTypeId",
"holdingsRecordId",
"status"
]
}
Example:
{
"id": "0b96a642-5e7f-452d-9cae-9cee66c9a892",
"holdingsRecordId": "65cb2bf0-d4c2-4886-8ad0-b76f1ba75d61",
"barcode": "645398607547",
"status": {
"name": "In transit"
},
"materialTypeId": "1a54b431-2e4f-452d-9cae-9cee66c9a892",
"permanentLoanTypeId": "2b94c631-fca9-4892-a730-03ee529ffe27",
"temporaryLoanTypeId": "e8b311a6-3b21-43f2-a269-dd9310cb2d0e",
"temporaryLocationId": "0df935eb-f3f4-4741-9ac6-33c500174b96",
"inTransitDestinationServicePointId": "5b31ec8c-95a7-4b91-95cc-b551a74b91ca",
"tags" : {
"tagList" : [
"important"
]
}
}
HTTP status code 201
Returns a newly created item, with server-controlled fields like 'id' populated
Headers
- Location: required(string)
URI to the created item item
Body
Media type: application/json
Type: any
Example:
{
"id": "0b96a642-5e7f-452d-9cae-9cee66c9a892",
"holdingsRecordId": "65cb2bf0-d4c2-4886-8ad0-b76f1ba75d61",
"barcode": "645398607547",
"status": {
"name": "In transit"
},
"materialTypeId": "1a54b431-2e4f-452d-9cae-9cee66c9a892",
"permanentLoanTypeId": "2b94c631-fca9-4892-a730-03ee529ffe27",
"temporaryLoanTypeId": "e8b311a6-3b21-43f2-a269-dd9310cb2d0e",
"temporaryLocationId": "0df935eb-f3f4-4741-9ac6-33c500174b96",
"inTransitDestinationServicePointId": "5b31ec8c-95a7-4b91-95cc-b551a74b91ca",
"tags" : {
"tagList" : [
"important"
]
}
}
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 item -- 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 items -- 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
delete /item-storage/items
Query Parameters
- 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.
CQL to select items to delete, use cql.allRecords=1 to delete all
Example:
(username=="ab*" or personal.firstName=="ab*" or personal.lastName=="ab*") and active=="true" sortby personal.lastName personal.firstName barcode barcode=="123-0*"
HTTP status code 204
Selected items deleted
HTTP status code 400
Bad request, e.g. malformed query parameter
Body
Media type: text/plain
Type: any
Example:
query parameter is empty
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
Entity representing a item
Retrieve item item with given {itemId}
Delete item item with given {itemId}
Update item item with given {itemId}
get /item-storage/items/{itemId}
Retrieve item item with given {itemId}
URI Parameters
- itemId: 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": "An item record",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique ID of the item record"
},
"_version": {
"type": "integer",
"description": "Record version for optimistic locking"
},
"hrid": {
"type": "string",
"description": "The human readable ID, also called eye readable ID. A system-assigned sequential alternate ID"
},
"holdingsRecordId": {
"type": "string",
"description": "ID of the holdings record the item is a member of."
},
"order": {
"type": "integer",
"description": "Order of the item in the holdings record."
},
"formerIds": {
"type": "array",
"description": "Previous identifiers assigned to the item",
"items": {
"type": "string"
},
"uniqueItems": true
},
"discoverySuppress": {
"type": "boolean",
"description": "Records the fact that the record should not be displayed in a discovery system"
},
"displaySummary": {
"description": "Display summary about the item",
"type": "string"
},
"accessionNumber": {
"type": "string",
"description": "Also called inventar number"
},
"barcode": {
"type": "string",
"description": "Unique inventory control number for physical resources, used largely for circulation purposes"
},
"effectiveShelvingOrder": {
"type": "string",
"description": "A system generated normalization of the call number that allows for call number sorting in reports and search results",
"readonly": true
},
"additionalCallNumbers": {
"description": "Additional Call Numbers to track the history of identifiers assigned to an item.",
"type": "array",
"items": {
"type": "object",
"$ref": "../common/callNumberComponents.json",
"uniqueItems": true
}
},
"itemLevelCallNumber": {
"type": "string",
"description": "Call Number is an identifier assigned to an item, usually printed on a label attached to the item. The call number is used to determine the items physical position in a shelving sequence, e.g. K1 .M44. The Item level call number, is the call number on item level."
},
"itemLevelCallNumberPrefix": {
"type": "string",
"description": "Prefix of the call number on the item level."
},
"itemLevelCallNumberSuffix": {
"type": "string",
"description": "Suffix of the call number on the item level."
},
"itemLevelCallNumberTypeId": {
"type": "string",
"description": "Identifies the source of the call number, e.g., LCC, Dewey, NLM, etc.",
"$ref": "../uuid.json"
},
"effectiveCallNumberComponents": {
"type": "object",
"description": "Elements of a full call number generated from the item or holding",
"readonly": true,
"properties": {
"callNumber": {
"type": "string",
"description": "Effective Call Number is an identifier assigned to an item or its holding and associated with the item.",
"readonly": true
},
"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.",
"readonly": true
},
"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.",
"readonly": true
},
"typeId": {
"type": "string",
"description": "Effective Call Number Type Id is the call number type id of the item, if available, otherwise that of the holding.",
"$ref": "../uuid.json",
"readonly": true
}
},
"additionalProperties": false
},
"volume": {
"type": "string",
"description": "Volume is intended for monographs when a multipart monograph (e.g. a biography of George Bernard Shaw in three volumes)."
},
"enumeration": {
"type": "string",
"description": "Enumeration is the descriptive information for the numbering scheme of a serial."
},
"chronology": {
"type": "string",
"description": "Chronology is the descriptive information for the dating scheme of a serial."
},
"yearCaption": {
"type": "array",
"description": "In multipart monographs, a caption is a character(s) used to label a level of chronology, e.g., year 1985.",
"items": {
"type": "string"
},
"uniqueItems": true
},
"itemIdentifier": {
"type": "string",
"description": "Item identifier number, e.g. imported from the union catalogue (read only)."
},
"copyNumber": {
"type": "string",
"description": "Copy number is the piece identifier. The copy number reflects if the library has a copy of a single-volume monograph; one copy of a multi-volume, (e.g. Copy 1, or C.7.)"
},
"numberOfPieces": {
"type": "string",
"description": "Number of pieces. Used when an item is checked out or returned to verify that all parts are present (e.g. 7 CDs in a set)."
},
"descriptionOfPieces": {
"description": "Description of item pieces.",
"type": "string"
},
"numberOfMissingPieces": {
"type": "string",
"description": "Number of missing pieces."
},
"missingPieces": {
"type": "string",
"description": "Description of the missing pieces. "
},
"missingPiecesDate": {
"type": "string",
"description": "Date when the piece(s) went missing."
},
"itemDamagedStatusId": {
"description": "Item dame status id identifier.",
"type": "string"
},
"itemDamagedStatusDate": {
"description": "Date and time when the item was damaged.",
"type": "string"
},
"administrativeNotes":{
"type": "array",
"description": "Administrative notes",
"minItems": 0,
"items": {
"type": "string"
}
},
"notes": {
"type": "array",
"description": "Notes about action, copy, binding etc.",
"items": {
"type": "object",
"$ref": "itemNote.json"
}
},
"circulationNotes": {
"type": "array",
"description": "Notes to be displayed in circulation processes",
"items": {
"type": "object",
"$ref": "circulationNote.json"
}
},
"status": {
"type": "object",
"description": "The status of the item",
"$ref": "itemStatus.json"
},
"materialTypeId": {
"type": "string",
"description": "Material type, term. Define what type of thing the item is."
},
"materialType": {
"description": "Item's material type",
"type": "object",
"$ref": "materialtype.json",
"javaType": "org.folio.rest.jaxrs.model.materialTypeVirtual",
"readonly": true,
"folio:isVirtual": true,
"folio:linkBase": "material-types",
"folio:linkFromField": "materialTypeId",
"folio:linkToField": "id",
"folio:includedElement": "mtypes.0"
},
"permanentLoanTypeId": {
"type": "string",
"description": "The permanent loan type, is the default loan type for a given item. Loan types are tenant-defined."
},
"temporaryLoanTypeId": {
"type": "string",
"description": "Temporary loan type, is the temporary loan type for a given item."
},
"permanentLocationId": {
"type": "string",
"description": "Permanent item location is the default location, shelving location, or holding which is a physical place where items are stored, or an Online location."
},
"permanentLocation": {
"description": "The permanent shelving location in which an item resides",
"type": "object",
"$ref": "location.json",
"readonly": true,
"folio:isVirtual": true,
"folio:linkBase": "locations",
"folio:linkFromField": "permanentLocationId",
"folio:linkToField": "id",
"folio:includedElement": "locations.0"
},
"temporaryLocationId": {
"type": "string",
"description": "Temporary item location is the temporarily location, shelving location, or holding which is a physical place where items are stored, or an Online location."
},
"temporaryLocation": {
"description": "Temporary location, shelving location, or holding which is a physical place where items are stored, or an Online location",
"type": "object",
"$ref": "location.json",
"readonly": true,
"folio:isVirtual": true,
"folio:linkBase": "locations",
"folio:linkFromField": "temporaryLocationId",
"folio:linkToField": "id",
"folio:includedElement": "locations.0"
},
"effectiveLocationId": {
"type": "string",
"description": "Read only current home location for the item.",
"$ref": "../uuid.json",
"readonly": true
},
"electronicAccess": {
"type": "array",
"description": "References for accessing the item by URL.",
"items": {
"type": "object",
"$ref": "../common/electronicAccessItem.json"
}
},
"inTransitDestinationServicePointId": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "string",
"$ref" : "../uuid.json"
},
"statisticalCodeIds": {
"type": "array",
"description": "List of statistical code IDs",
"items": {
"type": "string",
"$ref" : "../uuid.json"
},
"uniqueItems": true
},
"purchaseOrderLineIdentifier": {
"type": "string",
"description": "ID referencing a remote purchase order object related to this item"
},
"tags": {
"description": "arbitrary tags associated with this item",
"id": "tags",
"type": "object",
"$ref": "../raml-util/schemas/tags.schema"
},
"metadata": {
"type": "object",
"$ref": "../raml-util/schemas/metadata.schema",
"readonly": true
},
"holdingsRecord2": {
"type": "object",
"description": "Fake property for mod-graphql to determine record relationships.",
"$ref": "holdingsrecord.json",
"readonly": true,
"folio:isVirtual": true,
"folio:linkBase": "holdings-storage/holdings",
"folio:linkFromField": "holdingsRecordId",
"folio:linkToField": "id",
"folio:includedElement": "holdingsRecords.0"
},
"lastCheckIn": {
"type": "object",
"description": "Information about when an item was last scanned in the Inventory app.",
"$ref": "itemLastCheckIn.json"
}
},
"additionalProperties": false,
"required": [
"materialTypeId",
"permanentLoanTypeId",
"holdingsRecordId",
"status"
]
}
Example:
{
"id": "0b96a642-5e7f-452d-9cae-9cee66c9a892",
"holdingsRecordId": "65cb2bf0-d4c2-4886-8ad0-b76f1ba75d61",
"barcode": "645398607547",
"status": {
"name": "In transit"
},
"materialTypeId": "1a54b431-2e4f-452d-9cae-9cee66c9a892",
"permanentLoanTypeId": "2b94c631-fca9-4892-a730-03ee529ffe27",
"temporaryLoanTypeId": "e8b311a6-3b21-43f2-a269-dd9310cb2d0e",
"temporaryLocationId": "0df935eb-f3f4-4741-9ac6-33c500174b96",
"inTransitDestinationServicePointId": "5b31ec8c-95a7-4b91-95cc-b551a74b91ca",
"tags" : {
"tagList" : [
"important"
]
}
}
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"item 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
delete /item-storage/items/{itemId}
Delete item item with given {itemId}
URI Parameters
- itemId: 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 item -- constraint violation"
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"item 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
put /item-storage/items/{itemId}
Update item item with given {itemId}
URI Parameters
- itemId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "An item record",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique ID of the item record"
},
"_version": {
"type": "integer",
"description": "Record version for optimistic locking"
},
"hrid": {
"type": "string",
"description": "The human readable ID, also called eye readable ID. A system-assigned sequential alternate ID"
},
"holdingsRecordId": {
"type": "string",
"description": "ID of the holdings record the item is a member of."
},
"order": {
"type": "integer",
"description": "Order of the item in the holdings record."
},
"formerIds": {
"type": "array",
"description": "Previous identifiers assigned to the item",
"items": {
"type": "string"
},
"uniqueItems": true
},
"discoverySuppress": {
"type": "boolean",
"description": "Records the fact that the record should not be displayed in a discovery system"
},
"displaySummary": {
"description": "Display summary about the item",
"type": "string"
},
"accessionNumber": {
"type": "string",
"description": "Also called inventar number"
},
"barcode": {
"type": "string",
"description": "Unique inventory control number for physical resources, used largely for circulation purposes"
},
"effectiveShelvingOrder": {
"type": "string",
"description": "A system generated normalization of the call number that allows for call number sorting in reports and search results",
"readonly": true
},
"additionalCallNumbers": {
"description": "Additional Call Numbers to track the history of identifiers assigned to an item.",
"type": "array",
"items": {
"type": "object",
"$ref": "../common/callNumberComponents.json",
"uniqueItems": true
}
},
"itemLevelCallNumber": {
"type": "string",
"description": "Call Number is an identifier assigned to an item, usually printed on a label attached to the item. The call number is used to determine the items physical position in a shelving sequence, e.g. K1 .M44. The Item level call number, is the call number on item level."
},
"itemLevelCallNumberPrefix": {
"type": "string",
"description": "Prefix of the call number on the item level."
},
"itemLevelCallNumberSuffix": {
"type": "string",
"description": "Suffix of the call number on the item level."
},
"itemLevelCallNumberTypeId": {
"type": "string",
"description": "Identifies the source of the call number, e.g., LCC, Dewey, NLM, etc.",
"$ref": "../uuid.json"
},
"effectiveCallNumberComponents": {
"type": "object",
"description": "Elements of a full call number generated from the item or holding",
"readonly": true,
"properties": {
"callNumber": {
"type": "string",
"description": "Effective Call Number is an identifier assigned to an item or its holding and associated with the item.",
"readonly": true
},
"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.",
"readonly": true
},
"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.",
"readonly": true
},
"typeId": {
"type": "string",
"description": "Effective Call Number Type Id is the call number type id of the item, if available, otherwise that of the holding.",
"$ref": "../uuid.json",
"readonly": true
}
},
"additionalProperties": false
},
"volume": {
"type": "string",
"description": "Volume is intended for monographs when a multipart monograph (e.g. a biography of George Bernard Shaw in three volumes)."
},
"enumeration": {
"type": "string",
"description": "Enumeration is the descriptive information for the numbering scheme of a serial."
},
"chronology": {
"type": "string",
"description": "Chronology is the descriptive information for the dating scheme of a serial."
},
"yearCaption": {
"type": "array",
"description": "In multipart monographs, a caption is a character(s) used to label a level of chronology, e.g., year 1985.",
"items": {
"type": "string"
},
"uniqueItems": true
},
"itemIdentifier": {
"type": "string",
"description": "Item identifier number, e.g. imported from the union catalogue (read only)."
},
"copyNumber": {
"type": "string",
"description": "Copy number is the piece identifier. The copy number reflects if the library has a copy of a single-volume monograph; one copy of a multi-volume, (e.g. Copy 1, or C.7.)"
},
"numberOfPieces": {
"type": "string",
"description": "Number of pieces. Used when an item is checked out or returned to verify that all parts are present (e.g. 7 CDs in a set)."
},
"descriptionOfPieces": {
"description": "Description of item pieces.",
"type": "string"
},
"numberOfMissingPieces": {
"type": "string",
"description": "Number of missing pieces."
},
"missingPieces": {
"type": "string",
"description": "Description of the missing pieces. "
},
"missingPiecesDate": {
"type": "string",
"description": "Date when the piece(s) went missing."
},
"itemDamagedStatusId": {
"description": "Item dame status id identifier.",
"type": "string"
},
"itemDamagedStatusDate": {
"description": "Date and time when the item was damaged.",
"type": "string"
},
"administrativeNotes":{
"type": "array",
"description": "Administrative notes",
"minItems": 0,
"items": {
"type": "string"
}
},
"notes": {
"type": "array",
"description": "Notes about action, copy, binding etc.",
"items": {
"type": "object",
"$ref": "itemNote.json"
}
},
"circulationNotes": {
"type": "array",
"description": "Notes to be displayed in circulation processes",
"items": {
"type": "object",
"$ref": "circulationNote.json"
}
},
"status": {
"type": "object",
"description": "The status of the item",
"$ref": "itemStatus.json"
},
"materialTypeId": {
"type": "string",
"description": "Material type, term. Define what type of thing the item is."
},
"materialType": {
"description": "Item's material type",
"type": "object",
"$ref": "materialtype.json",
"javaType": "org.folio.rest.jaxrs.model.materialTypeVirtual",
"readonly": true,
"folio:isVirtual": true,
"folio:linkBase": "material-types",
"folio:linkFromField": "materialTypeId",
"folio:linkToField": "id",
"folio:includedElement": "mtypes.0"
},
"permanentLoanTypeId": {
"type": "string",
"description": "The permanent loan type, is the default loan type for a given item. Loan types are tenant-defined."
},
"temporaryLoanTypeId": {
"type": "string",
"description": "Temporary loan type, is the temporary loan type for a given item."
},
"permanentLocationId": {
"type": "string",
"description": "Permanent item location is the default location, shelving location, or holding which is a physical place where items are stored, or an Online location."
},
"permanentLocation": {
"description": "The permanent shelving location in which an item resides",
"type": "object",
"$ref": "location.json",
"readonly": true,
"folio:isVirtual": true,
"folio:linkBase": "locations",
"folio:linkFromField": "permanentLocationId",
"folio:linkToField": "id",
"folio:includedElement": "locations.0"
},
"temporaryLocationId": {
"type": "string",
"description": "Temporary item location is the temporarily location, shelving location, or holding which is a physical place where items are stored, or an Online location."
},
"temporaryLocation": {
"description": "Temporary location, shelving location, or holding which is a physical place where items are stored, or an Online location",
"type": "object",
"$ref": "location.json",
"readonly": true,
"folio:isVirtual": true,
"folio:linkBase": "locations",
"folio:linkFromField": "temporaryLocationId",
"folio:linkToField": "id",
"folio:includedElement": "locations.0"
},
"effectiveLocationId": {
"type": "string",
"description": "Read only current home location for the item.",
"$ref": "../uuid.json",
"readonly": true
},
"electronicAccess": {
"type": "array",
"description": "References for accessing the item by URL.",
"items": {
"type": "object",
"$ref": "../common/electronicAccessItem.json"
}
},
"inTransitDestinationServicePointId": {
"description": "Service point an item is intended to be transited to (should only be present when in transit)",
"type": "string",
"$ref" : "../uuid.json"
},
"statisticalCodeIds": {
"type": "array",
"description": "List of statistical code IDs",
"items": {
"type": "string",
"$ref" : "../uuid.json"
},
"uniqueItems": true
},
"purchaseOrderLineIdentifier": {
"type": "string",
"description": "ID referencing a remote purchase order object related to this item"
},
"tags": {
"description": "arbitrary tags associated with this item",
"id": "tags",
"type": "object",
"$ref": "../raml-util/schemas/tags.schema"
},
"metadata": {
"type": "object",
"$ref": "../raml-util/schemas/metadata.schema",
"readonly": true
},
"holdingsRecord2": {
"type": "object",
"description": "Fake property for mod-graphql to determine record relationships.",
"$ref": "holdingsrecord.json",
"readonly": true,
"folio:isVirtual": true,
"folio:linkBase": "holdings-storage/holdings",
"folio:linkFromField": "holdingsRecordId",
"folio:linkToField": "id",
"folio:includedElement": "holdingsRecords.0"
},
"lastCheckIn": {
"type": "object",
"description": "Information about when an item was last scanned in the Inventory app.",
"$ref": "itemLastCheckIn.json"
}
},
"additionalProperties": false,
"required": [
"materialTypeId",
"permanentLoanTypeId",
"holdingsRecordId",
"status"
]
}
Example:
{
"id": "0b96a642-5e7f-452d-9cae-9cee66c9a892",
"holdingsRecordId": "65cb2bf0-d4c2-4886-8ad0-b76f1ba75d61",
"barcode": "645398607547",
"status": {
"name": "In transit"
},
"materialTypeId": "1a54b431-2e4f-452d-9cae-9cee66c9a892",
"permanentLoanTypeId": "2b94c631-fca9-4892-a730-03ee529ffe27",
"temporaryLoanTypeId": "e8b311a6-3b21-43f2-a269-dd9310cb2d0e",
"temporaryLocationId": "0df935eb-f3f4-4741-9ac6-33c500174b96",
"inTransitDestinationServicePointId": "5b31ec8c-95a7-4b91-95cc-b551a74b91ca",
"tags" : {
"tagList" : [
"important"
]
}
}
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 item -- malformed JSON at 13:4"
HTTP status code 404
Item with a given ID not found
Body
Media type: text/plain
Type: any
Example:
"item not found"
HTTP status code 409
Optimistic locking version conflict
Body
Media type: text/plain
Type: any
Example:
version conflict
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
Fetch inventory items collection by POST request
post /item-storage/items/retrieve
Fetch inventory items collection by POST request
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "DTO for fetching records by POST request",
"type": "object",
"properties": {
"offset": {
"description": "Skip over a number of elements by specifying an offset value for the query",
"type": "integer",
"minimum": 0,
"maximum": 2147483647,
"default": 0
},
"limit": {
"description": "Limit the number of elements returned in the response",
"type": "integer",
"minimum": 0,
"maximum": 2147483647,
"default": 10
},
"query": {
"description": "A query expressed as a CQL string",
"type": "string"
}
}
}
Example:
{
"limit": 10,
"offset": 10,
"query": "status=\"Available\""
}
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"
}
]
}
]
}